@@ -4,465 +4,465 @@ discard block |
||
| 4 | 4 | // ** ne pas modifier le fichier ** |
| 5 | 5 | |
| 6 | 6 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 7 | - return; |
|
| 7 | + return; |
|
| 8 | 8 | } |
| 9 | 9 | |
| 10 | 10 | $GLOBALS[$GLOBALS['idx_lang']] = array( |
| 11 | 11 | |
| 12 | - // A |
|
| 13 | - 'access_interface_graphique' => 'Nazad na kompletno graficki interfejs', |
|
| 14 | - 'access_mode_texte' => 'Prikazi pojednostavljeni tekstualni interfejs', |
|
| 15 | - 'admin_debug' => 'debug', |
|
| 16 | - 'admin_modifier_article' => 'Izmijeni ovaj clanak', |
|
| 17 | - 'admin_modifier_auteur' => 'Izmijeni ovog autora', |
|
| 18 | - 'admin_modifier_breve' => 'Izmijeni ovo obavjestenje', |
|
| 19 | - 'admin_modifier_mot' => 'Izmijeni ovu kljucnu rijec', |
|
| 20 | - 'admin_modifier_rubrique' => 'Izmijeni ovu rubriku', |
|
| 21 | - 'admin_recalculer' => 'Osvjezi ovu stranicu', |
|
| 22 | - 'alerte_maj_impossible' => '<b>Paznja!</b> Osvjezavanje SQL baze podataka na verziju @version@ nije uspjelo. Mozda se radi o dozvoli na bazi podataka. Molimo, kontaktirajte vas ISP.', # MODIF |
|
| 23 | - 'analyse_xml' => 'Obrada XML', |
|
| 24 | - 'articles_recents' => 'Последнји Чланци', |
|
| 25 | - 'avis_archive_incorrect' => 'arhiv dokument nije vazeci SPIP dokument', |
|
| 26 | - 'avis_archive_invalide' => 'arhiv dokument nije vazeci', |
|
| 27 | - 'avis_attention' => 'OPREZ!', |
|
| 28 | - 'avis_champ_incorrect_type_objet' => 'Pogresno ime polja @name@ za objekat tipa @type@', |
|
| 29 | - 'avis_colonne_inexistante' => 'Colona @col@ ne postoji', |
|
| 30 | - 'avis_erreur' => 'Greska: vidi ispod', |
|
| 31 | - 'avis_erreur_connexion' => 'Greska u konekciji', |
|
| 32 | - 'avis_erreur_cookie' => 'Problem sa cookiem', |
|
| 33 | - 'avis_erreur_fonction_contexte' => 'Greska u programiranju.Ova funkcija se ne treba pozivati u ovom kontekstu.', # MODIF |
|
| 34 | - 'avis_erreur_mysql' => 'SQL greska', # MODIF |
|
| 35 | - 'avis_erreur_sauvegarde' => 'Backup greska (@type@ @id_objet@) !', |
|
| 12 | + // A |
|
| 13 | + 'access_interface_graphique' => 'Nazad na kompletno graficki interfejs', |
|
| 14 | + 'access_mode_texte' => 'Prikazi pojednostavljeni tekstualni interfejs', |
|
| 15 | + 'admin_debug' => 'debug', |
|
| 16 | + 'admin_modifier_article' => 'Izmijeni ovaj clanak', |
|
| 17 | + 'admin_modifier_auteur' => 'Izmijeni ovog autora', |
|
| 18 | + 'admin_modifier_breve' => 'Izmijeni ovo obavjestenje', |
|
| 19 | + 'admin_modifier_mot' => 'Izmijeni ovu kljucnu rijec', |
|
| 20 | + 'admin_modifier_rubrique' => 'Izmijeni ovu rubriku', |
|
| 21 | + 'admin_recalculer' => 'Osvjezi ovu stranicu', |
|
| 22 | + 'alerte_maj_impossible' => '<b>Paznja!</b> Osvjezavanje SQL baze podataka na verziju @version@ nije uspjelo. Mozda se radi o dozvoli na bazi podataka. Molimo, kontaktirajte vas ISP.', # MODIF |
|
| 23 | + 'analyse_xml' => 'Obrada XML', |
|
| 24 | + 'articles_recents' => 'Последнји Чланци', |
|
| 25 | + 'avis_archive_incorrect' => 'arhiv dokument nije vazeci SPIP dokument', |
|
| 26 | + 'avis_archive_invalide' => 'arhiv dokument nije vazeci', |
|
| 27 | + 'avis_attention' => 'OPREZ!', |
|
| 28 | + 'avis_champ_incorrect_type_objet' => 'Pogresno ime polja @name@ za objekat tipa @type@', |
|
| 29 | + 'avis_colonne_inexistante' => 'Colona @col@ ne postoji', |
|
| 30 | + 'avis_erreur' => 'Greska: vidi ispod', |
|
| 31 | + 'avis_erreur_connexion' => 'Greska u konekciji', |
|
| 32 | + 'avis_erreur_cookie' => 'Problem sa cookiem', |
|
| 33 | + 'avis_erreur_fonction_contexte' => 'Greska u programiranju.Ova funkcija se ne treba pozivati u ovom kontekstu.', # MODIF |
|
| 34 | + 'avis_erreur_mysql' => 'SQL greska', # MODIF |
|
| 35 | + 'avis_erreur_sauvegarde' => 'Backup greska (@type@ @id_objet@) !', |
|
| 36 | 36 | |
| 37 | - // B |
|
| 38 | - 'barre_a_accent_grave' => 'Unesi veliko A sa grave akcentom', |
|
| 39 | - 'barre_aide' => 'Obogatite izgled vaseg teksta, koristeci se tipografskim precicama', |
|
| 40 | - 'barre_e_accent_aigu' => 'Unesi veliko E sa akutnim akcentom', |
|
| 41 | - 'barre_eo' => 'Unesi eo ligaturu', |
|
| 42 | - 'barre_eo_maj' => 'Unesi EO ligaturu velikim slovima', |
|
| 43 | - 'barre_euro' => 'Unesi simbol za euro', |
|
| 44 | - 'barre_gras' => 'Pretvori u {{masna slova}}', |
|
| 45 | - 'barre_guillemets' => 'Stavi pod "duple navodne znake"', |
|
| 46 | - 'barre_guillemets_simples' => 'Stavi pod "navodne znake"', |
|
| 47 | - 'barre_intertitre' => 'Pretvori u {{{podnaslov}}}', |
|
| 48 | - 'barre_italic' => 'Pretvori u {italik}', |
|
| 49 | - 'barre_lien' => 'pretvori u [hiperlink->http://...]', |
|
| 50 | - 'barre_lien_input' => 'Unesite odrediste vaseg hiperlinka (mozete unijeti internet URL u formi http://www.mysite.com ili navesti broj clanka na ovoj stranici.', |
|
| 51 | - 'barre_note' => 'Pretvori u [[fusnotu]]', |
|
| 52 | - 'barre_quote' => '<quote>citiraj neku poruku</quote>', |
|
| 53 | - 'bouton_changer' => 'Izmijeni', |
|
| 54 | - 'bouton_chercher' => 'Pretraga', |
|
| 55 | - 'bouton_choisir' => 'Izaberi', |
|
| 56 | - 'bouton_download' => 'Télécharger', # MODIF |
|
| 57 | - 'bouton_enregistrer' => 'Snimi', |
|
| 58 | - 'bouton_radio_desactiver_messagerie_interne' => 'Dezaktiviraj interni servis poruka', |
|
| 59 | - 'bouton_radio_envoi_annonces' => 'Posalji editorijalne najave', |
|
| 60 | - 'bouton_radio_non_envoi_annonces' => 'Ne salji najave', |
|
| 61 | - 'bouton_radio_non_envoi_liste_nouveautes' => 'Ne salji listu novosti', |
|
| 62 | - 'bouton_recharger_page' => 'Osvjezi ovu stranicu', |
|
| 63 | - 'bouton_telecharger' => 'Download', |
|
| 64 | - 'bouton_upload' => 'Download', # MODIF |
|
| 65 | - 'bouton_valider' => 'Ovjeri', |
|
| 37 | + // B |
|
| 38 | + 'barre_a_accent_grave' => 'Unesi veliko A sa grave akcentom', |
|
| 39 | + 'barre_aide' => 'Obogatite izgled vaseg teksta, koristeci se tipografskim precicama', |
|
| 40 | + 'barre_e_accent_aigu' => 'Unesi veliko E sa akutnim akcentom', |
|
| 41 | + 'barre_eo' => 'Unesi eo ligaturu', |
|
| 42 | + 'barre_eo_maj' => 'Unesi EO ligaturu velikim slovima', |
|
| 43 | + 'barre_euro' => 'Unesi simbol za euro', |
|
| 44 | + 'barre_gras' => 'Pretvori u {{masna slova}}', |
|
| 45 | + 'barre_guillemets' => 'Stavi pod "duple navodne znake"', |
|
| 46 | + 'barre_guillemets_simples' => 'Stavi pod "navodne znake"', |
|
| 47 | + 'barre_intertitre' => 'Pretvori u {{{podnaslov}}}', |
|
| 48 | + 'barre_italic' => 'Pretvori u {italik}', |
|
| 49 | + 'barre_lien' => 'pretvori u [hiperlink->http://...]', |
|
| 50 | + 'barre_lien_input' => 'Unesite odrediste vaseg hiperlinka (mozete unijeti internet URL u formi http://www.mysite.com ili navesti broj clanka na ovoj stranici.', |
|
| 51 | + 'barre_note' => 'Pretvori u [[fusnotu]]', |
|
| 52 | + 'barre_quote' => '<quote>citiraj neku poruku</quote>', |
|
| 53 | + 'bouton_changer' => 'Izmijeni', |
|
| 54 | + 'bouton_chercher' => 'Pretraga', |
|
| 55 | + 'bouton_choisir' => 'Izaberi', |
|
| 56 | + 'bouton_download' => 'Télécharger', # MODIF |
|
| 57 | + 'bouton_enregistrer' => 'Snimi', |
|
| 58 | + 'bouton_radio_desactiver_messagerie_interne' => 'Dezaktiviraj interni servis poruka', |
|
| 59 | + 'bouton_radio_envoi_annonces' => 'Posalji editorijalne najave', |
|
| 60 | + 'bouton_radio_non_envoi_annonces' => 'Ne salji najave', |
|
| 61 | + 'bouton_radio_non_envoi_liste_nouveautes' => 'Ne salji listu novosti', |
|
| 62 | + 'bouton_recharger_page' => 'Osvjezi ovu stranicu', |
|
| 63 | + 'bouton_telecharger' => 'Download', |
|
| 64 | + 'bouton_upload' => 'Download', # MODIF |
|
| 65 | + 'bouton_valider' => 'Ovjeri', |
|
| 66 | 66 | |
| 67 | - // C |
|
| 68 | - 'cal_apresmidi' => 'posljepodne', |
|
| 69 | - 'cal_jour_entier' => 'cijeli dan', |
|
| 70 | - 'cal_matin' => 'prijepodne', |
|
| 71 | - 'cal_par_jour' => 'dnevni kalendar', |
|
| 72 | - 'cal_par_mois' => 'mjesecni kalendar', |
|
| 73 | - 'cal_par_semaine' => 'sedmicni kalendar', |
|
| 74 | - 'confirm_changer_statut' => 'Trazili ste izmjenu statusa ovog clanka. Zelite li nastaviti?', |
|
| 75 | - 'correcte' => 'tacno', |
|
| 67 | + // C |
|
| 68 | + 'cal_apresmidi' => 'posljepodne', |
|
| 69 | + 'cal_jour_entier' => 'cijeli dan', |
|
| 70 | + 'cal_matin' => 'prijepodne', |
|
| 71 | + 'cal_par_jour' => 'dnevni kalendar', |
|
| 72 | + 'cal_par_mois' => 'mjesecni kalendar', |
|
| 73 | + 'cal_par_semaine' => 'sedmicni kalendar', |
|
| 74 | + 'confirm_changer_statut' => 'Trazili ste izmjenu statusa ovog clanka. Zelite li nastaviti?', |
|
| 75 | + 'correcte' => 'tacno', |
|
| 76 | 76 | |
| 77 | - // D |
|
| 78 | - 'date_aujourdhui' => 'danas', |
|
| 79 | - 'date_avant_jc' => 'pne.', |
|
| 80 | - 'date_dans' => 'za @delai@', |
|
| 81 | - 'date_de_mois_1' => '@j@ @nommois@', |
|
| 82 | - 'date_de_mois_10' => '@j@ @nommois@', |
|
| 83 | - 'date_de_mois_11' => '@j@ @nommois@', |
|
| 84 | - 'date_de_mois_12' => '@j@ @nommois@', |
|
| 85 | - 'date_de_mois_2' => '@j@ @nommois@', |
|
| 86 | - 'date_de_mois_3' => '@j@ @nommois@', |
|
| 87 | - 'date_de_mois_4' => '@j@ @nommois@', |
|
| 88 | - 'date_de_mois_5' => '@j@ @nommois@', |
|
| 89 | - 'date_de_mois_6' => '@j@ @nommois@', |
|
| 90 | - 'date_de_mois_7' => '@j@ @nommois@', |
|
| 91 | - 'date_de_mois_8' => '@j@ @nommois@', |
|
| 92 | - 'date_de_mois_9' => '@j@ @nommois@', |
|
| 93 | - 'date_demain' => 'sutra', |
|
| 94 | - 'date_fmt_heures_minutes' => '@h@h@m@min', |
|
| 95 | - 'date_fmt_jour_heure' => '@jour@ u @heure@', |
|
| 96 | - 'date_fmt_jour_mois' => '@jour@ @nommois@', |
|
| 97 | - 'date_fmt_jour_mois_annee' => '@jour@ @nommois@ @annee@', |
|
| 98 | - 'date_fmt_mois_annee' => '@nommois@ @annee@', |
|
| 99 | - 'date_fmt_nomjour_date' => '@nomjour@ @date@', |
|
| 100 | - 'date_heures' => 'sati', |
|
| 101 | - 'date_hier' => 'jucer', |
|
| 102 | - 'date_il_y_a' => 'prije @delai@', |
|
| 103 | - 'date_jnum1' => '1', |
|
| 104 | - 'date_jnum10' => '10', |
|
| 105 | - 'date_jnum11' => '11', |
|
| 106 | - 'date_jnum12' => '12', |
|
| 107 | - 'date_jnum13' => '13', |
|
| 108 | - 'date_jnum14' => '14', |
|
| 109 | - 'date_jnum15' => '15', |
|
| 110 | - 'date_jnum16' => '16', |
|
| 111 | - 'date_jnum17' => '17', |
|
| 112 | - 'date_jnum18' => '18', |
|
| 113 | - 'date_jnum19' => '19', |
|
| 114 | - 'date_jnum2' => '2', |
|
| 115 | - 'date_jnum20' => '20', |
|
| 116 | - 'date_jnum21' => '21', |
|
| 117 | - 'date_jnum22' => '22', |
|
| 118 | - 'date_jnum23' => '23', |
|
| 119 | - 'date_jnum24' => '24', |
|
| 120 | - 'date_jnum25' => '25', |
|
| 121 | - 'date_jnum26' => '26', |
|
| 122 | - 'date_jnum27' => '27', |
|
| 123 | - 'date_jnum28' => '28', |
|
| 124 | - 'date_jnum29' => '29', |
|
| 125 | - 'date_jnum3' => '3', |
|
| 126 | - 'date_jnum30' => '30', |
|
| 127 | - 'date_jnum31' => '31', |
|
| 128 | - 'date_jnum4' => '4', |
|
| 129 | - 'date_jnum5' => '5', |
|
| 130 | - 'date_jnum6' => '6', |
|
| 131 | - 'date_jnum7' => '7', |
|
| 132 | - 'date_jnum8' => '8', |
|
| 133 | - 'date_jnum9' => '9', |
|
| 134 | - 'date_jour_1' => 'nedjelja', |
|
| 135 | - 'date_jour_2' => 'ponedjeljak', |
|
| 136 | - 'date_jour_3' => 'utorak', |
|
| 137 | - 'date_jour_4' => 'srijeda', |
|
| 138 | - 'date_jour_5' => 'cetvrtak', |
|
| 139 | - 'date_jour_6' => 'petak', |
|
| 140 | - 'date_jour_7' => 'subota', |
|
| 141 | - 'date_jours' => 'dani', |
|
| 142 | - 'date_minutes' => 'minute', |
|
| 143 | - 'date_mois' => 'mjeseci', |
|
| 144 | - 'date_mois_1' => 'januar', |
|
| 145 | - 'date_mois_10' => 'oktobar', |
|
| 146 | - 'date_mois_11' => 'novembar', |
|
| 147 | - 'date_mois_12' => 'decembar', |
|
| 148 | - 'date_mois_2' => 'februar', |
|
| 149 | - 'date_mois_3' => 'mart', |
|
| 150 | - 'date_mois_4' => 'april', |
|
| 151 | - 'date_mois_5' => 'maj', |
|
| 152 | - 'date_mois_6' => 'juni', |
|
| 153 | - 'date_mois_7' => 'juli', |
|
| 154 | - 'date_mois_8' => 'august', |
|
| 155 | - 'date_mois_9' => 'septembar', |
|
| 156 | - 'date_saison_1' => 'zima', |
|
| 157 | - 'date_saison_2' => 'proljece', |
|
| 158 | - 'date_saison_3' => 'ljeto', |
|
| 159 | - 'date_saison_4' => 'jesen', |
|
| 160 | - 'date_semaines' => 'sedmice', |
|
| 161 | - 'dirs_commencer' => ' da bi ste poceli sa stvarnom instalacijom', |
|
| 162 | - 'dirs_preliminaire' => 'Uvod: <b>Podesavanje dozvola za pristup</b>', |
|
| 163 | - 'dirs_probleme_droits' => '<b>Problem sa dozvolama za pristup</b>', |
|
| 164 | - 'dirs_repertoires_absents' => '<b>Sljedeci direktoriji nisu nadjeni: <ul>@bad_dirs@.</ul> </b> |
|
| 77 | + // D |
|
| 78 | + 'date_aujourdhui' => 'danas', |
|
| 79 | + 'date_avant_jc' => 'pne.', |
|
| 80 | + 'date_dans' => 'za @delai@', |
|
| 81 | + 'date_de_mois_1' => '@j@ @nommois@', |
|
| 82 | + 'date_de_mois_10' => '@j@ @nommois@', |
|
| 83 | + 'date_de_mois_11' => '@j@ @nommois@', |
|
| 84 | + 'date_de_mois_12' => '@j@ @nommois@', |
|
| 85 | + 'date_de_mois_2' => '@j@ @nommois@', |
|
| 86 | + 'date_de_mois_3' => '@j@ @nommois@', |
|
| 87 | + 'date_de_mois_4' => '@j@ @nommois@', |
|
| 88 | + 'date_de_mois_5' => '@j@ @nommois@', |
|
| 89 | + 'date_de_mois_6' => '@j@ @nommois@', |
|
| 90 | + 'date_de_mois_7' => '@j@ @nommois@', |
|
| 91 | + 'date_de_mois_8' => '@j@ @nommois@', |
|
| 92 | + 'date_de_mois_9' => '@j@ @nommois@', |
|
| 93 | + 'date_demain' => 'sutra', |
|
| 94 | + 'date_fmt_heures_minutes' => '@h@h@m@min', |
|
| 95 | + 'date_fmt_jour_heure' => '@jour@ u @heure@', |
|
| 96 | + 'date_fmt_jour_mois' => '@jour@ @nommois@', |
|
| 97 | + 'date_fmt_jour_mois_annee' => '@jour@ @nommois@ @annee@', |
|
| 98 | + 'date_fmt_mois_annee' => '@nommois@ @annee@', |
|
| 99 | + 'date_fmt_nomjour_date' => '@nomjour@ @date@', |
|
| 100 | + 'date_heures' => 'sati', |
|
| 101 | + 'date_hier' => 'jucer', |
|
| 102 | + 'date_il_y_a' => 'prije @delai@', |
|
| 103 | + 'date_jnum1' => '1', |
|
| 104 | + 'date_jnum10' => '10', |
|
| 105 | + 'date_jnum11' => '11', |
|
| 106 | + 'date_jnum12' => '12', |
|
| 107 | + 'date_jnum13' => '13', |
|
| 108 | + 'date_jnum14' => '14', |
|
| 109 | + 'date_jnum15' => '15', |
|
| 110 | + 'date_jnum16' => '16', |
|
| 111 | + 'date_jnum17' => '17', |
|
| 112 | + 'date_jnum18' => '18', |
|
| 113 | + 'date_jnum19' => '19', |
|
| 114 | + 'date_jnum2' => '2', |
|
| 115 | + 'date_jnum20' => '20', |
|
| 116 | + 'date_jnum21' => '21', |
|
| 117 | + 'date_jnum22' => '22', |
|
| 118 | + 'date_jnum23' => '23', |
|
| 119 | + 'date_jnum24' => '24', |
|
| 120 | + 'date_jnum25' => '25', |
|
| 121 | + 'date_jnum26' => '26', |
|
| 122 | + 'date_jnum27' => '27', |
|
| 123 | + 'date_jnum28' => '28', |
|
| 124 | + 'date_jnum29' => '29', |
|
| 125 | + 'date_jnum3' => '3', |
|
| 126 | + 'date_jnum30' => '30', |
|
| 127 | + 'date_jnum31' => '31', |
|
| 128 | + 'date_jnum4' => '4', |
|
| 129 | + 'date_jnum5' => '5', |
|
| 130 | + 'date_jnum6' => '6', |
|
| 131 | + 'date_jnum7' => '7', |
|
| 132 | + 'date_jnum8' => '8', |
|
| 133 | + 'date_jnum9' => '9', |
|
| 134 | + 'date_jour_1' => 'nedjelja', |
|
| 135 | + 'date_jour_2' => 'ponedjeljak', |
|
| 136 | + 'date_jour_3' => 'utorak', |
|
| 137 | + 'date_jour_4' => 'srijeda', |
|
| 138 | + 'date_jour_5' => 'cetvrtak', |
|
| 139 | + 'date_jour_6' => 'petak', |
|
| 140 | + 'date_jour_7' => 'subota', |
|
| 141 | + 'date_jours' => 'dani', |
|
| 142 | + 'date_minutes' => 'minute', |
|
| 143 | + 'date_mois' => 'mjeseci', |
|
| 144 | + 'date_mois_1' => 'januar', |
|
| 145 | + 'date_mois_10' => 'oktobar', |
|
| 146 | + 'date_mois_11' => 'novembar', |
|
| 147 | + 'date_mois_12' => 'decembar', |
|
| 148 | + 'date_mois_2' => 'februar', |
|
| 149 | + 'date_mois_3' => 'mart', |
|
| 150 | + 'date_mois_4' => 'april', |
|
| 151 | + 'date_mois_5' => 'maj', |
|
| 152 | + 'date_mois_6' => 'juni', |
|
| 153 | + 'date_mois_7' => 'juli', |
|
| 154 | + 'date_mois_8' => 'august', |
|
| 155 | + 'date_mois_9' => 'septembar', |
|
| 156 | + 'date_saison_1' => 'zima', |
|
| 157 | + 'date_saison_2' => 'proljece', |
|
| 158 | + 'date_saison_3' => 'ljeto', |
|
| 159 | + 'date_saison_4' => 'jesen', |
|
| 160 | + 'date_semaines' => 'sedmice', |
|
| 161 | + 'dirs_commencer' => ' da bi ste poceli sa stvarnom instalacijom', |
|
| 162 | + 'dirs_preliminaire' => 'Uvod: <b>Podesavanje dozvola za pristup</b>', |
|
| 163 | + 'dirs_probleme_droits' => '<b>Problem sa dozvolama za pristup</b>', |
|
| 164 | + 'dirs_repertoires_absents' => '<b>Sljedeci direktoriji nisu nadjeni: <ul>@bad_dirs@.</ul> </b> |
|
| 165 | 165 | <p>Problem je vjerovatno u pisanju velikih i malih slova. |
| 166 | 166 | Provjerite da li velika i mala slova ovih direktorija odgovaraju onom sto je prikazano nize; ako to nije slucaj, promijenite imena direktorija pomocu vaseg FTP klijenta, da biste ispravili gresku. |
| 167 | 167 | </p><p>Kada to uradite, mozete </p>', # MODIF |
| 168 | - 'dirs_repertoires_suivants' => '<b>Sljedeci direktoriji ne dozvoljavaju pisanje: <ul>@bad_dirs@.</ul> </b> |
|
| 168 | + 'dirs_repertoires_suivants' => '<b>Sljedeci direktoriji ne dozvoljavaju pisanje: <ul>@bad_dirs@.</ul> </b> |
|
| 169 | 169 | <p>Da bi ste to promijenili, koristite svog FTP klijenta i postavite dozvole pristupa za svaki od direktorija. Procedura je detaljno opisana u uputama za instalaciju. |
| 170 | 170 | </p><p>Kada izvrsite ovu operaciju, mozete </p>', # MODIF |
| 171 | - 'double_occurrence' => 'Double occurrence', # MODIF |
|
| 171 | + 'double_occurrence' => 'Double occurrence', # MODIF |
|
| 172 | 172 | |
| 173 | - // E |
|
| 174 | - 'envoi_via_le_site' => 'Poslano putem stranice', |
|
| 173 | + // E |
|
| 174 | + 'envoi_via_le_site' => 'Poslano putem stranice', |
|
| 175 | 175 | |
| 176 | - // F |
|
| 177 | - 'fichier_introuvable' => 'Dokument @fichier@ nije pronadjen', # MODIF |
|
| 178 | - 'form_deja_inscrit' => 'Vec ste registrovani.', |
|
| 179 | - 'form_email_non_valide' => 'Vasa e-mail adresa nije vazeca.', |
|
| 180 | - 'form_forum_access_refuse' => 'Nemate vise pristup ovoj stranici.', |
|
| 181 | - 'form_forum_bonjour' => 'Dobar dan @nom@,', |
|
| 182 | - 'form_forum_email_deja_enregistre' => 'Ova e-mail adresa je vec registrovana. Mozete koistiti vasu uobicajenu lozinku', |
|
| 183 | - 'form_forum_identifiant_mail' => 'Vas novi identifikator vam je upravo poslan na vasu e-mail adresu.', |
|
| 184 | - 'form_forum_identifiants' => 'Licni identifikatori', |
|
| 185 | - 'form_forum_indiquer_nom_email' => 'Ovdje upisite vase ime i e-mail adresu. Ubrzo ce na tu adresu stici vas licni identifikator.', |
|
| 186 | - 'form_forum_login' => 'login:', |
|
| 187 | - 'form_forum_message_auto' => '(ovo je automatska poruka)', |
|
| 188 | - 'form_forum_pass' => 'lozinka:', |
|
| 189 | - 'form_forum_probleme_mail' => 'Problem sa e-mail adresom. Identifikator nije poslan.', |
|
| 190 | - 'form_forum_voici1' => 'Ovo su identifikatori za vase ucesce u aktivnosti stranice "@nom_site_spip@" (@adresse_site@/) :', |
|
| 191 | - 'form_forum_voici2' => 'Ovo su vasi identifikatori za postavljanje clanaka na stranici "@nom_site_spip@" (@adresse_site@/ecrire/) :', |
|
| 192 | - 'form_indiquer_email' => 'Naznacite vasu e-mail adresu.', |
|
| 193 | - 'form_indiquer_nom' => 'Naznacite vase ime.', |
|
| 194 | - 'form_indiquer_nom_site' => 'Naznacite ime vase stranice.', |
|
| 195 | - 'form_pet_deja_enregistre' => 'Ova stranica je vec registrovana', |
|
| 196 | - 'form_pet_signature_pasprise' => 'Vas potpis nije primljen.', |
|
| 197 | - 'form_prop_confirmer_envoi' => 'Potvrdi posiljku', |
|
| 198 | - 'form_prop_description' => 'Opis/komentar', |
|
| 199 | - 'form_prop_enregistre' => 'Vas prijedlog je registrovan i bice postavljen nakon ovjere od strane odgovornih osoba ove stranice.', |
|
| 200 | - 'form_prop_envoyer' => 'Pošaljite poruku', |
|
| 201 | - 'form_prop_indiquer_email' => 'Naznacite vazecu e-mail adresu', |
|
| 202 | - 'form_prop_indiquer_nom_site' => 'Naznacite ime strancie.', |
|
| 203 | - 'form_prop_indiquer_sujet' => 'Naznacite temu', |
|
| 204 | - 'form_prop_message_envoye' => 'Poruka poslana', |
|
| 205 | - 'form_prop_non_enregistre' => 'Vas prijedlog nije registrovan.', |
|
| 206 | - 'form_prop_sujet' => 'Tema', |
|
| 207 | - 'form_prop_url_site' => 'URL adresa stranice', # MODIF |
|
| 208 | - 'forum_non_inscrit' => 'Niste registrovani ili adresa i lozinka nisu ispravni.', |
|
| 209 | - 'forum_par_auteur' => 'od @auteur@', |
|
| 210 | - 'forum_titre_erreur' => 'Greska...', |
|
| 176 | + // F |
|
| 177 | + 'fichier_introuvable' => 'Dokument @fichier@ nije pronadjen', # MODIF |
|
| 178 | + 'form_deja_inscrit' => 'Vec ste registrovani.', |
|
| 179 | + 'form_email_non_valide' => 'Vasa e-mail adresa nije vazeca.', |
|
| 180 | + 'form_forum_access_refuse' => 'Nemate vise pristup ovoj stranici.', |
|
| 181 | + 'form_forum_bonjour' => 'Dobar dan @nom@,', |
|
| 182 | + 'form_forum_email_deja_enregistre' => 'Ova e-mail adresa je vec registrovana. Mozete koistiti vasu uobicajenu lozinku', |
|
| 183 | + 'form_forum_identifiant_mail' => 'Vas novi identifikator vam je upravo poslan na vasu e-mail adresu.', |
|
| 184 | + 'form_forum_identifiants' => 'Licni identifikatori', |
|
| 185 | + 'form_forum_indiquer_nom_email' => 'Ovdje upisite vase ime i e-mail adresu. Ubrzo ce na tu adresu stici vas licni identifikator.', |
|
| 186 | + 'form_forum_login' => 'login:', |
|
| 187 | + 'form_forum_message_auto' => '(ovo je automatska poruka)', |
|
| 188 | + 'form_forum_pass' => 'lozinka:', |
|
| 189 | + 'form_forum_probleme_mail' => 'Problem sa e-mail adresom. Identifikator nije poslan.', |
|
| 190 | + 'form_forum_voici1' => 'Ovo su identifikatori za vase ucesce u aktivnosti stranice "@nom_site_spip@" (@adresse_site@/) :', |
|
| 191 | + 'form_forum_voici2' => 'Ovo su vasi identifikatori za postavljanje clanaka na stranici "@nom_site_spip@" (@adresse_site@/ecrire/) :', |
|
| 192 | + 'form_indiquer_email' => 'Naznacite vasu e-mail adresu.', |
|
| 193 | + 'form_indiquer_nom' => 'Naznacite vase ime.', |
|
| 194 | + 'form_indiquer_nom_site' => 'Naznacite ime vase stranice.', |
|
| 195 | + 'form_pet_deja_enregistre' => 'Ova stranica je vec registrovana', |
|
| 196 | + 'form_pet_signature_pasprise' => 'Vas potpis nije primljen.', |
|
| 197 | + 'form_prop_confirmer_envoi' => 'Potvrdi posiljku', |
|
| 198 | + 'form_prop_description' => 'Opis/komentar', |
|
| 199 | + 'form_prop_enregistre' => 'Vas prijedlog je registrovan i bice postavljen nakon ovjere od strane odgovornih osoba ove stranice.', |
|
| 200 | + 'form_prop_envoyer' => 'Pošaljite poruku', |
|
| 201 | + 'form_prop_indiquer_email' => 'Naznacite vazecu e-mail adresu', |
|
| 202 | + 'form_prop_indiquer_nom_site' => 'Naznacite ime strancie.', |
|
| 203 | + 'form_prop_indiquer_sujet' => 'Naznacite temu', |
|
| 204 | + 'form_prop_message_envoye' => 'Poruka poslana', |
|
| 205 | + 'form_prop_non_enregistre' => 'Vas prijedlog nije registrovan.', |
|
| 206 | + 'form_prop_sujet' => 'Tema', |
|
| 207 | + 'form_prop_url_site' => 'URL adresa stranice', # MODIF |
|
| 208 | + 'forum_non_inscrit' => 'Niste registrovani ili adresa i lozinka nisu ispravni.', |
|
| 209 | + 'forum_par_auteur' => 'od @auteur@', |
|
| 210 | + 'forum_titre_erreur' => 'Greska...', |
|
| 211 | 211 | |
| 212 | - // I |
|
| 213 | - 'ical_texte_rss_articles' => 'Backend dokument clanaka ove stranice se nalazi na adresi:', |
|
| 214 | - 'ical_texte_rss_articles2' => 'Svakako mozete dobiti backend dokumente za clanke svih rubrika na stanici:', |
|
| 215 | - 'ical_texte_rss_breves' => 'Postoji dokument koji sadrzi novosti stranice. Mozete dobiti samo novosti jedne rubrike, tako sto ce te izabrati broj sekcije.', |
|
| 216 | - 'icone_a_suivre' => 'À suivre', |
|
| 217 | - 'icone_admin_site' => 'Administracija stranice', |
|
| 218 | - 'icone_agenda' => 'Kalendar', |
|
| 219 | - 'icone_aide_ligne' => 'Pomoc', |
|
| 220 | - 'icone_articles' => 'Clanci', |
|
| 221 | - 'icone_auteurs' => 'Autori', |
|
| 222 | - 'icone_brouteur' => 'Brza navigacija', |
|
| 223 | - 'icone_configuration_site' => 'Podesavanje', |
|
| 224 | - 'icone_configurer_site' => 'Podesavanje vase stranice', |
|
| 225 | - 'icone_creer_nouvel_auteur' => 'Kreiraj novog autora', |
|
| 226 | - 'icone_creer_rubrique' => 'Kreiraj rubriku', |
|
| 227 | - 'icone_creer_sous_rubrique' => 'Kreiraj podrubriku', |
|
| 228 | - 'icone_deconnecter' => 'odjava', |
|
| 229 | - 'icone_discussions' => 'Diskusije', |
|
| 230 | - 'icone_doc_rubrique' => 'Prilozeni dokumenti', |
|
| 231 | - 'icone_ecrire_article' => 'Napisi novi clanak', |
|
| 232 | - 'icone_edition_site' => 'Izmjena', |
|
| 233 | - 'icone_gestion_langues' => 'Menadzer jezika', |
|
| 234 | - 'icone_informations_personnelles' => 'Licne informacije', |
|
| 235 | - 'icone_interface_complet' => 'cjelokupni interfejs', |
|
| 236 | - 'icone_interface_simple' => 'Pojednostavljeni interfejs', |
|
| 237 | - 'icone_maintenance_site' => 'Odrzavanje stranice', |
|
| 238 | - 'icone_messagerie_personnelle' => 'Licni servis poruka', |
|
| 239 | - 'icone_repartition_debut' => 'Prikazi distribuciju od pocetka', |
|
| 240 | - 'icone_rubriques' => 'Rubrike', |
|
| 241 | - 'icone_sauver_site' => 'Backup stranice', |
|
| 242 | - 'icone_site_entier' => 'Cjela stranica', |
|
| 243 | - 'icone_sites_references' => 'Preporucene stranice', |
|
| 244 | - 'icone_statistiques' => 'Statistike stranice', |
|
| 245 | - 'icone_suivi_activite' => 'Prati aktivnost stranice', |
|
| 246 | - 'icone_suivi_actualite' => 'Razvoj stranice', |
|
| 247 | - 'icone_suivi_pettions' => 'Prati/uredi peticija', |
|
| 248 | - 'icone_suivi_revisions' => 'Izmjene clanaka', |
|
| 249 | - 'icone_supprimer_document' => 'Izbrisi ovaj dokument', |
|
| 250 | - 'icone_supprimer_image' => 'Izbrisi ovu fotografiju', |
|
| 251 | - 'icone_tous_articles' => 'Svi vasi clanci', |
|
| 252 | - 'icone_tous_auteur' => 'Svi autori', |
|
| 253 | - 'icone_visiter_site' => 'Posjeti', # MODIF |
|
| 254 | - 'icone_voir_en_ligne' => 'Pogledaj online', |
|
| 255 | - 'img_indisponible' => 'fotografija je nedostupna', |
|
| 256 | - 'info_a_suivre' => 'LAUNCH PAD»', |
|
| 257 | - 'info_acces_interdit' => 'zabranjen pristup', |
|
| 258 | - 'info_acces_refuse' => 'pristup odbijen', |
|
| 259 | - 'info_action' => 'Akcija: @action@', |
|
| 260 | - 'info_administrer_rubriques' => 'Mozete administrirati ovu rubriku i njene podrubrike', |
|
| 261 | - 'info_adresse_non_indiquee' => 'Niste naznacili adresu koju treba testirati!', |
|
| 262 | - 'info_aide' => 'POMOC:', |
|
| 263 | - 'info_ajouter_mot' => 'Dodaj ovu rijec', |
|
| 264 | - 'info_annonce' => 'NAJAVA', |
|
| 265 | - 'info_annonces_generales' => 'Opste najave:', |
|
| 266 | - 'info_article_propose' => 'Clanak je predlozen', |
|
| 267 | - 'info_article_publie' => 'Clanak je objavljen', |
|
| 268 | - 'info_article_redaction' => 'Clanak u toku uredjivanja', |
|
| 269 | - 'info_article_refuse' => 'Clanak je odbijen', |
|
| 270 | - 'info_article_supprime' => 'Clanak je izbrisan', |
|
| 271 | - 'info_articles' => 'Чланци', |
|
| 272 | - 'info_articles_a_valider' => 'Clanci za ovjeriti', |
|
| 273 | - 'info_articles_proposes' => 'Predlozeni clanci', |
|
| 274 | - 'info_auteurs_nombre' => 'autor/i:', |
|
| 275 | - 'info_authentification_ftp' => 'Authentifikacija (FTP-om).', |
|
| 276 | - 'info_breves_2' => 'obavjestenja', |
|
| 277 | - 'info_connexion_refusee' => 'Prijava odbijena', |
|
| 278 | - 'info_contact_developpeur' => 'Kontaktirajte programera.', |
|
| 279 | - 'info_contenance' => 'Ova stranica sadrzi:', |
|
| 280 | - 'info_contribution' => 'Pridonos foruma', # MODIF |
|
| 281 | - 'info_copyright' => '@spip@ je slobodni softver distribucije @lien_gpl@.', |
|
| 282 | - 'info_copyright_doc' => 'Za vise informacija pogledajte <a href="@spipnet@">http://www.spip.net/fr</a>.', # MODIF |
|
| 283 | - 'info_copyright_gpl' => 'pod GPL licencom', |
|
| 284 | - 'info_cours_edition' => 'Vasi clanci u toku uredjivanja', # MODIF |
|
| 285 | - 'info_creer_repertoire' => 'Kreirajte dokument ili direktorij pod imenom:', |
|
| 286 | - 'info_creer_repertoire_2' => 'Unutar podirektorija<b>ecrire/data/</b>, zatim:', |
|
| 287 | - 'info_creer_vignette' => 'automatska kreacija vinjete', |
|
| 288 | - 'info_deplier' => 'Otvori', |
|
| 289 | - 'info_descriptif_nombre' => 'opis/i:', |
|
| 290 | - 'info_description' => 'Opis:', |
|
| 291 | - 'info_description_2' => 'Opis:', |
|
| 292 | - 'info_dimension' => 'Dimenzije:', |
|
| 293 | - 'info_ecire_message_prive' => 'Napisi privatnu poruku', |
|
| 294 | - 'info_email_invalide' => 'Pogresna e-mail adresa.', |
|
| 295 | - 'info_en_cours_validation' => 'Vasi clanci u toku uredjivanja', |
|
| 296 | - 'info_en_ligne' => 'Trenutno online:', |
|
| 297 | - 'info_envoyer_message_prive' => 'Posalji privatnu poruku ovom autoru', |
|
| 298 | - 'info_erreur_requete' => 'Greska sa upitom:', |
|
| 299 | - 'info_erreur_squelette2' => 'Nijedan predlozak <b>@fichier@</b> nije dostupan...', |
|
| 300 | - 'info_erreur_systeme' => 'Sistemska greska (errno @errsys@)', |
|
| 301 | - 'info_fini' => 'Zavrseno je!', |
|
| 302 | - 'info_format_image' => 'Format fotografija koji se moze koristiti za kreiranje vinjeta: @gd_formats@.', |
|
| 303 | - 'info_format_non_defini' => 'neodredjen format', |
|
| 304 | - 'info_grand_ecran' => 'Veliki prikaz', |
|
| 305 | - 'info_image_aide' => 'POMOC', |
|
| 306 | - 'info_image_process_titre' => 'Metoda pravljenja vinjeta', |
|
| 307 | - 'info_impossible_lire_page' => '<b>Greska!</b> Nemoguce procitati stranicu <tt><html>@test_proxy@</html></tt> iako proxy <tt>', # MODIF |
|
| 308 | - 'info_installation_systeme_publication' => 'Instalacija sistema objavljivanja...', |
|
| 309 | - 'info_installer_documents' => 'Mozete automatski instalirati sve dokumente iz foldera <i>upload</i>.', |
|
| 310 | - 'info_installer_ftp' => 'Kao administrator mozete putem FTP-a instalirati dokumente iz foldera @upload@ da bi ste ih kasnije izabrali direktno sa ove lokacije.', |
|
| 311 | - 'info_installer_images' => 'Mozete instalirati fotografije formata JPEG, GIF i PNG.', |
|
| 312 | - 'info_installer_images_dossier' => 'Instalirajte fotografije u folder @upload@ da bi ste ih mogli izabrati sa ov lokacije.', |
|
| 313 | - 'info_interface_complete' => 'Cjelokupni interfejs', |
|
| 314 | - 'info_interface_simple' => 'Pojednostavljeni interfejs', |
|
| 315 | - 'info_joindre_document_article' => 'Ovom clanku mozete pridruziti dokumente tipa', |
|
| 316 | - 'info_joindre_document_rubrique' => 'Ovoj rubrici mozete dodati dokumente tipa', |
|
| 317 | - 'info_joindre_documents_article' => 'Vasem clanku mozete dodati dokumente tipa:', |
|
| 318 | - 'info_l_article' => 'Чланак', |
|
| 319 | - 'info_la_breve' => 'obavjestenje', |
|
| 320 | - 'info_la_rubrique' => 'rubrika', |
|
| 321 | - 'info_langue_principale' => 'Glavni jezik stranice', |
|
| 322 | - 'info_largeur_vignette' => '@largeur_vignette@ × @hauteur_vignette@ piksela', |
|
| 323 | - 'info_les_auteurs_1' => 'od @les_auteurs@', |
|
| 324 | - 'info_logo_format_interdit' => 'Dozvoljeni su samo logotipi formata @formats@.', |
|
| 325 | - 'info_logo_max_poids' => 'Logotip mora biti manji od @maxi@ (ovaj dokument je @actuel@).', |
|
| 326 | - 'info_mail_fournisseur' => '[email protected]', |
|
| 327 | - 'info_message_2' => 'PORUKA', |
|
| 328 | - 'info_message_supprime' => 'PORUKA JE IZBRISANA', |
|
| 329 | - 'info_mise_en_ligne' => 'Datum objavljivanja:', |
|
| 330 | - 'info_modification_parametres_securite' => 'Izmjena parametara sigurnosti', |
|
| 331 | - 'info_mois_courant' => 'Tokom mjeseca:', |
|
| 332 | - 'info_mot_cle_ajoute' => 'Sljedeca kljucna rijec je dodana u', |
|
| 333 | - 'info_multi_herit' => 'Standardni jezik', |
|
| 334 | - 'info_multi_langues_soulignees' => '<u>Podvuceni jezici</u> raspolazu prevodom svih tekstova interfejsa. Ako izaberete jedan od tih jezika, brojni elementi javne stranice (datumi, formulari) ce biti automatski prevedeni. Za nepodvucene jezike, ti ce elementi biti prikazani u glavnom jeziku stranice.', # MODIF |
|
| 335 | - 'info_multilinguisme' => 'Multilingvizam', |
|
| 336 | - 'info_nom_non_utilisateurs_connectes' => 'Vase ime se ne pojavljuje na listi prisutnih korisnika.', |
|
| 337 | - 'info_nom_utilisateurs_connectes' => 'Vase ime se pojavljuje na listi prisutnih korisnika.', |
|
| 338 | - 'info_nombre_en_ligne' => 'Trenutno prisutni:', |
|
| 339 | - 'info_non_resultat' => 'Nema rezultata za "@cherche_mot@"', |
|
| 340 | - 'info_non_utilisation_messagerie' => 'Ne koristite privatni servis poruka ove stranice.', |
|
| 341 | - 'info_nouveau_message' => 'NEMATE NOVIH PORUKA', |
|
| 342 | - 'info_nouveaux_messages' => 'IMATE @total_messages@ NOVIH PORUKA', |
|
| 343 | - 'info_numero_abbreviation' => 'N°', |
|
| 344 | - 'info_obligatoire' => 'Ovaj podatak je obavezan', |
|
| 345 | - 'info_pense_bete' => 'BILJESKA', |
|
| 346 | - 'info_petit_ecran' => 'Mali prikaz', |
|
| 347 | - 'info_pixels' => 'piksela', |
|
| 348 | - 'info_plusieurs_mots_trouves' => 'Pronadjeno je vise kljucnih rijeci za "@cherche_mot@":', |
|
| 349 | - 'info_portfolio_automatique' => 'Automatski portfolio:', |
|
| 350 | - 'info_premier_resultat' => '[@debut_limit@ prvih rezultata od ukupno @total@]', |
|
| 351 | - 'info_premier_resultat_sur' => '[@debut_limit@ prvih rezultata od ukupno @total@]', |
|
| 352 | - 'info_propose_1' => '[@nom_site_spip@] Poslano: @titre@', |
|
| 353 | - 'info_propose_2' => 'Clanak je poslan |
|
| 212 | + // I |
|
| 213 | + 'ical_texte_rss_articles' => 'Backend dokument clanaka ove stranice se nalazi na adresi:', |
|
| 214 | + 'ical_texte_rss_articles2' => 'Svakako mozete dobiti backend dokumente za clanke svih rubrika na stanici:', |
|
| 215 | + 'ical_texte_rss_breves' => 'Postoji dokument koji sadrzi novosti stranice. Mozete dobiti samo novosti jedne rubrike, tako sto ce te izabrati broj sekcije.', |
|
| 216 | + 'icone_a_suivre' => 'À suivre', |
|
| 217 | + 'icone_admin_site' => 'Administracija stranice', |
|
| 218 | + 'icone_agenda' => 'Kalendar', |
|
| 219 | + 'icone_aide_ligne' => 'Pomoc', |
|
| 220 | + 'icone_articles' => 'Clanci', |
|
| 221 | + 'icone_auteurs' => 'Autori', |
|
| 222 | + 'icone_brouteur' => 'Brza navigacija', |
|
| 223 | + 'icone_configuration_site' => 'Podesavanje', |
|
| 224 | + 'icone_configurer_site' => 'Podesavanje vase stranice', |
|
| 225 | + 'icone_creer_nouvel_auteur' => 'Kreiraj novog autora', |
|
| 226 | + 'icone_creer_rubrique' => 'Kreiraj rubriku', |
|
| 227 | + 'icone_creer_sous_rubrique' => 'Kreiraj podrubriku', |
|
| 228 | + 'icone_deconnecter' => 'odjava', |
|
| 229 | + 'icone_discussions' => 'Diskusije', |
|
| 230 | + 'icone_doc_rubrique' => 'Prilozeni dokumenti', |
|
| 231 | + 'icone_ecrire_article' => 'Napisi novi clanak', |
|
| 232 | + 'icone_edition_site' => 'Izmjena', |
|
| 233 | + 'icone_gestion_langues' => 'Menadzer jezika', |
|
| 234 | + 'icone_informations_personnelles' => 'Licne informacije', |
|
| 235 | + 'icone_interface_complet' => 'cjelokupni interfejs', |
|
| 236 | + 'icone_interface_simple' => 'Pojednostavljeni interfejs', |
|
| 237 | + 'icone_maintenance_site' => 'Odrzavanje stranice', |
|
| 238 | + 'icone_messagerie_personnelle' => 'Licni servis poruka', |
|
| 239 | + 'icone_repartition_debut' => 'Prikazi distribuciju od pocetka', |
|
| 240 | + 'icone_rubriques' => 'Rubrike', |
|
| 241 | + 'icone_sauver_site' => 'Backup stranice', |
|
| 242 | + 'icone_site_entier' => 'Cjela stranica', |
|
| 243 | + 'icone_sites_references' => 'Preporucene stranice', |
|
| 244 | + 'icone_statistiques' => 'Statistike stranice', |
|
| 245 | + 'icone_suivi_activite' => 'Prati aktivnost stranice', |
|
| 246 | + 'icone_suivi_actualite' => 'Razvoj stranice', |
|
| 247 | + 'icone_suivi_pettions' => 'Prati/uredi peticija', |
|
| 248 | + 'icone_suivi_revisions' => 'Izmjene clanaka', |
|
| 249 | + 'icone_supprimer_document' => 'Izbrisi ovaj dokument', |
|
| 250 | + 'icone_supprimer_image' => 'Izbrisi ovu fotografiju', |
|
| 251 | + 'icone_tous_articles' => 'Svi vasi clanci', |
|
| 252 | + 'icone_tous_auteur' => 'Svi autori', |
|
| 253 | + 'icone_visiter_site' => 'Posjeti', # MODIF |
|
| 254 | + 'icone_voir_en_ligne' => 'Pogledaj online', |
|
| 255 | + 'img_indisponible' => 'fotografija je nedostupna', |
|
| 256 | + 'info_a_suivre' => 'LAUNCH PAD»', |
|
| 257 | + 'info_acces_interdit' => 'zabranjen pristup', |
|
| 258 | + 'info_acces_refuse' => 'pristup odbijen', |
|
| 259 | + 'info_action' => 'Akcija: @action@', |
|
| 260 | + 'info_administrer_rubriques' => 'Mozete administrirati ovu rubriku i njene podrubrike', |
|
| 261 | + 'info_adresse_non_indiquee' => 'Niste naznacili adresu koju treba testirati!', |
|
| 262 | + 'info_aide' => 'POMOC:', |
|
| 263 | + 'info_ajouter_mot' => 'Dodaj ovu rijec', |
|
| 264 | + 'info_annonce' => 'NAJAVA', |
|
| 265 | + 'info_annonces_generales' => 'Opste najave:', |
|
| 266 | + 'info_article_propose' => 'Clanak je predlozen', |
|
| 267 | + 'info_article_publie' => 'Clanak je objavljen', |
|
| 268 | + 'info_article_redaction' => 'Clanak u toku uredjivanja', |
|
| 269 | + 'info_article_refuse' => 'Clanak je odbijen', |
|
| 270 | + 'info_article_supprime' => 'Clanak je izbrisan', |
|
| 271 | + 'info_articles' => 'Чланци', |
|
| 272 | + 'info_articles_a_valider' => 'Clanci za ovjeriti', |
|
| 273 | + 'info_articles_proposes' => 'Predlozeni clanci', |
|
| 274 | + 'info_auteurs_nombre' => 'autor/i:', |
|
| 275 | + 'info_authentification_ftp' => 'Authentifikacija (FTP-om).', |
|
| 276 | + 'info_breves_2' => 'obavjestenja', |
|
| 277 | + 'info_connexion_refusee' => 'Prijava odbijena', |
|
| 278 | + 'info_contact_developpeur' => 'Kontaktirajte programera.', |
|
| 279 | + 'info_contenance' => 'Ova stranica sadrzi:', |
|
| 280 | + 'info_contribution' => 'Pridonos foruma', # MODIF |
|
| 281 | + 'info_copyright' => '@spip@ je slobodni softver distribucije @lien_gpl@.', |
|
| 282 | + 'info_copyright_doc' => 'Za vise informacija pogledajte <a href="@spipnet@">http://www.spip.net/fr</a>.', # MODIF |
|
| 283 | + 'info_copyright_gpl' => 'pod GPL licencom', |
|
| 284 | + 'info_cours_edition' => 'Vasi clanci u toku uredjivanja', # MODIF |
|
| 285 | + 'info_creer_repertoire' => 'Kreirajte dokument ili direktorij pod imenom:', |
|
| 286 | + 'info_creer_repertoire_2' => 'Unutar podirektorija<b>ecrire/data/</b>, zatim:', |
|
| 287 | + 'info_creer_vignette' => 'automatska kreacija vinjete', |
|
| 288 | + 'info_deplier' => 'Otvori', |
|
| 289 | + 'info_descriptif_nombre' => 'opis/i:', |
|
| 290 | + 'info_description' => 'Opis:', |
|
| 291 | + 'info_description_2' => 'Opis:', |
|
| 292 | + 'info_dimension' => 'Dimenzije:', |
|
| 293 | + 'info_ecire_message_prive' => 'Napisi privatnu poruku', |
|
| 294 | + 'info_email_invalide' => 'Pogresna e-mail adresa.', |
|
| 295 | + 'info_en_cours_validation' => 'Vasi clanci u toku uredjivanja', |
|
| 296 | + 'info_en_ligne' => 'Trenutno online:', |
|
| 297 | + 'info_envoyer_message_prive' => 'Posalji privatnu poruku ovom autoru', |
|
| 298 | + 'info_erreur_requete' => 'Greska sa upitom:', |
|
| 299 | + 'info_erreur_squelette2' => 'Nijedan predlozak <b>@fichier@</b> nije dostupan...', |
|
| 300 | + 'info_erreur_systeme' => 'Sistemska greska (errno @errsys@)', |
|
| 301 | + 'info_fini' => 'Zavrseno je!', |
|
| 302 | + 'info_format_image' => 'Format fotografija koji se moze koristiti za kreiranje vinjeta: @gd_formats@.', |
|
| 303 | + 'info_format_non_defini' => 'neodredjen format', |
|
| 304 | + 'info_grand_ecran' => 'Veliki prikaz', |
|
| 305 | + 'info_image_aide' => 'POMOC', |
|
| 306 | + 'info_image_process_titre' => 'Metoda pravljenja vinjeta', |
|
| 307 | + 'info_impossible_lire_page' => '<b>Greska!</b> Nemoguce procitati stranicu <tt><html>@test_proxy@</html></tt> iako proxy <tt>', # MODIF |
|
| 308 | + 'info_installation_systeme_publication' => 'Instalacija sistema objavljivanja...', |
|
| 309 | + 'info_installer_documents' => 'Mozete automatski instalirati sve dokumente iz foldera <i>upload</i>.', |
|
| 310 | + 'info_installer_ftp' => 'Kao administrator mozete putem FTP-a instalirati dokumente iz foldera @upload@ da bi ste ih kasnije izabrali direktno sa ove lokacije.', |
|
| 311 | + 'info_installer_images' => 'Mozete instalirati fotografije formata JPEG, GIF i PNG.', |
|
| 312 | + 'info_installer_images_dossier' => 'Instalirajte fotografije u folder @upload@ da bi ste ih mogli izabrati sa ov lokacije.', |
|
| 313 | + 'info_interface_complete' => 'Cjelokupni interfejs', |
|
| 314 | + 'info_interface_simple' => 'Pojednostavljeni interfejs', |
|
| 315 | + 'info_joindre_document_article' => 'Ovom clanku mozete pridruziti dokumente tipa', |
|
| 316 | + 'info_joindre_document_rubrique' => 'Ovoj rubrici mozete dodati dokumente tipa', |
|
| 317 | + 'info_joindre_documents_article' => 'Vasem clanku mozete dodati dokumente tipa:', |
|
| 318 | + 'info_l_article' => 'Чланак', |
|
| 319 | + 'info_la_breve' => 'obavjestenje', |
|
| 320 | + 'info_la_rubrique' => 'rubrika', |
|
| 321 | + 'info_langue_principale' => 'Glavni jezik stranice', |
|
| 322 | + 'info_largeur_vignette' => '@largeur_vignette@ × @hauteur_vignette@ piksela', |
|
| 323 | + 'info_les_auteurs_1' => 'od @les_auteurs@', |
|
| 324 | + 'info_logo_format_interdit' => 'Dozvoljeni su samo logotipi formata @formats@.', |
|
| 325 | + 'info_logo_max_poids' => 'Logotip mora biti manji od @maxi@ (ovaj dokument je @actuel@).', |
|
| 326 | + 'info_mail_fournisseur' => '[email protected]', |
|
| 327 | + 'info_message_2' => 'PORUKA', |
|
| 328 | + 'info_message_supprime' => 'PORUKA JE IZBRISANA', |
|
| 329 | + 'info_mise_en_ligne' => 'Datum objavljivanja:', |
|
| 330 | + 'info_modification_parametres_securite' => 'Izmjena parametara sigurnosti', |
|
| 331 | + 'info_mois_courant' => 'Tokom mjeseca:', |
|
| 332 | + 'info_mot_cle_ajoute' => 'Sljedeca kljucna rijec je dodana u', |
|
| 333 | + 'info_multi_herit' => 'Standardni jezik', |
|
| 334 | + 'info_multi_langues_soulignees' => '<u>Podvuceni jezici</u> raspolazu prevodom svih tekstova interfejsa. Ako izaberete jedan od tih jezika, brojni elementi javne stranice (datumi, formulari) ce biti automatski prevedeni. Za nepodvucene jezike, ti ce elementi biti prikazani u glavnom jeziku stranice.', # MODIF |
|
| 335 | + 'info_multilinguisme' => 'Multilingvizam', |
|
| 336 | + 'info_nom_non_utilisateurs_connectes' => 'Vase ime se ne pojavljuje na listi prisutnih korisnika.', |
|
| 337 | + 'info_nom_utilisateurs_connectes' => 'Vase ime se pojavljuje na listi prisutnih korisnika.', |
|
| 338 | + 'info_nombre_en_ligne' => 'Trenutno prisutni:', |
|
| 339 | + 'info_non_resultat' => 'Nema rezultata za "@cherche_mot@"', |
|
| 340 | + 'info_non_utilisation_messagerie' => 'Ne koristite privatni servis poruka ove stranice.', |
|
| 341 | + 'info_nouveau_message' => 'NEMATE NOVIH PORUKA', |
|
| 342 | + 'info_nouveaux_messages' => 'IMATE @total_messages@ NOVIH PORUKA', |
|
| 343 | + 'info_numero_abbreviation' => 'N°', |
|
| 344 | + 'info_obligatoire' => 'Ovaj podatak je obavezan', |
|
| 345 | + 'info_pense_bete' => 'BILJESKA', |
|
| 346 | + 'info_petit_ecran' => 'Mali prikaz', |
|
| 347 | + 'info_pixels' => 'piksela', |
|
| 348 | + 'info_plusieurs_mots_trouves' => 'Pronadjeno je vise kljucnih rijeci za "@cherche_mot@":', |
|
| 349 | + 'info_portfolio_automatique' => 'Automatski portfolio:', |
|
| 350 | + 'info_premier_resultat' => '[@debut_limit@ prvih rezultata od ukupno @total@]', |
|
| 351 | + 'info_premier_resultat_sur' => '[@debut_limit@ prvih rezultata od ukupno @total@]', |
|
| 352 | + 'info_propose_1' => '[@nom_site_spip@] Poslano: @titre@', |
|
| 353 | + 'info_propose_2' => 'Clanak je poslan |
|
| 354 | 354 | ---------------', |
| 355 | - 'info_propose_3' => 'Clanak "@titre@" je predlozen za objavljivanje.', |
|
| 356 | - 'info_propose_4' => 'Mozete ga konsultovati i dati vase misljenje', |
|
| 357 | - 'info_propose_5' => 'u forumu koji mu je pridruzen. Dostupan je na adresi:', |
|
| 358 | - 'info_publie_01' => 'Clanak "@titre@" je ovjerio/la @connect_nom@.', |
|
| 359 | - 'info_publie_1' => '[@nom_site_spip@] OBJAVLJEN: @titre@', |
|
| 360 | - 'info_publie_2' => 'Clanak objavljen |
|
| 355 | + 'info_propose_3' => 'Clanak "@titre@" je predlozen za objavljivanje.', |
|
| 356 | + 'info_propose_4' => 'Mozete ga konsultovati i dati vase misljenje', |
|
| 357 | + 'info_propose_5' => 'u forumu koji mu je pridruzen. Dostupan je na adresi:', |
|
| 358 | + 'info_publie_01' => 'Clanak "@titre@" je ovjerio/la @connect_nom@.', |
|
| 359 | + 'info_publie_1' => '[@nom_site_spip@] OBJAVLJEN: @titre@', |
|
| 360 | + 'info_publie_2' => 'Clanak objavljen |
|
| 361 | 361 | --------------', |
| 362 | - 'info_rechercher' => 'Pretraga', |
|
| 363 | - 'info_rechercher_02' => 'Pretraga:', |
|
| 364 | - 'info_remplacer_vignette' => 'Automatski zamijeni vinjetu sa pesonalizovanim logotipom:', |
|
| 365 | - 'info_sans_titre_2' => 'bez naslova', |
|
| 366 | - 'info_selectionner_fichier' => 'Mozete izabrati dokument iz foldera <i>upload</i>', |
|
| 367 | - 'info_selectionner_fichier_2' => 'Izaberite dokument:', |
|
| 368 | - 'info_supprimer_vignette' => 'izbrisi vinjetu', |
|
| 369 | - 'info_symbole_bleu' => 'Simbol <b>bleu</b> ukazuje na <b>pense-bête</b>: to jeste poruku za vasu licnu upotrebu.', # MODIF |
|
| 370 | - 'info_symbole_jaune' => 'Simbol <b>jaune</b> ukazuje na <b>najavu za sve urednike: Svi urednici ga mogu vidjeti i izmijeniti.', # MODIF |
|
| 371 | - 'info_symbole_vert' => 'Simbol <b>vert</b> ukazuje na <b>poruke razmijene sa drugim korisnicima</b> stranicama.', # MODIF |
|
| 372 | - 'info_telecharger_nouveau_logo' => 'Upload novi logotip:', |
|
| 373 | - 'info_telecharger_ordinateur' => 'Upload sa vaseg kompjutera:', |
|
| 374 | - 'info_tous_resultats_enregistres' => '[registrovani su svi rezultati]', |
|
| 375 | - 'info_tout_afficher' => 'Prikazi sve', |
|
| 376 | - 'info_travaux_texte' => 'Ova stranica jos nije podesena. Vratite se kasnije...', |
|
| 377 | - 'info_travaux_titre' => 'Stranica pod konstrukcijom', |
|
| 378 | - 'info_trop_resultat' => 'Previse rezultata za "@cherche_mot@"; predefinisite opcije pretrazivnja.', |
|
| 379 | - 'info_utilisation_messagerie_interne' => 'Koristite interni servis poruka ove stranice.', |
|
| 380 | - 'info_valider_lien' => 'ovjeri ovaj link', |
|
| 381 | - 'info_verifier_image' => ', provjerite da li je transfer fotografija uspio.', |
|
| 382 | - 'info_vignette_defaut' => 'Standardna vinjeta', |
|
| 383 | - 'info_vignette_personnalisee' => 'Personalizovana vinjeta', |
|
| 384 | - 'info_visite' => 'posjeta:', |
|
| 385 | - 'info_vos_rendez_vous' => 'Vasi sastanci koji slijede', |
|
| 386 | - 'infos_vos_pense_bete' => 'Vase biljeske', # MODIF |
|
| 362 | + 'info_rechercher' => 'Pretraga', |
|
| 363 | + 'info_rechercher_02' => 'Pretraga:', |
|
| 364 | + 'info_remplacer_vignette' => 'Automatski zamijeni vinjetu sa pesonalizovanim logotipom:', |
|
| 365 | + 'info_sans_titre_2' => 'bez naslova', |
|
| 366 | + 'info_selectionner_fichier' => 'Mozete izabrati dokument iz foldera <i>upload</i>', |
|
| 367 | + 'info_selectionner_fichier_2' => 'Izaberite dokument:', |
|
| 368 | + 'info_supprimer_vignette' => 'izbrisi vinjetu', |
|
| 369 | + 'info_symbole_bleu' => 'Simbol <b>bleu</b> ukazuje na <b>pense-bête</b>: to jeste poruku za vasu licnu upotrebu.', # MODIF |
|
| 370 | + 'info_symbole_jaune' => 'Simbol <b>jaune</b> ukazuje na <b>najavu za sve urednike: Svi urednici ga mogu vidjeti i izmijeniti.', # MODIF |
|
| 371 | + 'info_symbole_vert' => 'Simbol <b>vert</b> ukazuje na <b>poruke razmijene sa drugim korisnicima</b> stranicama.', # MODIF |
|
| 372 | + 'info_telecharger_nouveau_logo' => 'Upload novi logotip:', |
|
| 373 | + 'info_telecharger_ordinateur' => 'Upload sa vaseg kompjutera:', |
|
| 374 | + 'info_tous_resultats_enregistres' => '[registrovani su svi rezultati]', |
|
| 375 | + 'info_tout_afficher' => 'Prikazi sve', |
|
| 376 | + 'info_travaux_texte' => 'Ova stranica jos nije podesena. Vratite se kasnije...', |
|
| 377 | + 'info_travaux_titre' => 'Stranica pod konstrukcijom', |
|
| 378 | + 'info_trop_resultat' => 'Previse rezultata za "@cherche_mot@"; predefinisite opcije pretrazivnja.', |
|
| 379 | + 'info_utilisation_messagerie_interne' => 'Koristite interni servis poruka ove stranice.', |
|
| 380 | + 'info_valider_lien' => 'ovjeri ovaj link', |
|
| 381 | + 'info_verifier_image' => ', provjerite da li je transfer fotografija uspio.', |
|
| 382 | + 'info_vignette_defaut' => 'Standardna vinjeta', |
|
| 383 | + 'info_vignette_personnalisee' => 'Personalizovana vinjeta', |
|
| 384 | + 'info_visite' => 'posjeta:', |
|
| 385 | + 'info_vos_rendez_vous' => 'Vasi sastanci koji slijede', |
|
| 386 | + 'infos_vos_pense_bete' => 'Vase biljeske', # MODIF |
|
| 387 | 387 | |
| 388 | - // L |
|
| 389 | - 'lien_afficher_icones_seuls' => 'Prikazi samo ikone', |
|
| 390 | - 'lien_afficher_texte_icones' => 'Prikazi ikone i tekst', |
|
| 391 | - 'lien_afficher_texte_seul' => 'Prikazi samo tekst', |
|
| 392 | - 'lien_liberer' => 'izdanje', |
|
| 393 | - 'lien_liberer_tous' => 'izdaj ove clanke', # MODIF |
|
| 394 | - 'lien_nouvea_pense_bete' => 'NOVA BILJESKA', |
|
| 395 | - 'lien_nouveau_message' => 'NOVA PORUKA', |
|
| 396 | - 'lien_nouvelle_annonce' => 'NOVA NAJAVA', |
|
| 397 | - 'lien_petitions' => 'PETICIJA', |
|
| 398 | - 'lien_popularite' => 'popularno: @popularite@%', |
|
| 399 | - 'lien_racine_site' => 'KORIJEN STRANICE', |
|
| 400 | - 'lien_reessayer' => 'pokusaj ponovo', |
|
| 401 | - 'lien_repondre_message' => 'Odgovori na ovu poruku', |
|
| 402 | - 'lien_supprimer' => 'izbrisi', |
|
| 403 | - 'lien_tout_afficher' => 'Prikazi sve', |
|
| 404 | - 'lien_visite_site' => 'posjeti ovu stranicu', |
|
| 405 | - 'lien_visites' => '@visites@ посете', |
|
| 406 | - 'lien_voir_auteur' => 'Pgledaj ovog autora', |
|
| 407 | - 'login_acces_prive' => 'pristup privatnom prostoru', |
|
| 408 | - 'login_autre_identifiant' => 'konektuj se drugim identifikatorom', |
|
| 409 | - 'login_cookie_accepte' => 'Podesite vas navigator da prihvata cookie (bar za ovu stranicu).', |
|
| 410 | - 'login_cookie_oblige' => 'Da bi ste se sigurno prijavili na ovu stranicu, morate prihvatiti cookie.', |
|
| 411 | - 'login_deconnexion_ok' => 'Odjavljeni ste.', |
|
| 412 | - 'login_erreur_pass' => 'Greska sa lozinkom.', |
|
| 413 | - 'login_espace_prive' => 'privatni prostor', |
|
| 414 | - 'login_identifiant_inconnu' => 'Identifikator « @login@ » je nepoznat.', |
|
| 415 | - 'login_login' => 'Login:', |
|
| 416 | - 'login_login2' => 'Login (identifikator za prijavu na stranicu) :', # MODIF |
|
| 417 | - 'login_login_pass_incorrect' => '(Login ili lozinka nije ispravna.)', |
|
| 418 | - 'login_motpasseoublie' => 'zaboravili ste lozinku?', |
|
| 419 | - 'login_non_securise' => 'Oprez, ovaj formular nije siguran. |
|
| 388 | + // L |
|
| 389 | + 'lien_afficher_icones_seuls' => 'Prikazi samo ikone', |
|
| 390 | + 'lien_afficher_texte_icones' => 'Prikazi ikone i tekst', |
|
| 391 | + 'lien_afficher_texte_seul' => 'Prikazi samo tekst', |
|
| 392 | + 'lien_liberer' => 'izdanje', |
|
| 393 | + 'lien_liberer_tous' => 'izdaj ove clanke', # MODIF |
|
| 394 | + 'lien_nouvea_pense_bete' => 'NOVA BILJESKA', |
|
| 395 | + 'lien_nouveau_message' => 'NOVA PORUKA', |
|
| 396 | + 'lien_nouvelle_annonce' => 'NOVA NAJAVA', |
|
| 397 | + 'lien_petitions' => 'PETICIJA', |
|
| 398 | + 'lien_popularite' => 'popularno: @popularite@%', |
|
| 399 | + 'lien_racine_site' => 'KORIJEN STRANICE', |
|
| 400 | + 'lien_reessayer' => 'pokusaj ponovo', |
|
| 401 | + 'lien_repondre_message' => 'Odgovori na ovu poruku', |
|
| 402 | + 'lien_supprimer' => 'izbrisi', |
|
| 403 | + 'lien_tout_afficher' => 'Prikazi sve', |
|
| 404 | + 'lien_visite_site' => 'posjeti ovu stranicu', |
|
| 405 | + 'lien_visites' => '@visites@ посете', |
|
| 406 | + 'lien_voir_auteur' => 'Pgledaj ovog autora', |
|
| 407 | + 'login_acces_prive' => 'pristup privatnom prostoru', |
|
| 408 | + 'login_autre_identifiant' => 'konektuj se drugim identifikatorom', |
|
| 409 | + 'login_cookie_accepte' => 'Podesite vas navigator da prihvata cookie (bar za ovu stranicu).', |
|
| 410 | + 'login_cookie_oblige' => 'Da bi ste se sigurno prijavili na ovu stranicu, morate prihvatiti cookie.', |
|
| 411 | + 'login_deconnexion_ok' => 'Odjavljeni ste.', |
|
| 412 | + 'login_erreur_pass' => 'Greska sa lozinkom.', |
|
| 413 | + 'login_espace_prive' => 'privatni prostor', |
|
| 414 | + 'login_identifiant_inconnu' => 'Identifikator « @login@ » je nepoznat.', |
|
| 415 | + 'login_login' => 'Login:', |
|
| 416 | + 'login_login2' => 'Login (identifikator za prijavu na stranicu) :', # MODIF |
|
| 417 | + 'login_login_pass_incorrect' => '(Login ili lozinka nije ispravna.)', |
|
| 418 | + 'login_motpasseoublie' => 'zaboravili ste lozinku?', |
|
| 419 | + 'login_non_securise' => 'Oprez, ovaj formular nije siguran. |
|
| 420 | 420 | Ako ne zelite da vasa lozinka bude dostupna na mrezi, aktivirajte Javascript u vasem navigatoru i', |
| 421 | - 'login_nouvelle_tentative' => 'Novi pokusaj', |
|
| 422 | - 'login_par_ici' => 'Registrovani ste... ovim putem...', |
|
| 423 | - 'login_pass2' => 'Lozinka:', |
|
| 424 | - 'login_preferez_refuser' => '<b>Ako zelite odbiti cookie</b>, na raspolaganju vam je drugi nacin prijavljivanja (manje siguran):', |
|
| 425 | - 'login_recharger' => 'ponovo ucitaj ovu stranicu', |
|
| 426 | - 'login_rester_identifie' => 'Ostanite identifikovani nekoliko dana', # MODIF |
|
| 427 | - 'login_retour_public' => 'Nazad na javnu stranicu', |
|
| 428 | - 'login_retour_site' => 'Nazad na javnu stranicu', |
|
| 429 | - 'login_retoursitepublic' => 'nazad na javnu stranicu', |
|
| 430 | - 'login_sinscrire' => 'registruj se', |
|
| 431 | - 'login_test_navigateur' => 'test navigatora/ponovna konekcija', |
|
| 432 | - 'login_verifiez_navigateur' => '(Svakako se uvjerite da vas navigator nije zapamtio vasu lozinku...)', |
|
| 421 | + 'login_nouvelle_tentative' => 'Novi pokusaj', |
|
| 422 | + 'login_par_ici' => 'Registrovani ste... ovim putem...', |
|
| 423 | + 'login_pass2' => 'Lozinka:', |
|
| 424 | + 'login_preferez_refuser' => '<b>Ako zelite odbiti cookie</b>, na raspolaganju vam je drugi nacin prijavljivanja (manje siguran):', |
|
| 425 | + 'login_recharger' => 'ponovo ucitaj ovu stranicu', |
|
| 426 | + 'login_rester_identifie' => 'Ostanite identifikovani nekoliko dana', # MODIF |
|
| 427 | + 'login_retour_public' => 'Nazad na javnu stranicu', |
|
| 428 | + 'login_retour_site' => 'Nazad na javnu stranicu', |
|
| 429 | + 'login_retoursitepublic' => 'nazad na javnu stranicu', |
|
| 430 | + 'login_sinscrire' => 'registruj se', |
|
| 431 | + 'login_test_navigateur' => 'test navigatora/ponovna konekcija', |
|
| 432 | + 'login_verifiez_navigateur' => '(Svakako se uvjerite da vas navigator nije zapamtio vasu lozinku...)', |
|
| 433 | 433 | |
| 434 | - // M |
|
| 435 | - 'module_fichiers_langues' => 'Jezicni dokumenti', |
|
| 434 | + // M |
|
| 435 | + 'module_fichiers_langues' => 'Jezicni dokumenti', |
|
| 436 | 436 | |
| 437 | - // N |
|
| 438 | - 'navigateur_pas_redirige' => 'Ako vas navigator nije preusmjeren, kliknite ovdje da biste nastavili.', |
|
| 437 | + // N |
|
| 438 | + 'navigateur_pas_redirige' => 'Ako vas navigator nije preusmjeren, kliknite ovdje da biste nastavili.', |
|
| 439 | 439 | |
| 440 | - // O |
|
| 441 | - 'onglet_affacer_base' => 'Izbrisi bazu', |
|
| 442 | - 'onglet_auteur' => 'Autor', |
|
| 443 | - 'onglet_contenu_site' => 'Sadrzaj stranice', |
|
| 444 | - 'onglet_evolution_visite_mod' => 'Nivo posjeta', |
|
| 445 | - 'onglet_fonctions_avances' => 'Napredne funkcije', |
|
| 446 | - 'onglet_informations_personnelles' => 'Licne informacije', |
|
| 447 | - 'onglet_interactivite' => 'Interaktivnost', |
|
| 448 | - 'onglet_messagerie' => 'Servis poruka', |
|
| 449 | - 'onglet_repartition_rubrique' => 'Distribucija po rubrikama', |
|
| 450 | - 'onglet_save_restaur_base' => 'Backup/obnova baze podataka', |
|
| 451 | - 'onglet_vider_cache' => 'Isprazni kes', |
|
| 440 | + // O |
|
| 441 | + 'onglet_affacer_base' => 'Izbrisi bazu', |
|
| 442 | + 'onglet_auteur' => 'Autor', |
|
| 443 | + 'onglet_contenu_site' => 'Sadrzaj stranice', |
|
| 444 | + 'onglet_evolution_visite_mod' => 'Nivo posjeta', |
|
| 445 | + 'onglet_fonctions_avances' => 'Napredne funkcije', |
|
| 446 | + 'onglet_informations_personnelles' => 'Licne informacije', |
|
| 447 | + 'onglet_interactivite' => 'Interaktivnost', |
|
| 448 | + 'onglet_messagerie' => 'Servis poruka', |
|
| 449 | + 'onglet_repartition_rubrique' => 'Distribucija po rubrikama', |
|
| 450 | + 'onglet_save_restaur_base' => 'Backup/obnova baze podataka', |
|
| 451 | + 'onglet_vider_cache' => 'Isprazni kes', |
|
| 452 | 452 | |
| 453 | - // P |
|
| 454 | - 'pass_choix_pass' => 'Izaberite vasu novu lozinku:', |
|
| 455 | - 'pass_erreur' => 'Greska', |
|
| 456 | - 'pass_erreur_acces_refuse' => '<b>Greska:</b> vise nemate pristup ovoj stranici.', |
|
| 457 | - 'pass_erreur_code_inconnu' => '<b>Greska:</b> ovaj kod ne odgovara nijednom posjetiocu koji ima pristup ovoj stranici.', |
|
| 458 | - 'pass_erreur_non_enregistre' => '<b>Greska:</b> adresa <tt>@email_oubli@</tt> nije registgrovana na ovoj stranici.', |
|
| 459 | - 'pass_erreur_non_valide' => '<b>Greska:</b> ovaj e-mail <tt>@email_oubli@</tt> nije vazeci!', |
|
| 460 | - 'pass_erreur_probleme_technique' => '<b>Greska:</b> e-mail nije poslan, radi tehnickog problema.', |
|
| 461 | - 'pass_espace_prive_bla' => 'Privatni prostor ove stranice je otvoren za posjetioce nakon registrovanja. Nakon registracije, mozete konsultovati clanke u toku uredjivanja, |
|
| 453 | + // P |
|
| 454 | + 'pass_choix_pass' => 'Izaberite vasu novu lozinku:', |
|
| 455 | + 'pass_erreur' => 'Greska', |
|
| 456 | + 'pass_erreur_acces_refuse' => '<b>Greska:</b> vise nemate pristup ovoj stranici.', |
|
| 457 | + 'pass_erreur_code_inconnu' => '<b>Greska:</b> ovaj kod ne odgovara nijednom posjetiocu koji ima pristup ovoj stranici.', |
|
| 458 | + 'pass_erreur_non_enregistre' => '<b>Greska:</b> adresa <tt>@email_oubli@</tt> nije registgrovana na ovoj stranici.', |
|
| 459 | + 'pass_erreur_non_valide' => '<b>Greska:</b> ovaj e-mail <tt>@email_oubli@</tt> nije vazeci!', |
|
| 460 | + 'pass_erreur_probleme_technique' => '<b>Greska:</b> e-mail nije poslan, radi tehnickog problema.', |
|
| 461 | + 'pass_espace_prive_bla' => 'Privatni prostor ove stranice je otvoren za posjetioce nakon registrovanja. Nakon registracije, mozete konsultovati clanke u toku uredjivanja, |
|
| 462 | 462 | predlagati clanke i ucestvovati u svim forumima.', |
| 463 | - 'pass_forum_bla' => 'Trazili ste ucesce u forumu koji je rezervisan za registrovane posjetioce.', |
|
| 464 | - 'pass_indiquez_cidessous' => 'Ispod naznacite e-mail adresu sa kojom ste trenutno registrovani. Primicete e-mail sa putem koji trebate slijediti da biste ponovo dobili pristup.', |
|
| 465 | - 'pass_mail_passcookie' => '(ovo je automatska poruka) |
|
| 463 | + 'pass_forum_bla' => 'Trazili ste ucesce u forumu koji je rezervisan za registrovane posjetioce.', |
|
| 464 | + 'pass_indiquez_cidessous' => 'Ispod naznacite e-mail adresu sa kojom ste trenutno registrovani. Primicete e-mail sa putem koji trebate slijediti da biste ponovo dobili pristup.', |
|
| 465 | + 'pass_mail_passcookie' => '(ovo je automatska poruka) |
|
| 466 | 466 | Da biste ponovo dobili pristup |
| 467 | 467 | @nom_site_spip@ (@adresse_site@) |
| 468 | 468 | |
@@ -473,94 +473,94 @@ discard block |
||
| 473 | 473 | Tamo mozete unijeti novu lozinku i ponovo se prijaviti na stranicu. |
| 474 | 474 | |
| 475 | 475 | ', |
| 476 | - 'pass_mot_oublie' => 'Zaboravili ste lozinku', |
|
| 477 | - 'pass_nouveau_enregistre' => 'Vasa nova lozinka je registrovana.', |
|
| 478 | - 'pass_nouveau_pass' => 'Nova lozinka', |
|
| 479 | - 'pass_ok' => 'OK', |
|
| 480 | - 'pass_oubli_mot' => 'Zaboravljena lozinka', |
|
| 481 | - 'pass_quitter_fenetre' => 'Napusti ovaj prozor', |
|
| 482 | - 'pass_rappel_login' => 'Podsjetnik: vas identifikator (login) je « @login@ ».', |
|
| 483 | - 'pass_recevoir_mail' => 'Primicete e-mai sa uputstvom za pronalazenje vaseg pristupa.', # MODIF |
|
| 484 | - 'pass_retour_public' => 'Nazad na javnu stranicu', |
|
| 485 | - 'pass_rien_a_faire_ici' => 'Ovdje nema nista za raditi.', |
|
| 486 | - 'pass_vousinscrire' => 'Registrujte se na srtranicu se na stranicu', |
|
| 487 | - 'precedent' => 'Nazad', |
|
| 488 | - 'previsualisation' => 'Pegled', |
|
| 489 | - 'previsualiser' => 'Pokazi pregled', |
|
| 476 | + 'pass_mot_oublie' => 'Zaboravili ste lozinku', |
|
| 477 | + 'pass_nouveau_enregistre' => 'Vasa nova lozinka je registrovana.', |
|
| 478 | + 'pass_nouveau_pass' => 'Nova lozinka', |
|
| 479 | + 'pass_ok' => 'OK', |
|
| 480 | + 'pass_oubli_mot' => 'Zaboravljena lozinka', |
|
| 481 | + 'pass_quitter_fenetre' => 'Napusti ovaj prozor', |
|
| 482 | + 'pass_rappel_login' => 'Podsjetnik: vas identifikator (login) je « @login@ ».', |
|
| 483 | + 'pass_recevoir_mail' => 'Primicete e-mai sa uputstvom za pronalazenje vaseg pristupa.', # MODIF |
|
| 484 | + 'pass_retour_public' => 'Nazad na javnu stranicu', |
|
| 485 | + 'pass_rien_a_faire_ici' => 'Ovdje nema nista za raditi.', |
|
| 486 | + 'pass_vousinscrire' => 'Registrujte se na srtranicu se na stranicu', |
|
| 487 | + 'precedent' => 'Nazad', |
|
| 488 | + 'previsualisation' => 'Pegled', |
|
| 489 | + 'previsualiser' => 'Pokazi pregled', |
|
| 490 | 490 | |
| 491 | - // S |
|
| 492 | - 'squelette' => 'predlozak', |
|
| 493 | - 'squelette_inclus_ligne' => 'ukjucen predlozak, linija', |
|
| 494 | - 'squelette_ligne' => 'predlozak linija', |
|
| 495 | - 'stats_visites_et_popularite' => '@visites@ posjete; popularno: @popularite@', |
|
| 496 | - 'suivant' => 'Naprijed', |
|
| 491 | + // S |
|
| 492 | + 'squelette' => 'predlozak', |
|
| 493 | + 'squelette_inclus_ligne' => 'ukjucen predlozak, linija', |
|
| 494 | + 'squelette_ligne' => 'predlozak linija', |
|
| 495 | + 'stats_visites_et_popularite' => '@visites@ posjete; popularno: @popularite@', |
|
| 496 | + 'suivant' => 'Naprijed', |
|
| 497 | 497 | |
| 498 | - // T |
|
| 499 | - 'taille_ko' => '@taille@ kb', |
|
| 500 | - 'taille_mo' => '@taille@ Mb', |
|
| 501 | - 'taille_octets' => '@taille@ bit', |
|
| 502 | - 'texte_actualite_site_1' => 'Kada se naviknete na interfejs, kliknite na «', |
|
| 503 | - 'texte_actualite_site_2' => 'cjelokupni interfejs', |
|
| 504 | - 'texte_actualite_site_3' => '» za otveranje vise mogucnosti.', |
|
| 505 | - 'texte_creation_automatique_vignette' => 'Aktivirano je automatsko kreiranje vinjeta na ovoj stranici. Ako putem ovog formulara instalirate fotografije formata @gd_formats@, one ce biti popracene vinjetom maksimalne velicine @taille_preview@piksela.', |
|
| 506 | - 'texte_documents_associes' => 'Sljedeci dokumenti su povezani sa clankom,ali nisu direktno ukljuceni. Na osnovu izgleda javne stranice, mogu biti prikazani kao pridruzeni dokumenti', |
|
| 507 | - 'texte_erreur_mise_niveau_base' => 'Greska u bazi podataka tokom nadogradnje. |
|
| 498 | + // T |
|
| 499 | + 'taille_ko' => '@taille@ kb', |
|
| 500 | + 'taille_mo' => '@taille@ Mb', |
|
| 501 | + 'taille_octets' => '@taille@ bit', |
|
| 502 | + 'texte_actualite_site_1' => 'Kada se naviknete na interfejs, kliknite na «', |
|
| 503 | + 'texte_actualite_site_2' => 'cjelokupni interfejs', |
|
| 504 | + 'texte_actualite_site_3' => '» za otveranje vise mogucnosti.', |
|
| 505 | + 'texte_creation_automatique_vignette' => 'Aktivirano je automatsko kreiranje vinjeta na ovoj stranici. Ako putem ovog formulara instalirate fotografije formata @gd_formats@, one ce biti popracene vinjetom maksimalne velicine @taille_preview@piksela.', |
|
| 506 | + 'texte_documents_associes' => 'Sljedeci dokumenti su povezani sa clankom,ali nisu direktno ukljuceni. Na osnovu izgleda javne stranice, mogu biti prikazani kao pridruzeni dokumenti', |
|
| 507 | + 'texte_erreur_mise_niveau_base' => 'Greska u bazi podataka tokom nadogradnje. |
|
| 508 | 508 | Fotografija <b>@fichier@</b> nije predjena (clanak @id_article@). |
| 509 | 509 | Obratite paznu na ovu referencu, ponovo pokusajte nadogradnju i na kraju provjerite da li se fotografije uvijek pojavljuju u clancima.', # MODIF |
| 510 | - 'texte_inc_auth_1' => 'Identifikovani ste pod loginom <b>@auth_login@</b>, ali on vise ne postoji u bazi. Pokusajte se ponovo', # MODIF |
|
| 511 | - 'texte_inc_auth_2' => 'prijaviti', |
|
| 512 | - 'texte_inc_auth_3' => ', nakon sto ste iskljucili, a zatim ponovo ukljucili vas navigator.', |
|
| 513 | - 'texte_inc_config' => 'Dole unesene modifikacije znatno uticu na funkcionisanje vase stranice. Preporucuje se da ne intervenisete ako niste upoznati sa SPIP sistemom. <br /><br /><b>Generalno se preporucuje intervencija webmastera ove stranice.</b>', # MODIF |
|
| 514 | - 'texte_inc_meta_1' => 'Sistem je naisao na gresku pri pokusaju da pise dokument <code>ecrire/data/meta_cache.php3</code>. Kao administrator stranice,', |
|
| 515 | - 'texte_inc_meta_2' => 'mozete provjeriti dozvolu pisanja', |
|
| 516 | - 'texte_inc_meta_3' => 'u direktorij <code>ecrire/data/</code>.', |
|
| 517 | - 'texte_statut_en_cours_redaction' => 'U toku uredjivanja', |
|
| 518 | - 'texte_statut_poubelle' => 'u korpi za smece', |
|
| 519 | - 'texte_statut_propose_evaluation' => 'predlozeno za izglasavanje', |
|
| 520 | - 'texte_statut_publie' => 'objavljeno', |
|
| 521 | - 'texte_statut_refuse' => 'odbijeno', |
|
| 522 | - 'titre_ajouter_mot_cle' => 'DODATI KLJUCNU RIJEC:', |
|
| 523 | - 'titre_cadre_raccourcis' => 'PRECICE:', |
|
| 524 | - 'titre_changer_couleur_interface' => 'Promijeni boju interfejsa', |
|
| 525 | - 'titre_image_admin_article' => 'Mozete administrirati ovaj clanak', |
|
| 526 | - 'titre_image_administrateur' => 'Administrator', |
|
| 527 | - 'titre_image_aide' => 'Pomoc sa ovim elementom', |
|
| 528 | - 'titre_image_auteur_supprime' => 'Autor izbrisan', |
|
| 529 | - 'titre_image_redacteur' => 'Urednik bez pristupa', |
|
| 530 | - 'titre_image_redacteur_02' => 'Urednik', |
|
| 531 | - 'titre_image_visiteur' => 'Posjetioc', |
|
| 532 | - 'titre_joindre_document' => 'PRIDRUZI DOKUMENT', |
|
| 533 | - 'titre_mots_cles' => 'KLJUCNE RIJECI', |
|
| 534 | - 'titre_probleme_technique' => 'Upozorenje: tehnicki problem (SQL server) sprijecava pristup ovom dijelu stranice. Hvala na razumijevanju.', # MODIF |
|
| 535 | - 'titre_publier_document' => 'OBJAVI DOKUMENT U OVOJ RUBRICI', |
|
| 536 | - 'titre_statistiques' => 'Statistike stranice', |
|
| 537 | - 'titre_titre_document' => 'Naslov dokumenta:', |
|
| 538 | - 'trad_reference' => '(preporuceni clanak)', # MODIF |
|
| 510 | + 'texte_inc_auth_1' => 'Identifikovani ste pod loginom <b>@auth_login@</b>, ali on vise ne postoji u bazi. Pokusajte se ponovo', # MODIF |
|
| 511 | + 'texte_inc_auth_2' => 'prijaviti', |
|
| 512 | + 'texte_inc_auth_3' => ', nakon sto ste iskljucili, a zatim ponovo ukljucili vas navigator.', |
|
| 513 | + 'texte_inc_config' => 'Dole unesene modifikacije znatno uticu na funkcionisanje vase stranice. Preporucuje se da ne intervenisete ako niste upoznati sa SPIP sistemom. <br /><br /><b>Generalno se preporucuje intervencija webmastera ove stranice.</b>', # MODIF |
|
| 514 | + 'texte_inc_meta_1' => 'Sistem je naisao na gresku pri pokusaju da pise dokument <code>ecrire/data/meta_cache.php3</code>. Kao administrator stranice,', |
|
| 515 | + 'texte_inc_meta_2' => 'mozete provjeriti dozvolu pisanja', |
|
| 516 | + 'texte_inc_meta_3' => 'u direktorij <code>ecrire/data/</code>.', |
|
| 517 | + 'texte_statut_en_cours_redaction' => 'U toku uredjivanja', |
|
| 518 | + 'texte_statut_poubelle' => 'u korpi za smece', |
|
| 519 | + 'texte_statut_propose_evaluation' => 'predlozeno za izglasavanje', |
|
| 520 | + 'texte_statut_publie' => 'objavljeno', |
|
| 521 | + 'texte_statut_refuse' => 'odbijeno', |
|
| 522 | + 'titre_ajouter_mot_cle' => 'DODATI KLJUCNU RIJEC:', |
|
| 523 | + 'titre_cadre_raccourcis' => 'PRECICE:', |
|
| 524 | + 'titre_changer_couleur_interface' => 'Promijeni boju interfejsa', |
|
| 525 | + 'titre_image_admin_article' => 'Mozete administrirati ovaj clanak', |
|
| 526 | + 'titre_image_administrateur' => 'Administrator', |
|
| 527 | + 'titre_image_aide' => 'Pomoc sa ovim elementom', |
|
| 528 | + 'titre_image_auteur_supprime' => 'Autor izbrisan', |
|
| 529 | + 'titre_image_redacteur' => 'Urednik bez pristupa', |
|
| 530 | + 'titre_image_redacteur_02' => 'Urednik', |
|
| 531 | + 'titre_image_visiteur' => 'Posjetioc', |
|
| 532 | + 'titre_joindre_document' => 'PRIDRUZI DOKUMENT', |
|
| 533 | + 'titre_mots_cles' => 'KLJUCNE RIJECI', |
|
| 534 | + 'titre_probleme_technique' => 'Upozorenje: tehnicki problem (SQL server) sprijecava pristup ovom dijelu stranice. Hvala na razumijevanju.', # MODIF |
|
| 535 | + 'titre_publier_document' => 'OBJAVI DOKUMENT U OVOJ RUBRICI', |
|
| 536 | + 'titre_statistiques' => 'Statistike stranice', |
|
| 537 | + 'titre_titre_document' => 'Naslov dokumenta:', |
|
| 538 | + 'trad_reference' => '(preporuceni clanak)', # MODIF |
|
| 539 | 539 | |
| 540 | - // Z |
|
| 541 | - 'zbug_balise_b_aval' => ' : oznaka B kasni u petlji', |
|
| 542 | - 'zbug_balise_inexistante' => 'erreur @from@: la balise #@balise@ n’existe pas', # MODIF |
|
| 543 | - 'zbug_boucle' => 'petlja', |
|
| 544 | - 'zbug_boucle_recursive_undef' => 'nedefinisana rakurzivna petlja', # MODIF |
|
| 545 | - 'zbug_champ_hors_boucle' => 'Polje @champ@ izvan petlje', |
|
| 546 | - 'zbug_champ_hors_motif' => 'Polje @champ@ van oznacene petlje @motif@', # MODIF |
|
| 547 | - 'zbug_code' => 'kod', |
|
| 548 | - 'zbug_critere_inconnu' => 'nepoznat kriterij @critere@', # MODIF |
|
| 549 | - 'zbug_distant_interdit' => 'zabranjeni eksterni podaci', # MODIF |
|
| 550 | - 'zbug_doublon_table_sans_cle_primaire' => 'doublons sur une table sans clef primaire atomique', # MODIF |
|
| 551 | - 'zbug_doublon_table_sans_index' => 'doublons sur une table sans index', # MODIF |
|
| 552 | - 'zbug_erreur_boucle_double' => 'BOUCLE@id@: dupla definicija', # MODIF |
|
| 553 | - 'zbug_erreur_boucle_fermant' => 'BOUCLE@id@: zatvarajuca oznaka nedostaje', # MODIF |
|
| 554 | - 'zbug_erreur_boucle_syntaxe' => 'Pogresna sintaksa petlje', # MODIF |
|
| 555 | - 'zbug_erreur_execution_page' => 'greska pri izvodjenju stranice', # MODIF |
|
| 556 | - 'zbug_erreur_filtre' => 'Greska: nedefinisan filter <b>« @filtre@ »</b>', # MODIF |
|
| 557 | - 'zbug_erreur_meme_parent' => '{meme_parent} odnosi se samo na petlje (FORUMI) ili (RUBRIKE)', # MODIF |
|
| 558 | - 'zbug_erreur_squelette' => 'Greska sa predloskom', |
|
| 559 | - 'zbug_info_erreur_squelette' => 'Greska na stranici', |
|
| 560 | - 'zbug_inversion_ordre_inexistant' => 'inverzija nepostojecim rasporedom', # MODIF |
|
| 561 | - 'zbug_pagination_sans_critere' => '#PAGINATION sans critère {pagination} ou employé dans une boucle recursive', # MODIF |
|
| 562 | - 'zbug_parametres_inclus_incorrects' => 'Pogresni parametri ukljucivanja', # MODIF |
|
| 563 | - 'zbug_resultat' => 'rezultat', |
|
| 564 | - 'zbug_serveur_indefini' => 'nedefinisan SQL server', # MODIF |
|
| 565 | - 'zbug_table_inconnue' => 'Nedefinisana SQL tabela « @table@ »' |
|
| 540 | + // Z |
|
| 541 | + 'zbug_balise_b_aval' => ' : oznaka B kasni u petlji', |
|
| 542 | + 'zbug_balise_inexistante' => 'erreur @from@: la balise #@balise@ n’existe pas', # MODIF |
|
| 543 | + 'zbug_boucle' => 'petlja', |
|
| 544 | + 'zbug_boucle_recursive_undef' => 'nedefinisana rakurzivna petlja', # MODIF |
|
| 545 | + 'zbug_champ_hors_boucle' => 'Polje @champ@ izvan petlje', |
|
| 546 | + 'zbug_champ_hors_motif' => 'Polje @champ@ van oznacene petlje @motif@', # MODIF |
|
| 547 | + 'zbug_code' => 'kod', |
|
| 548 | + 'zbug_critere_inconnu' => 'nepoznat kriterij @critere@', # MODIF |
|
| 549 | + 'zbug_distant_interdit' => 'zabranjeni eksterni podaci', # MODIF |
|
| 550 | + 'zbug_doublon_table_sans_cle_primaire' => 'doublons sur une table sans clef primaire atomique', # MODIF |
|
| 551 | + 'zbug_doublon_table_sans_index' => 'doublons sur une table sans index', # MODIF |
|
| 552 | + 'zbug_erreur_boucle_double' => 'BOUCLE@id@: dupla definicija', # MODIF |
|
| 553 | + 'zbug_erreur_boucle_fermant' => 'BOUCLE@id@: zatvarajuca oznaka nedostaje', # MODIF |
|
| 554 | + 'zbug_erreur_boucle_syntaxe' => 'Pogresna sintaksa petlje', # MODIF |
|
| 555 | + 'zbug_erreur_execution_page' => 'greska pri izvodjenju stranice', # MODIF |
|
| 556 | + 'zbug_erreur_filtre' => 'Greska: nedefinisan filter <b>« @filtre@ »</b>', # MODIF |
|
| 557 | + 'zbug_erreur_meme_parent' => '{meme_parent} odnosi se samo na petlje (FORUMI) ili (RUBRIKE)', # MODIF |
|
| 558 | + 'zbug_erreur_squelette' => 'Greska sa predloskom', |
|
| 559 | + 'zbug_info_erreur_squelette' => 'Greska na stranici', |
|
| 560 | + 'zbug_inversion_ordre_inexistant' => 'inverzija nepostojecim rasporedom', # MODIF |
|
| 561 | + 'zbug_pagination_sans_critere' => '#PAGINATION sans critère {pagination} ou employé dans une boucle recursive', # MODIF |
|
| 562 | + 'zbug_parametres_inclus_incorrects' => 'Pogresni parametri ukljucivanja', # MODIF |
|
| 563 | + 'zbug_resultat' => 'rezultat', |
|
| 564 | + 'zbug_serveur_indefini' => 'nedefinisan SQL server', # MODIF |
|
| 565 | + 'zbug_table_inconnue' => 'Nedefinisana SQL tabela « @table@ »' |
|
| 566 | 566 | ); |
@@ -4,584 +4,584 @@ discard block |
||
| 4 | 4 | // ** ne pas modifier le fichier ** |
| 5 | 5 | |
| 6 | 6 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 7 | - return; |
|
| 7 | + return; |
|
| 8 | 8 | } |
| 9 | 9 | |
| 10 | 10 | $GLOBALS[$GLOBALS['idx_lang']] = array( |
| 11 | 11 | |
| 12 | - // A |
|
| 13 | - 'access_interface_graphique' => 'Reen al kompleta grafika interfaco', |
|
| 14 | - 'access_mode_texte' => 'Afiŝi la simpligitan tekstan interfacon', |
|
| 15 | - 'admin_debug' => 'erarserĉilo', |
|
| 16 | - 'admin_modifier_article' => 'Modifu tiun ĉi artikolon', |
|
| 17 | - 'admin_modifier_auteur' => 'Modifu tiun ĉi aŭtoron', |
|
| 18 | - 'admin_modifier_breve' => 'Modifu tiun ĉi fulm-informon', |
|
| 19 | - 'admin_modifier_mot' => 'Modifu tiun ĉi ŝlosilvorton', |
|
| 20 | - 'admin_modifier_rubrique' => 'Modifu tiun ĉi rubrikon', |
|
| 21 | - 'admin_recalculer' => 'Rekalkulu tiun ĉi paĝon', |
|
| 22 | - 'afficher_calendrier' => 'Montri la kalendaro', |
|
| 23 | - 'afficher_trad' => 'afiŝi la tradukojn', |
|
| 24 | - 'alerte_maj_impossible' => '<b>Alarmo !</b> La ĝisdatigo de la SQL-datenbazo al versio @version@ ne eblas pro datenbazo-modif-rajtaj kialoj. Bonvolu kontakti vian retgastiganton.', |
|
| 25 | - 'alerte_modif_info_concourante' => 'ATENTU : Tiu ĉi informo estis modifita de alia homo. La nuna stato estas :', |
|
| 26 | - 'analyse_xml' => 'XML analizo', |
|
| 27 | - 'annuler' => 'Nuligi', |
|
| 28 | - 'antispam_champ_vide' => 'Bonvolu forlasi tiun tajpujon malplena :', |
|
| 29 | - 'articles_recents' => 'La plej freŝaj artikoloj', |
|
| 30 | - 'avis_1_erreur_saisie' => 'Estas 1 eraro en via tajpado, bonvolu kontroli ĝin.', |
|
| 31 | - 'avis_archive_incorrect' => 'Tiu arkivo ne estas SPIP-dosiero', |
|
| 32 | - 'avis_archive_invalide' => 'Tiu arkiva dosiero ne validas', |
|
| 33 | - 'avis_attention' => 'ATENTU !', |
|
| 34 | - 'avis_champ_incorrect_type_objet' => 'Erara tajpuja nomo @name@ por la objekto de tipo @type@', |
|
| 35 | - 'avis_colonne_inexistante' => 'La kolumno @col@ ne ekzistas', |
|
| 36 | - 'avis_erreur' => 'Eraro : vidu ĉi-sube', |
|
| 37 | - 'avis_erreur_connexion' => 'Konekt-eraro', |
|
| 38 | - 'avis_erreur_cookie' => 'kuketo-problemo', |
|
| 39 | - 'avis_erreur_fonction_contexte' => 'Program-eraro. Tiu funkcio ne alvokeblas en tiu ĉi kunteksto.', |
|
| 40 | - 'avis_erreur_mysql' => 'SQL-eraro', |
|
| 41 | - 'avis_erreur_sauvegarde' => 'Konservo-eraro (@type@ @id_objet@) ! ', |
|
| 42 | - 'avis_erreur_visiteur' => 'Alir-problemo al la privata spaco', |
|
| 43 | - 'avis_nb_erreurs_saisie' => 'Estas @nb@ eraroj en via tajpado, bonvolu kontroli ilin.', |
|
| 12 | + // A |
|
| 13 | + 'access_interface_graphique' => 'Reen al kompleta grafika interfaco', |
|
| 14 | + 'access_mode_texte' => 'Afiŝi la simpligitan tekstan interfacon', |
|
| 15 | + 'admin_debug' => 'erarserĉilo', |
|
| 16 | + 'admin_modifier_article' => 'Modifu tiun ĉi artikolon', |
|
| 17 | + 'admin_modifier_auteur' => 'Modifu tiun ĉi aŭtoron', |
|
| 18 | + 'admin_modifier_breve' => 'Modifu tiun ĉi fulm-informon', |
|
| 19 | + 'admin_modifier_mot' => 'Modifu tiun ĉi ŝlosilvorton', |
|
| 20 | + 'admin_modifier_rubrique' => 'Modifu tiun ĉi rubrikon', |
|
| 21 | + 'admin_recalculer' => 'Rekalkulu tiun ĉi paĝon', |
|
| 22 | + 'afficher_calendrier' => 'Montri la kalendaro', |
|
| 23 | + 'afficher_trad' => 'afiŝi la tradukojn', |
|
| 24 | + 'alerte_maj_impossible' => '<b>Alarmo !</b> La ĝisdatigo de la SQL-datenbazo al versio @version@ ne eblas pro datenbazo-modif-rajtaj kialoj. Bonvolu kontakti vian retgastiganton.', |
|
| 25 | + 'alerte_modif_info_concourante' => 'ATENTU : Tiu ĉi informo estis modifita de alia homo. La nuna stato estas :', |
|
| 26 | + 'analyse_xml' => 'XML analizo', |
|
| 27 | + 'annuler' => 'Nuligi', |
|
| 28 | + 'antispam_champ_vide' => 'Bonvolu forlasi tiun tajpujon malplena :', |
|
| 29 | + 'articles_recents' => 'La plej freŝaj artikoloj', |
|
| 30 | + 'avis_1_erreur_saisie' => 'Estas 1 eraro en via tajpado, bonvolu kontroli ĝin.', |
|
| 31 | + 'avis_archive_incorrect' => 'Tiu arkivo ne estas SPIP-dosiero', |
|
| 32 | + 'avis_archive_invalide' => 'Tiu arkiva dosiero ne validas', |
|
| 33 | + 'avis_attention' => 'ATENTU !', |
|
| 34 | + 'avis_champ_incorrect_type_objet' => 'Erara tajpuja nomo @name@ por la objekto de tipo @type@', |
|
| 35 | + 'avis_colonne_inexistante' => 'La kolumno @col@ ne ekzistas', |
|
| 36 | + 'avis_erreur' => 'Eraro : vidu ĉi-sube', |
|
| 37 | + 'avis_erreur_connexion' => 'Konekt-eraro', |
|
| 38 | + 'avis_erreur_cookie' => 'kuketo-problemo', |
|
| 39 | + 'avis_erreur_fonction_contexte' => 'Program-eraro. Tiu funkcio ne alvokeblas en tiu ĉi kunteksto.', |
|
| 40 | + 'avis_erreur_mysql' => 'SQL-eraro', |
|
| 41 | + 'avis_erreur_sauvegarde' => 'Konservo-eraro (@type@ @id_objet@) ! ', |
|
| 42 | + 'avis_erreur_visiteur' => 'Alir-problemo al la privata spaco', |
|
| 43 | + 'avis_nb_erreurs_saisie' => 'Estas @nb@ eraroj en via tajpado, bonvolu kontroli ilin.', |
|
| 44 | 44 | |
| 45 | - // B |
|
| 46 | - 'barre_a_accent_grave' => 'Entajpi malakut-akcentan ĉefliteran A', |
|
| 47 | - 'barre_aide' => 'Uzu la tipografiajn rapidligilojn por pliriĉigi vian enpaĝigon', |
|
| 48 | - 'barre_e_accent_aigu' => 'Entajpi malakut-akcentan ĉefliteran E', |
|
| 49 | - 'barre_eo' => 'Entajpi E en ĉefliteran O', |
|
| 50 | - 'barre_eo_maj' => 'Entajpi E en la ĉeflitero O', |
|
| 51 | - 'barre_euro' => 'Entajpi la simbolon €', |
|
| 52 | - 'barre_gras' => '{{Grasigi}}', |
|
| 53 | - 'barre_guillemets' => 'Flanki per « citiloj »', |
|
| 54 | - 'barre_guillemets_simples' => 'Flanki per simplaj citiloj', |
|
| 55 | - 'barre_intertitre' => '{{{Intertitoligi}}}', |
|
| 56 | - 'barre_italic' => '{Kursivigi}', |
|
| 57 | - 'barre_lien' => 'Transformi al [hiperligo->http://...]', |
|
| 58 | - 'barre_lien_input' => 'Bonvolu indiki la retadreson de via ligilo (vi povas indiki ret-adreson tian, kia http://www.monsite.com aŭ simple indiki la numeron de artikolo de tiu retejo.', |
|
| 59 | - 'barre_note' => 'Transformi al [[sub-paĝan noton]]', |
|
| 60 | - 'barre_paragraphe' => 'Krei paragrafon', |
|
| 61 | - 'barre_quote' => '<quote>Citi mesaĝon</quote>', |
|
| 62 | - 'bouton_changer' => 'Ŝanĝi', |
|
| 63 | - 'bouton_chercher' => 'Serĉi', |
|
| 64 | - 'bouton_choisir' => 'Elekti', |
|
| 65 | - 'bouton_deplacer' => 'Movi', |
|
| 66 | - 'bouton_download' => 'Elŝuti', |
|
| 67 | - 'bouton_enregistrer' => 'Registri', |
|
| 68 | - 'bouton_radio_desactiver_messagerie_interne' => 'Malŝalti la internan mesaĝilon', |
|
| 69 | - 'bouton_radio_envoi_annonces' => 'Sendi la ĉefartikolajn anoncojn', |
|
| 70 | - 'bouton_radio_non_envoi_annonces' => 'Ne sendi anoncojn', |
|
| 71 | - 'bouton_radio_non_envoi_liste_nouveautes' => 'Ne sendi liston de novaĵoj', |
|
| 72 | - 'bouton_recharger_page' => 'freŝigi tiun paĝon', |
|
| 73 | - 'bouton_telecharger' => 'Alŝuti', |
|
| 74 | - 'bouton_upload' => 'Alŝuti', |
|
| 75 | - 'bouton_valider' => 'Validigi', |
|
| 45 | + // B |
|
| 46 | + 'barre_a_accent_grave' => 'Entajpi malakut-akcentan ĉefliteran A', |
|
| 47 | + 'barre_aide' => 'Uzu la tipografiajn rapidligilojn por pliriĉigi vian enpaĝigon', |
|
| 48 | + 'barre_e_accent_aigu' => 'Entajpi malakut-akcentan ĉefliteran E', |
|
| 49 | + 'barre_eo' => 'Entajpi E en ĉefliteran O', |
|
| 50 | + 'barre_eo_maj' => 'Entajpi E en la ĉeflitero O', |
|
| 51 | + 'barre_euro' => 'Entajpi la simbolon €', |
|
| 52 | + 'barre_gras' => '{{Grasigi}}', |
|
| 53 | + 'barre_guillemets' => 'Flanki per « citiloj »', |
|
| 54 | + 'barre_guillemets_simples' => 'Flanki per simplaj citiloj', |
|
| 55 | + 'barre_intertitre' => '{{{Intertitoligi}}}', |
|
| 56 | + 'barre_italic' => '{Kursivigi}', |
|
| 57 | + 'barre_lien' => 'Transformi al [hiperligo->http://...]', |
|
| 58 | + 'barre_lien_input' => 'Bonvolu indiki la retadreson de via ligilo (vi povas indiki ret-adreson tian, kia http://www.monsite.com aŭ simple indiki la numeron de artikolo de tiu retejo.', |
|
| 59 | + 'barre_note' => 'Transformi al [[sub-paĝan noton]]', |
|
| 60 | + 'barre_paragraphe' => 'Krei paragrafon', |
|
| 61 | + 'barre_quote' => '<quote>Citi mesaĝon</quote>', |
|
| 62 | + 'bouton_changer' => 'Ŝanĝi', |
|
| 63 | + 'bouton_chercher' => 'Serĉi', |
|
| 64 | + 'bouton_choisir' => 'Elekti', |
|
| 65 | + 'bouton_deplacer' => 'Movi', |
|
| 66 | + 'bouton_download' => 'Elŝuti', |
|
| 67 | + 'bouton_enregistrer' => 'Registri', |
|
| 68 | + 'bouton_radio_desactiver_messagerie_interne' => 'Malŝalti la internan mesaĝilon', |
|
| 69 | + 'bouton_radio_envoi_annonces' => 'Sendi la ĉefartikolajn anoncojn', |
|
| 70 | + 'bouton_radio_non_envoi_annonces' => 'Ne sendi anoncojn', |
|
| 71 | + 'bouton_radio_non_envoi_liste_nouveautes' => 'Ne sendi liston de novaĵoj', |
|
| 72 | + 'bouton_recharger_page' => 'freŝigi tiun paĝon', |
|
| 73 | + 'bouton_telecharger' => 'Alŝuti', |
|
| 74 | + 'bouton_upload' => 'Alŝuti', |
|
| 75 | + 'bouton_valider' => 'Validigi', |
|
| 76 | 76 | |
| 77 | - // C |
|
| 78 | - 'cal_apresmidi' => 'posttagmezo', |
|
| 79 | - 'cal_jour_entier' => 'tuta tago', |
|
| 80 | - 'cal_matin' => 'mateno', |
|
| 81 | - 'cal_par_jour' => 'tag-kalendaro', |
|
| 82 | - 'cal_par_mois' => 'monat-kalendaro', |
|
| 83 | - 'cal_par_semaine' => 'semajn-kalendaro', |
|
| 84 | - 'choix_couleur_interface' => 'koloro', |
|
| 85 | - 'choix_interface' => 'elekto de interfaco', |
|
| 86 | - 'colonne' => 'Kolumno', |
|
| 87 | - 'confirm_changer_statut' => 'Atentu, vi petis por ŝanĝi la statuton de tiu elemento. Ĉu vi deziras daŭrigi ?', |
|
| 88 | - 'correcte' => 'korekta', |
|
| 77 | + // C |
|
| 78 | + 'cal_apresmidi' => 'posttagmezo', |
|
| 79 | + 'cal_jour_entier' => 'tuta tago', |
|
| 80 | + 'cal_matin' => 'mateno', |
|
| 81 | + 'cal_par_jour' => 'tag-kalendaro', |
|
| 82 | + 'cal_par_mois' => 'monat-kalendaro', |
|
| 83 | + 'cal_par_semaine' => 'semajn-kalendaro', |
|
| 84 | + 'choix_couleur_interface' => 'koloro', |
|
| 85 | + 'choix_interface' => 'elekto de interfaco', |
|
| 86 | + 'colonne' => 'Kolumno', |
|
| 87 | + 'confirm_changer_statut' => 'Atentu, vi petis por ŝanĝi la statuton de tiu elemento. Ĉu vi deziras daŭrigi ?', |
|
| 88 | + 'correcte' => 'korekta', |
|
| 89 | 89 | |
| 90 | - // D |
|
| 91 | - 'date_aujourdhui' => 'hodiaŭ', |
|
| 92 | - 'date_avant_jc' => 'a.K.', |
|
| 93 | - 'date_dans' => 'post @delai@', |
|
| 94 | - 'date_de_mois_1' => '@j@ @nommois@', |
|
| 95 | - 'date_de_mois_10' => '@j@ @nommois@', |
|
| 96 | - 'date_de_mois_11' => '@j@ @nommois@', |
|
| 97 | - 'date_de_mois_12' => '@j@ @nommois@', |
|
| 98 | - 'date_de_mois_2' => '@j@ @nommois@', |
|
| 99 | - 'date_de_mois_3' => '@j@ @nommois@', |
|
| 100 | - 'date_de_mois_4' => '@j@ @nommois@', |
|
| 101 | - 'date_de_mois_5' => '@j@ @nommois@', |
|
| 102 | - 'date_de_mois_6' => '@j@ @nommois@', |
|
| 103 | - 'date_de_mois_7' => '@j@ @nommois@', |
|
| 104 | - 'date_de_mois_8' => '@j@ @nommois@', |
|
| 105 | - 'date_de_mois_9' => '@j@ @nommois@', |
|
| 106 | - 'date_demain' => 'morgaŭ', |
|
| 107 | - 'date_fmt_heures_minutes' => '@h@h@m@min', |
|
| 108 | - 'date_fmt_heures_minutes_court' => '@h@h@m@', |
|
| 109 | - 'date_fmt_jour' => '@nomjour@ la @jour@a', |
|
| 110 | - 'date_fmt_jour_heure' => '@jour@ je la @heure@', |
|
| 111 | - 'date_fmt_jour_heure_debut_fin' => 'la @jour@ de @heure_debut@ ĝis @heure_fin@', |
|
| 112 | - 'date_fmt_jour_heure_debut_fin_abbr' => 'la @dtstart@@jour@a de @heure_debut@@dtabbr@ ĝis @dtend@@heure_fin@@dtend@', |
|
| 113 | - 'date_fmt_jour_mois' => '@jour@a @nommois@', |
|
| 114 | - 'date_fmt_jour_mois_annee' => '@jour@a @nommois@ @annee@', |
|
| 115 | - 'date_fmt_mois_annee' => '@nommois@ @annee@', |
|
| 116 | - 'date_fmt_nomjour' => '@nomjour@ @date@', |
|
| 117 | - 'date_fmt_nomjour_date' => 'la @nomjour@ @date@', |
|
| 118 | - 'date_fmt_periode' => 'De @date_debut@ ĝis @date_fin@', |
|
| 119 | - 'date_fmt_periode_abbr' => 'De @dtart@@date_debut@@dtabbr@ ĝis @dtend@@date_fin@@dtabbr@', |
|
| 120 | - 'date_fmt_periode_from' => 'De', |
|
| 121 | - 'date_fmt_periode_to' => 'ĝis', |
|
| 122 | - 'date_fmt_saison_annee' => '@saison@ @annee@', |
|
| 123 | - 'date_heures' => 'horoj', |
|
| 124 | - 'date_hier' => 'hieraŭ', |
|
| 125 | - 'date_il_y_a' => 'antaŭ @delai@', |
|
| 126 | - 'date_jnum1' => '1', |
|
| 127 | - 'date_jnum10' => '10', |
|
| 128 | - 'date_jnum11' => '11', |
|
| 129 | - 'date_jnum12' => '12', |
|
| 130 | - 'date_jnum13' => '13', |
|
| 131 | - 'date_jnum14' => '14', |
|
| 132 | - 'date_jnum15' => '15', |
|
| 133 | - 'date_jnum16' => '16', |
|
| 134 | - 'date_jnum17' => '17', |
|
| 135 | - 'date_jnum18' => '18', |
|
| 136 | - 'date_jnum19' => '19', |
|
| 137 | - 'date_jnum2' => '2', |
|
| 138 | - 'date_jnum20' => '20', |
|
| 139 | - 'date_jnum21' => '21', |
|
| 140 | - 'date_jnum22' => '22', |
|
| 141 | - 'date_jnum23' => '23', |
|
| 142 | - 'date_jnum24' => '24', |
|
| 143 | - 'date_jnum25' => '25', |
|
| 144 | - 'date_jnum26' => '26', |
|
| 145 | - 'date_jnum27' => '27', |
|
| 146 | - 'date_jnum28' => '28', |
|
| 147 | - 'date_jnum29' => '29', |
|
| 148 | - 'date_jnum3' => '3', |
|
| 149 | - 'date_jnum30' => '30', |
|
| 150 | - 'date_jnum31' => '31', |
|
| 151 | - 'date_jnum4' => '4', |
|
| 152 | - 'date_jnum5' => '5', |
|
| 153 | - 'date_jnum6' => '6', |
|
| 154 | - 'date_jnum7' => '7', |
|
| 155 | - 'date_jnum8' => '8', |
|
| 156 | - 'date_jnum9' => '9', |
|
| 157 | - 'date_jour_1' => 'dimanĉo', |
|
| 158 | - 'date_jour_1_abbr' => 'dim.', |
|
| 159 | - 'date_jour_1_initiale' => 'd.', |
|
| 160 | - 'date_jour_2' => 'lundo', |
|
| 161 | - 'date_jour_2_abbr' => 'lun.', |
|
| 162 | - 'date_jour_2_initiale' => 'l.', |
|
| 163 | - 'date_jour_3' => 'mardo', |
|
| 164 | - 'date_jour_3_abbr' => 'mar.', |
|
| 165 | - 'date_jour_3_initiale' => 'm.', |
|
| 166 | - 'date_jour_4' => 'merkredo', |
|
| 167 | - 'date_jour_4_abbr' => 'mer.', |
|
| 168 | - 'date_jour_4_initiale' => 'm.', |
|
| 169 | - 'date_jour_5' => 'ĵaŭdo', |
|
| 170 | - 'date_jour_5_abbr' => 'jaŭ.', |
|
| 171 | - 'date_jour_5_initiale' => 'j.', |
|
| 172 | - 'date_jour_6' => 'vendredo', |
|
| 173 | - 'date_jour_6_abbr' => 'ven.', |
|
| 174 | - 'date_jour_6_initiale' => 'v.', |
|
| 175 | - 'date_jour_7' => 'sabato', |
|
| 176 | - 'date_jour_7_abbr' => 'sab.', |
|
| 177 | - 'date_jour_7_initiale' => 's.', |
|
| 178 | - 'date_jours' => 'tagoj', |
|
| 179 | - 'date_minutes' => 'minutoj', |
|
| 180 | - 'date_mois' => 'monatoj', |
|
| 181 | - 'date_mois_1' => 'januaro', |
|
| 182 | - 'date_mois_10' => 'oktobro', |
|
| 183 | - 'date_mois_10_abbr' => 'oct.', |
|
| 184 | - 'date_mois_11' => 'novembro', |
|
| 185 | - 'date_mois_11_abbr' => 'nov.', |
|
| 186 | - 'date_mois_12' => 'decembro', |
|
| 187 | - 'date_mois_12_abbr' => 'dec.', |
|
| 188 | - 'date_mois_1_abbr' => 'jan.', |
|
| 189 | - 'date_mois_2' => 'februaro', |
|
| 190 | - 'date_mois_2_abbr' => 'feb.', |
|
| 191 | - 'date_mois_3' => 'marto', |
|
| 192 | - 'date_mois_3_abbr' => 'mar.', |
|
| 193 | - 'date_mois_4' => 'aprilo', |
|
| 194 | - 'date_mois_4_abbr' => 'apr.', |
|
| 195 | - 'date_mois_5' => 'majo', |
|
| 196 | - 'date_mois_5_abbr' => 'majo', |
|
| 197 | - 'date_mois_6' => 'junio', |
|
| 198 | - 'date_mois_6_abbr' => 'jun.', |
|
| 199 | - 'date_mois_7' => 'julio', |
|
| 200 | - 'date_mois_7_abbr' => 'jul.', |
|
| 201 | - 'date_mois_8' => 'aŭgusto', |
|
| 202 | - 'date_mois_8_abbr' => 'aŭg.', |
|
| 203 | - 'date_mois_9' => 'septembro', |
|
| 204 | - 'date_mois_9_abbr' => 'sep.', |
|
| 205 | - 'date_saison_1' => 'vintro', |
|
| 206 | - 'date_saison_2' => 'printempo', |
|
| 207 | - 'date_saison_3' => 'somero', |
|
| 208 | - 'date_saison_4' => 'aŭtuno', |
|
| 209 | - 'date_secondes' => 'sekundoj', |
|
| 210 | - 'date_semaines' => 'semajnoj', |
|
| 211 | - 'date_un_mois' => 'monato', |
|
| 212 | - 'date_une_heure' => 'horo', |
|
| 213 | - 'date_une_minute' => 'minuto', |
|
| 214 | - 'date_une_seconde' => 'sekundo', |
|
| 215 | - 'date_une_semaine' => 'semajno', |
|
| 216 | - 'dirs_commencer' => ' por vere komenci la instalprocezon', |
|
| 217 | - 'dirs_preliminaire' => 'Antaŭfaro : <b>Difinu la alir-rajtojn</b>', |
|
| 218 | - 'dirs_probleme_droits' => 'Alir-rajta problemo', |
|
| 219 | - 'dirs_repertoires_absents' => '<b>La jenaj dosierujoj ne estas trovitaj : <ul>@bad_dirs@.</ul> </b> |
|
| 90 | + // D |
|
| 91 | + 'date_aujourdhui' => 'hodiaŭ', |
|
| 92 | + 'date_avant_jc' => 'a.K.', |
|
| 93 | + 'date_dans' => 'post @delai@', |
|
| 94 | + 'date_de_mois_1' => '@j@ @nommois@', |
|
| 95 | + 'date_de_mois_10' => '@j@ @nommois@', |
|
| 96 | + 'date_de_mois_11' => '@j@ @nommois@', |
|
| 97 | + 'date_de_mois_12' => '@j@ @nommois@', |
|
| 98 | + 'date_de_mois_2' => '@j@ @nommois@', |
|
| 99 | + 'date_de_mois_3' => '@j@ @nommois@', |
|
| 100 | + 'date_de_mois_4' => '@j@ @nommois@', |
|
| 101 | + 'date_de_mois_5' => '@j@ @nommois@', |
|
| 102 | + 'date_de_mois_6' => '@j@ @nommois@', |
|
| 103 | + 'date_de_mois_7' => '@j@ @nommois@', |
|
| 104 | + 'date_de_mois_8' => '@j@ @nommois@', |
|
| 105 | + 'date_de_mois_9' => '@j@ @nommois@', |
|
| 106 | + 'date_demain' => 'morgaŭ', |
|
| 107 | + 'date_fmt_heures_minutes' => '@h@h@m@min', |
|
| 108 | + 'date_fmt_heures_minutes_court' => '@h@h@m@', |
|
| 109 | + 'date_fmt_jour' => '@nomjour@ la @jour@a', |
|
| 110 | + 'date_fmt_jour_heure' => '@jour@ je la @heure@', |
|
| 111 | + 'date_fmt_jour_heure_debut_fin' => 'la @jour@ de @heure_debut@ ĝis @heure_fin@', |
|
| 112 | + 'date_fmt_jour_heure_debut_fin_abbr' => 'la @dtstart@@jour@a de @heure_debut@@dtabbr@ ĝis @dtend@@heure_fin@@dtend@', |
|
| 113 | + 'date_fmt_jour_mois' => '@jour@a @nommois@', |
|
| 114 | + 'date_fmt_jour_mois_annee' => '@jour@a @nommois@ @annee@', |
|
| 115 | + 'date_fmt_mois_annee' => '@nommois@ @annee@', |
|
| 116 | + 'date_fmt_nomjour' => '@nomjour@ @date@', |
|
| 117 | + 'date_fmt_nomjour_date' => 'la @nomjour@ @date@', |
|
| 118 | + 'date_fmt_periode' => 'De @date_debut@ ĝis @date_fin@', |
|
| 119 | + 'date_fmt_periode_abbr' => 'De @dtart@@date_debut@@dtabbr@ ĝis @dtend@@date_fin@@dtabbr@', |
|
| 120 | + 'date_fmt_periode_from' => 'De', |
|
| 121 | + 'date_fmt_periode_to' => 'ĝis', |
|
| 122 | + 'date_fmt_saison_annee' => '@saison@ @annee@', |
|
| 123 | + 'date_heures' => 'horoj', |
|
| 124 | + 'date_hier' => 'hieraŭ', |
|
| 125 | + 'date_il_y_a' => 'antaŭ @delai@', |
|
| 126 | + 'date_jnum1' => '1', |
|
| 127 | + 'date_jnum10' => '10', |
|
| 128 | + 'date_jnum11' => '11', |
|
| 129 | + 'date_jnum12' => '12', |
|
| 130 | + 'date_jnum13' => '13', |
|
| 131 | + 'date_jnum14' => '14', |
|
| 132 | + 'date_jnum15' => '15', |
|
| 133 | + 'date_jnum16' => '16', |
|
| 134 | + 'date_jnum17' => '17', |
|
| 135 | + 'date_jnum18' => '18', |
|
| 136 | + 'date_jnum19' => '19', |
|
| 137 | + 'date_jnum2' => '2', |
|
| 138 | + 'date_jnum20' => '20', |
|
| 139 | + 'date_jnum21' => '21', |
|
| 140 | + 'date_jnum22' => '22', |
|
| 141 | + 'date_jnum23' => '23', |
|
| 142 | + 'date_jnum24' => '24', |
|
| 143 | + 'date_jnum25' => '25', |
|
| 144 | + 'date_jnum26' => '26', |
|
| 145 | + 'date_jnum27' => '27', |
|
| 146 | + 'date_jnum28' => '28', |
|
| 147 | + 'date_jnum29' => '29', |
|
| 148 | + 'date_jnum3' => '3', |
|
| 149 | + 'date_jnum30' => '30', |
|
| 150 | + 'date_jnum31' => '31', |
|
| 151 | + 'date_jnum4' => '4', |
|
| 152 | + 'date_jnum5' => '5', |
|
| 153 | + 'date_jnum6' => '6', |
|
| 154 | + 'date_jnum7' => '7', |
|
| 155 | + 'date_jnum8' => '8', |
|
| 156 | + 'date_jnum9' => '9', |
|
| 157 | + 'date_jour_1' => 'dimanĉo', |
|
| 158 | + 'date_jour_1_abbr' => 'dim.', |
|
| 159 | + 'date_jour_1_initiale' => 'd.', |
|
| 160 | + 'date_jour_2' => 'lundo', |
|
| 161 | + 'date_jour_2_abbr' => 'lun.', |
|
| 162 | + 'date_jour_2_initiale' => 'l.', |
|
| 163 | + 'date_jour_3' => 'mardo', |
|
| 164 | + 'date_jour_3_abbr' => 'mar.', |
|
| 165 | + 'date_jour_3_initiale' => 'm.', |
|
| 166 | + 'date_jour_4' => 'merkredo', |
|
| 167 | + 'date_jour_4_abbr' => 'mer.', |
|
| 168 | + 'date_jour_4_initiale' => 'm.', |
|
| 169 | + 'date_jour_5' => 'ĵaŭdo', |
|
| 170 | + 'date_jour_5_abbr' => 'jaŭ.', |
|
| 171 | + 'date_jour_5_initiale' => 'j.', |
|
| 172 | + 'date_jour_6' => 'vendredo', |
|
| 173 | + 'date_jour_6_abbr' => 'ven.', |
|
| 174 | + 'date_jour_6_initiale' => 'v.', |
|
| 175 | + 'date_jour_7' => 'sabato', |
|
| 176 | + 'date_jour_7_abbr' => 'sab.', |
|
| 177 | + 'date_jour_7_initiale' => 's.', |
|
| 178 | + 'date_jours' => 'tagoj', |
|
| 179 | + 'date_minutes' => 'minutoj', |
|
| 180 | + 'date_mois' => 'monatoj', |
|
| 181 | + 'date_mois_1' => 'januaro', |
|
| 182 | + 'date_mois_10' => 'oktobro', |
|
| 183 | + 'date_mois_10_abbr' => 'oct.', |
|
| 184 | + 'date_mois_11' => 'novembro', |
|
| 185 | + 'date_mois_11_abbr' => 'nov.', |
|
| 186 | + 'date_mois_12' => 'decembro', |
|
| 187 | + 'date_mois_12_abbr' => 'dec.', |
|
| 188 | + 'date_mois_1_abbr' => 'jan.', |
|
| 189 | + 'date_mois_2' => 'februaro', |
|
| 190 | + 'date_mois_2_abbr' => 'feb.', |
|
| 191 | + 'date_mois_3' => 'marto', |
|
| 192 | + 'date_mois_3_abbr' => 'mar.', |
|
| 193 | + 'date_mois_4' => 'aprilo', |
|
| 194 | + 'date_mois_4_abbr' => 'apr.', |
|
| 195 | + 'date_mois_5' => 'majo', |
|
| 196 | + 'date_mois_5_abbr' => 'majo', |
|
| 197 | + 'date_mois_6' => 'junio', |
|
| 198 | + 'date_mois_6_abbr' => 'jun.', |
|
| 199 | + 'date_mois_7' => 'julio', |
|
| 200 | + 'date_mois_7_abbr' => 'jul.', |
|
| 201 | + 'date_mois_8' => 'aŭgusto', |
|
| 202 | + 'date_mois_8_abbr' => 'aŭg.', |
|
| 203 | + 'date_mois_9' => 'septembro', |
|
| 204 | + 'date_mois_9_abbr' => 'sep.', |
|
| 205 | + 'date_saison_1' => 'vintro', |
|
| 206 | + 'date_saison_2' => 'printempo', |
|
| 207 | + 'date_saison_3' => 'somero', |
|
| 208 | + 'date_saison_4' => 'aŭtuno', |
|
| 209 | + 'date_secondes' => 'sekundoj', |
|
| 210 | + 'date_semaines' => 'semajnoj', |
|
| 211 | + 'date_un_mois' => 'monato', |
|
| 212 | + 'date_une_heure' => 'horo', |
|
| 213 | + 'date_une_minute' => 'minuto', |
|
| 214 | + 'date_une_seconde' => 'sekundo', |
|
| 215 | + 'date_une_semaine' => 'semajno', |
|
| 216 | + 'dirs_commencer' => ' por vere komenci la instalprocezon', |
|
| 217 | + 'dirs_preliminaire' => 'Antaŭfaro : <b>Difinu la alir-rajtojn</b>', |
|
| 218 | + 'dirs_probleme_droits' => 'Alir-rajta problemo', |
|
| 219 | + 'dirs_repertoires_absents' => '<b>La jenaj dosierujoj ne estas trovitaj : <ul>@bad_dirs@.</ul> </b> |
|
| 220 | 220 | <p>La problemo verŝajne rilatas al majuskligo de literoj. |
| 221 | 221 | Kontrolu ke la majuskloj ja kongruas kun tio kio estas afiŝita ĉi-supre ; |
| 222 | 222 | se ili ne kongruas, bonvolu renomi la dosierujon per via FTP-programo por korekti la eraron. |
| 223 | 223 | </p><p>Post tio, vi povos</p>', |
| 224 | - 'dirs_repertoires_suivants' => '<b>La jenaj dosierujoj ne estas skribe modifeblaj : |
|
| 224 | + 'dirs_repertoires_suivants' => '<b>La jenaj dosierujoj ne estas skribe modifeblaj : |
|
| 225 | 225 | <ul>@bad_dirs@.</ul></b> |
| 226 | 226 | <p>Por solvi tion, uzu vian FTP-klienton por reguligi la alir-rajtojn de ĉiu |
| 227 | 227 | el tiuj dosierujoj. La proceduron oni detale klarigas en la instalgvidlibro. |
| 228 | 228 | </p><p>Post tio, vi povos </p>', |
| 229 | - 'double_occurrence' => 'Duobla trafo de @balise@', |
|
| 229 | + 'double_occurrence' => 'Duobla trafo de @balise@', |
|
| 230 | 230 | |
| 231 | - // E |
|
| 232 | - 'en_cours' => 'okazanta', |
|
| 233 | - 'envoi_via_le_site' => 'Sendo tra la retejo', |
|
| 234 | - 'erreur' => 'Eraro', |
|
| 235 | - 'erreur_balise_non_fermee' => 'lasta ne fermita marko :', |
|
| 236 | - 'erreur_technique_ajaxform' => 'Aj. Neatendita eraro ne ebligis la sendon de la formularo. Vi povas reprovi denove.', |
|
| 237 | - 'erreur_technique_enregistrement_champs' => 'Teknika eraro neebligis la ĝustan registradon de la kampo @champs@.', |
|
| 238 | - 'erreur_technique_enregistrement_impossible' => 'Teknika eraro neebligis la registradon.', |
|
| 239 | - 'erreur_texte' => 'eraro(j)', |
|
| 240 | - 'etape' => 'Etapo', |
|
| 231 | + // E |
|
| 232 | + 'en_cours' => 'okazanta', |
|
| 233 | + 'envoi_via_le_site' => 'Sendo tra la retejo', |
|
| 234 | + 'erreur' => 'Eraro', |
|
| 235 | + 'erreur_balise_non_fermee' => 'lasta ne fermita marko :', |
|
| 236 | + 'erreur_technique_ajaxform' => 'Aj. Neatendita eraro ne ebligis la sendon de la formularo. Vi povas reprovi denove.', |
|
| 237 | + 'erreur_technique_enregistrement_champs' => 'Teknika eraro neebligis la ĝustan registradon de la kampo @champs@.', |
|
| 238 | + 'erreur_technique_enregistrement_impossible' => 'Teknika eraro neebligis la registradon.', |
|
| 239 | + 'erreur_texte' => 'eraro(j)', |
|
| 240 | + 'etape' => 'Etapo', |
|
| 241 | 241 | |
| 242 | - // F |
|
| 243 | - 'fichier_introuvable' => 'Netrovebla dosiero @fichier@ ', # MODIF |
|
| 244 | - 'form_auteur_confirmation' => 'Konfirmu vian retpoŝtadreso', |
|
| 245 | - 'form_auteur_email_modifie' => 'Via retpoŝtadreso estis modifita.', |
|
| 246 | - 'form_auteur_envoi_mail_confirmation' => 'Konfirmretmesaĝo estis sendita al @email@. Vi devu viziti la menciita retadreso en la retmesaĝo por validigi vian retpoŝtadreson.', |
|
| 247 | - 'form_auteur_mail_confirmation' => 'Saluton, |
|
| 242 | + // F |
|
| 243 | + 'fichier_introuvable' => 'Netrovebla dosiero @fichier@ ', # MODIF |
|
| 244 | + 'form_auteur_confirmation' => 'Konfirmu vian retpoŝtadreso', |
|
| 245 | + 'form_auteur_email_modifie' => 'Via retpoŝtadreso estis modifita.', |
|
| 246 | + 'form_auteur_envoi_mail_confirmation' => 'Konfirmretmesaĝo estis sendita al @email@. Vi devu viziti la menciita retadreso en la retmesaĝo por validigi vian retpoŝtadreson.', |
|
| 247 | + 'form_auteur_mail_confirmation' => 'Saluton, |
|
| 248 | 248 | |
| 249 | 249 | Vi petis ŝanĝi vian retpoŝtadreson. |
| 250 | 250 | Por konfirmi vian novan retadreson, simple ensaluti al |
| 251 | 251 | la retadreso ĉi-sube (alie, via peto estos ignoritaj) : |
| 252 | 252 | |
| 253 | 253 | @url@', |
| 254 | - 'form_deja_inscrit' => 'Vi estas jam registrita.', |
|
| 255 | - 'form_email_non_valide' => 'Via retpoŝtadreso ne validas.', |
|
| 256 | - 'form_forum_access_refuse' => 'Vi ne plu havas alir-rajton al tiu retejo.', |
|
| 257 | - 'form_forum_bonjour' => 'Saluton @nom@,', |
|
| 258 | - 'form_forum_confirmer_email' => 'Por konfirmi vian retpoŝtadreson, iru al tiu retadreso : @url_confirm@', |
|
| 259 | - 'form_forum_email_deja_enregistre' => 'Tiu ĉi retpoŝtadreso estas jam registrita, vi povas do uzi vian kutiman pasvorton.', |
|
| 260 | - 'form_forum_identifiant_mail' => 'Via nova ensalutilo estis ĵus al vi sendita per retletero.', |
|
| 261 | - 'form_forum_identifiants' => 'Personaj ensalutiloj', |
|
| 262 | - 'form_forum_indiquer_nom_email' => 'Indiku ĉi tie vian nomon kaj retpoŝtadreson. Via persona ensalutilo rapide alvenos al vi retletere.', |
|
| 263 | - 'form_forum_login' => 'salutnomo :', |
|
| 264 | - 'form_forum_message_auto' => '(tio estas aŭtomata mesaĝo)', |
|
| 265 | - 'form_forum_pass' => 'pasvorto :', |
|
| 266 | - 'form_forum_probleme_mail' => 'Retpoŝta problemo : la ensalutilo ne sendeblas.', |
|
| 267 | - 'form_forum_voici1' => 'Jen viaj ensalutiloj por partopreni la vivon de la retejo "@nom_site_spip@" (@adresse_site@) :', |
|
| 268 | - 'form_forum_voici2' => 'Jen estas viaj ensalutiloj por proponi artikolojn ĉe la retejo "@nom_site_spip@" (@adresse_login@) :', |
|
| 269 | - 'form_indiquer_email' => 'Bonvolu indiki vian retpoŝtadreson.', |
|
| 270 | - 'form_indiquer_nom' => 'Bonvolu indiki vian nomon.', |
|
| 271 | - 'form_indiquer_nom_site' => 'Bonvolu indiki la nomon de via retejo.', |
|
| 272 | - 'form_pet_deja_enregistre' => 'Tiu retejo estas jam registrita', |
|
| 273 | - 'form_pet_signature_pasprise' => 'Via subskribo ne estas registrita.', |
|
| 274 | - 'form_prop_confirmer_envoi' => 'Konfirmi la sendon', |
|
| 275 | - 'form_prop_description' => 'Priskribo/komento', |
|
| 276 | - 'form_prop_enregistre' => 'Via kontribuo estas registrita, ĝi aperos ĉerete post validigo de la respondeculoj de la retejo.', |
|
| 277 | - 'form_prop_envoyer' => 'Sendi mesaĝon', |
|
| 278 | - 'form_prop_indiquer_email' => 'Bonvolu indiki validan retpoŝtadreson', |
|
| 279 | - 'form_prop_indiquer_nom_site' => 'Bonvolu indiki la nomon de la retejo.', |
|
| 280 | - 'form_prop_indiquer_sujet' => 'Bonvolu indiki temon', |
|
| 281 | - 'form_prop_message_envoye' => 'Mesaĝo sendita', |
|
| 282 | - 'form_prop_non_enregistre' => 'Via propono ne estis registrita.', |
|
| 283 | - 'form_prop_sujet' => 'Temo', |
|
| 284 | - 'form_prop_url_site' => 'URL-adreso de la retejo', |
|
| 285 | - 'format_date_incorrecte' => 'La dato aŭ ĝia formo ne validas', |
|
| 286 | - 'format_heure_incorrecte' => 'La horo aŭ ĝia formo ne validas', |
|
| 287 | - 'forum_non_inscrit' => 'Vi ne estas registrita, aŭ la adreso aŭ la pasvorto ne ĝustas.', |
|
| 288 | - 'forum_par_auteur' => 'de @auteur@', |
|
| 289 | - 'forum_titre_erreur' => 'Eraro...', |
|
| 254 | + 'form_deja_inscrit' => 'Vi estas jam registrita.', |
|
| 255 | + 'form_email_non_valide' => 'Via retpoŝtadreso ne validas.', |
|
| 256 | + 'form_forum_access_refuse' => 'Vi ne plu havas alir-rajton al tiu retejo.', |
|
| 257 | + 'form_forum_bonjour' => 'Saluton @nom@,', |
|
| 258 | + 'form_forum_confirmer_email' => 'Por konfirmi vian retpoŝtadreson, iru al tiu retadreso : @url_confirm@', |
|
| 259 | + 'form_forum_email_deja_enregistre' => 'Tiu ĉi retpoŝtadreso estas jam registrita, vi povas do uzi vian kutiman pasvorton.', |
|
| 260 | + 'form_forum_identifiant_mail' => 'Via nova ensalutilo estis ĵus al vi sendita per retletero.', |
|
| 261 | + 'form_forum_identifiants' => 'Personaj ensalutiloj', |
|
| 262 | + 'form_forum_indiquer_nom_email' => 'Indiku ĉi tie vian nomon kaj retpoŝtadreson. Via persona ensalutilo rapide alvenos al vi retletere.', |
|
| 263 | + 'form_forum_login' => 'salutnomo :', |
|
| 264 | + 'form_forum_message_auto' => '(tio estas aŭtomata mesaĝo)', |
|
| 265 | + 'form_forum_pass' => 'pasvorto :', |
|
| 266 | + 'form_forum_probleme_mail' => 'Retpoŝta problemo : la ensalutilo ne sendeblas.', |
|
| 267 | + 'form_forum_voici1' => 'Jen viaj ensalutiloj por partopreni la vivon de la retejo "@nom_site_spip@" (@adresse_site@) :', |
|
| 268 | + 'form_forum_voici2' => 'Jen estas viaj ensalutiloj por proponi artikolojn ĉe la retejo "@nom_site_spip@" (@adresse_login@) :', |
|
| 269 | + 'form_indiquer_email' => 'Bonvolu indiki vian retpoŝtadreson.', |
|
| 270 | + 'form_indiquer_nom' => 'Bonvolu indiki vian nomon.', |
|
| 271 | + 'form_indiquer_nom_site' => 'Bonvolu indiki la nomon de via retejo.', |
|
| 272 | + 'form_pet_deja_enregistre' => 'Tiu retejo estas jam registrita', |
|
| 273 | + 'form_pet_signature_pasprise' => 'Via subskribo ne estas registrita.', |
|
| 274 | + 'form_prop_confirmer_envoi' => 'Konfirmi la sendon', |
|
| 275 | + 'form_prop_description' => 'Priskribo/komento', |
|
| 276 | + 'form_prop_enregistre' => 'Via kontribuo estas registrita, ĝi aperos ĉerete post validigo de la respondeculoj de la retejo.', |
|
| 277 | + 'form_prop_envoyer' => 'Sendi mesaĝon', |
|
| 278 | + 'form_prop_indiquer_email' => 'Bonvolu indiki validan retpoŝtadreson', |
|
| 279 | + 'form_prop_indiquer_nom_site' => 'Bonvolu indiki la nomon de la retejo.', |
|
| 280 | + 'form_prop_indiquer_sujet' => 'Bonvolu indiki temon', |
|
| 281 | + 'form_prop_message_envoye' => 'Mesaĝo sendita', |
|
| 282 | + 'form_prop_non_enregistre' => 'Via propono ne estis registrita.', |
|
| 283 | + 'form_prop_sujet' => 'Temo', |
|
| 284 | + 'form_prop_url_site' => 'URL-adreso de la retejo', |
|
| 285 | + 'format_date_incorrecte' => 'La dato aŭ ĝia formo ne validas', |
|
| 286 | + 'format_heure_incorrecte' => 'La horo aŭ ĝia formo ne validas', |
|
| 287 | + 'forum_non_inscrit' => 'Vi ne estas registrita, aŭ la adreso aŭ la pasvorto ne ĝustas.', |
|
| 288 | + 'forum_par_auteur' => 'de @auteur@', |
|
| 289 | + 'forum_titre_erreur' => 'Eraro...', |
|
| 290 | 290 | |
| 291 | - // I |
|
| 292 | - 'ical_texte_rss_articles' => 'La abondosiero (backend-dosiero) de la artikoloj de tiu retejo troveblas ĉe la retadreso :', |
|
| 293 | - 'ical_texte_rss_articles2' => 'Sube, vi povas trovi abonligojn por gvati evoluadon de artikoloj el ĉiu rubriko de la retejo :', |
|
| 294 | - 'ical_texte_rss_breves' => 'Krome ekzistas dosiero enhavanta ĉiujn fulm-informojn de la retejo. Precizigante la rubriko-numeron, vi ricevos nur la fulm-informojn el tiu rubriko.', |
|
| 295 | - 'icone_a_suivre' => 'Stabejo', |
|
| 296 | - 'icone_admin_site' => 'Reteja administrado', |
|
| 297 | - 'icone_agenda' => 'Agendo', |
|
| 298 | - 'icone_aide_ligne' => 'Helpilo', |
|
| 299 | - 'icone_articles' => 'Artikoloj', |
|
| 300 | - 'icone_auteurs' => 'Aŭtoroj', |
|
| 301 | - 'icone_brouteur' => 'Rapida retumado', |
|
| 302 | - 'icone_configuration_site' => 'Konfiguro', |
|
| 303 | - 'icone_configurer_site' => 'Konfiguri vian retejon', |
|
| 304 | - 'icone_creer_nouvel_auteur' => 'Krei novan aŭtoron', |
|
| 305 | - 'icone_creer_rubrique' => 'Krei novan rubrikon', |
|
| 306 | - 'icone_creer_sous_rubrique' => 'Krei sub-rubrikon', |
|
| 307 | - 'icone_deconnecter' => 'Elsaluti', |
|
| 308 | - 'icone_discussions' => 'Diskutoj', |
|
| 309 | - 'icone_doc_rubrique' => 'Dokumentoj de la rubrikoj', |
|
| 310 | - 'icone_ecrire_article' => 'Skribi novan artikolon', |
|
| 311 | - 'icone_edition_site' => 'Redaktejo', |
|
| 312 | - 'icone_gestion_langues' => 'Mastrumado de lingvoj', |
|
| 313 | - 'icone_informations_personnelles' => 'Personaj datenoj', |
|
| 314 | - 'icone_interface_complet' => 'kompleta interfaco', |
|
| 315 | - 'icone_interface_simple' => 'Simpla interfaco', |
|
| 316 | - 'icone_maintenance_site' => 'Retejo-bontenado', |
|
| 317 | - 'icone_messagerie_personnelle' => 'Persona mesaĝilo', |
|
| 318 | - 'icone_repartition_debut' => 'Afiŝi la distribuon ekde la komenco', |
|
| 319 | - 'icone_rubriques' => 'Rubrikoj', |
|
| 320 | - 'icone_sauver_site' => 'Savkopii la retejon', |
|
| 321 | - 'icone_site_entier' => 'La tuta retejo', |
|
| 322 | - 'icone_sites_references' => 'Referencigitaj retejoj', |
|
| 323 | - 'icone_statistiques' => 'Statistikoj de la retejo', |
|
| 324 | - 'icone_suivi_activite' => 'Gvati vivon de la retejo', |
|
| 325 | - 'icone_suivi_actualite' => 'Evoluado de la retejo', |
|
| 326 | - 'icone_suivi_pettions' => 'Superrigardi/mastrumi la petskribon', |
|
| 327 | - 'icone_suivi_revisions' => 'Modifoj de artikoloj', |
|
| 328 | - 'icone_supprimer_document' => 'Forigi tiun dokumenton', |
|
| 329 | - 'icone_supprimer_image' => 'Forigi tiun bildon', |
|
| 330 | - 'icone_tous_articles' => 'Ĉiuj viaj artikoloj', |
|
| 331 | - 'icone_tous_auteur' => 'Ĉiuj aŭtoroj', |
|
| 332 | - 'icone_tous_visiteur' => 'Ĉiuj vizitantoj', |
|
| 333 | - 'icone_visiter_site' => 'Vidi la publika spaco', |
|
| 334 | - 'icone_voir_en_ligne' => 'Vidi ĉeretigite', |
|
| 335 | - 'img_indisponible' => 'nedisponebla bildo', |
|
| 336 | - 'impossible' => 'ne eblas', |
|
| 337 | - 'info_a_suivre' => 'STABEJO »', |
|
| 338 | - 'info_acces_interdit' => 'Malpermesata aliro', |
|
| 339 | - 'info_acces_refuse' => 'Rifuzita aliro', |
|
| 340 | - 'info_action' => 'Ago : @action@', |
|
| 341 | - 'info_administrer_rubriques' => 'Vi povas mastrumi tiun rubrikon kaj ties subrubrikojn', |
|
| 342 | - 'info_adresse_non_indiquee' => 'Vi indikis neniun adreson por testi !', |
|
| 343 | - 'info_aide' => 'HELPO :', |
|
| 344 | - 'info_ajouter_mot' => 'Aldoni tiun vorton', |
|
| 345 | - 'info_annonce' => 'ANONCO', |
|
| 346 | - 'info_annonces_generales' => 'Ĝeneralaj anoncoj :', |
|
| 347 | - 'info_article_propose' => 'Proponita artikolo', |
|
| 348 | - 'info_article_publie' => 'Publikigita artikolo', |
|
| 349 | - 'info_article_redaction' => 'Redaktata artikolo', |
|
| 350 | - 'info_article_refuse' => 'Rifuzita artikolo', |
|
| 351 | - 'info_article_supprime' => 'Forviŝita artikolo', |
|
| 352 | - 'info_articles' => 'Artikoloj', |
|
| 353 | - 'info_articles_a_valider' => 'Validigendaj artikoloj', |
|
| 354 | - 'info_articles_nb' => '@nb@ artikoloj', |
|
| 355 | - 'info_articles_proposes' => 'Proponitaj artikoloj', |
|
| 356 | - 'info_articles_un' => '1 artikolo', |
|
| 357 | - 'info_auteurs_nombre' => 'aŭtoro(j) :', |
|
| 358 | - 'info_authentification_ftp' => 'Aŭtentigo (per FTP).', |
|
| 359 | - 'info_breves_2' => 'fulm-informoj', |
|
| 360 | - 'info_breves_nb' => '@nb@ fulm-informoj', |
|
| 361 | - 'info_breves_un' => '1 fulm-informo', |
|
| 362 | - 'info_connexion_refusee' => 'Konektiĝo rifuzata', |
|
| 363 | - 'info_contact_developpeur' => 'Bonvolu kontakti programiston.', |
|
| 364 | - 'info_contenance' => 'Tiu retejo enhavas :', |
|
| 365 | - 'info_contribution' => 'kontribuaĵoj', |
|
| 366 | - 'info_copyright' => '@spip@ estas libera programo distribuata @lien_gpl@.', |
|
| 367 | - 'info_copyright_doc' => 'Por pliaj informoj vidu la retpaĝon <a href="@spipnet@">@spipnet_affiche@</a>.', |
|
| 368 | - 'info_copyright_gpl' => 'sub licenco GPL', |
|
| 369 | - 'info_cours_edition' => 'Viaj redaktataj artikoloj', # MODIF |
|
| 370 | - 'info_creer_repertoire' => 'Bonvolu krei dosieron aŭ dosierujon kies nomo estu :', |
|
| 371 | - 'info_creer_repertoire_2' => 'ene de la subdosierujo <b>@repertoire@</b>, kaj :', |
|
| 372 | - 'info_creer_vignette' => 'aŭtomata kreo de la vinjeto', |
|
| 373 | - 'info_creerdansrubrique_non_autorise' => 'Vi ne havas sufiĉajn rajtojn por krei enhavo en ĉi tiu rubriko', |
|
| 374 | - 'info_deplier' => 'Malfaldi', |
|
| 375 | - 'info_descriptif_nombre' => 'priskribo(j) :', |
|
| 376 | - 'info_description' => 'Priskribo :', |
|
| 377 | - 'info_description_2' => 'Priskribo :', |
|
| 378 | - 'info_dimension' => 'Dimensioj :', |
|
| 379 | - 'info_documents_nb' => '@nb@ dokumentoj', |
|
| 380 | - 'info_documents_un' => '1 dokumento', |
|
| 381 | - 'info_ecire_message_prive' => 'Skribi privatan mesaĝon', |
|
| 382 | - 'info_email_invalide' => 'Nevalida retpoŝtadreso.', |
|
| 383 | - 'info_en_cours_validation' => 'Viaj redaktataj artikoloj', |
|
| 384 | - 'info_en_ligne' => 'Nun ĉerete :', |
|
| 385 | - 'info_envoyer_message_prive' => 'Sendi privatan mesaĝon al tiu ĉi aŭtoro', |
|
| 386 | - 'info_erreur_requete' => 'Eraro en la peto : ', |
|
| 387 | - 'info_erreur_squelette2' => 'Neniu skeleto <b>@fichier@</b> disponeblas...', |
|
| 388 | - 'info_erreur_systeme' => 'Sistemo-eraro (errno @errsys@)', |
|
| 389 | - 'info_erreur_systeme2' => 'Eble la fiksdisko plenas, aŭ la datenbazo estas difektita.<br /> |
|
| 291 | + // I |
|
| 292 | + 'ical_texte_rss_articles' => 'La abondosiero (backend-dosiero) de la artikoloj de tiu retejo troveblas ĉe la retadreso :', |
|
| 293 | + 'ical_texte_rss_articles2' => 'Sube, vi povas trovi abonligojn por gvati evoluadon de artikoloj el ĉiu rubriko de la retejo :', |
|
| 294 | + 'ical_texte_rss_breves' => 'Krome ekzistas dosiero enhavanta ĉiujn fulm-informojn de la retejo. Precizigante la rubriko-numeron, vi ricevos nur la fulm-informojn el tiu rubriko.', |
|
| 295 | + 'icone_a_suivre' => 'Stabejo', |
|
| 296 | + 'icone_admin_site' => 'Reteja administrado', |
|
| 297 | + 'icone_agenda' => 'Agendo', |
|
| 298 | + 'icone_aide_ligne' => 'Helpilo', |
|
| 299 | + 'icone_articles' => 'Artikoloj', |
|
| 300 | + 'icone_auteurs' => 'Aŭtoroj', |
|
| 301 | + 'icone_brouteur' => 'Rapida retumado', |
|
| 302 | + 'icone_configuration_site' => 'Konfiguro', |
|
| 303 | + 'icone_configurer_site' => 'Konfiguri vian retejon', |
|
| 304 | + 'icone_creer_nouvel_auteur' => 'Krei novan aŭtoron', |
|
| 305 | + 'icone_creer_rubrique' => 'Krei novan rubrikon', |
|
| 306 | + 'icone_creer_sous_rubrique' => 'Krei sub-rubrikon', |
|
| 307 | + 'icone_deconnecter' => 'Elsaluti', |
|
| 308 | + 'icone_discussions' => 'Diskutoj', |
|
| 309 | + 'icone_doc_rubrique' => 'Dokumentoj de la rubrikoj', |
|
| 310 | + 'icone_ecrire_article' => 'Skribi novan artikolon', |
|
| 311 | + 'icone_edition_site' => 'Redaktejo', |
|
| 312 | + 'icone_gestion_langues' => 'Mastrumado de lingvoj', |
|
| 313 | + 'icone_informations_personnelles' => 'Personaj datenoj', |
|
| 314 | + 'icone_interface_complet' => 'kompleta interfaco', |
|
| 315 | + 'icone_interface_simple' => 'Simpla interfaco', |
|
| 316 | + 'icone_maintenance_site' => 'Retejo-bontenado', |
|
| 317 | + 'icone_messagerie_personnelle' => 'Persona mesaĝilo', |
|
| 318 | + 'icone_repartition_debut' => 'Afiŝi la distribuon ekde la komenco', |
|
| 319 | + 'icone_rubriques' => 'Rubrikoj', |
|
| 320 | + 'icone_sauver_site' => 'Savkopii la retejon', |
|
| 321 | + 'icone_site_entier' => 'La tuta retejo', |
|
| 322 | + 'icone_sites_references' => 'Referencigitaj retejoj', |
|
| 323 | + 'icone_statistiques' => 'Statistikoj de la retejo', |
|
| 324 | + 'icone_suivi_activite' => 'Gvati vivon de la retejo', |
|
| 325 | + 'icone_suivi_actualite' => 'Evoluado de la retejo', |
|
| 326 | + 'icone_suivi_pettions' => 'Superrigardi/mastrumi la petskribon', |
|
| 327 | + 'icone_suivi_revisions' => 'Modifoj de artikoloj', |
|
| 328 | + 'icone_supprimer_document' => 'Forigi tiun dokumenton', |
|
| 329 | + 'icone_supprimer_image' => 'Forigi tiun bildon', |
|
| 330 | + 'icone_tous_articles' => 'Ĉiuj viaj artikoloj', |
|
| 331 | + 'icone_tous_auteur' => 'Ĉiuj aŭtoroj', |
|
| 332 | + 'icone_tous_visiteur' => 'Ĉiuj vizitantoj', |
|
| 333 | + 'icone_visiter_site' => 'Vidi la publika spaco', |
|
| 334 | + 'icone_voir_en_ligne' => 'Vidi ĉeretigite', |
|
| 335 | + 'img_indisponible' => 'nedisponebla bildo', |
|
| 336 | + 'impossible' => 'ne eblas', |
|
| 337 | + 'info_a_suivre' => 'STABEJO »', |
|
| 338 | + 'info_acces_interdit' => 'Malpermesata aliro', |
|
| 339 | + 'info_acces_refuse' => 'Rifuzita aliro', |
|
| 340 | + 'info_action' => 'Ago : @action@', |
|
| 341 | + 'info_administrer_rubriques' => 'Vi povas mastrumi tiun rubrikon kaj ties subrubrikojn', |
|
| 342 | + 'info_adresse_non_indiquee' => 'Vi indikis neniun adreson por testi !', |
|
| 343 | + 'info_aide' => 'HELPO :', |
|
| 344 | + 'info_ajouter_mot' => 'Aldoni tiun vorton', |
|
| 345 | + 'info_annonce' => 'ANONCO', |
|
| 346 | + 'info_annonces_generales' => 'Ĝeneralaj anoncoj :', |
|
| 347 | + 'info_article_propose' => 'Proponita artikolo', |
|
| 348 | + 'info_article_publie' => 'Publikigita artikolo', |
|
| 349 | + 'info_article_redaction' => 'Redaktata artikolo', |
|
| 350 | + 'info_article_refuse' => 'Rifuzita artikolo', |
|
| 351 | + 'info_article_supprime' => 'Forviŝita artikolo', |
|
| 352 | + 'info_articles' => 'Artikoloj', |
|
| 353 | + 'info_articles_a_valider' => 'Validigendaj artikoloj', |
|
| 354 | + 'info_articles_nb' => '@nb@ artikoloj', |
|
| 355 | + 'info_articles_proposes' => 'Proponitaj artikoloj', |
|
| 356 | + 'info_articles_un' => '1 artikolo', |
|
| 357 | + 'info_auteurs_nombre' => 'aŭtoro(j) :', |
|
| 358 | + 'info_authentification_ftp' => 'Aŭtentigo (per FTP).', |
|
| 359 | + 'info_breves_2' => 'fulm-informoj', |
|
| 360 | + 'info_breves_nb' => '@nb@ fulm-informoj', |
|
| 361 | + 'info_breves_un' => '1 fulm-informo', |
|
| 362 | + 'info_connexion_refusee' => 'Konektiĝo rifuzata', |
|
| 363 | + 'info_contact_developpeur' => 'Bonvolu kontakti programiston.', |
|
| 364 | + 'info_contenance' => 'Tiu retejo enhavas :', |
|
| 365 | + 'info_contribution' => 'kontribuaĵoj', |
|
| 366 | + 'info_copyright' => '@spip@ estas libera programo distribuata @lien_gpl@.', |
|
| 367 | + 'info_copyright_doc' => 'Por pliaj informoj vidu la retpaĝon <a href="@spipnet@">@spipnet_affiche@</a>.', |
|
| 368 | + 'info_copyright_gpl' => 'sub licenco GPL', |
|
| 369 | + 'info_cours_edition' => 'Viaj redaktataj artikoloj', # MODIF |
|
| 370 | + 'info_creer_repertoire' => 'Bonvolu krei dosieron aŭ dosierujon kies nomo estu :', |
|
| 371 | + 'info_creer_repertoire_2' => 'ene de la subdosierujo <b>@repertoire@</b>, kaj :', |
|
| 372 | + 'info_creer_vignette' => 'aŭtomata kreo de la vinjeto', |
|
| 373 | + 'info_creerdansrubrique_non_autorise' => 'Vi ne havas sufiĉajn rajtojn por krei enhavo en ĉi tiu rubriko', |
|
| 374 | + 'info_deplier' => 'Malfaldi', |
|
| 375 | + 'info_descriptif_nombre' => 'priskribo(j) :', |
|
| 376 | + 'info_description' => 'Priskribo :', |
|
| 377 | + 'info_description_2' => 'Priskribo :', |
|
| 378 | + 'info_dimension' => 'Dimensioj :', |
|
| 379 | + 'info_documents_nb' => '@nb@ dokumentoj', |
|
| 380 | + 'info_documents_un' => '1 dokumento', |
|
| 381 | + 'info_ecire_message_prive' => 'Skribi privatan mesaĝon', |
|
| 382 | + 'info_email_invalide' => 'Nevalida retpoŝtadreso.', |
|
| 383 | + 'info_en_cours_validation' => 'Viaj redaktataj artikoloj', |
|
| 384 | + 'info_en_ligne' => 'Nun ĉerete :', |
|
| 385 | + 'info_envoyer_message_prive' => 'Sendi privatan mesaĝon al tiu ĉi aŭtoro', |
|
| 386 | + 'info_erreur_requete' => 'Eraro en la peto : ', |
|
| 387 | + 'info_erreur_squelette2' => 'Neniu skeleto <b>@fichier@</b> disponeblas...', |
|
| 388 | + 'info_erreur_systeme' => 'Sistemo-eraro (errno @errsys@)', |
|
| 389 | + 'info_erreur_systeme2' => 'Eble la fiksdisko plenas, aŭ la datenbazo estas difektita.<br /> |
|
| 390 | 390 | <span style="color:red;">Provu<a href=\'@script@\'>ripari la datenbazon</a>, |
| 391 | 391 | aŭ kontaktu vian retgastiganton.</span>', |
| 392 | - 'info_fini' => 'Finite !', |
|
| 393 | - 'info_format_image' => 'Bildaj formatoj uzeblaj por krei vinjetojn : @gd_formats@.', |
|
| 394 | - 'info_format_non_defini' => 'nedefinita formato', |
|
| 395 | - 'info_grand_ecran' => 'Granda ekrano', |
|
| 396 | - 'info_image_aide' => 'HELPILO', |
|
| 397 | - 'info_image_process_titre' => 'Metodo pri vinjet-farado', |
|
| 398 | - 'info_impossible_lire_page' => '<b>Eraro !</b> Ne eblas legi la paĝon <tt> <html>@test_proxy@</html> </tt> tra la prokura servilo <tt>', |
|
| 399 | - 'info_installation_systeme_publication' => 'Instalo de la publikiga sistemo...', |
|
| 400 | - 'info_installer_documents' => 'Vi povas aŭtomate instali ĉiujn dokumentojn troviĝantajn en la dosiero @upload@.', |
|
| 401 | - 'info_installer_ftp' => 'Kiel mastrumanto, vi povas instali (FTP-e) dosierojn en la dosierujon @upload@ kaj poste rekte selekti ilin ĉi tie.', |
|
| 402 | - 'info_installer_images' => 'Vi povas instali bildojn je la formatoj JPEG, GIF kaj PNG.', |
|
| 403 | - 'info_installer_images_dossier' => 'Instali bildojn en la dosierujon @upload@ por povi ilin selekti ĉi tie.', |
|
| 404 | - 'info_interface_complete' => 'kompleta interfaco', |
|
| 405 | - 'info_interface_simple' => 'Simpla interfaco', |
|
| 406 | - 'info_joindre_document_article' => 'Vi povas ligi kun tiu artikolo dokumentojn tiajn, kiaj', |
|
| 407 | - 'info_joindre_document_rubrique' => 'Vi povas ligi kun tiu rubriko dokumentojn tiajn, kiaj', |
|
| 408 | - 'info_joindre_documents_article' => 'Vi povas ligi kun tiu artikolo dokumentojn tiajn, kiaj :', |
|
| 409 | - 'info_l_article' => 'la artikolo', |
|
| 410 | - 'info_la_breve' => 'la fulm-informo', |
|
| 411 | - 'info_la_rubrique' => 'la rubriko', |
|
| 412 | - 'info_langue_principale' => 'Ĉefa lingvo de la retejo', |
|
| 413 | - 'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ bilderoj', |
|
| 414 | - 'info_les_auteurs_1' => 'de @les_auteurs@', |
|
| 415 | - 'info_logo_format_interdit' => 'Nur vinjetoj je formatoj @formats@ estas permesataj.', |
|
| 416 | - 'info_logo_max_poids' => 'Vinjetoj devige pezu malpli ol @maxi@ (tiu dosiero pezas @actuel@).', |
|
| 417 | - 'info_mail_fournisseur' => '[email protected]', |
|
| 418 | - 'info_message_2' => 'MESAĜO', |
|
| 419 | - 'info_message_supprime' => 'FORIGITA MESAĜO', |
|
| 420 | - 'info_messages_nb' => '@nb@ mesaĝoj', |
|
| 421 | - 'info_messages_un' => '1 mesaĝo', |
|
| 422 | - 'info_mise_en_ligne' => 'Dato de ĉeretigo : ', |
|
| 423 | - 'info_modification_parametres_securite' => 'modifoj de la sekuraj parametroj', |
|
| 424 | - 'info_mois_courant' => 'En la kuranta monato :', |
|
| 425 | - 'info_mot_cle_ajoute' => 'La jena ŝlosilvorto estas ligita kun', |
|
| 426 | - 'info_multi_herit' => 'Defaŭlta lingvo', |
|
| 427 | - 'info_multi_langues_soulignees' => 'Por la <u>substrekitaj lingvoj</u>, ĉiuj tekstoj de la interfaco estas tute aŭ parte tradukitaj. Kiam vi elektas tiujn lingvojn, multaj elementoj de la publika retejo (datenoj, formularoj) estos aŭtomate tradukitaj. Por la nesubstrekitaj lingvoj, tiuj elementoj afiŝiĝos en la ĉefa lingvo de la retejo.', |
|
| 428 | - 'info_multilinguisme' => 'Multlingvismo', |
|
| 429 | - 'info_nom_non_utilisateurs_connectes' => 'Via nomo ne aperas en la listo de la ensalutintaj uzantoj.', |
|
| 430 | - 'info_nom_utilisateurs_connectes' => 'Via nomo aperas en la listo de la ensalutintaj uzantoj.', |
|
| 431 | - 'info_nombre_en_ligne' => 'Nun ensalutintaj :', |
|
| 432 | - 'info_non_resultat' => 'Neniu rezulto por "@cherche_mot@"', |
|
| 433 | - 'info_non_utilisation_messagerie' => 'Vi ne uzas la internan mesaĝilon de tiu retejo.', |
|
| 434 | - 'info_nouveau_message' => 'VI HAVAS NOVAN MESAĜON', |
|
| 435 | - 'info_nouveaux_messages' => 'VI HAVAS @total_messages@ NOVA(J)N MESAĜO(J)N', |
|
| 436 | - 'info_numero_abbreviation' => 'N° ', |
|
| 437 | - 'info_obligatoire' => 'Tiu ĉi informo estas deviga', |
|
| 438 | - 'info_pense_bete' => 'MEMORIGILO', |
|
| 439 | - 'info_petit_ecran' => 'Eta ekrano', |
|
| 440 | - 'info_petition_close' => 'Petskribo fermita', |
|
| 441 | - 'info_pixels' => 'bilderoj', |
|
| 442 | - 'info_plusieurs_mots_trouves' => 'Pluraj ŝlosilvortoj trovitaj por "@cherche_mot@" :', |
|
| 443 | - 'info_portfolio_automatique' => 'Aŭtomata dokumentujo :', |
|
| 444 | - 'info_premier_resultat' => '[@debut_limit@ unuaj rezultoj el @total@]', |
|
| 445 | - 'info_premier_resultat_sur' => '[@debut_limit@ unuaj rezultoj el @total@]', |
|
| 446 | - 'info_propose_1' => '[@nom_site_spip@] Proponas : @titre@', |
|
| 447 | - 'info_propose_2' => 'Proponita artikolo |
|
| 392 | + 'info_fini' => 'Finite !', |
|
| 393 | + 'info_format_image' => 'Bildaj formatoj uzeblaj por krei vinjetojn : @gd_formats@.', |
|
| 394 | + 'info_format_non_defini' => 'nedefinita formato', |
|
| 395 | + 'info_grand_ecran' => 'Granda ekrano', |
|
| 396 | + 'info_image_aide' => 'HELPILO', |
|
| 397 | + 'info_image_process_titre' => 'Metodo pri vinjet-farado', |
|
| 398 | + 'info_impossible_lire_page' => '<b>Eraro !</b> Ne eblas legi la paĝon <tt> <html>@test_proxy@</html> </tt> tra la prokura servilo <tt>', |
|
| 399 | + 'info_installation_systeme_publication' => 'Instalo de la publikiga sistemo...', |
|
| 400 | + 'info_installer_documents' => 'Vi povas aŭtomate instali ĉiujn dokumentojn troviĝantajn en la dosiero @upload@.', |
|
| 401 | + 'info_installer_ftp' => 'Kiel mastrumanto, vi povas instali (FTP-e) dosierojn en la dosierujon @upload@ kaj poste rekte selekti ilin ĉi tie.', |
|
| 402 | + 'info_installer_images' => 'Vi povas instali bildojn je la formatoj JPEG, GIF kaj PNG.', |
|
| 403 | + 'info_installer_images_dossier' => 'Instali bildojn en la dosierujon @upload@ por povi ilin selekti ĉi tie.', |
|
| 404 | + 'info_interface_complete' => 'kompleta interfaco', |
|
| 405 | + 'info_interface_simple' => 'Simpla interfaco', |
|
| 406 | + 'info_joindre_document_article' => 'Vi povas ligi kun tiu artikolo dokumentojn tiajn, kiaj', |
|
| 407 | + 'info_joindre_document_rubrique' => 'Vi povas ligi kun tiu rubriko dokumentojn tiajn, kiaj', |
|
| 408 | + 'info_joindre_documents_article' => 'Vi povas ligi kun tiu artikolo dokumentojn tiajn, kiaj :', |
|
| 409 | + 'info_l_article' => 'la artikolo', |
|
| 410 | + 'info_la_breve' => 'la fulm-informo', |
|
| 411 | + 'info_la_rubrique' => 'la rubriko', |
|
| 412 | + 'info_langue_principale' => 'Ĉefa lingvo de la retejo', |
|
| 413 | + 'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ bilderoj', |
|
| 414 | + 'info_les_auteurs_1' => 'de @les_auteurs@', |
|
| 415 | + 'info_logo_format_interdit' => 'Nur vinjetoj je formatoj @formats@ estas permesataj.', |
|
| 416 | + 'info_logo_max_poids' => 'Vinjetoj devige pezu malpli ol @maxi@ (tiu dosiero pezas @actuel@).', |
|
| 417 | + 'info_mail_fournisseur' => '[email protected]', |
|
| 418 | + 'info_message_2' => 'MESAĜO', |
|
| 419 | + 'info_message_supprime' => 'FORIGITA MESAĜO', |
|
| 420 | + 'info_messages_nb' => '@nb@ mesaĝoj', |
|
| 421 | + 'info_messages_un' => '1 mesaĝo', |
|
| 422 | + 'info_mise_en_ligne' => 'Dato de ĉeretigo : ', |
|
| 423 | + 'info_modification_parametres_securite' => 'modifoj de la sekuraj parametroj', |
|
| 424 | + 'info_mois_courant' => 'En la kuranta monato :', |
|
| 425 | + 'info_mot_cle_ajoute' => 'La jena ŝlosilvorto estas ligita kun', |
|
| 426 | + 'info_multi_herit' => 'Defaŭlta lingvo', |
|
| 427 | + 'info_multi_langues_soulignees' => 'Por la <u>substrekitaj lingvoj</u>, ĉiuj tekstoj de la interfaco estas tute aŭ parte tradukitaj. Kiam vi elektas tiujn lingvojn, multaj elementoj de la publika retejo (datenoj, formularoj) estos aŭtomate tradukitaj. Por la nesubstrekitaj lingvoj, tiuj elementoj afiŝiĝos en la ĉefa lingvo de la retejo.', |
|
| 428 | + 'info_multilinguisme' => 'Multlingvismo', |
|
| 429 | + 'info_nom_non_utilisateurs_connectes' => 'Via nomo ne aperas en la listo de la ensalutintaj uzantoj.', |
|
| 430 | + 'info_nom_utilisateurs_connectes' => 'Via nomo aperas en la listo de la ensalutintaj uzantoj.', |
|
| 431 | + 'info_nombre_en_ligne' => 'Nun ensalutintaj :', |
|
| 432 | + 'info_non_resultat' => 'Neniu rezulto por "@cherche_mot@"', |
|
| 433 | + 'info_non_utilisation_messagerie' => 'Vi ne uzas la internan mesaĝilon de tiu retejo.', |
|
| 434 | + 'info_nouveau_message' => 'VI HAVAS NOVAN MESAĜON', |
|
| 435 | + 'info_nouveaux_messages' => 'VI HAVAS @total_messages@ NOVA(J)N MESAĜO(J)N', |
|
| 436 | + 'info_numero_abbreviation' => 'N° ', |
|
| 437 | + 'info_obligatoire' => 'Tiu ĉi informo estas deviga', |
|
| 438 | + 'info_pense_bete' => 'MEMORIGILO', |
|
| 439 | + 'info_petit_ecran' => 'Eta ekrano', |
|
| 440 | + 'info_petition_close' => 'Petskribo fermita', |
|
| 441 | + 'info_pixels' => 'bilderoj', |
|
| 442 | + 'info_plusieurs_mots_trouves' => 'Pluraj ŝlosilvortoj trovitaj por "@cherche_mot@" :', |
|
| 443 | + 'info_portfolio_automatique' => 'Aŭtomata dokumentujo :', |
|
| 444 | + 'info_premier_resultat' => '[@debut_limit@ unuaj rezultoj el @total@]', |
|
| 445 | + 'info_premier_resultat_sur' => '[@debut_limit@ unuaj rezultoj el @total@]', |
|
| 446 | + 'info_propose_1' => '[@nom_site_spip@] Proponas : @titre@', |
|
| 447 | + 'info_propose_2' => 'Proponita artikolo |
|
| 448 | 448 | ---------------', |
| 449 | - 'info_propose_3' => 'La artikolo "@titre@" estas proponita por publikigo.', |
|
| 450 | - 'info_propose_4' => 'Vi estas petata konsulti ĝin kaj doni vian opinion', |
|
| 451 | - 'info_propose_5' => 'en la forumo ligita al ĝi. Ĝi estas disponebla el la adreso :', |
|
| 452 | - 'info_publie_01' => 'La artikolo "@titre@" estis validigita de @connect_nom@.', |
|
| 453 | - 'info_publie_1' => '[@nom_site_spip@] PUBLIKIGAS : @titre@', |
|
| 454 | - 'info_publie_2' => 'Artikolo publikigita |
|
| 449 | + 'info_propose_3' => 'La artikolo "@titre@" estas proponita por publikigo.', |
|
| 450 | + 'info_propose_4' => 'Vi estas petata konsulti ĝin kaj doni vian opinion', |
|
| 451 | + 'info_propose_5' => 'en la forumo ligita al ĝi. Ĝi estas disponebla el la adreso :', |
|
| 452 | + 'info_publie_01' => 'La artikolo "@titre@" estis validigita de @connect_nom@.', |
|
| 453 | + 'info_publie_1' => '[@nom_site_spip@] PUBLIKIGAS : @titre@', |
|
| 454 | + 'info_publie_2' => 'Artikolo publikigita |
|
| 455 | 455 | --------------', |
| 456 | - 'info_rechercher' => 'Serĉi', |
|
| 457 | - 'info_rechercher_02' => 'Serĉi :', |
|
| 458 | - 'info_remplacer_vignette' => 'Anstataŭi la defaŭltan vinjeton per propra vinjeto :', |
|
| 459 | - 'info_rubriques_nb' => '@nb@ rubrikoj', |
|
| 460 | - 'info_rubriques_un' => '1 rubriko', |
|
| 461 | - 'info_sans_titre_2' => 'sen titolo', |
|
| 462 | - 'info_selectionner_fichier' => 'Vi povas selekti dosieron el la dosierujo @upload@', |
|
| 463 | - 'info_selectionner_fichier_2' => 'Elektu dosieron :', |
|
| 464 | - 'info_sites_nb' => '@nb@ retejoj', |
|
| 465 | - 'info_sites_un' => '1 retejo', |
|
| 466 | - 'info_supprimer_vignette' => 'forigi la vinjeton', |
|
| 467 | - 'info_symbole_bleu' => 'La <b>blua</b> simbolo indikas <b>memorigilon</b> : tio estas al vi persone adresata memoriga mesaĝo.', |
|
| 468 | - 'info_symbole_jaune' => 'La <b>flava</b> simbolo indikas <b>anoncon al ĉiuj redaktantoj</b> : modifebla de ĉiuj mastrumantoj, kaj videbla de ĉiuj redaktantoj.', |
|
| 469 | - 'info_symbole_vert' => 'La <b>verda</b> simbolo indikas la <b>mesaĝojn interŝanĝitajn kun aliaj uzantoj</b> de la retejo.', |
|
| 470 | - 'info_telecharger_nouveau_logo' => 'Alŝuti novan vinjeton :', |
|
| 471 | - 'info_telecharger_ordinateur' => 'Alŝuti ekde via komputilo :', |
|
| 472 | - 'info_tous_resultats_enregistres' => '[ĉiuj rezultoj estas registritaj]', |
|
| 473 | - 'info_tout_afficher' => 'Ĉion afiŝi', |
|
| 474 | - 'info_travaux_texte' => 'Tiu retejo ne jam estas konfigurita. Bonvolu reveni poste...', |
|
| 475 | - 'info_travaux_titre' => 'Retejo prilaborata ', |
|
| 476 | - 'info_trop_resultat' => 'Tro da rezultoj por "@cherche_mot@" ; bonvolu fajnigi la serĉokriteriojn.', |
|
| 477 | - 'info_utilisation_messagerie_interne' => 'Vi uzas la internan poŝton de tiu ĉi retejo.', |
|
| 478 | - 'info_valider_lien' => 'validigi tiun ĉi ligilon', |
|
| 479 | - 'info_verifier_image' => ', bonvolu kontroli ĉu viaj bildoj estas trafe transigitaj.', |
|
| 480 | - 'info_vignette_defaut' => 'Defaŭlta vinjeto', |
|
| 481 | - 'info_vignette_personnalisee' => 'Persona vinjeto', |
|
| 482 | - 'info_visite' => 'vizito :', |
|
| 483 | - 'info_vos_rendez_vous' => 'Viaj estontaj rendevuoj', |
|
| 484 | - 'infos_vos_pense_bete' => 'Viaj memorigiloj', |
|
| 456 | + 'info_rechercher' => 'Serĉi', |
|
| 457 | + 'info_rechercher_02' => 'Serĉi :', |
|
| 458 | + 'info_remplacer_vignette' => 'Anstataŭi la defaŭltan vinjeton per propra vinjeto :', |
|
| 459 | + 'info_rubriques_nb' => '@nb@ rubrikoj', |
|
| 460 | + 'info_rubriques_un' => '1 rubriko', |
|
| 461 | + 'info_sans_titre_2' => 'sen titolo', |
|
| 462 | + 'info_selectionner_fichier' => 'Vi povas selekti dosieron el la dosierujo @upload@', |
|
| 463 | + 'info_selectionner_fichier_2' => 'Elektu dosieron :', |
|
| 464 | + 'info_sites_nb' => '@nb@ retejoj', |
|
| 465 | + 'info_sites_un' => '1 retejo', |
|
| 466 | + 'info_supprimer_vignette' => 'forigi la vinjeton', |
|
| 467 | + 'info_symbole_bleu' => 'La <b>blua</b> simbolo indikas <b>memorigilon</b> : tio estas al vi persone adresata memoriga mesaĝo.', |
|
| 468 | + 'info_symbole_jaune' => 'La <b>flava</b> simbolo indikas <b>anoncon al ĉiuj redaktantoj</b> : modifebla de ĉiuj mastrumantoj, kaj videbla de ĉiuj redaktantoj.', |
|
| 469 | + 'info_symbole_vert' => 'La <b>verda</b> simbolo indikas la <b>mesaĝojn interŝanĝitajn kun aliaj uzantoj</b> de la retejo.', |
|
| 470 | + 'info_telecharger_nouveau_logo' => 'Alŝuti novan vinjeton :', |
|
| 471 | + 'info_telecharger_ordinateur' => 'Alŝuti ekde via komputilo :', |
|
| 472 | + 'info_tous_resultats_enregistres' => '[ĉiuj rezultoj estas registritaj]', |
|
| 473 | + 'info_tout_afficher' => 'Ĉion afiŝi', |
|
| 474 | + 'info_travaux_texte' => 'Tiu retejo ne jam estas konfigurita. Bonvolu reveni poste...', |
|
| 475 | + 'info_travaux_titre' => 'Retejo prilaborata ', |
|
| 476 | + 'info_trop_resultat' => 'Tro da rezultoj por "@cherche_mot@" ; bonvolu fajnigi la serĉokriteriojn.', |
|
| 477 | + 'info_utilisation_messagerie_interne' => 'Vi uzas la internan poŝton de tiu ĉi retejo.', |
|
| 478 | + 'info_valider_lien' => 'validigi tiun ĉi ligilon', |
|
| 479 | + 'info_verifier_image' => ', bonvolu kontroli ĉu viaj bildoj estas trafe transigitaj.', |
|
| 480 | + 'info_vignette_defaut' => 'Defaŭlta vinjeto', |
|
| 481 | + 'info_vignette_personnalisee' => 'Persona vinjeto', |
|
| 482 | + 'info_visite' => 'vizito :', |
|
| 483 | + 'info_vos_rendez_vous' => 'Viaj estontaj rendevuoj', |
|
| 484 | + 'infos_vos_pense_bete' => 'Viaj memorigiloj', |
|
| 485 | 485 | |
| 486 | - // L |
|
| 487 | - 'label_ajout_id_rapide' => 'Rapida aldono', |
|
| 488 | - 'label_poids_fichier' => 'Grandeco', |
|
| 489 | - 'lien_afficher_icones_seuls' => 'Afiŝi nur la piktogramojn', |
|
| 490 | - 'lien_afficher_texte_icones' => 'Afiŝi la piktogramojn kaj la tekston', |
|
| 491 | - 'lien_afficher_texte_seul' => 'Afiŝi nur la tekston', |
|
| 492 | - 'lien_liberer' => 'liberigi', |
|
| 493 | - 'lien_liberer_tous' => 'Liberigi ĉiujn', |
|
| 494 | - 'lien_nouvea_pense_bete' => 'NOVA MEMORIGILO', |
|
| 495 | - 'lien_nouveau_message' => 'NOVA MESAĜO', |
|
| 496 | - 'lien_nouvelle_annonce' => 'NOVA ANONCO', |
|
| 497 | - 'lien_petitions' => 'PETSKRIBO', |
|
| 498 | - 'lien_popularite' => 'populareco : @popularite@%', |
|
| 499 | - 'lien_racine_site' => 'RADIKO DE LA RETEJO', |
|
| 500 | - 'lien_reessayer' => 'reprovi', |
|
| 501 | - 'lien_repondre_message' => 'Respondi al tiu mesaĝo', |
|
| 502 | - 'lien_supprimer' => 'forigi', |
|
| 503 | - 'lien_tout_afficher' => 'Afiŝi ĉion', |
|
| 504 | - 'lien_visite_site' => 'viziti tiun retejon', |
|
| 505 | - 'lien_visites' => '@visites@ vizitoj', |
|
| 506 | - 'lien_voir_auteur' => 'Vidi tiun aŭtoron', |
|
| 507 | - 'ligne' => 'Linio', |
|
| 508 | - 'login' => 'Ensaluti', |
|
| 509 | - 'login_acces_prive' => 'aliro al la privata spaco', |
|
| 510 | - 'login_autre_identifiant' => 'ensaluti per alia salutnomo', |
|
| 511 | - 'login_cookie_accepte' => 'Bonvolu agordi vian retumilon por ke ĝi akceptu ilin (almenaŭ por tiu ĉi retejo).', |
|
| 512 | - 'login_cookie_oblige' => 'Por sekure ensalutiĝi en tiu retejo, vi devas akcepti la kuketojn.', |
|
| 513 | - 'login_deconnexion_ok' => 'Elsalutinta.', |
|
| 514 | - 'login_erreur_pass' => 'Pasvort-eraro.', |
|
| 515 | - 'login_espace_prive' => 'privata spaco', |
|
| 516 | - 'login_identifiant_inconnu' => 'La salutnomo « @login@ » estas nekonata.', |
|
| 517 | - 'login_login' => 'Salutnomo :', |
|
| 518 | - 'login_login2' => 'Salutnomo aŭ retpoŝtadreso :', |
|
| 519 | - 'login_login_pass_incorrect' => '(Salutnomo aŭ pasvorto ne valida.)', |
|
| 520 | - 'login_motpasseoublie' => 'ĉu pasvorto forgesita ?', |
|
| 521 | - 'login_non_securise' => 'Atentu, tiu formularo ne estas sekurigita ;. |
|
| 486 | + // L |
|
| 487 | + 'label_ajout_id_rapide' => 'Rapida aldono', |
|
| 488 | + 'label_poids_fichier' => 'Grandeco', |
|
| 489 | + 'lien_afficher_icones_seuls' => 'Afiŝi nur la piktogramojn', |
|
| 490 | + 'lien_afficher_texte_icones' => 'Afiŝi la piktogramojn kaj la tekston', |
|
| 491 | + 'lien_afficher_texte_seul' => 'Afiŝi nur la tekston', |
|
| 492 | + 'lien_liberer' => 'liberigi', |
|
| 493 | + 'lien_liberer_tous' => 'Liberigi ĉiujn', |
|
| 494 | + 'lien_nouvea_pense_bete' => 'NOVA MEMORIGILO', |
|
| 495 | + 'lien_nouveau_message' => 'NOVA MESAĜO', |
|
| 496 | + 'lien_nouvelle_annonce' => 'NOVA ANONCO', |
|
| 497 | + 'lien_petitions' => 'PETSKRIBO', |
|
| 498 | + 'lien_popularite' => 'populareco : @popularite@%', |
|
| 499 | + 'lien_racine_site' => 'RADIKO DE LA RETEJO', |
|
| 500 | + 'lien_reessayer' => 'reprovi', |
|
| 501 | + 'lien_repondre_message' => 'Respondi al tiu mesaĝo', |
|
| 502 | + 'lien_supprimer' => 'forigi', |
|
| 503 | + 'lien_tout_afficher' => 'Afiŝi ĉion', |
|
| 504 | + 'lien_visite_site' => 'viziti tiun retejon', |
|
| 505 | + 'lien_visites' => '@visites@ vizitoj', |
|
| 506 | + 'lien_voir_auteur' => 'Vidi tiun aŭtoron', |
|
| 507 | + 'ligne' => 'Linio', |
|
| 508 | + 'login' => 'Ensaluti', |
|
| 509 | + 'login_acces_prive' => 'aliro al la privata spaco', |
|
| 510 | + 'login_autre_identifiant' => 'ensaluti per alia salutnomo', |
|
| 511 | + 'login_cookie_accepte' => 'Bonvolu agordi vian retumilon por ke ĝi akceptu ilin (almenaŭ por tiu ĉi retejo).', |
|
| 512 | + 'login_cookie_oblige' => 'Por sekure ensalutiĝi en tiu retejo, vi devas akcepti la kuketojn.', |
|
| 513 | + 'login_deconnexion_ok' => 'Elsalutinta.', |
|
| 514 | + 'login_erreur_pass' => 'Pasvort-eraro.', |
|
| 515 | + 'login_espace_prive' => 'privata spaco', |
|
| 516 | + 'login_identifiant_inconnu' => 'La salutnomo « @login@ » estas nekonata.', |
|
| 517 | + 'login_login' => 'Salutnomo :', |
|
| 518 | + 'login_login2' => 'Salutnomo aŭ retpoŝtadreso :', |
|
| 519 | + 'login_login_pass_incorrect' => '(Salutnomo aŭ pasvorto ne valida.)', |
|
| 520 | + 'login_motpasseoublie' => 'ĉu pasvorto forgesita ?', |
|
| 521 | + 'login_non_securise' => 'Atentu, tiu formularo ne estas sekurigita ;. |
|
| 522 | 522 | Se vi ne volas ke via pasvorto estu fraŭde |
| 523 | 523 | interkaptita ĉe la reto, bonvolu aktivigi |
| 524 | 524 | Javascript-on en via retumilo', |
| 525 | - 'login_nouvelle_tentative' => 'Nova provo', |
|
| 526 | - 'login_par_ici' => 'Vi estas registrita... ĉi tien...', |
|
| 527 | - 'login_pass2' => 'Pasvorto :', |
|
| 528 | - 'login_preferez_refuser' => '<b>Se vi preferas rifuzi kuketojn</b>, alia konektometodo (malpli sekura) estas je via dispono :', |
|
| 529 | - 'login_recharger' => 'freŝigi tiun ĉi paĝon', |
|
| 530 | - 'login_rester_identifie' => 'Resti ensalutinta kelkajn tagojn', # MODIF |
|
| 531 | - 'login_retour_public' => 'Reen al la publika spaco', |
|
| 532 | - 'login_retour_site' => 'Reen al la publika spaco', |
|
| 533 | - 'login_retoursitepublic' => 'reen al la publika spaco', |
|
| 534 | - 'login_sans_cookie' => 'Ensaluto sen kuketo', |
|
| 535 | - 'login_securise' => 'Sekura salutnomo', |
|
| 536 | - 'login_sinscrire' => 'registriĝi', |
|
| 537 | - 'login_test_navigateur' => 'testo retumilo/rekonektiĝo', |
|
| 538 | - 'login_verifiez_navigateur' => '(Kontrolu tamen ke via retumilo ne memoras pri via pasvorto...)', |
|
| 525 | + 'login_nouvelle_tentative' => 'Nova provo', |
|
| 526 | + 'login_par_ici' => 'Vi estas registrita... ĉi tien...', |
|
| 527 | + 'login_pass2' => 'Pasvorto :', |
|
| 528 | + 'login_preferez_refuser' => '<b>Se vi preferas rifuzi kuketojn</b>, alia konektometodo (malpli sekura) estas je via dispono :', |
|
| 529 | + 'login_recharger' => 'freŝigi tiun ĉi paĝon', |
|
| 530 | + 'login_rester_identifie' => 'Resti ensalutinta kelkajn tagojn', # MODIF |
|
| 531 | + 'login_retour_public' => 'Reen al la publika spaco', |
|
| 532 | + 'login_retour_site' => 'Reen al la publika spaco', |
|
| 533 | + 'login_retoursitepublic' => 'reen al la publika spaco', |
|
| 534 | + 'login_sans_cookie' => 'Ensaluto sen kuketo', |
|
| 535 | + 'login_securise' => 'Sekura salutnomo', |
|
| 536 | + 'login_sinscrire' => 'registriĝi', |
|
| 537 | + 'login_test_navigateur' => 'testo retumilo/rekonektiĝo', |
|
| 538 | + 'login_verifiez_navigateur' => '(Kontrolu tamen ke via retumilo ne memoras pri via pasvorto...)', |
|
| 539 | 539 | |
| 540 | - // M |
|
| 541 | - 'masquer_colonne' => 'Kaŝi tiun ĉi kolumnon', |
|
| 542 | - 'masquer_trad' => 'kaŝi la tradukojn', |
|
| 543 | - 'message_nouveaux_identifiants_echec' => 'Ne eblas krei novajn ensalutilojn.', |
|
| 544 | - 'message_nouveaux_identifiants_echec_envoi' => 'Ne eblis sendi la novajn ensalutilojn.', |
|
| 545 | - 'message_nouveaux_identifiants_ok' => 'La novaj ensalutilojn estis senditaj al @email@.', |
|
| 546 | - 'module_fichiers_langues' => 'Dosieroj de lingvo', |
|
| 540 | + // M |
|
| 541 | + 'masquer_colonne' => 'Kaŝi tiun ĉi kolumnon', |
|
| 542 | + 'masquer_trad' => 'kaŝi la tradukojn', |
|
| 543 | + 'message_nouveaux_identifiants_echec' => 'Ne eblas krei novajn ensalutilojn.', |
|
| 544 | + 'message_nouveaux_identifiants_echec_envoi' => 'Ne eblis sendi la novajn ensalutilojn.', |
|
| 545 | + 'message_nouveaux_identifiants_ok' => 'La novaj ensalutilojn estis senditaj al @email@.', |
|
| 546 | + 'module_fichiers_langues' => 'Dosieroj de lingvo', |
|
| 547 | 547 | |
| 548 | - // N |
|
| 549 | - 'navigateur_pas_redirige' => 'Se via retumilo ne redirektiĝas, daŭrigu musklakante ĉi tie.', |
|
| 550 | - 'numero' => 'Numero', |
|
| 548 | + // N |
|
| 549 | + 'navigateur_pas_redirige' => 'Se via retumilo ne redirektiĝas, daŭrigu musklakante ĉi tie.', |
|
| 550 | + 'numero' => 'Numero', |
|
| 551 | 551 | |
| 552 | - // O |
|
| 553 | - 'occurence' => 'Trafo', |
|
| 554 | - 'onglet_affacer_base' => 'Forigi la datenbazon', |
|
| 555 | - 'onglet_auteur' => 'La aŭtoro', |
|
| 556 | - 'onglet_contenu_site' => 'Enhavo de la retejo', |
|
| 557 | - 'onglet_evolution_visite_mod' => 'Evoluado', |
|
| 558 | - 'onglet_fonctions_avances' => 'Ampleksaj funkcioj', |
|
| 559 | - 'onglet_informations_personnelles' => 'Personaj datenoj', |
|
| 560 | - 'onglet_interactivite' => 'Interagado', |
|
| 561 | - 'onglet_messagerie' => 'Mesaĝilo', |
|
| 562 | - 'onglet_repartition_rubrique' => 'Distribuo laŭ rubrikoj', |
|
| 563 | - 'onglet_save_restaur_base' => 'Savkopii/restaŭri la datenbazon', |
|
| 564 | - 'onglet_vider_cache' => 'Malplenigi la staplon', |
|
| 552 | + // O |
|
| 553 | + 'occurence' => 'Trafo', |
|
| 554 | + 'onglet_affacer_base' => 'Forigi la datenbazon', |
|
| 555 | + 'onglet_auteur' => 'La aŭtoro', |
|
| 556 | + 'onglet_contenu_site' => 'Enhavo de la retejo', |
|
| 557 | + 'onglet_evolution_visite_mod' => 'Evoluado', |
|
| 558 | + 'onglet_fonctions_avances' => 'Ampleksaj funkcioj', |
|
| 559 | + 'onglet_informations_personnelles' => 'Personaj datenoj', |
|
| 560 | + 'onglet_interactivite' => 'Interagado', |
|
| 561 | + 'onglet_messagerie' => 'Mesaĝilo', |
|
| 562 | + 'onglet_repartition_rubrique' => 'Distribuo laŭ rubrikoj', |
|
| 563 | + 'onglet_save_restaur_base' => 'Savkopii/restaŭri la datenbazon', |
|
| 564 | + 'onglet_vider_cache' => 'Malplenigi la staplon', |
|
| 565 | 565 | |
| 566 | - // P |
|
| 567 | - 'pass_choix_pass' => 'Bonvolu elekti vian novan pasvorton :', |
|
| 568 | - 'pass_erreur' => 'Eraro', |
|
| 569 | - 'pass_erreur_acces_refuse' => '<b>Eraro :</b> vi ne plu havas aliron al tiu retejo.', |
|
| 570 | - 'pass_erreur_code_inconnu' => '<b>Eraro :</b> tiu kodo kongruas kun neniu el la vizitantoj rajtantaj aliri tiun ĉi retejon.', |
|
| 571 | - 'pass_erreur_non_enregistre' => '<b>Eraro :</b> la retpoŝtadreso <tt>@email_oubli@</tt> ne estas registrita ĉi tie.', |
|
| 572 | - 'pass_erreur_non_valide' => '<b>Eraro :</b> tiu retpoŝtadreso <tt>@email_oubli@</tt> ne validas !', |
|
| 573 | - 'pass_erreur_probleme_technique' => '<b>Eraro :</b> pro teknika problemo, la retmesaĝo ne povas esti sendata.', |
|
| 574 | - 'pass_espace_prive_bla' => 'La privata spaco de tiu ĉi retejo estas malfermita al |
|
| 566 | + // P |
|
| 567 | + 'pass_choix_pass' => 'Bonvolu elekti vian novan pasvorton :', |
|
| 568 | + 'pass_erreur' => 'Eraro', |
|
| 569 | + 'pass_erreur_acces_refuse' => '<b>Eraro :</b> vi ne plu havas aliron al tiu retejo.', |
|
| 570 | + 'pass_erreur_code_inconnu' => '<b>Eraro :</b> tiu kodo kongruas kun neniu el la vizitantoj rajtantaj aliri tiun ĉi retejon.', |
|
| 571 | + 'pass_erreur_non_enregistre' => '<b>Eraro :</b> la retpoŝtadreso <tt>@email_oubli@</tt> ne estas registrita ĉi tie.', |
|
| 572 | + 'pass_erreur_non_valide' => '<b>Eraro :</b> tiu retpoŝtadreso <tt>@email_oubli@</tt> ne validas !', |
|
| 573 | + 'pass_erreur_probleme_technique' => '<b>Eraro :</b> pro teknika problemo, la retmesaĝo ne povas esti sendata.', |
|
| 574 | + 'pass_espace_prive_bla' => 'La privata spaco de tiu ĉi retejo estas malfermita al |
|
| 575 | 575 | vizitantoj, post ties registriĝo. Tio farita, vi povos |
| 576 | 576 | konsulti la redaktatajn artikolojn, proponi artikolojn |
| 577 | 577 | kaj partopreni en ĉiuj forumoj.', |
| 578 | - 'pass_forum_bla' => 'Vi petis por kontribui en forumo |
|
| 578 | + 'pass_forum_bla' => 'Vi petis por kontribui en forumo |
|
| 579 | 579 | rezervita al registritaj vizitantoj.', |
| 580 | - 'pass_indiquez_cidessous' => 'Indiku ĉi-sube la retpoŝtadreson laŭ kiu vi |
|
| 580 | + 'pass_indiquez_cidessous' => 'Indiku ĉi-sube la retpoŝtadreson laŭ kiu vi |
|
| 581 | 581 | antaŭe registriĝis. Vi |
| 582 | 582 | ricevos retmesaĝon kiu indikos al vi kion fari por |
| 583 | 583 | reakiri vian alir-rajton.', |
| 584 | - 'pass_mail_passcookie' => '(tio ĉi estas aŭtomata mesaĝo) |
|
| 584 | + 'pass_mail_passcookie' => '(tio ĉi estas aŭtomata mesaĝo) |
|
| 585 | 585 | Por reakiri alireblon al la retejo |
| 586 | 586 | @nom_site_spip@ (@adresse_site@) |
| 587 | 587 | |
@@ -593,144 +593,144 @@ discard block |
||
| 593 | 593 | kaj ensaluti. |
| 594 | 594 | |
| 595 | 595 | ', |
| 596 | - 'pass_mot_oublie' => 'Pasvorto forgesita', |
|
| 597 | - 'pass_nouveau_enregistre' => 'Via nova pasvorto estas registrita.', |
|
| 598 | - 'pass_nouveau_pass' => 'Nova pasvorto', |
|
| 599 | - 'pass_ok' => 'JES', |
|
| 600 | - 'pass_oubli_mot' => 'Pasvorto-forgeso', |
|
| 601 | - 'pass_procedure_changer' => 'Por ŝanĝi vian pasvorton, specifu al ni la asociitan retpoŝtadreson el via konto.', |
|
| 602 | - 'pass_quitter_fenetre' => 'Forlasi tiun fenestron', |
|
| 603 | - 'pass_rappel_login' => 'Memoru : via ensalutilo (salutnomo) estas « @login@ ».', |
|
| 604 | - 'pass_recevoir_mail' => 'Vi ricevos retmesaĝon indikantan al vi kiel retrovi vian aliron al la retejo.', # MODIF |
|
| 605 | - 'pass_retour_public' => 'Reen al la publika spaco', |
|
| 606 | - 'pass_rien_a_faire_ici' => 'Nenion por fari ĉi tie.', |
|
| 607 | - 'pass_vousinscrire' => 'Registriĝi ĉe tiu retejo', |
|
| 608 | - 'precedent' => 'antaŭan', |
|
| 609 | - 'previsualisation' => 'Antaŭrigardo', |
|
| 610 | - 'previsualiser' => 'Antaŭrigardi', |
|
| 596 | + 'pass_mot_oublie' => 'Pasvorto forgesita', |
|
| 597 | + 'pass_nouveau_enregistre' => 'Via nova pasvorto estas registrita.', |
|
| 598 | + 'pass_nouveau_pass' => 'Nova pasvorto', |
|
| 599 | + 'pass_ok' => 'JES', |
|
| 600 | + 'pass_oubli_mot' => 'Pasvorto-forgeso', |
|
| 601 | + 'pass_procedure_changer' => 'Por ŝanĝi vian pasvorton, specifu al ni la asociitan retpoŝtadreson el via konto.', |
|
| 602 | + 'pass_quitter_fenetre' => 'Forlasi tiun fenestron', |
|
| 603 | + 'pass_rappel_login' => 'Memoru : via ensalutilo (salutnomo) estas « @login@ ».', |
|
| 604 | + 'pass_recevoir_mail' => 'Vi ricevos retmesaĝon indikantan al vi kiel retrovi vian aliron al la retejo.', # MODIF |
|
| 605 | + 'pass_retour_public' => 'Reen al la publika spaco', |
|
| 606 | + 'pass_rien_a_faire_ici' => 'Nenion por fari ĉi tie.', |
|
| 607 | + 'pass_vousinscrire' => 'Registriĝi ĉe tiu retejo', |
|
| 608 | + 'precedent' => 'antaŭan', |
|
| 609 | + 'previsualisation' => 'Antaŭrigardo', |
|
| 610 | + 'previsualiser' => 'Antaŭrigardi', |
|
| 611 | 611 | |
| 612 | - // R |
|
| 613 | - 'retour' => 'Reen', |
|
| 612 | + // R |
|
| 613 | + 'retour' => 'Reen', |
|
| 614 | 614 | |
| 615 | - // S |
|
| 616 | - 'spip_conforme_dtd' => 'SPIP konsideras tiun dokumenton konforma al sia DOCTYPE :', |
|
| 617 | - 'squelette' => 'skeleto', |
|
| 618 | - 'squelette_inclus_ligne' => 'skeleto inkluzivita, linio', |
|
| 619 | - 'squelette_ligne' => 'skeleto, linio', |
|
| 620 | - 'stats_visites_et_popularite' => '@visites@ vizitoj ; populareco : @popularite@', |
|
| 621 | - 'suivant' => 'sekvanta', |
|
| 615 | + // S |
|
| 616 | + 'spip_conforme_dtd' => 'SPIP konsideras tiun dokumenton konforma al sia DOCTYPE :', |
|
| 617 | + 'squelette' => 'skeleto', |
|
| 618 | + 'squelette_inclus_ligne' => 'skeleto inkluzivita, linio', |
|
| 619 | + 'squelette_ligne' => 'skeleto, linio', |
|
| 620 | + 'stats_visites_et_popularite' => '@visites@ vizitoj ; populareco : @popularite@', |
|
| 621 | + 'suivant' => 'sekvanta', |
|
| 622 | 622 | |
| 623 | - // T |
|
| 624 | - 'taille_go' => '@taille@ Go', |
|
| 625 | - 'taille_ko' => '@taille@ kb', |
|
| 626 | - 'taille_mo' => '@taille@ Mb', |
|
| 627 | - 'taille_octets' => '@taille@ bitokoj', |
|
| 628 | - 'texte_actualite_site_1' => 'Kiam vi estos kutimiĝinta kun la interfaco, vi povos musklaki sur « ', |
|
| 629 | - 'texte_actualite_site_2' => 'kompleta interfaco', |
|
| 630 | - 'texte_actualite_site_3' => ' » por malfermi pliajn eblecojn.', |
|
| 631 | - 'texte_creation_automatique_vignette' => 'La aŭtomata kreado de antaŭrigardaj vinjetoj estas aktivigita ĉe tiu ĉi retejo. Se vi instalas pere de tiu ĉi formularo bildojn je la formato(j) @gd_formats@, ili estos akompanataj de vinjeto kun maksimuma grandeco de @taille_preview@ bilderoj.', |
|
| 632 | - 'texte_documents_associes' => 'La sekvantaj dokumentoj estas asociitaj al la artikolo, |
|
| 623 | + // T |
|
| 624 | + 'taille_go' => '@taille@ Go', |
|
| 625 | + 'taille_ko' => '@taille@ kb', |
|
| 626 | + 'taille_mo' => '@taille@ Mb', |
|
| 627 | + 'taille_octets' => '@taille@ bitokoj', |
|
| 628 | + 'texte_actualite_site_1' => 'Kiam vi estos kutimiĝinta kun la interfaco, vi povos musklaki sur « ', |
|
| 629 | + 'texte_actualite_site_2' => 'kompleta interfaco', |
|
| 630 | + 'texte_actualite_site_3' => ' » por malfermi pliajn eblecojn.', |
|
| 631 | + 'texte_creation_automatique_vignette' => 'La aŭtomata kreado de antaŭrigardaj vinjetoj estas aktivigita ĉe tiu ĉi retejo. Se vi instalas pere de tiu ĉi formularo bildojn je la formato(j) @gd_formats@, ili estos akompanataj de vinjeto kun maksimuma grandeco de @taille_preview@ bilderoj.', |
|
| 632 | + 'texte_documents_associes' => 'La sekvantaj dokumentoj estas asociitaj al la artikolo, |
|
| 633 | 633 | sed ili ne estis rekte enmetitaj en ĝin. |
| 634 | 634 | Laŭ la enpaĝigo de la publika spaco, |
| 635 | 635 | ili povos aperi en formo de alkroĉitaj dokumentoj.', |
| 636 | - 'texte_erreur_mise_niveau_base' => 'Datenbazo-eraro dum la alniveligo. |
|
| 636 | + 'texte_erreur_mise_niveau_base' => 'Datenbazo-eraro dum la alniveligo. |
|
| 637 | 637 | La bildo <b>@fichier@</b> ne transŝutiĝis (artikolo @id_article@). |
| 638 | 638 | Bone notu tiun referencon, reprovu la alniveligon, |
| 639 | 639 | kaj fine kontrolu ke la bildoj plu aperu |
| 640 | 640 | en la artikoloj.', |
| 641 | - 'texte_erreur_visiteur' => 'Vi provis eniri la privatan spacon pere de ne alir-rajtiga salutnomo.', |
|
| 642 | - 'texte_inc_auth_1' => 'Vi ensalutis laŭ la |
|
| 641 | + 'texte_erreur_visiteur' => 'Vi provis eniri la privatan spacon pere de ne alir-rajtiga salutnomo.', |
|
| 642 | + 'texte_inc_auth_1' => 'Vi ensalutis laŭ la |
|
| 643 | 643 | salutnomo <b>@auth_login@</b>, sed tiu ne/ne plu ekzistas en la datenbazo. |
| 644 | 644 | Provu', |
| 645 | - 'texte_inc_auth_2' => 'rekonektiĝi', |
|
| 646 | - 'texte_inc_auth_3' => ', post esti eventuale ferminta kaj |
|
| 645 | + 'texte_inc_auth_2' => 'rekonektiĝi', |
|
| 646 | + 'texte_inc_auth_3' => ', post esti eventuale ferminta kaj |
|
| 647 | 647 | restartiginta via retumilon.', |
| 648 | - 'texte_inc_config' => 'La ŝanĝoj faritaj en tiuj ĉi paĝoj influas grave la |
|
| 648 | + 'texte_inc_config' => 'La ŝanĝoj faritaj en tiuj ĉi paĝoj influas grave la |
|
| 649 | 649 | funkciadon de via retejo. Ni konsilas al vi ne plu interveni antaŭ ol esti pli |
| 650 | 650 | kutimiĝinta pri la funkciado de la SPIP-sistemo. <br /><br /><b>Pli |
| 651 | 651 | ĝenerale, estas tre konsilinde lasi la mastrumadon de tiuj ĉi paĝoj |
| 652 | 652 | sub la respondeco de la ĉefa retejestro .</b>', |
| 653 | - 'texte_inc_meta_1' => 'La sistemo detektis eraron dum skribado de la dosiero <code>@fichier@</code>. Bonvolu, kiel mastrumanto de la retejo,', |
|
| 654 | - 'texte_inc_meta_2' => 'kontroli la skriborajtojn', |
|
| 655 | - 'texte_inc_meta_3' => 'en la dosierujo <code>@repertoire@</code>.', |
|
| 656 | - 'texte_statut_en_cours_redaction' => 'Redaktataj', |
|
| 657 | - 'texte_statut_poubelle' => 'en rubujo', |
|
| 658 | - 'texte_statut_propose_evaluation' => 'proponita por taksado', |
|
| 659 | - 'texte_statut_publie' => 'rete publikigita', |
|
| 660 | - 'texte_statut_refuse' => 'rifuzita', |
|
| 661 | - 'titre_ajouter_mot_cle' => 'ALDONI ŜLOSILVORTON :', |
|
| 662 | - 'titre_cadre_raccourcis' => 'RAPIDAJ ALIROJ :', |
|
| 663 | - 'titre_changer_couleur_interface' => 'Ŝanĝi la koloron de la interfaco', |
|
| 664 | - 'titre_image_admin_article' => 'Vi povas mastrumi tiun ĉi artikolon', |
|
| 665 | - 'titre_image_administrateur' => 'Mastrumanto', |
|
| 666 | - 'titre_image_aide' => 'Helpo pri tiu elemento', |
|
| 667 | - 'titre_image_auteur_supprime' => 'Aŭtoro forigita', |
|
| 668 | - 'titre_image_redacteur' => 'Redaktanto sen alireblo', |
|
| 669 | - 'titre_image_redacteur_02' => 'Redaktanto', |
|
| 670 | - 'titre_image_selecteur' => 'Montri la liston', |
|
| 671 | - 'titre_image_visiteur' => 'Vizitanto', |
|
| 672 | - 'titre_joindre_document' => 'ALDONI DOKUMENTON', |
|
| 673 | - 'titre_mots_cles' => 'ŜLOSILVORTOJ', |
|
| 674 | - 'titre_probleme_technique' => 'Atentu : teknika problemo (SQL-servilo) malhelpas la aliron al tiu parto de la retejo. Dankon pro via komprenemo.', |
|
| 675 | - 'titre_publier_document' => 'PUBLIKIGI DOKUMENTON EN TIU ĈI RUBRIKO', |
|
| 676 | - 'titre_signatures_attente' => 'Subskriboj validotaj', |
|
| 677 | - 'titre_signatures_confirmees' => 'Subskriboj konfirmitaj', |
|
| 678 | - 'titre_statistiques' => 'Statistikoj de la retejo', |
|
| 679 | - 'titre_titre_document' => 'Titolo de la dokumento :', |
|
| 680 | - 'todo' => 'venonta', |
|
| 681 | - 'trad_definir_reference' => 'Elekti „@titre@“ kiel referenco de la tradukoj', |
|
| 682 | - 'trad_reference' => '(referenco de la traduktoj)', |
|
| 653 | + 'texte_inc_meta_1' => 'La sistemo detektis eraron dum skribado de la dosiero <code>@fichier@</code>. Bonvolu, kiel mastrumanto de la retejo,', |
|
| 654 | + 'texte_inc_meta_2' => 'kontroli la skriborajtojn', |
|
| 655 | + 'texte_inc_meta_3' => 'en la dosierujo <code>@repertoire@</code>.', |
|
| 656 | + 'texte_statut_en_cours_redaction' => 'Redaktataj', |
|
| 657 | + 'texte_statut_poubelle' => 'en rubujo', |
|
| 658 | + 'texte_statut_propose_evaluation' => 'proponita por taksado', |
|
| 659 | + 'texte_statut_publie' => 'rete publikigita', |
|
| 660 | + 'texte_statut_refuse' => 'rifuzita', |
|
| 661 | + 'titre_ajouter_mot_cle' => 'ALDONI ŜLOSILVORTON :', |
|
| 662 | + 'titre_cadre_raccourcis' => 'RAPIDAJ ALIROJ :', |
|
| 663 | + 'titre_changer_couleur_interface' => 'Ŝanĝi la koloron de la interfaco', |
|
| 664 | + 'titre_image_admin_article' => 'Vi povas mastrumi tiun ĉi artikolon', |
|
| 665 | + 'titre_image_administrateur' => 'Mastrumanto', |
|
| 666 | + 'titre_image_aide' => 'Helpo pri tiu elemento', |
|
| 667 | + 'titre_image_auteur_supprime' => 'Aŭtoro forigita', |
|
| 668 | + 'titre_image_redacteur' => 'Redaktanto sen alireblo', |
|
| 669 | + 'titre_image_redacteur_02' => 'Redaktanto', |
|
| 670 | + 'titre_image_selecteur' => 'Montri la liston', |
|
| 671 | + 'titre_image_visiteur' => 'Vizitanto', |
|
| 672 | + 'titre_joindre_document' => 'ALDONI DOKUMENTON', |
|
| 673 | + 'titre_mots_cles' => 'ŜLOSILVORTOJ', |
|
| 674 | + 'titre_probleme_technique' => 'Atentu : teknika problemo (SQL-servilo) malhelpas la aliron al tiu parto de la retejo. Dankon pro via komprenemo.', |
|
| 675 | + 'titre_publier_document' => 'PUBLIKIGI DOKUMENTON EN TIU ĈI RUBRIKO', |
|
| 676 | + 'titre_signatures_attente' => 'Subskriboj validotaj', |
|
| 677 | + 'titre_signatures_confirmees' => 'Subskriboj konfirmitaj', |
|
| 678 | + 'titre_statistiques' => 'Statistikoj de la retejo', |
|
| 679 | + 'titre_titre_document' => 'Titolo de la dokumento :', |
|
| 680 | + 'todo' => 'venonta', |
|
| 681 | + 'trad_definir_reference' => 'Elekti „@titre@“ kiel referenco de la tradukoj', |
|
| 682 | + 'trad_reference' => '(referenco de la traduktoj)', |
|
| 683 | 683 | |
| 684 | - // U |
|
| 685 | - 'upload_limit' => 'Tiu dosiero estas tro granda por la servilo : la maksimuma dosiergrando, kiam oni alŝutas, estas @max@.', |
|
| 684 | + // U |
|
| 685 | + 'upload_limit' => 'Tiu dosiero estas tro granda por la servilo : la maksimuma dosiergrando, kiam oni alŝutas, estas @max@.', |
|
| 686 | 686 | |
| 687 | - // Z |
|
| 688 | - 'zbug_balise_b_aval' => ' : posta B marko', |
|
| 689 | - 'zbug_balise_inexistante' => 'Marko @balise@ malbone deklarita por @from@', |
|
| 690 | - 'zbug_balise_sans_argument' => 'Mankas argumento en la marko @balise@', |
|
| 691 | - 'zbug_boucle' => 'iteracio', |
|
| 692 | - 'zbug_boucle_recursive_undef' => 'Nedifinita rekursia iteracio : @nom@', |
|
| 693 | - 'zbug_calcul' => 'komputado', |
|
| 694 | - 'zbug_champ_hors_boucle' => 'Kampo @champ@ eksteras iteracion', |
|
| 695 | - 'zbug_champ_hors_motif' => 'Kampo @champ@ eksteras kontekston @motif@', |
|
| 696 | - 'zbug_code' => 'kodo', |
|
| 697 | - 'zbug_critere_inconnu' => 'Nekonata kriterio @critere@', |
|
| 698 | - 'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} pri tabelo sen atoma ĉefŝlosilo', |
|
| 699 | - 'zbug_distant_interdit' => 'Ago ĉe tiu ekstera datenbazo malpermesata', |
|
| 700 | - 'zbug_doublon_table_sans_cle_primaire' => 'Duobloj uzitaj ĉe tabelo, kiu ne havas simplan ĉefŝlosilon', |
|
| 701 | - 'zbug_doublon_table_sans_index' => 'Duoblaĵoj en la datentabelo sen indekso', |
|
| 702 | - 'zbug_erreur_boucle_double' => 'Duobla difino de la interacio @id@', |
|
| 703 | - 'zbug_erreur_boucle_fermant' => 'Iteracio @id@ ne fermita', |
|
| 704 | - 'zbug_erreur_boucle_syntaxe' => 'Sintakso de la iteracia @id@ ne valida', |
|
| 705 | - 'zbug_erreur_compilation' => 'Kompil-eraro', |
|
| 706 | - 'zbug_erreur_execution_page' => 'Eraro dum plenumo', |
|
| 707 | - 'zbug_erreur_filtre' => 'Filtrilo @filtre@ nedifinita', |
|
| 708 | - 'zbug_erreur_meme_parent' => 'La kriterio {meme_parent} nur aplikiĝas je iteracioj (FORUMS) aŭ (RUBRIQUES)', |
|
| 709 | - 'zbug_erreur_squelette' => 'Eraro(j) en la skeleto', |
|
| 710 | - 'zbug_hors_compilation' => 'Ne kompilita', |
|
| 711 | - 'zbug_info_erreur_squelette' => 'Eraro ĉe la retejo', |
|
| 712 | - 'zbug_inversion_ordre_inexistant' => 'Inversigo de ne ekzistanta ordo', |
|
| 713 | - 'zbug_pagination_sans_critere' => 'Marko #PAGINATION senkriteria {pagination} aŭ uzata en rekursia iteracio', |
|
| 714 | - 'zbug_parametres_inclus_incorrects' => 'Ne korektaj inkludaj parametroj : @param@', |
|
| 715 | - 'zbug_profile' => 'Kalkuldaŭro : @time@', |
|
| 716 | - 'zbug_resultat' => 'rezulto', |
|
| 717 | - 'zbug_serveur_indefini' => 'Nedifinata SQL-servilo', |
|
| 718 | - 'zbug_statistiques' => 'statistikoj pri SQL-informpetoj ordigitaj laŭ daŭro', |
|
| 719 | - 'zbug_table_inconnue' => 'nekonata SQL « @table@ » tabelo', |
|
| 720 | - 'zxml_connus_attributs' => 'konataj atributoj', |
|
| 721 | - 'zxml_de' => 'de', |
|
| 722 | - 'zxml_inconnu_attribut' => 'nekonataj atributoj', |
|
| 723 | - 'zxml_inconnu_balise' => 'ne konita marko', |
|
| 724 | - 'zxml_inconnu_entite' => 'ne konata ento', |
|
| 725 | - 'zxml_inconnu_id' => 'ne konata ID', |
|
| 726 | - 'zxml_mais_de' => 'sed', |
|
| 727 | - 'zxml_non_conforme' => 'ne kongrua kun la motivo', |
|
| 728 | - 'zxml_non_fils' => 'ne estas filo de', |
|
| 729 | - 'zxml_nonvide_balise' => 'ne malplena marko', |
|
| 730 | - 'zxml_obligatoire_attribut' => 'deviga atributo sed foresta en', |
|
| 731 | - 'zxml_succession_fils_incorrecte' => 'sinsekvo de filoj korekta', |
|
| 732 | - 'zxml_survoler' => 'superflugi por ekvidi korektaĵojn', |
|
| 733 | - 'zxml_valeur_attribut' => 'atributa valoro', |
|
| 734 | - 'zxml_vide_balise' => 'malplena marko', |
|
| 735 | - 'zxml_vu' => 'antaŭe vidita' |
|
| 687 | + // Z |
|
| 688 | + 'zbug_balise_b_aval' => ' : posta B marko', |
|
| 689 | + 'zbug_balise_inexistante' => 'Marko @balise@ malbone deklarita por @from@', |
|
| 690 | + 'zbug_balise_sans_argument' => 'Mankas argumento en la marko @balise@', |
|
| 691 | + 'zbug_boucle' => 'iteracio', |
|
| 692 | + 'zbug_boucle_recursive_undef' => 'Nedifinita rekursia iteracio : @nom@', |
|
| 693 | + 'zbug_calcul' => 'komputado', |
|
| 694 | + 'zbug_champ_hors_boucle' => 'Kampo @champ@ eksteras iteracion', |
|
| 695 | + 'zbug_champ_hors_motif' => 'Kampo @champ@ eksteras kontekston @motif@', |
|
| 696 | + 'zbug_code' => 'kodo', |
|
| 697 | + 'zbug_critere_inconnu' => 'Nekonata kriterio @critere@', |
|
| 698 | + 'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} pri tabelo sen atoma ĉefŝlosilo', |
|
| 699 | + 'zbug_distant_interdit' => 'Ago ĉe tiu ekstera datenbazo malpermesata', |
|
| 700 | + 'zbug_doublon_table_sans_cle_primaire' => 'Duobloj uzitaj ĉe tabelo, kiu ne havas simplan ĉefŝlosilon', |
|
| 701 | + 'zbug_doublon_table_sans_index' => 'Duoblaĵoj en la datentabelo sen indekso', |
|
| 702 | + 'zbug_erreur_boucle_double' => 'Duobla difino de la interacio @id@', |
|
| 703 | + 'zbug_erreur_boucle_fermant' => 'Iteracio @id@ ne fermita', |
|
| 704 | + 'zbug_erreur_boucle_syntaxe' => 'Sintakso de la iteracia @id@ ne valida', |
|
| 705 | + 'zbug_erreur_compilation' => 'Kompil-eraro', |
|
| 706 | + 'zbug_erreur_execution_page' => 'Eraro dum plenumo', |
|
| 707 | + 'zbug_erreur_filtre' => 'Filtrilo @filtre@ nedifinita', |
|
| 708 | + 'zbug_erreur_meme_parent' => 'La kriterio {meme_parent} nur aplikiĝas je iteracioj (FORUMS) aŭ (RUBRIQUES)', |
|
| 709 | + 'zbug_erreur_squelette' => 'Eraro(j) en la skeleto', |
|
| 710 | + 'zbug_hors_compilation' => 'Ne kompilita', |
|
| 711 | + 'zbug_info_erreur_squelette' => 'Eraro ĉe la retejo', |
|
| 712 | + 'zbug_inversion_ordre_inexistant' => 'Inversigo de ne ekzistanta ordo', |
|
| 713 | + 'zbug_pagination_sans_critere' => 'Marko #PAGINATION senkriteria {pagination} aŭ uzata en rekursia iteracio', |
|
| 714 | + 'zbug_parametres_inclus_incorrects' => 'Ne korektaj inkludaj parametroj : @param@', |
|
| 715 | + 'zbug_profile' => 'Kalkuldaŭro : @time@', |
|
| 716 | + 'zbug_resultat' => 'rezulto', |
|
| 717 | + 'zbug_serveur_indefini' => 'Nedifinata SQL-servilo', |
|
| 718 | + 'zbug_statistiques' => 'statistikoj pri SQL-informpetoj ordigitaj laŭ daŭro', |
|
| 719 | + 'zbug_table_inconnue' => 'nekonata SQL « @table@ » tabelo', |
|
| 720 | + 'zxml_connus_attributs' => 'konataj atributoj', |
|
| 721 | + 'zxml_de' => 'de', |
|
| 722 | + 'zxml_inconnu_attribut' => 'nekonataj atributoj', |
|
| 723 | + 'zxml_inconnu_balise' => 'ne konita marko', |
|
| 724 | + 'zxml_inconnu_entite' => 'ne konata ento', |
|
| 725 | + 'zxml_inconnu_id' => 'ne konata ID', |
|
| 726 | + 'zxml_mais_de' => 'sed', |
|
| 727 | + 'zxml_non_conforme' => 'ne kongrua kun la motivo', |
|
| 728 | + 'zxml_non_fils' => 'ne estas filo de', |
|
| 729 | + 'zxml_nonvide_balise' => 'ne malplena marko', |
|
| 730 | + 'zxml_obligatoire_attribut' => 'deviga atributo sed foresta en', |
|
| 731 | + 'zxml_succession_fils_incorrecte' => 'sinsekvo de filoj korekta', |
|
| 732 | + 'zxml_survoler' => 'superflugi por ekvidi korektaĵojn', |
|
| 733 | + 'zxml_valeur_attribut' => 'atributa valoro', |
|
| 734 | + 'zxml_vide_balise' => 'malplena marko', |
|
| 735 | + 'zxml_vu' => 'antaŭe vidita' |
|
| 736 | 736 | ); |
@@ -4,579 +4,579 @@ discard block |
||
| 4 | 4 | // ** ne pas modifier le fichier ** |
| 5 | 5 | |
| 6 | 6 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 7 | - return; |
|
| 7 | + return; |
|
| 8 | 8 | } |
| 9 | 9 | |
| 10 | 10 | $GLOBALS[$GLOBALS['idx_lang']] = array( |
| 11 | 11 | |
| 12 | - // A |
|
| 13 | - 'access_interface_graphique' => 'Distreiñ d’an etrefas grafek klok', # Gwelloc'h e vije ober gant etrefas evit treiñ interface; heñveldra, grafek zo kalz komprenusoc'h eget kevregañ. Dreist-holl e vez komprenet gant an holl hag en implij emañ gant kalz a dud |
|
| 14 | - 'access_mode_texte' => 'diskouez an etrefas testenn eeun', |
|
| 15 | - 'admin_debug' => 'dizreinañ', |
|
| 16 | - 'admin_modifier_article' => 'Kemmañ ar pennad-mañ', |
|
| 17 | - 'admin_modifier_auteur' => 'Kemmañ ar skridaozer-mañ', |
|
| 18 | - 'admin_modifier_breve' => 'Kemmañ ar berrskrid-mañ', |
|
| 19 | - 'admin_modifier_mot' => 'Kemmañ ar ger-stur-mañ', |
|
| 20 | - 'admin_modifier_rubrique' => 'Kemmañ ar rubrikenn-mañ', |
|
| 21 | - 'admin_recalculer' => 'Hizivaat ar bajenn', |
|
| 22 | - 'afficher_calendrier' => 'Diskouez an deiziater', |
|
| 23 | - 'afficher_trad' => 'diskouez an troidigezhioù', |
|
| 24 | - 'alerte_maj_impossible' => '<b>Diwallit !</b> N’eus ket tu da hizivaat an diaz SQL etrezek ar stumm @version@, marteze abalamour d’ur gudenn aotre evit kemmañ an diaz titouroù. Mar plij kit e darempred gant ho herberc’hier.', |
|
| 25 | - 'alerte_modif_info_concourante' => 'DIWALLIT : Kemmet eo bet an titour-mañ en ul lec’h all. Setu an talvoud nevez :', |
|
| 26 | - 'analyse_xml' => 'Dielfennañ XML', |
|
| 27 | - 'annuler' => 'Nullañ', |
|
| 28 | - 'antispam_champ_vide' => 'Na lakait netra amañ :', |
|
| 29 | - 'articles_recents' => 'Pennadoù nevesañ', |
|
| 30 | - 'avis_1_erreur_saisie' => 'Ur fazi ho peus graet en ur skrivañ. Gwiriit ho testenn mar plij.', |
|
| 31 | - 'avis_archive_incorrect' => 'N’eo ket ar restr diell ur restr SPIP', |
|
| 32 | - 'avis_archive_invalide' => 'N’eo ket reizh ar restr diell', |
|
| 33 | - 'avis_attention' => 'DIWALLIT !', |
|
| 34 | - 'avis_champ_incorrect_type_objet' => 'Anv maezienn direizh @name@ evit un draezenn a seurt @type@', |
|
| 35 | - 'avis_colonne_inexistante' => 'N’eus ket eus ar bann @col@', |
|
| 36 | - 'avis_erreur' => 'Fazi: gwelet amañ a-is', |
|
| 37 | - 'avis_erreur_connexion' => 'Fazi kevreañ', |
|
| 38 | - 'avis_erreur_cookie' => 'kudenn toupin', |
|
| 39 | - 'avis_erreur_fonction_contexte' => 'Fazi programmiñ. Arabat d’an arc’hwel-mañ bezañ galvet er gendestenn-mañ.', |
|
| 40 | - 'avis_erreur_mysql' => 'Fazi SQL', |
|
| 41 | - 'avis_erreur_sauvegarde' => 'Fazi er savete (@type@ @id_objet@) !', |
|
| 42 | - 'avis_erreur_visiteur' => 'N’eus ket tu da dizhout al lodenn brevez', |
|
| 43 | - 'avis_nb_erreurs_saisie' => 'Bez ez eus @nb@ fazi en ho skrid. Gwiriit ho testenn mar plij.', |
|
| 12 | + // A |
|
| 13 | + 'access_interface_graphique' => 'Distreiñ d’an etrefas grafek klok', # Gwelloc'h e vije ober gant etrefas evit treiñ interface; heñveldra, grafek zo kalz komprenusoc'h eget kevregañ. Dreist-holl e vez komprenet gant an holl hag en implij emañ gant kalz a dud |
|
| 14 | + 'access_mode_texte' => 'diskouez an etrefas testenn eeun', |
|
| 15 | + 'admin_debug' => 'dizreinañ', |
|
| 16 | + 'admin_modifier_article' => 'Kemmañ ar pennad-mañ', |
|
| 17 | + 'admin_modifier_auteur' => 'Kemmañ ar skridaozer-mañ', |
|
| 18 | + 'admin_modifier_breve' => 'Kemmañ ar berrskrid-mañ', |
|
| 19 | + 'admin_modifier_mot' => 'Kemmañ ar ger-stur-mañ', |
|
| 20 | + 'admin_modifier_rubrique' => 'Kemmañ ar rubrikenn-mañ', |
|
| 21 | + 'admin_recalculer' => 'Hizivaat ar bajenn', |
|
| 22 | + 'afficher_calendrier' => 'Diskouez an deiziater', |
|
| 23 | + 'afficher_trad' => 'diskouez an troidigezhioù', |
|
| 24 | + 'alerte_maj_impossible' => '<b>Diwallit !</b> N’eus ket tu da hizivaat an diaz SQL etrezek ar stumm @version@, marteze abalamour d’ur gudenn aotre evit kemmañ an diaz titouroù. Mar plij kit e darempred gant ho herberc’hier.', |
|
| 25 | + 'alerte_modif_info_concourante' => 'DIWALLIT : Kemmet eo bet an titour-mañ en ul lec’h all. Setu an talvoud nevez :', |
|
| 26 | + 'analyse_xml' => 'Dielfennañ XML', |
|
| 27 | + 'annuler' => 'Nullañ', |
|
| 28 | + 'antispam_champ_vide' => 'Na lakait netra amañ :', |
|
| 29 | + 'articles_recents' => 'Pennadoù nevesañ', |
|
| 30 | + 'avis_1_erreur_saisie' => 'Ur fazi ho peus graet en ur skrivañ. Gwiriit ho testenn mar plij.', |
|
| 31 | + 'avis_archive_incorrect' => 'N’eo ket ar restr diell ur restr SPIP', |
|
| 32 | + 'avis_archive_invalide' => 'N’eo ket reizh ar restr diell', |
|
| 33 | + 'avis_attention' => 'DIWALLIT !', |
|
| 34 | + 'avis_champ_incorrect_type_objet' => 'Anv maezienn direizh @name@ evit un draezenn a seurt @type@', |
|
| 35 | + 'avis_colonne_inexistante' => 'N’eus ket eus ar bann @col@', |
|
| 36 | + 'avis_erreur' => 'Fazi: gwelet amañ a-is', |
|
| 37 | + 'avis_erreur_connexion' => 'Fazi kevreañ', |
|
| 38 | + 'avis_erreur_cookie' => 'kudenn toupin', |
|
| 39 | + 'avis_erreur_fonction_contexte' => 'Fazi programmiñ. Arabat d’an arc’hwel-mañ bezañ galvet er gendestenn-mañ.', |
|
| 40 | + 'avis_erreur_mysql' => 'Fazi SQL', |
|
| 41 | + 'avis_erreur_sauvegarde' => 'Fazi er savete (@type@ @id_objet@) !', |
|
| 42 | + 'avis_erreur_visiteur' => 'N’eus ket tu da dizhout al lodenn brevez', |
|
| 43 | + 'avis_nb_erreurs_saisie' => 'Bez ez eus @nb@ fazi en ho skrid. Gwiriit ho testenn mar plij.', |
|
| 44 | 44 | |
| 45 | - // B |
|
| 46 | - 'barre_a_accent_grave' => 'Ouzhpennañ un A (pennlizherenn) gant un tired-boud warnañ', |
|
| 47 | - 'barre_aide' => 'Implijit ar berradennoù tipografek evit pinvidikaat ar pajennaozañ', |
|
| 48 | - 'barre_e_accent_aigu' => 'Ouzhpennañ un E (pennlizherenn) gant un tired-lemm warnañ', |
|
| 49 | - 'barre_eo' => 'Ouzhpennañ un E en ’O’ (munud)', |
|
| 50 | - 'barre_eo_maj' => 'Ouzhpennañ un E en O (pennlizherenn)', |
|
| 51 | - 'barre_euro' => 'Ouzhpennañ an arouezenn €', |
|
| 52 | - 'barre_gras' => 'Lakaat e {{druz}}', |
|
| 53 | - 'barre_guillemets' => 'Gronnañ gant « krochedigoù »', |
|
| 54 | - 'barre_guillemets_simples' => 'Gronnañ gant krochedigoù a eil live', |
|
| 55 | - 'barre_intertitre' => 'Lakaat da {{{etretitl}}}', |
|
| 56 | - 'barre_italic' => 'Lakaat en {italek}', |
|
| 57 | - 'barre_lien' => 'Treiñ e [liamm gourskrid->http://...]', |
|
| 58 | - 'barre_lien_input' => 'Merkit chomlec’h ho liamm (gallout a rit reiñ ar chomlec’h a-stumm gant http://www.forzhpetra/com pe reiñ niverenn ur pennad eus al lec’hienn-mañ).', |
|
| 59 | - 'barre_note' => 'Lakaat da [[Notenn traoñ-pajenn]]', |
|
| 60 | - 'barre_paragraphe' => 'Krouiñ ur rannbennad', |
|
| 61 | - 'barre_quote' => '<quote>Menegiñ ur gemennadenn</quote>', |
|
| 62 | - 'bouton_changer' => 'Kemmañ', |
|
| 63 | - 'bouton_chercher' => 'Klask', |
|
| 64 | - 'bouton_choisir' => 'Dibab', |
|
| 65 | - 'bouton_deplacer' => 'Dilec’hiañ ', |
|
| 66 | - 'bouton_download' => 'Pellgargañ', |
|
| 67 | - 'bouton_enregistrer' => 'Enrollañ', |
|
| 68 | - 'bouton_radio_desactiver_messagerie_interne' => 'Diweredekaat ar postelerezh diabarzh', |
|
| 69 | - 'bouton_radio_envoi_annonces' => 'Kas ar c’hemennoù embann', |
|
| 70 | - 'bouton_radio_non_envoi_annonces' => 'Chom hep kas kemennoù', |
|
| 71 | - 'bouton_radio_non_envoi_liste_nouveautes' => 'Chom hep kas roll an nevezinti', |
|
| 72 | - 'bouton_recharger_page' => 'adkargañ ar bajenn-mañ', |
|
| 73 | - 'bouton_telecharger' => 'Pellgargañ', |
|
| 74 | - 'bouton_upload' => 'Pellgas', |
|
| 75 | - 'bouton_valider' => 'Kadarnaat', |
|
| 45 | + // B |
|
| 46 | + 'barre_a_accent_grave' => 'Ouzhpennañ un A (pennlizherenn) gant un tired-boud warnañ', |
|
| 47 | + 'barre_aide' => 'Implijit ar berradennoù tipografek evit pinvidikaat ar pajennaozañ', |
|
| 48 | + 'barre_e_accent_aigu' => 'Ouzhpennañ un E (pennlizherenn) gant un tired-lemm warnañ', |
|
| 49 | + 'barre_eo' => 'Ouzhpennañ un E en ’O’ (munud)', |
|
| 50 | + 'barre_eo_maj' => 'Ouzhpennañ un E en O (pennlizherenn)', |
|
| 51 | + 'barre_euro' => 'Ouzhpennañ an arouezenn €', |
|
| 52 | + 'barre_gras' => 'Lakaat e {{druz}}', |
|
| 53 | + 'barre_guillemets' => 'Gronnañ gant « krochedigoù »', |
|
| 54 | + 'barre_guillemets_simples' => 'Gronnañ gant krochedigoù a eil live', |
|
| 55 | + 'barre_intertitre' => 'Lakaat da {{{etretitl}}}', |
|
| 56 | + 'barre_italic' => 'Lakaat en {italek}', |
|
| 57 | + 'barre_lien' => 'Treiñ e [liamm gourskrid->http://...]', |
|
| 58 | + 'barre_lien_input' => 'Merkit chomlec’h ho liamm (gallout a rit reiñ ar chomlec’h a-stumm gant http://www.forzhpetra/com pe reiñ niverenn ur pennad eus al lec’hienn-mañ).', |
|
| 59 | + 'barre_note' => 'Lakaat da [[Notenn traoñ-pajenn]]', |
|
| 60 | + 'barre_paragraphe' => 'Krouiñ ur rannbennad', |
|
| 61 | + 'barre_quote' => '<quote>Menegiñ ur gemennadenn</quote>', |
|
| 62 | + 'bouton_changer' => 'Kemmañ', |
|
| 63 | + 'bouton_chercher' => 'Klask', |
|
| 64 | + 'bouton_choisir' => 'Dibab', |
|
| 65 | + 'bouton_deplacer' => 'Dilec’hiañ ', |
|
| 66 | + 'bouton_download' => 'Pellgargañ', |
|
| 67 | + 'bouton_enregistrer' => 'Enrollañ', |
|
| 68 | + 'bouton_radio_desactiver_messagerie_interne' => 'Diweredekaat ar postelerezh diabarzh', |
|
| 69 | + 'bouton_radio_envoi_annonces' => 'Kas ar c’hemennoù embann', |
|
| 70 | + 'bouton_radio_non_envoi_annonces' => 'Chom hep kas kemennoù', |
|
| 71 | + 'bouton_radio_non_envoi_liste_nouveautes' => 'Chom hep kas roll an nevezinti', |
|
| 72 | + 'bouton_recharger_page' => 'adkargañ ar bajenn-mañ', |
|
| 73 | + 'bouton_telecharger' => 'Pellgargañ', |
|
| 74 | + 'bouton_upload' => 'Pellgas', |
|
| 75 | + 'bouton_valider' => 'Kadarnaat', |
|
| 76 | 76 | |
| 77 | - // C |
|
| 78 | - 'cal_apresmidi' => 'endervezh', |
|
| 79 | - 'cal_jour_entier' => 'devezh a-bezh', |
|
| 80 | - 'cal_matin' => 'beure', |
|
| 81 | - 'cal_par_jour' => 'deiziataer deiz-ha-deiz', |
|
| 82 | - 'cal_par_mois' => 'deiziataer miz-ha-miz', |
|
| 83 | - 'cal_par_semaine' => 'deiziataer sizhun-ha-sizhun', |
|
| 84 | - 'choix_couleur_interface' => 'liv', |
|
| 85 | - 'choix_interface' => 'dibab an etrefas', |
|
| 86 | - 'colonne' => 'Bann', |
|
| 87 | - 'confirm_changer_statut' => 'Diwallit, goulennet hoc’h eus ma vo kemmet statud an elfenn-mañ. Ha mennet oc’h da genderc’hel ?', |
|
| 88 | - 'correcte' => 'reizh', |
|
| 77 | + // C |
|
| 78 | + 'cal_apresmidi' => 'endervezh', |
|
| 79 | + 'cal_jour_entier' => 'devezh a-bezh', |
|
| 80 | + 'cal_matin' => 'beure', |
|
| 81 | + 'cal_par_jour' => 'deiziataer deiz-ha-deiz', |
|
| 82 | + 'cal_par_mois' => 'deiziataer miz-ha-miz', |
|
| 83 | + 'cal_par_semaine' => 'deiziataer sizhun-ha-sizhun', |
|
| 84 | + 'choix_couleur_interface' => 'liv', |
|
| 85 | + 'choix_interface' => 'dibab an etrefas', |
|
| 86 | + 'colonne' => 'Bann', |
|
| 87 | + 'confirm_changer_statut' => 'Diwallit, goulennet hoc’h eus ma vo kemmet statud an elfenn-mañ. Ha mennet oc’h da genderc’hel ?', |
|
| 88 | + 'correcte' => 'reizh', |
|
| 89 | 89 | |
| 90 | - // D |
|
| 91 | - 'date_aujourdhui' => 'hiziv', |
|
| 92 | - 'date_avant_jc' => 'kent J.K.', |
|
| 93 | - 'date_dans' => 'a-benn @delai@', |
|
| 94 | - 'date_de_mois_1' => '@j@ @nommois@', |
|
| 95 | - 'date_de_mois_10' => '@j@ @nommois@', |
|
| 96 | - 'date_de_mois_11' => '@j@ @nommois@', |
|
| 97 | - 'date_de_mois_12' => '@j@ @nommois@', |
|
| 98 | - 'date_de_mois_2' => '@j@ @nommois@', |
|
| 99 | - 'date_de_mois_3' => '@j@ @nommois@', |
|
| 100 | - 'date_de_mois_4' => '@j@ @nommois@', |
|
| 101 | - 'date_de_mois_5' => '@j@ @nommois@', |
|
| 102 | - 'date_de_mois_6' => '@j@ @nommois@', |
|
| 103 | - 'date_de_mois_7' => '@j@ @nommois@', |
|
| 104 | - 'date_de_mois_8' => '@j@ @nommois@', |
|
| 105 | - 'date_de_mois_9' => '@j@ @nommois@', |
|
| 106 | - 'date_demain' => 'warc’hoazh', |
|
| 107 | - 'date_fmt_heures_minutes' => '@h@eur@m@munut', |
|
| 108 | - 'date_fmt_heures_minutes_court' => '@h@h@m@', |
|
| 109 | - 'date_fmt_jour' => '@nomjour@ @jour@', |
|
| 110 | - 'date_fmt_jour_heure' => '@jour@ da @heure@', |
|
| 111 | - 'date_fmt_jour_heure_debut_fin' => '@jour@ adalek @heure_debut@ betek @heure_fin@', |
|
| 112 | - 'date_fmt_jour_heure_debut_fin_abbr' => '@dtstart@@jour@ adalek @heure_debut@@dtabbr@ betek @dtend@@heure_fin@@dtabbr@', |
|
| 113 | - 'date_fmt_jour_mois' => '@jour@ a viz @nommois@', |
|
| 114 | - 'date_fmt_jour_mois_annee' => '@jour@ a viz @nommois@ @annee@', |
|
| 115 | - 'date_fmt_mois_annee' => '@nommois@ @annee@', |
|
| 116 | - 'date_fmt_nomjour' => '@nomjour@ @date@', |
|
| 117 | - 'date_fmt_nomjour_date' => '@nomjour@ @date@', |
|
| 118 | - 'date_fmt_periode' => 'Adalek @date_debut@ betek @date_fin@', |
|
| 119 | - 'date_fmt_periode_abbr' => 'Adalek @dtart@@date_debut@@dtabbr@ betek @dtend@@date_fin@@dtabbr@', |
|
| 120 | - 'date_fmt_periode_from' => 'Adalek', |
|
| 121 | - 'date_fmt_periode_to' => 'betek', |
|
| 122 | - 'date_fmt_saison_annee' => '@saison@ @annee@', |
|
| 123 | - 'date_heures' => 'eur', |
|
| 124 | - 'date_hier' => 'dec’h', |
|
| 125 | - 'date_il_y_a' => '@delai@ zo', |
|
| 126 | - 'date_jnum1' => '1añ', |
|
| 127 | - 'date_jnum10' => '10', |
|
| 128 | - 'date_jnum11' => '11', |
|
| 129 | - 'date_jnum12' => '12', |
|
| 130 | - 'date_jnum13' => '13', |
|
| 131 | - 'date_jnum14' => '14', |
|
| 132 | - 'date_jnum15' => '15', |
|
| 133 | - 'date_jnum16' => '16', |
|
| 134 | - 'date_jnum17' => '17', |
|
| 135 | - 'date_jnum18' => '18', |
|
| 136 | - 'date_jnum19' => '19', |
|
| 137 | - 'date_jnum2' => 'eil', |
|
| 138 | - 'date_jnum20' => '20', |
|
| 139 | - 'date_jnum21' => '21', |
|
| 140 | - 'date_jnum22' => '22', |
|
| 141 | - 'date_jnum23' => '23', |
|
| 142 | - 'date_jnum24' => '24', |
|
| 143 | - 'date_jnum25' => '25', |
|
| 144 | - 'date_jnum26' => '26', |
|
| 145 | - 'date_jnum27' => '27', |
|
| 146 | - 'date_jnum28' => '28', |
|
| 147 | - 'date_jnum29' => '29', |
|
| 148 | - 'date_jnum3' => '3', |
|
| 149 | - 'date_jnum30' => '30', |
|
| 150 | - 'date_jnum31' => '31', |
|
| 151 | - 'date_jnum4' => '4', |
|
| 152 | - 'date_jnum5' => '5', |
|
| 153 | - 'date_jnum6' => '6', |
|
| 154 | - 'date_jnum7' => '7', |
|
| 155 | - 'date_jnum8' => '8', |
|
| 156 | - 'date_jnum9' => '9', |
|
| 157 | - 'date_jour_1' => 'Sul', |
|
| 158 | - 'date_jour_1_abbr' => 'Sul', |
|
| 159 | - 'date_jour_1_initiale' => 'S.', |
|
| 160 | - 'date_jour_2' => 'Lun', |
|
| 161 | - 'date_jour_2_abbr' => 'Lun', |
|
| 162 | - 'date_jour_2_initiale' => 'L.', |
|
| 163 | - 'date_jour_3' => 'Meurzh', |
|
| 164 | - 'date_jour_3_abbr' => 'Meu.', |
|
| 165 | - 'date_jour_3_initiale' => 'M.', |
|
| 166 | - 'date_jour_4' => 'Merc’her', |
|
| 167 | - 'date_jour_4_abbr' => 'Mer.', |
|
| 168 | - 'date_jour_4_initiale' => 'M.', |
|
| 169 | - 'date_jour_5' => 'Yaou', |
|
| 170 | - 'date_jour_5_abbr' => 'Yaou', |
|
| 171 | - 'date_jour_5_initiale' => 'Y.', |
|
| 172 | - 'date_jour_6' => 'Gwener', |
|
| 173 | - 'date_jour_6_abbr' => 'Gwe.', |
|
| 174 | - 'date_jour_6_initiale' => 'Gw.', |
|
| 175 | - 'date_jour_7' => 'Sadorn', |
|
| 176 | - 'date_jour_7_abbr' => 'Sad.', |
|
| 177 | - 'date_jour_7_initiale' => 'S.', |
|
| 178 | - 'date_jours' => 'deiz', |
|
| 179 | - 'date_minutes' => 'munut', |
|
| 180 | - 'date_mois' => 'miz', |
|
| 181 | - 'date_mois_1' => 'Genver', |
|
| 182 | - 'date_mois_10' => 'Here', |
|
| 183 | - 'date_mois_10_abbr' => 'here.', |
|
| 184 | - 'date_mois_11' => 'Du', |
|
| 185 | - 'date_mois_11_abbr' => 'du.', |
|
| 186 | - 'date_mois_12' => 'Kerzu', |
|
| 187 | - 'date_mois_12_abbr' => 'kerzu.', |
|
| 188 | - 'date_mois_1_abbr' => 'genver.', |
|
| 189 | - 'date_mois_2' => 'C’hwevrer', |
|
| 190 | - 'date_mois_2_abbr' => 'c’hevrer.', |
|
| 191 | - 'date_mois_3' => 'Meurzh', |
|
| 192 | - 'date_mois_3_abbr' => 'Meurzh ', |
|
| 193 | - 'date_mois_4' => 'Ebrel', |
|
| 194 | - 'date_mois_4_abbr' => 'ebrel.', |
|
| 195 | - 'date_mois_5' => 'Mae', |
|
| 196 | - 'date_mois_5_abbr' => 'Mae', |
|
| 197 | - 'date_mois_6' => 'Mezheven', |
|
| 198 | - 'date_mois_6_abbr' => 'Mezheven', |
|
| 199 | - 'date_mois_7' => 'Gouere', |
|
| 200 | - 'date_mois_7_abbr' => 'gouere.', |
|
| 201 | - 'date_mois_8' => 'Eost', |
|
| 202 | - 'date_mois_8_abbr' => 'Eost', |
|
| 203 | - 'date_mois_9' => 'Gwengolo', |
|
| 204 | - 'date_mois_9_abbr' => 'gweng.', |
|
| 205 | - 'date_saison_1' => 'Goañv', |
|
| 206 | - 'date_saison_2' => 'nevez-amzer', |
|
| 207 | - 'date_saison_3' => 'hañv', |
|
| 208 | - 'date_saison_4' => 'diskar-amzer', |
|
| 209 | - 'date_secondes' => 'eilenn', |
|
| 210 | - 'date_semaines' => 'sizhun', |
|
| 211 | - 'date_un_mois' => 'miz', |
|
| 212 | - 'date_une_heure' => 'eur', |
|
| 213 | - 'date_une_minute' => 'munut', |
|
| 214 | - 'date_une_seconde' => 'eilenn', |
|
| 215 | - 'date_une_semaine' => 'sizhun', |
|
| 216 | - 'dirs_commencer' => 'a-benn kregiñ da vat gant ar staliadur', |
|
| 217 | - 'dirs_preliminaire' => 'A-raok kenderc’hel : <b>Renkañ ar gwirioù moned</b>', |
|
| 218 | - 'dirs_probleme_droits' => 'Kudenn gant ar gwirioù moned', |
|
| 219 | - 'dirs_repertoires_absents' => '<p><b>N’eo ket bet kavet ar c’havlec’hioù-mañ : </b></p><ul>@bad_dirs@.</ul> |
|
| 90 | + // D |
|
| 91 | + 'date_aujourdhui' => 'hiziv', |
|
| 92 | + 'date_avant_jc' => 'kent J.K.', |
|
| 93 | + 'date_dans' => 'a-benn @delai@', |
|
| 94 | + 'date_de_mois_1' => '@j@ @nommois@', |
|
| 95 | + 'date_de_mois_10' => '@j@ @nommois@', |
|
| 96 | + 'date_de_mois_11' => '@j@ @nommois@', |
|
| 97 | + 'date_de_mois_12' => '@j@ @nommois@', |
|
| 98 | + 'date_de_mois_2' => '@j@ @nommois@', |
|
| 99 | + 'date_de_mois_3' => '@j@ @nommois@', |
|
| 100 | + 'date_de_mois_4' => '@j@ @nommois@', |
|
| 101 | + 'date_de_mois_5' => '@j@ @nommois@', |
|
| 102 | + 'date_de_mois_6' => '@j@ @nommois@', |
|
| 103 | + 'date_de_mois_7' => '@j@ @nommois@', |
|
| 104 | + 'date_de_mois_8' => '@j@ @nommois@', |
|
| 105 | + 'date_de_mois_9' => '@j@ @nommois@', |
|
| 106 | + 'date_demain' => 'warc’hoazh', |
|
| 107 | + 'date_fmt_heures_minutes' => '@h@eur@m@munut', |
|
| 108 | + 'date_fmt_heures_minutes_court' => '@h@h@m@', |
|
| 109 | + 'date_fmt_jour' => '@nomjour@ @jour@', |
|
| 110 | + 'date_fmt_jour_heure' => '@jour@ da @heure@', |
|
| 111 | + 'date_fmt_jour_heure_debut_fin' => '@jour@ adalek @heure_debut@ betek @heure_fin@', |
|
| 112 | + 'date_fmt_jour_heure_debut_fin_abbr' => '@dtstart@@jour@ adalek @heure_debut@@dtabbr@ betek @dtend@@heure_fin@@dtabbr@', |
|
| 113 | + 'date_fmt_jour_mois' => '@jour@ a viz @nommois@', |
|
| 114 | + 'date_fmt_jour_mois_annee' => '@jour@ a viz @nommois@ @annee@', |
|
| 115 | + 'date_fmt_mois_annee' => '@nommois@ @annee@', |
|
| 116 | + 'date_fmt_nomjour' => '@nomjour@ @date@', |
|
| 117 | + 'date_fmt_nomjour_date' => '@nomjour@ @date@', |
|
| 118 | + 'date_fmt_periode' => 'Adalek @date_debut@ betek @date_fin@', |
|
| 119 | + 'date_fmt_periode_abbr' => 'Adalek @dtart@@date_debut@@dtabbr@ betek @dtend@@date_fin@@dtabbr@', |
|
| 120 | + 'date_fmt_periode_from' => 'Adalek', |
|
| 121 | + 'date_fmt_periode_to' => 'betek', |
|
| 122 | + 'date_fmt_saison_annee' => '@saison@ @annee@', |
|
| 123 | + 'date_heures' => 'eur', |
|
| 124 | + 'date_hier' => 'dec’h', |
|
| 125 | + 'date_il_y_a' => '@delai@ zo', |
|
| 126 | + 'date_jnum1' => '1añ', |
|
| 127 | + 'date_jnum10' => '10', |
|
| 128 | + 'date_jnum11' => '11', |
|
| 129 | + 'date_jnum12' => '12', |
|
| 130 | + 'date_jnum13' => '13', |
|
| 131 | + 'date_jnum14' => '14', |
|
| 132 | + 'date_jnum15' => '15', |
|
| 133 | + 'date_jnum16' => '16', |
|
| 134 | + 'date_jnum17' => '17', |
|
| 135 | + 'date_jnum18' => '18', |
|
| 136 | + 'date_jnum19' => '19', |
|
| 137 | + 'date_jnum2' => 'eil', |
|
| 138 | + 'date_jnum20' => '20', |
|
| 139 | + 'date_jnum21' => '21', |
|
| 140 | + 'date_jnum22' => '22', |
|
| 141 | + 'date_jnum23' => '23', |
|
| 142 | + 'date_jnum24' => '24', |
|
| 143 | + 'date_jnum25' => '25', |
|
| 144 | + 'date_jnum26' => '26', |
|
| 145 | + 'date_jnum27' => '27', |
|
| 146 | + 'date_jnum28' => '28', |
|
| 147 | + 'date_jnum29' => '29', |
|
| 148 | + 'date_jnum3' => '3', |
|
| 149 | + 'date_jnum30' => '30', |
|
| 150 | + 'date_jnum31' => '31', |
|
| 151 | + 'date_jnum4' => '4', |
|
| 152 | + 'date_jnum5' => '5', |
|
| 153 | + 'date_jnum6' => '6', |
|
| 154 | + 'date_jnum7' => '7', |
|
| 155 | + 'date_jnum8' => '8', |
|
| 156 | + 'date_jnum9' => '9', |
|
| 157 | + 'date_jour_1' => 'Sul', |
|
| 158 | + 'date_jour_1_abbr' => 'Sul', |
|
| 159 | + 'date_jour_1_initiale' => 'S.', |
|
| 160 | + 'date_jour_2' => 'Lun', |
|
| 161 | + 'date_jour_2_abbr' => 'Lun', |
|
| 162 | + 'date_jour_2_initiale' => 'L.', |
|
| 163 | + 'date_jour_3' => 'Meurzh', |
|
| 164 | + 'date_jour_3_abbr' => 'Meu.', |
|
| 165 | + 'date_jour_3_initiale' => 'M.', |
|
| 166 | + 'date_jour_4' => 'Merc’her', |
|
| 167 | + 'date_jour_4_abbr' => 'Mer.', |
|
| 168 | + 'date_jour_4_initiale' => 'M.', |
|
| 169 | + 'date_jour_5' => 'Yaou', |
|
| 170 | + 'date_jour_5_abbr' => 'Yaou', |
|
| 171 | + 'date_jour_5_initiale' => 'Y.', |
|
| 172 | + 'date_jour_6' => 'Gwener', |
|
| 173 | + 'date_jour_6_abbr' => 'Gwe.', |
|
| 174 | + 'date_jour_6_initiale' => 'Gw.', |
|
| 175 | + 'date_jour_7' => 'Sadorn', |
|
| 176 | + 'date_jour_7_abbr' => 'Sad.', |
|
| 177 | + 'date_jour_7_initiale' => 'S.', |
|
| 178 | + 'date_jours' => 'deiz', |
|
| 179 | + 'date_minutes' => 'munut', |
|
| 180 | + 'date_mois' => 'miz', |
|
| 181 | + 'date_mois_1' => 'Genver', |
|
| 182 | + 'date_mois_10' => 'Here', |
|
| 183 | + 'date_mois_10_abbr' => 'here.', |
|
| 184 | + 'date_mois_11' => 'Du', |
|
| 185 | + 'date_mois_11_abbr' => 'du.', |
|
| 186 | + 'date_mois_12' => 'Kerzu', |
|
| 187 | + 'date_mois_12_abbr' => 'kerzu.', |
|
| 188 | + 'date_mois_1_abbr' => 'genver.', |
|
| 189 | + 'date_mois_2' => 'C’hwevrer', |
|
| 190 | + 'date_mois_2_abbr' => 'c’hevrer.', |
|
| 191 | + 'date_mois_3' => 'Meurzh', |
|
| 192 | + 'date_mois_3_abbr' => 'Meurzh ', |
|
| 193 | + 'date_mois_4' => 'Ebrel', |
|
| 194 | + 'date_mois_4_abbr' => 'ebrel.', |
|
| 195 | + 'date_mois_5' => 'Mae', |
|
| 196 | + 'date_mois_5_abbr' => 'Mae', |
|
| 197 | + 'date_mois_6' => 'Mezheven', |
|
| 198 | + 'date_mois_6_abbr' => 'Mezheven', |
|
| 199 | + 'date_mois_7' => 'Gouere', |
|
| 200 | + 'date_mois_7_abbr' => 'gouere.', |
|
| 201 | + 'date_mois_8' => 'Eost', |
|
| 202 | + 'date_mois_8_abbr' => 'Eost', |
|
| 203 | + 'date_mois_9' => 'Gwengolo', |
|
| 204 | + 'date_mois_9_abbr' => 'gweng.', |
|
| 205 | + 'date_saison_1' => 'Goañv', |
|
| 206 | + 'date_saison_2' => 'nevez-amzer', |
|
| 207 | + 'date_saison_3' => 'hañv', |
|
| 208 | + 'date_saison_4' => 'diskar-amzer', |
|
| 209 | + 'date_secondes' => 'eilenn', |
|
| 210 | + 'date_semaines' => 'sizhun', |
|
| 211 | + 'date_un_mois' => 'miz', |
|
| 212 | + 'date_une_heure' => 'eur', |
|
| 213 | + 'date_une_minute' => 'munut', |
|
| 214 | + 'date_une_seconde' => 'eilenn', |
|
| 215 | + 'date_une_semaine' => 'sizhun', |
|
| 216 | + 'dirs_commencer' => 'a-benn kregiñ da vat gant ar staliadur', |
|
| 217 | + 'dirs_preliminaire' => 'A-raok kenderc’hel : <b>Renkañ ar gwirioù moned</b>', |
|
| 218 | + 'dirs_probleme_droits' => 'Kudenn gant ar gwirioù moned', |
|
| 219 | + 'dirs_repertoires_absents' => '<p><b>N’eo ket bet kavet ar c’havlec’hioù-mañ : </b></p><ul>@bad_dirs@.</ul> |
|
| 220 | 220 | <p>Posupl eo e vefe abalamour d’ur fazi impplij pennlizherennoù pe lizherennoù munut e lec’hioù fall. |
| 221 | 221 | Gwiriit e klot mat stumm lizherennoù ar c’havlec’hioù gant ar pezh zo diskouezet a-us; |
| 222 | 222 | ha ma ne glotont ket, adanvit anezho gant ho meziant FTP evit reizhañ ar gudenn.</p> |
| 223 | 223 | <p>Ur wech graet an dra-se e c’hellot </p>', |
| 224 | - 'dirs_repertoires_suivants' => '<p><b>N’haller ket skrivañ er c’havlec’hioù-mañ : </b></p><ul>@bad_dirs@.</ul> |
|
| 224 | + 'dirs_repertoires_suivants' => '<p><b>N’haller ket skrivañ er c’havlec’hioù-mañ : </b></p><ul>@bad_dirs@.</ul> |
|
| 225 | 225 | <p>Implijit ar meziant FTP a-benn kemmañ ar gwirioù evit pep hini. |
| 226 | 226 | Displeget eo an hentenn er sturlevr staliañ.</p> |
| 227 | 227 | <p>Ur wech graet se e c’helloc’h ', |
| 228 | - 'double_occurrence' => '@balise@ bet kavet div wech', |
|
| 228 | + 'double_occurrence' => '@balise@ bet kavet div wech', |
|
| 229 | 229 | |
| 230 | - // E |
|
| 231 | - 'en_cours' => 'war ober', |
|
| 232 | - 'envoi_via_le_site' => 'Kas dre al lec’hienn', |
|
| 233 | - 'erreur' => 'Fazi', |
|
| 234 | - 'erreur_balise_non_fermee' => 'Balizenn ziwezhañ chomet digor :', |
|
| 235 | - 'erreur_technique_ajaxform' => 'Gast ! Dre ur fazi dic’hortoz n’eus ket bet gellet kas ar furmenn. Klaskit ober en dro mar plij. |
|
| 230 | + // E |
|
| 231 | + 'en_cours' => 'war ober', |
|
| 232 | + 'envoi_via_le_site' => 'Kas dre al lec’hienn', |
|
| 233 | + 'erreur' => 'Fazi', |
|
| 234 | + 'erreur_balise_non_fermee' => 'Balizenn ziwezhañ chomet digor :', |
|
| 235 | + 'erreur_technique_ajaxform' => 'Gast ! Dre ur fazi dic’hortoz n’eus ket bet gellet kas ar furmenn. Klaskit ober en dro mar plij. |
|
| 236 | 236 | |
| 237 | 237 | ', |
| 238 | - 'erreur_technique_enregistrement_champs' => 'Miret eo bet enrolliñ mat al heuliad-gerioù @champs@ abalamour d’ur fazi teknikel.', |
|
| 239 | - 'erreur_technique_enregistrement_impossible' => 'Miret eo bet an enrolladenn abalamour d’ur fazi teknikel.', |
|
| 240 | - 'erreur_texte' => 'fazi', |
|
| 241 | - 'etape' => 'Pazenn', |
|
| 238 | + 'erreur_technique_enregistrement_champs' => 'Miret eo bet enrolliñ mat al heuliad-gerioù @champs@ abalamour d’ur fazi teknikel.', |
|
| 239 | + 'erreur_technique_enregistrement_impossible' => 'Miret eo bet an enrolladenn abalamour d’ur fazi teknikel.', |
|
| 240 | + 'erreur_texte' => 'fazi', |
|
| 241 | + 'etape' => 'Pazenn', |
|
| 242 | 242 | |
| 243 | - // F |
|
| 244 | - 'fichier_introuvable' => 'Restr @fichier@ dibosupl da gavout', # MODIF |
|
| 245 | - 'form_auteur_confirmation' => 'Gwirekait ho postel', |
|
| 246 | - 'form_auteur_email_modifie' => 'Ho postel a zo bet kemmet.', |
|
| 247 | - 'form_auteur_envoi_mail_confirmation' => 'Ur postel a wiriekadur a zo paouez bezañ kaset da @email@. Ret eo deoc’h mont da welet ar chomlec’h merket e-barzh al lizher-se evit gwiriekaat ho postel.', |
|
| 248 | - 'form_auteur_mail_confirmation' => 'Demat, |
|
| 243 | + // F |
|
| 244 | + 'fichier_introuvable' => 'Restr @fichier@ dibosupl da gavout', # MODIF |
|
| 245 | + 'form_auteur_confirmation' => 'Gwirekait ho postel', |
|
| 246 | + 'form_auteur_email_modifie' => 'Ho postel a zo bet kemmet.', |
|
| 247 | + 'form_auteur_envoi_mail_confirmation' => 'Ur postel a wiriekadur a zo paouez bezañ kaset da @email@. Ret eo deoc’h mont da welet ar chomlec’h merket e-barzh al lizher-se evit gwiriekaat ho postel.', |
|
| 248 | + 'form_auteur_mail_confirmation' => 'Demat, |
|
| 249 | 249 | |
| 250 | 250 | Goulennet ho peus cheñch ho postel. |
| 251 | 251 | Evit gwiriekaat ho postel nevez, n’ho peus nemet kevreañ d’ar chomlec’h amañ dindan (e-giz-all e vo dianavezet ho koulenn) : |
| 252 | 252 | |
| 253 | 253 | @url@ |
| 254 | 254 | ', |
| 255 | - 'form_deja_inscrit' => 'Enskrivet oc’h c’hoazh.', |
|
| 256 | - 'form_email_non_valide' => 'N’eo ket reizh ho postel.', |
|
| 257 | - 'form_forum_access_refuse' => 'N’oc’h ket aotreet da vont war al lec’hienn-mañ ken.', |
|
| 258 | - 'form_forum_bonjour' => 'Demat @nom@,', |
|
| 259 | - 'form_forum_confirmer_email' => 'Evit gwiriekaat ho postel, mont d’ar chomlec’h : |
|
| 255 | + 'form_deja_inscrit' => 'Enskrivet oc’h c’hoazh.', |
|
| 256 | + 'form_email_non_valide' => 'N’eo ket reizh ho postel.', |
|
| 257 | + 'form_forum_access_refuse' => 'N’oc’h ket aotreet da vont war al lec’hienn-mañ ken.', |
|
| 258 | + 'form_forum_bonjour' => 'Demat @nom@,', |
|
| 259 | + 'form_forum_confirmer_email' => 'Evit gwiriekaat ho postel, mont d’ar chomlec’h : |
|
| 260 | 260 | @url_confirm@', |
| 261 | - 'form_forum_email_deja_enregistre' => 'Enrollet eo ar postel-se dija. Gallout a rit ober gant ho ker-tremen boas neuze.', |
|
| 262 | - 'form_forum_identifiant_mail' => 'Emañ ho kod moned nevez o paouez bezañ kaset deoc’h dre bostel.', |
|
| 263 | - 'form_forum_identifiants' => 'Titouroù hiniennel', |
|
| 264 | - 'form_forum_indiquer_nom_email' => 'Skrivit amañ hoc’h anv hag ho postel. Kaset e vo deoc’h buan ho titouroù hiniennel dre bostel.', |
|
| 265 | - 'form_forum_login' => 'Kod kevreañ :', |
|
| 266 | - 'form_forum_message_auto' => '(ur gemennadenn emgefre eo homañ)', |
|
| 267 | - 'form_forum_pass' => 'ger-tremen :', |
|
| 268 | - 'form_forum_probleme_mail' => 'Kudenn postel : n’haller ket kas an titouroù.', |
|
| 269 | - 'form_forum_voici1' => 'Setu ho titouroù evit gallout kemer perzh e buhez "@nom_site_spip@" (@adresse_site@) :', |
|
| 270 | - 'form_forum_voici2' => 'Setu ho titouroù evit gallout kinnig pennadoù war "@nom_site_spip@" (@adresse_login@) :', |
|
| 271 | - 'form_indiquer_email' => 'Skrivit ho postel mar plij.', |
|
| 272 | - 'form_indiquer_nom' => 'Skrivit hoc’h anv mar plij.', |
|
| 273 | - 'form_indiquer_nom_site' => 'Skrivit anv ho lec’hienn.', |
|
| 274 | - 'form_pet_deja_enregistre' => 'Enrollet eo al lec’hienn-mañ c’hoazh', |
|
| 275 | - 'form_pet_signature_pasprise' => 'N’eus ket bet dalc’het kont eus ho sinadur.', |
|
| 276 | - 'form_prop_confirmer_envoi' => 'Kadarnaat ar c’has', |
|
| 277 | - 'form_prop_description' => 'Deskrivadur/evezhiadenn', |
|
| 278 | - 'form_prop_enregistre' => 'Enrollet eo bet ho kinnig. Embannet e vo goude bezañ bet asantet gant tud e-karg eus al lec’hienn-mañ.', |
|
| 279 | - 'form_prop_envoyer' => 'Kas ur gemenadenn', |
|
| 280 | - 'form_prop_indiquer_email' => 'Merkit ur postel reizh mar plij', |
|
| 281 | - 'form_prop_indiquer_nom_site' => 'Merkit anv al lec’hienn.', |
|
| 282 | - 'form_prop_indiquer_sujet' => 'Merkit ur sujed', |
|
| 283 | - 'form_prop_message_envoye' => 'Kaset eo bet ar gemennadenn', |
|
| 284 | - 'form_prop_non_enregistre' => 'N’eo ket bet enrollet ho kinnig', |
|
| 285 | - 'form_prop_sujet' => 'Sujed', |
|
| 286 | - 'form_prop_url_site' => 'Chomlec’h (URL) al lec’hienn', |
|
| 287 | - 'format_date_incorrecte' => 'N’eo ket reizh an deiziad pe e stumm.', |
|
| 288 | - 'format_heure_incorrecte' => 'N’eo ket reizh an eur pe he stumm.', |
|
| 289 | - 'forum_non_inscrit' => 'N’oc’h ket enskrivet, pe direizh eo ar ger-tremen pe ar chomlec’h.', |
|
| 290 | - 'forum_par_auteur' => 'gant @auteur@', |
|
| 291 | - 'forum_titre_erreur' => 'Fazi...', |
|
| 261 | + 'form_forum_email_deja_enregistre' => 'Enrollet eo ar postel-se dija. Gallout a rit ober gant ho ker-tremen boas neuze.', |
|
| 262 | + 'form_forum_identifiant_mail' => 'Emañ ho kod moned nevez o paouez bezañ kaset deoc’h dre bostel.', |
|
| 263 | + 'form_forum_identifiants' => 'Titouroù hiniennel', |
|
| 264 | + 'form_forum_indiquer_nom_email' => 'Skrivit amañ hoc’h anv hag ho postel. Kaset e vo deoc’h buan ho titouroù hiniennel dre bostel.', |
|
| 265 | + 'form_forum_login' => 'Kod kevreañ :', |
|
| 266 | + 'form_forum_message_auto' => '(ur gemennadenn emgefre eo homañ)', |
|
| 267 | + 'form_forum_pass' => 'ger-tremen :', |
|
| 268 | + 'form_forum_probleme_mail' => 'Kudenn postel : n’haller ket kas an titouroù.', |
|
| 269 | + 'form_forum_voici1' => 'Setu ho titouroù evit gallout kemer perzh e buhez "@nom_site_spip@" (@adresse_site@) :', |
|
| 270 | + 'form_forum_voici2' => 'Setu ho titouroù evit gallout kinnig pennadoù war "@nom_site_spip@" (@adresse_login@) :', |
|
| 271 | + 'form_indiquer_email' => 'Skrivit ho postel mar plij.', |
|
| 272 | + 'form_indiquer_nom' => 'Skrivit hoc’h anv mar plij.', |
|
| 273 | + 'form_indiquer_nom_site' => 'Skrivit anv ho lec’hienn.', |
|
| 274 | + 'form_pet_deja_enregistre' => 'Enrollet eo al lec’hienn-mañ c’hoazh', |
|
| 275 | + 'form_pet_signature_pasprise' => 'N’eus ket bet dalc’het kont eus ho sinadur.', |
|
| 276 | + 'form_prop_confirmer_envoi' => 'Kadarnaat ar c’has', |
|
| 277 | + 'form_prop_description' => 'Deskrivadur/evezhiadenn', |
|
| 278 | + 'form_prop_enregistre' => 'Enrollet eo bet ho kinnig. Embannet e vo goude bezañ bet asantet gant tud e-karg eus al lec’hienn-mañ.', |
|
| 279 | + 'form_prop_envoyer' => 'Kas ur gemenadenn', |
|
| 280 | + 'form_prop_indiquer_email' => 'Merkit ur postel reizh mar plij', |
|
| 281 | + 'form_prop_indiquer_nom_site' => 'Merkit anv al lec’hienn.', |
|
| 282 | + 'form_prop_indiquer_sujet' => 'Merkit ur sujed', |
|
| 283 | + 'form_prop_message_envoye' => 'Kaset eo bet ar gemennadenn', |
|
| 284 | + 'form_prop_non_enregistre' => 'N’eo ket bet enrollet ho kinnig', |
|
| 285 | + 'form_prop_sujet' => 'Sujed', |
|
| 286 | + 'form_prop_url_site' => 'Chomlec’h (URL) al lec’hienn', |
|
| 287 | + 'format_date_incorrecte' => 'N’eo ket reizh an deiziad pe e stumm.', |
|
| 288 | + 'format_heure_incorrecte' => 'N’eo ket reizh an eur pe he stumm.', |
|
| 289 | + 'forum_non_inscrit' => 'N’oc’h ket enskrivet, pe direizh eo ar ger-tremen pe ar chomlec’h.', |
|
| 290 | + 'forum_par_auteur' => 'gant @auteur@', |
|
| 291 | + 'forum_titre_erreur' => 'Fazi...', |
|
| 292 | 292 | |
| 293 | - // I |
|
| 294 | - 'ical_texte_rss_articles' => 'D’ar chomlec’h-mañ emañ restr «backend» ar pennadoù :', |
|
| 295 | - 'ical_texte_rss_articles2' => 'Gallout a rit kaout restroù «backend» evit pennadoù pep rummad al lec’hienn ivez :', |
|
| 296 | - 'ical_texte_rss_breves' => 'Bez’ ez eus ivez ur restr enni berrskridoù al lec’hienn. Ma resisait niverenn ur rubrikenn, n’ho po nemet berrskridoù ar rubrikenn-se.', |
|
| 297 | - 'icone_a_suivre' => 'Da genderc’hel', |
|
| 298 | - 'icone_admin_site' => 'Merañ al lec’hienn', |
|
| 299 | - 'icone_agenda' => 'Deiziataer', |
|
| 300 | - 'icone_aide_ligne' => 'Skoazell', |
|
| 301 | - 'icone_articles' => 'Pennadoù', |
|
| 302 | - 'icone_auteurs' => 'Skridaozerien', |
|
| 303 | - 'icone_brouteur' => 'Merdeiñ prim', |
|
| 304 | - 'icone_configuration_site' => 'Kefluniañ ', |
|
| 305 | - 'icone_configurer_site' => 'Kefluniañ ho lec’hienn', |
|
| 306 | - 'icone_creer_nouvel_auteur' => 'Krouiñ ur skridaozer nevez', |
|
| 307 | - 'icone_creer_rubrique' => 'Krouiñ ur rubrikenn', |
|
| 308 | - 'icone_creer_sous_rubrique' => 'Krouiñ un isrubrikenn', |
|
| 309 | - 'icone_deconnecter' => 'Digevreañ', |
|
| 310 | - 'icone_discussions' => 'Kaozeadennoù', |
|
| 311 | - 'icone_doc_rubrique' => 'Teulioù ar rubrikennoù', |
|
| 312 | - 'icone_ecrire_article' => 'Skrivañ ur pennad nevez', |
|
| 313 | - 'icone_edition_site' => 'Embann', |
|
| 314 | - 'icone_gestion_langues' => 'Merañ ar yezhoù', |
|
| 315 | - 'icone_informations_personnelles' => 'Titouroù hiniennel', |
|
| 316 | - 'icone_interface_complet' => 'Etrefas klok', |
|
| 317 | - 'icone_interface_simple' => 'Etrefas eeunaet', |
|
| 318 | - 'icone_maintenance_site' => 'Ober war-dro al lec’hienn', |
|
| 319 | - 'icone_messagerie_personnelle' => 'Postelerezh hiniennel', |
|
| 320 | - 'icone_repartition_debut' => 'Diskouez an dasparzh abaoe an deroù', |
|
| 321 | - 'icone_rubriques' => 'Rubrikennoù', |
|
| 322 | - 'icone_sauver_site' => 'Saveteiñ al lec’hienn', |
|
| 323 | - 'icone_site_entier' => 'Al lec’hienn a-bezh', |
|
| 324 | - 'icone_sites_references' => 'Lec’hiennoù menegeret', |
|
| 325 | - 'icone_statistiques' => 'Stadegoù al lec’hienn', |
|
| 326 | - 'icone_suivi_activite' => 'Heuliañ buhez al lec’hienn', |
|
| 327 | - 'icone_suivi_actualite' => 'Emdroadur al lec’hienn', |
|
| 328 | - 'icone_suivi_pettions' => 'Heuliañ/merañ ar sinadegoù', |
|
| 329 | - 'icone_suivi_revisions' => 'Kemmoù ar pennadoù', |
|
| 330 | - 'icone_supprimer_document' => 'Diverkañ an teul-mañ', |
|
| 331 | - 'icone_supprimer_image' => 'Diverkañ ar skeudenn-mañ', |
|
| 332 | - 'icone_tous_articles' => 'Ho holl bennadoù', |
|
| 333 | - 'icone_tous_auteur' => 'An holl skridaozerien', |
|
| 334 | - 'icone_tous_visiteur' => 'An holl gweladerien', |
|
| 335 | - 'icone_visiter_site' => 'Gweladenniñ al lec’hienn foran', |
|
| 336 | - 'icone_voir_en_ligne' => 'Gwelet enlinenn', |
|
| 337 | - 'img_indisponible' => 'skeudenn dibosupl da gaout', |
|
| 338 | - 'impossible' => 'dibosupl', |
|
| 339 | - 'info_a_suivre' => 'DA GENDERC’HEL»', |
|
| 340 | - 'info_acces_interdit' => 'Difennet mont tre', |
|
| 341 | - 'info_acces_refuse' => 'Nac’het eo bet deoc’h mon tre', |
|
| 342 | - 'info_action' => 'Oberiadenn : @action@', |
|
| 343 | - 'info_administrer_rubriques' => 'Gallout a rit merañ ar rubrikenn-mañ hag an isrubrikenndoù enni', |
|
| 344 | - 'info_adresse_non_indiquee' => 'N’hoc’h eus ket lakaet chomlec’h ebet da arnodiñ !', |
|
| 345 | - 'info_aide' => 'SKOAZELL :', |
|
| 346 | - 'info_ajouter_mot' => 'Ouzhpennañ ar ger-mañ', |
|
| 347 | - 'info_annonce' => 'KEMENN', |
|
| 348 | - 'info_annonces_generales' => 'Kemennoù hollek :', |
|
| 349 | - 'info_article_propose' => 'Pennad kinniget', |
|
| 350 | - 'info_article_publie' => 'Pennad embannet', |
|
| 351 | - 'info_article_redaction' => 'Pennad emeur o skridaozañ', |
|
| 352 | - 'info_article_refuse' => 'Pennad nac’het', |
|
| 353 | - 'info_article_supprime' => 'Pennad diverket', |
|
| 354 | - 'info_articles' => 'Pennadoù', |
|
| 355 | - 'info_articles_a_valider' => 'Ar pennadoù da gadarnaat', |
|
| 356 | - 'info_articles_nb' => '@nb@ pennad-skrid', |
|
| 357 | - 'info_articles_proposes' => 'Pennadoù kinniget', |
|
| 358 | - 'info_articles_un' => '1 pennad', |
|
| 359 | - 'info_auteurs_nombre' => 'skridaozer(ien) :', |
|
| 360 | - 'info_authentification_ftp' => 'Gwiriañ (dre FTP).', |
|
| 361 | - 'info_breves_2' => 'berrskridoù', |
|
| 362 | - 'info_breves_nb' => '@nb@ pennadoù-berr', |
|
| 363 | - 'info_breves_un' => '1 pennadig', |
|
| 364 | - 'info_connexion_refusee' => 'Kevreañ nac’het', |
|
| 365 | - 'info_contact_developpeur' => 'Kit e darempred gant un diorroer.', |
|
| 366 | - 'info_contenance' => 'El lec’hienn-mañ ez eus :', |
|
| 367 | - 'info_contribution' => 'kenaozadurioù', |
|
| 368 | - 'info_copyright' => 'Ur meziant dieub eo @spip@, dasparzhet @lien_gpl@.', |
|
| 369 | - 'info_copyright_doc' => 'Evit titouroù ouzhpenn, gwelet al lec’hienn <a href="@spipnet@">@spipnet_affiche@</a>.', |
|
| 370 | - 'info_copyright_gpl' => 'dindan aotre implijout GPL', |
|
| 371 | - 'info_cours_edition' => 'Ar pennadoù emaoc’h o skrivañ', # MODIF |
|
| 372 | - 'info_creer_repertoire' => 'Krouit ur restr pe ur c’havlec’h anvet :', |
|
| 373 | - 'info_creer_repertoire_2' => 'en iskavlec’h <b>@repertoire@</b>, ha :', |
|
| 374 | - 'info_creer_vignette' => 'krouiñ emgefreek ar skeudennig', |
|
| 375 | - 'info_creerdansrubrique_non_autorise' => 'N’ho peus trawalc’h a wirioù evit krouiñ danvez er rubrikenn-mañ.', |
|
| 376 | - 'info_deplier' => 'Displegañ', |
|
| 377 | - 'info_descriptif_nombre' => 'deskrivadur(ioù) :', |
|
| 378 | - 'info_description' => 'Deskrivadur :', |
|
| 379 | - 'info_description_2' => 'Deskrivadur :', |
|
| 380 | - 'info_dimension' => 'Ment :', |
|
| 381 | - 'info_documents_nb' => '@nb@ diell', |
|
| 382 | - 'info_documents_un' => '1 diell', |
|
| 383 | - 'info_ecire_message_prive' => 'Skrivañ ur gerig prevez;', |
|
| 384 | - 'info_email_invalide' => 'Postel direizh.', |
|
| 385 | - 'info_en_cours_validation' => 'Ar pennadoù emaoc’h o skrivañ', |
|
| 386 | - 'info_en_ligne' => 'Enlinenn evit poent :', |
|
| 387 | - 'info_envoyer_message_prive' => 'Kas ur gerig prevez d’ar skridaozer-mañ', |
|
| 388 | - 'info_erreur_requete' => 'Fazi er reked :', |
|
| 389 | - 'info_erreur_squelette2' => 'N’eus framm <b>@fichier@</b> ebet da gaout...', |
|
| 390 | - 'info_erreur_systeme' => 'Fazi reizhiad (errno @errsys@)', |
|
| 391 | - 'info_erreur_systeme2' => 'Marteze eo leun-chouk ar bladenn-galet, pe neuze eo mazaouet an diaz titouroù.<br /> |
|
| 293 | + // I |
|
| 294 | + 'ical_texte_rss_articles' => 'D’ar chomlec’h-mañ emañ restr «backend» ar pennadoù :', |
|
| 295 | + 'ical_texte_rss_articles2' => 'Gallout a rit kaout restroù «backend» evit pennadoù pep rummad al lec’hienn ivez :', |
|
| 296 | + 'ical_texte_rss_breves' => 'Bez’ ez eus ivez ur restr enni berrskridoù al lec’hienn. Ma resisait niverenn ur rubrikenn, n’ho po nemet berrskridoù ar rubrikenn-se.', |
|
| 297 | + 'icone_a_suivre' => 'Da genderc’hel', |
|
| 298 | + 'icone_admin_site' => 'Merañ al lec’hienn', |
|
| 299 | + 'icone_agenda' => 'Deiziataer', |
|
| 300 | + 'icone_aide_ligne' => 'Skoazell', |
|
| 301 | + 'icone_articles' => 'Pennadoù', |
|
| 302 | + 'icone_auteurs' => 'Skridaozerien', |
|
| 303 | + 'icone_brouteur' => 'Merdeiñ prim', |
|
| 304 | + 'icone_configuration_site' => 'Kefluniañ ', |
|
| 305 | + 'icone_configurer_site' => 'Kefluniañ ho lec’hienn', |
|
| 306 | + 'icone_creer_nouvel_auteur' => 'Krouiñ ur skridaozer nevez', |
|
| 307 | + 'icone_creer_rubrique' => 'Krouiñ ur rubrikenn', |
|
| 308 | + 'icone_creer_sous_rubrique' => 'Krouiñ un isrubrikenn', |
|
| 309 | + 'icone_deconnecter' => 'Digevreañ', |
|
| 310 | + 'icone_discussions' => 'Kaozeadennoù', |
|
| 311 | + 'icone_doc_rubrique' => 'Teulioù ar rubrikennoù', |
|
| 312 | + 'icone_ecrire_article' => 'Skrivañ ur pennad nevez', |
|
| 313 | + 'icone_edition_site' => 'Embann', |
|
| 314 | + 'icone_gestion_langues' => 'Merañ ar yezhoù', |
|
| 315 | + 'icone_informations_personnelles' => 'Titouroù hiniennel', |
|
| 316 | + 'icone_interface_complet' => 'Etrefas klok', |
|
| 317 | + 'icone_interface_simple' => 'Etrefas eeunaet', |
|
| 318 | + 'icone_maintenance_site' => 'Ober war-dro al lec’hienn', |
|
| 319 | + 'icone_messagerie_personnelle' => 'Postelerezh hiniennel', |
|
| 320 | + 'icone_repartition_debut' => 'Diskouez an dasparzh abaoe an deroù', |
|
| 321 | + 'icone_rubriques' => 'Rubrikennoù', |
|
| 322 | + 'icone_sauver_site' => 'Saveteiñ al lec’hienn', |
|
| 323 | + 'icone_site_entier' => 'Al lec’hienn a-bezh', |
|
| 324 | + 'icone_sites_references' => 'Lec’hiennoù menegeret', |
|
| 325 | + 'icone_statistiques' => 'Stadegoù al lec’hienn', |
|
| 326 | + 'icone_suivi_activite' => 'Heuliañ buhez al lec’hienn', |
|
| 327 | + 'icone_suivi_actualite' => 'Emdroadur al lec’hienn', |
|
| 328 | + 'icone_suivi_pettions' => 'Heuliañ/merañ ar sinadegoù', |
|
| 329 | + 'icone_suivi_revisions' => 'Kemmoù ar pennadoù', |
|
| 330 | + 'icone_supprimer_document' => 'Diverkañ an teul-mañ', |
|
| 331 | + 'icone_supprimer_image' => 'Diverkañ ar skeudenn-mañ', |
|
| 332 | + 'icone_tous_articles' => 'Ho holl bennadoù', |
|
| 333 | + 'icone_tous_auteur' => 'An holl skridaozerien', |
|
| 334 | + 'icone_tous_visiteur' => 'An holl gweladerien', |
|
| 335 | + 'icone_visiter_site' => 'Gweladenniñ al lec’hienn foran', |
|
| 336 | + 'icone_voir_en_ligne' => 'Gwelet enlinenn', |
|
| 337 | + 'img_indisponible' => 'skeudenn dibosupl da gaout', |
|
| 338 | + 'impossible' => 'dibosupl', |
|
| 339 | + 'info_a_suivre' => 'DA GENDERC’HEL»', |
|
| 340 | + 'info_acces_interdit' => 'Difennet mont tre', |
|
| 341 | + 'info_acces_refuse' => 'Nac’het eo bet deoc’h mon tre', |
|
| 342 | + 'info_action' => 'Oberiadenn : @action@', |
|
| 343 | + 'info_administrer_rubriques' => 'Gallout a rit merañ ar rubrikenn-mañ hag an isrubrikenndoù enni', |
|
| 344 | + 'info_adresse_non_indiquee' => 'N’hoc’h eus ket lakaet chomlec’h ebet da arnodiñ !', |
|
| 345 | + 'info_aide' => 'SKOAZELL :', |
|
| 346 | + 'info_ajouter_mot' => 'Ouzhpennañ ar ger-mañ', |
|
| 347 | + 'info_annonce' => 'KEMENN', |
|
| 348 | + 'info_annonces_generales' => 'Kemennoù hollek :', |
|
| 349 | + 'info_article_propose' => 'Pennad kinniget', |
|
| 350 | + 'info_article_publie' => 'Pennad embannet', |
|
| 351 | + 'info_article_redaction' => 'Pennad emeur o skridaozañ', |
|
| 352 | + 'info_article_refuse' => 'Pennad nac’het', |
|
| 353 | + 'info_article_supprime' => 'Pennad diverket', |
|
| 354 | + 'info_articles' => 'Pennadoù', |
|
| 355 | + 'info_articles_a_valider' => 'Ar pennadoù da gadarnaat', |
|
| 356 | + 'info_articles_nb' => '@nb@ pennad-skrid', |
|
| 357 | + 'info_articles_proposes' => 'Pennadoù kinniget', |
|
| 358 | + 'info_articles_un' => '1 pennad', |
|
| 359 | + 'info_auteurs_nombre' => 'skridaozer(ien) :', |
|
| 360 | + 'info_authentification_ftp' => 'Gwiriañ (dre FTP).', |
|
| 361 | + 'info_breves_2' => 'berrskridoù', |
|
| 362 | + 'info_breves_nb' => '@nb@ pennadoù-berr', |
|
| 363 | + 'info_breves_un' => '1 pennadig', |
|
| 364 | + 'info_connexion_refusee' => 'Kevreañ nac’het', |
|
| 365 | + 'info_contact_developpeur' => 'Kit e darempred gant un diorroer.', |
|
| 366 | + 'info_contenance' => 'El lec’hienn-mañ ez eus :', |
|
| 367 | + 'info_contribution' => 'kenaozadurioù', |
|
| 368 | + 'info_copyright' => 'Ur meziant dieub eo @spip@, dasparzhet @lien_gpl@.', |
|
| 369 | + 'info_copyright_doc' => 'Evit titouroù ouzhpenn, gwelet al lec’hienn <a href="@spipnet@">@spipnet_affiche@</a>.', |
|
| 370 | + 'info_copyright_gpl' => 'dindan aotre implijout GPL', |
|
| 371 | + 'info_cours_edition' => 'Ar pennadoù emaoc’h o skrivañ', # MODIF |
|
| 372 | + 'info_creer_repertoire' => 'Krouit ur restr pe ur c’havlec’h anvet :', |
|
| 373 | + 'info_creer_repertoire_2' => 'en iskavlec’h <b>@repertoire@</b>, ha :', |
|
| 374 | + 'info_creer_vignette' => 'krouiñ emgefreek ar skeudennig', |
|
| 375 | + 'info_creerdansrubrique_non_autorise' => 'N’ho peus trawalc’h a wirioù evit krouiñ danvez er rubrikenn-mañ.', |
|
| 376 | + 'info_deplier' => 'Displegañ', |
|
| 377 | + 'info_descriptif_nombre' => 'deskrivadur(ioù) :', |
|
| 378 | + 'info_description' => 'Deskrivadur :', |
|
| 379 | + 'info_description_2' => 'Deskrivadur :', |
|
| 380 | + 'info_dimension' => 'Ment :', |
|
| 381 | + 'info_documents_nb' => '@nb@ diell', |
|
| 382 | + 'info_documents_un' => '1 diell', |
|
| 383 | + 'info_ecire_message_prive' => 'Skrivañ ur gerig prevez;', |
|
| 384 | + 'info_email_invalide' => 'Postel direizh.', |
|
| 385 | + 'info_en_cours_validation' => 'Ar pennadoù emaoc’h o skrivañ', |
|
| 386 | + 'info_en_ligne' => 'Enlinenn evit poent :', |
|
| 387 | + 'info_envoyer_message_prive' => 'Kas ur gerig prevez d’ar skridaozer-mañ', |
|
| 388 | + 'info_erreur_requete' => 'Fazi er reked :', |
|
| 389 | + 'info_erreur_squelette2' => 'N’eus framm <b>@fichier@</b> ebet da gaout...', |
|
| 390 | + 'info_erreur_systeme' => 'Fazi reizhiad (errno @errsys@)', |
|
| 391 | + 'info_erreur_systeme2' => 'Marteze eo leun-chouk ar bladenn-galet, pe neuze eo mazaouet an diaz titouroù.<br /> |
|
| 392 | 392 | <span style="color:red;">Klaskit <a href=\'@script@\'>ratreañ an diaz</a>, pe kit e darempred gant an herberc’hier.</span>', |
| 393 | - 'info_fini' => 'Echu eo !', |
|
| 394 | - 'info_format_image' => 'Furmadoù skeudenn a c’hell bezañ implijet da sevel skeudennigoù : @gd_formats@.', |
|
| 395 | - 'info_format_non_defini' => 'Stumm didermenet', |
|
| 396 | - 'info_grand_ecran' => 'Skramm bras', |
|
| 397 | - 'info_image_aide' => 'SKOAZELL', |
|
| 398 | - 'info_image_process_titre' => 'Hentenn da grouiñ skeudennigoù', |
|
| 399 | - 'info_impossible_lire_page' => '<b>Fazi !</b> Dibosupl eo lenn ar bajenn <tt><html>@test_proxy@</html></tt> dre ar proksi', |
|
| 400 | - 'info_installation_systeme_publication' => 'O staliañ ar reizhiad embann...', |
|
| 401 | - 'info_installer_documents' => 'Gallout a rit staliañ en un doare emgefreek an holl deulioù zo en teuliad @upload@.', |
|
| 402 | - 'info_installer_ftp' => 'Dre ma’z oc’h merour e c’hellit staliañ restroù (dre FTP) en teuliad @upload@ deoc’h da c’hallout ober ganto amañ da c’houde.', |
|
| 403 | - 'info_installer_images' => 'Er furmadoù JPEG, GIF ha PNG e c’hellit staliañ skeudennoù.', |
|
| 404 | - 'info_installer_images_dossier' => 'Staliañ skeudennoù en teuliad @upload@ evit gallout o diuzañ amañ.', |
|
| 405 | - 'info_interface_complete' => 'Etrefas klok', |
|
| 406 | - 'info_interface_simple' => 'Etrefas eeunaet', |
|
| 407 | - 'info_joindre_document_article' => 'Teulioù a eurt-se a c’hellit stagañ ouzh ar pennad-mañ :', |
|
| 408 | - 'info_joindre_document_rubrique' => 'Teulioù a seurt-se a c’hellit stagañ ouzh ar rubrikenn-mañ :', |
|
| 409 | - 'info_joindre_documents_article' => 'Teulioù a seurt-se a c’hellit stagañ ouzh ho pennad :', |
|
| 410 | - 'info_l_article' => 'ar pennad', |
|
| 411 | - 'info_la_breve' => 'ar berrskrid', |
|
| 412 | - 'info_la_rubrique' => 'ar rubrikenn', |
|
| 413 | - 'info_langue_principale' => 'Yezh pennañ al lec’hienn', |
|
| 414 | - 'info_largeur_vignette' => '@largeur_vignette@ × @hauteur_vignette@ piksel', |
|
| 415 | - 'info_les_auteurs_1' => 'gant @les_auteurs@', |
|
| 416 | - 'info_logo_format_interdit' => 'Er furmad @formats@ hepken e vez aotreet al logoioù.', |
|
| 417 | - 'info_logo_max_poids' => 'Nebeutoc’h eget @maxi@ e rank al logoioù bezañ (@actuel@ eo ar restr-mañ).', |
|
| 418 | - 'info_mail_fournisseur' => 'hoc’hanv@herberc’hier.com', |
|
| 419 | - 'info_message_2' => 'KEMENNADENN', |
|
| 420 | - 'info_message_supprime' => 'KEMENNADENN BET DIVERKET', |
|
| 421 | - 'info_messages_nb' => '@nb@ kemennadennoù', |
|
| 422 | - 'info_messages_un' => '1 gemennadenn', |
|
| 423 | - 'info_mise_en_ligne' => 'Lakaet war ar rouedad d’an :', |
|
| 424 | - 'info_modification_parametres_securite' => 'kemm an arventennoù surentez', |
|
| 425 | - 'info_mois_courant' => 'E-kerzh ar miz :', |
|
| 426 | - 'info_mot_cle_ajoute' => 'Ar ger-stur-mañ zo bet ouzhpennet', |
|
| 427 | - 'info_multi_herit' => 'Yezh dre ziouer', |
|
| 428 | - 'info_multi_langues_soulignees' => 'Ar <u>yezhoù islinennet</u> zo bet troet holl destennoù an etrefas enne. Ma tibabit ar yezhoù-se e vo troet ul lodenn vat eus elfennoù al lec’hienn (deiziadoù, furmskridoù, hag all) en un doare otomatek. Evit ar yezhoù n’int ket islinennet e vo an elfennoù-se e yezh pennañ al lec’hienn.', |
|
| 429 | - 'info_multilinguisme' => 'Liesyezhegezh', |
|
| 430 | - 'info_nom_non_utilisateurs_connectes' => 'N’emañ ket hoc’h anv war roll an implijerien kevreet.', |
|
| 431 | - 'info_nom_utilisateurs_connectes' => 'Gwelet e vez hoc’h anv war roll an implijerien kevreet.', |
|
| 432 | - 'info_nombre_en_ligne' => 'Bremañ war al lec’hienn :', |
|
| 433 | - 'info_non_resultat' => 'Disoc’h ebet evit "@cherche_mot@"', |
|
| 434 | - 'info_non_utilisation_messagerie' => 'N’implijit ket postelerezh diabarzh al lec’hienn-mañ.', |
|
| 435 | - 'info_nouveau_message' => 'UR GEMENNADENN NEVEZ HOC’H EUS BET', |
|
| 436 | - 'info_nouveaux_messages' => '@total_messages@ KEMENNADENN NEVEZ HOC’H EUS BET', |
|
| 437 | - 'info_numero_abbreviation' => 'Niv. ', |
|
| 438 | - 'info_obligatoire' => 'Ret eo deoc’h reiñ an titour-mañ', |
|
| 439 | - 'info_pense_bete' => 'NOTENNIG-EÑVOR', |
|
| 440 | - 'info_petit_ecran' => 'Skramm bihan', |
|
| 441 | - 'info_petition_close' => 'Kloz eo ar sinadeg', |
|
| 442 | - 'info_pixels' => 'piksel', |
|
| 443 | - 'info_plusieurs_mots_trouves' => 'Meur a c’her-stur zo bet kavet evit "@cherche_mot@":', |
|
| 444 | - 'info_portfolio_automatique' => 'Portfolio emgefre :', |
|
| 445 | - 'info_premier_resultat' => '[@debut_limit@ disoc’h kentañ diwar @total@]', |
|
| 446 | - 'info_premier_resultat_sur' => '[@debut_limit@ disoc’h kentañ diwar @total@]', |
|
| 447 | - 'info_propose_1' => '[@nom_site_spip@] a ginnig : @titre@', |
|
| 448 | - 'info_propose_2' => 'Pennad bet kinniget |
|
| 393 | + 'info_fini' => 'Echu eo !', |
|
| 394 | + 'info_format_image' => 'Furmadoù skeudenn a c’hell bezañ implijet da sevel skeudennigoù : @gd_formats@.', |
|
| 395 | + 'info_format_non_defini' => 'Stumm didermenet', |
|
| 396 | + 'info_grand_ecran' => 'Skramm bras', |
|
| 397 | + 'info_image_aide' => 'SKOAZELL', |
|
| 398 | + 'info_image_process_titre' => 'Hentenn da grouiñ skeudennigoù', |
|
| 399 | + 'info_impossible_lire_page' => '<b>Fazi !</b> Dibosupl eo lenn ar bajenn <tt><html>@test_proxy@</html></tt> dre ar proksi', |
|
| 400 | + 'info_installation_systeme_publication' => 'O staliañ ar reizhiad embann...', |
|
| 401 | + 'info_installer_documents' => 'Gallout a rit staliañ en un doare emgefreek an holl deulioù zo en teuliad @upload@.', |
|
| 402 | + 'info_installer_ftp' => 'Dre ma’z oc’h merour e c’hellit staliañ restroù (dre FTP) en teuliad @upload@ deoc’h da c’hallout ober ganto amañ da c’houde.', |
|
| 403 | + 'info_installer_images' => 'Er furmadoù JPEG, GIF ha PNG e c’hellit staliañ skeudennoù.', |
|
| 404 | + 'info_installer_images_dossier' => 'Staliañ skeudennoù en teuliad @upload@ evit gallout o diuzañ amañ.', |
|
| 405 | + 'info_interface_complete' => 'Etrefas klok', |
|
| 406 | + 'info_interface_simple' => 'Etrefas eeunaet', |
|
| 407 | + 'info_joindre_document_article' => 'Teulioù a eurt-se a c’hellit stagañ ouzh ar pennad-mañ :', |
|
| 408 | + 'info_joindre_document_rubrique' => 'Teulioù a seurt-se a c’hellit stagañ ouzh ar rubrikenn-mañ :', |
|
| 409 | + 'info_joindre_documents_article' => 'Teulioù a seurt-se a c’hellit stagañ ouzh ho pennad :', |
|
| 410 | + 'info_l_article' => 'ar pennad', |
|
| 411 | + 'info_la_breve' => 'ar berrskrid', |
|
| 412 | + 'info_la_rubrique' => 'ar rubrikenn', |
|
| 413 | + 'info_langue_principale' => 'Yezh pennañ al lec’hienn', |
|
| 414 | + 'info_largeur_vignette' => '@largeur_vignette@ × @hauteur_vignette@ piksel', |
|
| 415 | + 'info_les_auteurs_1' => 'gant @les_auteurs@', |
|
| 416 | + 'info_logo_format_interdit' => 'Er furmad @formats@ hepken e vez aotreet al logoioù.', |
|
| 417 | + 'info_logo_max_poids' => 'Nebeutoc’h eget @maxi@ e rank al logoioù bezañ (@actuel@ eo ar restr-mañ).', |
|
| 418 | + 'info_mail_fournisseur' => 'hoc’hanv@herberc’hier.com', |
|
| 419 | + 'info_message_2' => 'KEMENNADENN', |
|
| 420 | + 'info_message_supprime' => 'KEMENNADENN BET DIVERKET', |
|
| 421 | + 'info_messages_nb' => '@nb@ kemennadennoù', |
|
| 422 | + 'info_messages_un' => '1 gemennadenn', |
|
| 423 | + 'info_mise_en_ligne' => 'Lakaet war ar rouedad d’an :', |
|
| 424 | + 'info_modification_parametres_securite' => 'kemm an arventennoù surentez', |
|
| 425 | + 'info_mois_courant' => 'E-kerzh ar miz :', |
|
| 426 | + 'info_mot_cle_ajoute' => 'Ar ger-stur-mañ zo bet ouzhpennet', |
|
| 427 | + 'info_multi_herit' => 'Yezh dre ziouer', |
|
| 428 | + 'info_multi_langues_soulignees' => 'Ar <u>yezhoù islinennet</u> zo bet troet holl destennoù an etrefas enne. Ma tibabit ar yezhoù-se e vo troet ul lodenn vat eus elfennoù al lec’hienn (deiziadoù, furmskridoù, hag all) en un doare otomatek. Evit ar yezhoù n’int ket islinennet e vo an elfennoù-se e yezh pennañ al lec’hienn.', |
|
| 429 | + 'info_multilinguisme' => 'Liesyezhegezh', |
|
| 430 | + 'info_nom_non_utilisateurs_connectes' => 'N’emañ ket hoc’h anv war roll an implijerien kevreet.', |
|
| 431 | + 'info_nom_utilisateurs_connectes' => 'Gwelet e vez hoc’h anv war roll an implijerien kevreet.', |
|
| 432 | + 'info_nombre_en_ligne' => 'Bremañ war al lec’hienn :', |
|
| 433 | + 'info_non_resultat' => 'Disoc’h ebet evit "@cherche_mot@"', |
|
| 434 | + 'info_non_utilisation_messagerie' => 'N’implijit ket postelerezh diabarzh al lec’hienn-mañ.', |
|
| 435 | + 'info_nouveau_message' => 'UR GEMENNADENN NEVEZ HOC’H EUS BET', |
|
| 436 | + 'info_nouveaux_messages' => '@total_messages@ KEMENNADENN NEVEZ HOC’H EUS BET', |
|
| 437 | + 'info_numero_abbreviation' => 'Niv. ', |
|
| 438 | + 'info_obligatoire' => 'Ret eo deoc’h reiñ an titour-mañ', |
|
| 439 | + 'info_pense_bete' => 'NOTENNIG-EÑVOR', |
|
| 440 | + 'info_petit_ecran' => 'Skramm bihan', |
|
| 441 | + 'info_petition_close' => 'Kloz eo ar sinadeg', |
|
| 442 | + 'info_pixels' => 'piksel', |
|
| 443 | + 'info_plusieurs_mots_trouves' => 'Meur a c’her-stur zo bet kavet evit "@cherche_mot@":', |
|
| 444 | + 'info_portfolio_automatique' => 'Portfolio emgefre :', |
|
| 445 | + 'info_premier_resultat' => '[@debut_limit@ disoc’h kentañ diwar @total@]', |
|
| 446 | + 'info_premier_resultat_sur' => '[@debut_limit@ disoc’h kentañ diwar @total@]', |
|
| 447 | + 'info_propose_1' => '[@nom_site_spip@] a ginnig : @titre@', |
|
| 448 | + 'info_propose_2' => 'Pennad bet kinniget |
|
| 449 | 449 | ---------------', |
| 450 | - 'info_propose_3' => 'Kinnig a reer embann ar pennad "@titre@".', |
|
| 451 | - 'info_propose_4' => 'Pedet oc’h da zont d’e lenn ha da reiñ hoc’h ali', |
|
| 452 | - 'info_propose_5' => 'er forom stag outañ. Kavet e vo er chomlec’h-mañ :', |
|
| 453 | - 'info_publie_01' => 'Kadarnaet eo bet ar pennad "@titre@" gant @connect_nom@.', |
|
| 454 | - 'info_publie_1' => '[@nom_site_spip@] A EMBANN : @titre@', |
|
| 455 | - 'info_publie_2' => 'Pennad embannet |
|
| 450 | + 'info_propose_3' => 'Kinnig a reer embann ar pennad "@titre@".', |
|
| 451 | + 'info_propose_4' => 'Pedet oc’h da zont d’e lenn ha da reiñ hoc’h ali', |
|
| 452 | + 'info_propose_5' => 'er forom stag outañ. Kavet e vo er chomlec’h-mañ :', |
|
| 453 | + 'info_publie_01' => 'Kadarnaet eo bet ar pennad "@titre@" gant @connect_nom@.', |
|
| 454 | + 'info_publie_1' => '[@nom_site_spip@] A EMBANN : @titre@', |
|
| 455 | + 'info_publie_2' => 'Pennad embannet |
|
| 456 | 456 | --------------', |
| 457 | - 'info_rechercher' => 'Klask', |
|
| 458 | - 'info_rechercher_02' => 'Klask :', |
|
| 459 | - 'info_remplacer_vignette' => 'Erlec’hiañ ar skeudennig dre ziouer gant ul logo deoc’h :', |
|
| 460 | - 'info_rubriques_nb' => '@nb@ rubrikenn', |
|
| 461 | - 'info_rubriques_un' => '1 rubrikenn', |
|
| 462 | - 'info_sans_titre_2' => 'titl ebet', |
|
| 463 | - 'info_selectionner_fichier' => 'Gallout a rit diuzañ ur restr eus an teuliad @upload@', |
|
| 464 | - 'info_selectionner_fichier_2' => 'Diuzañ ur restr :', |
|
| 465 | - 'info_sites_nb' => '@nb@ lec’hienn', |
|
| 466 | - 'info_sites_un' => '1 lec’hienn', |
|
| 467 | - 'info_supprimer_vignette' => 'diverkañ ar skeudennig', |
|
| 468 | - 'info_symbole_bleu' => 'Talvezout a ra an arouez <b>glas</b> evit un <b>notennig-eñvor</b>: da lavaret eo ur gemennadenn evidoc’h hepken.', |
|
| 469 | - 'info_symbole_jaune' => 'Talvezout a ra an arouez <b>melen</b> evit ur <b>c’hemenn d’an holl skridaozerien</b> : a c’hell bezañ kemmet gant ur merour ha lennet gant an holl skridaozerien.', |
|
| 470 | - 'info_symbole_vert' => 'Talvezout a ra an arouez <b>gwer</b> evit ar <b>c’hemennadennoù bet eskemmet etre implijerien all</b> al lec’hienn.', |
|
| 471 | - 'info_telecharger_nouveau_logo' => 'Pellgargañ ul logo nevez :', |
|
| 472 | - 'info_telecharger_ordinateur' => 'Pellgargañ adal hoc’h urzhiataer :', |
|
| 473 | - 'info_tous_resultats_enregistres' => '[enrollet e vez an holl discoc’hoù]', |
|
| 474 | - 'info_tout_afficher' => 'Diskouez pep tra', |
|
| 475 | - 'info_travaux_texte' => 'N’eo ket bet kefluniet al lec’hienn evit c’hoazh. Distroit a-benn nebeut...', |
|
| 476 | - 'info_travaux_titre' => 'Emeur o sevel al lec’hienn', |
|
| 477 | - 'info_trop_resultat' => 'Re a zisoc’hoù evit "@cherche_mot@"; resisait termenoù hoc’h enklask mar plij.', |
|
| 478 | - 'info_utilisation_messagerie_interne' => 'Ober a rit gant postelerezh diabarzh al lec’hienn-mañ.', |
|
| 479 | - 'info_valider_lien' => 'kadarnaat al liamm-mañ', |
|
| 480 | - 'info_verifier_image' => 'gwiriit eo bet treuzkaset mat ho skeudennoù.', |
|
| 481 | - 'info_vignette_defaut' => 'Skeudennig dre ziouer', |
|
| 482 | - 'info_vignette_personnalisee' => 'skeudennig personelaet', |
|
| 483 | - 'info_visite' => 'gweladenn :', |
|
| 484 | - 'info_vos_rendez_vous' => 'Hoc’h emgavioù da zont', |
|
| 485 | - 'infos_vos_pense_bete' => 'Ho notennigoù-eñvor', |
|
| 457 | + 'info_rechercher' => 'Klask', |
|
| 458 | + 'info_rechercher_02' => 'Klask :', |
|
| 459 | + 'info_remplacer_vignette' => 'Erlec’hiañ ar skeudennig dre ziouer gant ul logo deoc’h :', |
|
| 460 | + 'info_rubriques_nb' => '@nb@ rubrikenn', |
|
| 461 | + 'info_rubriques_un' => '1 rubrikenn', |
|
| 462 | + 'info_sans_titre_2' => 'titl ebet', |
|
| 463 | + 'info_selectionner_fichier' => 'Gallout a rit diuzañ ur restr eus an teuliad @upload@', |
|
| 464 | + 'info_selectionner_fichier_2' => 'Diuzañ ur restr :', |
|
| 465 | + 'info_sites_nb' => '@nb@ lec’hienn', |
|
| 466 | + 'info_sites_un' => '1 lec’hienn', |
|
| 467 | + 'info_supprimer_vignette' => 'diverkañ ar skeudennig', |
|
| 468 | + 'info_symbole_bleu' => 'Talvezout a ra an arouez <b>glas</b> evit un <b>notennig-eñvor</b>: da lavaret eo ur gemennadenn evidoc’h hepken.', |
|
| 469 | + 'info_symbole_jaune' => 'Talvezout a ra an arouez <b>melen</b> evit ur <b>c’hemenn d’an holl skridaozerien</b> : a c’hell bezañ kemmet gant ur merour ha lennet gant an holl skridaozerien.', |
|
| 470 | + 'info_symbole_vert' => 'Talvezout a ra an arouez <b>gwer</b> evit ar <b>c’hemennadennoù bet eskemmet etre implijerien all</b> al lec’hienn.', |
|
| 471 | + 'info_telecharger_nouveau_logo' => 'Pellgargañ ul logo nevez :', |
|
| 472 | + 'info_telecharger_ordinateur' => 'Pellgargañ adal hoc’h urzhiataer :', |
|
| 473 | + 'info_tous_resultats_enregistres' => '[enrollet e vez an holl discoc’hoù]', |
|
| 474 | + 'info_tout_afficher' => 'Diskouez pep tra', |
|
| 475 | + 'info_travaux_texte' => 'N’eo ket bet kefluniet al lec’hienn evit c’hoazh. Distroit a-benn nebeut...', |
|
| 476 | + 'info_travaux_titre' => 'Emeur o sevel al lec’hienn', |
|
| 477 | + 'info_trop_resultat' => 'Re a zisoc’hoù evit "@cherche_mot@"; resisait termenoù hoc’h enklask mar plij.', |
|
| 478 | + 'info_utilisation_messagerie_interne' => 'Ober a rit gant postelerezh diabarzh al lec’hienn-mañ.', |
|
| 479 | + 'info_valider_lien' => 'kadarnaat al liamm-mañ', |
|
| 480 | + 'info_verifier_image' => 'gwiriit eo bet treuzkaset mat ho skeudennoù.', |
|
| 481 | + 'info_vignette_defaut' => 'Skeudennig dre ziouer', |
|
| 482 | + 'info_vignette_personnalisee' => 'skeudennig personelaet', |
|
| 483 | + 'info_visite' => 'gweladenn :', |
|
| 484 | + 'info_vos_rendez_vous' => 'Hoc’h emgavioù da zont', |
|
| 485 | + 'infos_vos_pense_bete' => 'Ho notennigoù-eñvor', |
|
| 486 | 486 | |
| 487 | - // L |
|
| 488 | - 'label_ajout_id_rapide' => 'Ouzhpennet buan', |
|
| 489 | - 'label_poids_fichier' => 'Ment', |
|
| 490 | - 'lien_afficher_icones_seuls' => 'Diskouez ar skeudennigoù hepken', |
|
| 491 | - 'lien_afficher_texte_icones' => 'Diskouez ar skeudennigoù hag an destenn', |
|
| 492 | - 'lien_afficher_texte_seul' => 'Diskouez an destenn hepken', |
|
| 493 | - 'lien_liberer' => 'dieubiñ', |
|
| 494 | - 'lien_liberer_tous' => 'Dinaskañ an holl', |
|
| 495 | - 'lien_nouvea_pense_bete' => 'NOTENNIG-EÑVOR NEVEZ', |
|
| 496 | - 'lien_nouveau_message' => 'KEMENNADENN NEVEZ', |
|
| 497 | - 'lien_nouvelle_annonce' => 'KEMENN NEVEZ', |
|
| 498 | - 'lien_petitions' => 'SINADEG', |
|
| 499 | - 'lien_popularite' => 'brud : @popularite@%', |
|
| 500 | - 'lien_racine_site' => 'GWRIZIENN AL LEC’HIENN', |
|
| 501 | - 'lien_reessayer' => 'klask en-dro', |
|
| 502 | - 'lien_repondre_message' => 'Repont d’ar gemennadenn-mañ', |
|
| 503 | - 'lien_supprimer' => 'diverkañ', |
|
| 504 | - 'lien_tout_afficher' => 'Diskouez pep tra', |
|
| 505 | - 'lien_visite_site' => 'gweladenniñ al lec’hienn-mañ', |
|
| 506 | - 'lien_visites' => '@visites@ gweladenn', |
|
| 507 | - 'lien_voir_auteur' => 'Gwelet ar skridaozer-mañ', |
|
| 508 | - 'ligne' => 'Linenn', |
|
| 509 | - 'login' => 'Kevreañ', |
|
| 510 | - 'login_acces_prive' => 'tizhout al lodenn brevez', |
|
| 511 | - 'login_autre_identifiant' => 'Kevreañ gant ur c’hod anaout all', |
|
| 512 | - 'login_cookie_accepte' => 'Grit ar pezh zo ezhomm evit ma vint degemeret gant ho merdeer, evit al lec’hienn-mañ d’an nebeutañ', |
|
| 513 | - 'login_cookie_oblige' => 'Evit kevreañ en un doare sur war al lec’hienn-mañ e rankit degemer an toupinoù.', |
|
| 514 | - 'login_deconnexion_ok' => 'Digevreet oc’h.', |
|
| 515 | - 'login_erreur_pass' => 'Fazi ger-tremen.', |
|
| 516 | - 'login_espace_prive' => 'lodenn brevez', |
|
| 517 | - 'login_identifiant_inconnu' => 'N’eo ket anavezet ar c’hoad anaout « @login@ ».', |
|
| 518 | - 'login_login' => 'Kod kevreañ :', |
|
| 519 | - 'login_login2' => 'Login pe postel :', |
|
| 520 | - 'login_login_pass_incorrect' => '(direizh eo ar c’hod kevreañ pe ar ger-tremen)', |
|
| 521 | - 'login_motpasseoublie' => 'ankouaet ho ker-tremen ganeoc’h ?', |
|
| 522 | - 'login_non_securise' => 'Diwallit, n’eo ket suraet ar furmskrid-mañ. |
|
| 487 | + // L |
|
| 488 | + 'label_ajout_id_rapide' => 'Ouzhpennet buan', |
|
| 489 | + 'label_poids_fichier' => 'Ment', |
|
| 490 | + 'lien_afficher_icones_seuls' => 'Diskouez ar skeudennigoù hepken', |
|
| 491 | + 'lien_afficher_texte_icones' => 'Diskouez ar skeudennigoù hag an destenn', |
|
| 492 | + 'lien_afficher_texte_seul' => 'Diskouez an destenn hepken', |
|
| 493 | + 'lien_liberer' => 'dieubiñ', |
|
| 494 | + 'lien_liberer_tous' => 'Dinaskañ an holl', |
|
| 495 | + 'lien_nouvea_pense_bete' => 'NOTENNIG-EÑVOR NEVEZ', |
|
| 496 | + 'lien_nouveau_message' => 'KEMENNADENN NEVEZ', |
|
| 497 | + 'lien_nouvelle_annonce' => 'KEMENN NEVEZ', |
|
| 498 | + 'lien_petitions' => 'SINADEG', |
|
| 499 | + 'lien_popularite' => 'brud : @popularite@%', |
|
| 500 | + 'lien_racine_site' => 'GWRIZIENN AL LEC’HIENN', |
|
| 501 | + 'lien_reessayer' => 'klask en-dro', |
|
| 502 | + 'lien_repondre_message' => 'Repont d’ar gemennadenn-mañ', |
|
| 503 | + 'lien_supprimer' => 'diverkañ', |
|
| 504 | + 'lien_tout_afficher' => 'Diskouez pep tra', |
|
| 505 | + 'lien_visite_site' => 'gweladenniñ al lec’hienn-mañ', |
|
| 506 | + 'lien_visites' => '@visites@ gweladenn', |
|
| 507 | + 'lien_voir_auteur' => 'Gwelet ar skridaozer-mañ', |
|
| 508 | + 'ligne' => 'Linenn', |
|
| 509 | + 'login' => 'Kevreañ', |
|
| 510 | + 'login_acces_prive' => 'tizhout al lodenn brevez', |
|
| 511 | + 'login_autre_identifiant' => 'Kevreañ gant ur c’hod anaout all', |
|
| 512 | + 'login_cookie_accepte' => 'Grit ar pezh zo ezhomm evit ma vint degemeret gant ho merdeer, evit al lec’hienn-mañ d’an nebeutañ', |
|
| 513 | + 'login_cookie_oblige' => 'Evit kevreañ en un doare sur war al lec’hienn-mañ e rankit degemer an toupinoù.', |
|
| 514 | + 'login_deconnexion_ok' => 'Digevreet oc’h.', |
|
| 515 | + 'login_erreur_pass' => 'Fazi ger-tremen.', |
|
| 516 | + 'login_espace_prive' => 'lodenn brevez', |
|
| 517 | + 'login_identifiant_inconnu' => 'N’eo ket anavezet ar c’hoad anaout « @login@ ».', |
|
| 518 | + 'login_login' => 'Kod kevreañ :', |
|
| 519 | + 'login_login2' => 'Login pe postel :', |
|
| 520 | + 'login_login_pass_incorrect' => '(direizh eo ar c’hod kevreañ pe ar ger-tremen)', |
|
| 521 | + 'login_motpasseoublie' => 'ankouaet ho ker-tremen ganeoc’h ?', |
|
| 522 | + 'login_non_securise' => 'Diwallit, n’eo ket suraet ar furmskrid-mañ. |
|
| 523 | 523 | Ma ne fell ket deoc’h e c’hellfe ho ker-tremen bezañ pesketet |
| 524 | 524 | war ar rouedad, gweredekait Javascript en ho merdeer ha', |
| 525 | - 'login_nouvelle_tentative' => 'Klask en-dro', |
|
| 526 | - 'login_par_ici' => 'Enrollet oc’h...dre amañ...', |
|
| 527 | - 'login_pass2' => 'Ger-tremen :', |
|
| 528 | - 'login_preferez_refuser' => '<b>Ma kavit gwell nac’hañ an toupinoù</b>, e c’hellit ober gant un doare all da gevreañ, met n’eo ket ken asur :', |
|
| 529 | - 'login_recharger' => 'adkargañ ar bajenn-mañ', |
|
| 530 | - 'login_rester_identifie' => 'Chom anavezet un nebeud devezhioù', # MODIF |
|
| 531 | - 'login_retour_public' => 'Distreiñ d’al lodenn foran', |
|
| 532 | - 'login_retour_site' => 'Distreiñ d’al lodenn foran', |
|
| 533 | - 'login_retoursitepublic' => 'distreiñ d’al lodenn foran', |
|
| 534 | - 'login_sans_cookie' => 'Kevreañ hep toupinoù', |
|
| 535 | - 'login_securise' => 'Login diogelet', |
|
| 536 | - 'login_sinscrire' => 'en em enskrivañ', |
|
| 537 | - 'login_test_navigateur' => 'taol-arnod merdeer/adkevreañ', |
|
| 538 | - 'login_verifiez_navigateur' => '(Gwiriit memes tra n’eo ket bet memoret ho ker-tremen gant ar merdeer...)', |
|
| 525 | + 'login_nouvelle_tentative' => 'Klask en-dro', |
|
| 526 | + 'login_par_ici' => 'Enrollet oc’h...dre amañ...', |
|
| 527 | + 'login_pass2' => 'Ger-tremen :', |
|
| 528 | + 'login_preferez_refuser' => '<b>Ma kavit gwell nac’hañ an toupinoù</b>, e c’hellit ober gant un doare all da gevreañ, met n’eo ket ken asur :', |
|
| 529 | + 'login_recharger' => 'adkargañ ar bajenn-mañ', |
|
| 530 | + 'login_rester_identifie' => 'Chom anavezet un nebeud devezhioù', # MODIF |
|
| 531 | + 'login_retour_public' => 'Distreiñ d’al lodenn foran', |
|
| 532 | + 'login_retour_site' => 'Distreiñ d’al lodenn foran', |
|
| 533 | + 'login_retoursitepublic' => 'distreiñ d’al lodenn foran', |
|
| 534 | + 'login_sans_cookie' => 'Kevreañ hep toupinoù', |
|
| 535 | + 'login_securise' => 'Login diogelet', |
|
| 536 | + 'login_sinscrire' => 'en em enskrivañ', |
|
| 537 | + 'login_test_navigateur' => 'taol-arnod merdeer/adkevreañ', |
|
| 538 | + 'login_verifiez_navigateur' => '(Gwiriit memes tra n’eo ket bet memoret ho ker-tremen gant ar merdeer...)', |
|
| 539 | 539 | |
| 540 | - // M |
|
| 541 | - 'masquer_colonne' => 'Kuzhat ar bann-mañ', |
|
| 542 | - 'masquer_trad' => 'kuzhat an troidigezhioù', |
|
| 543 | - 'message_nouveaux_identifiants_echec' => 'N’heller ket krouiñ anvioù implijer nevez.', |
|
| 544 | - 'message_nouveaux_identifiants_echec_envoi' => 'N’eo ket bet kaset an anvioù implijer nevez evit kevreañ.', |
|
| 545 | - 'message_nouveaux_identifiants_ok' => 'Kaset eo bet an anvioù implijer nevez evit kevreañ da @email@.', |
|
| 546 | - 'module_fichiers_langues' => 'Restroù yezh', |
|
| 540 | + // M |
|
| 541 | + 'masquer_colonne' => 'Kuzhat ar bann-mañ', |
|
| 542 | + 'masquer_trad' => 'kuzhat an troidigezhioù', |
|
| 543 | + 'message_nouveaux_identifiants_echec' => 'N’heller ket krouiñ anvioù implijer nevez.', |
|
| 544 | + 'message_nouveaux_identifiants_echec_envoi' => 'N’eo ket bet kaset an anvioù implijer nevez evit kevreañ.', |
|
| 545 | + 'message_nouveaux_identifiants_ok' => 'Kaset eo bet an anvioù implijer nevez evit kevreañ da @email@.', |
|
| 546 | + 'module_fichiers_langues' => 'Restroù yezh', |
|
| 547 | 547 | |
| 548 | - // N |
|
| 549 | - 'navigateur_pas_redirige' => 'Klikit amañ evit kederc’hel ma ne vez ket adheñchet ho merdeer.', |
|
| 550 | - 'numero' => 'Niverenn', |
|
| 548 | + // N |
|
| 549 | + 'navigateur_pas_redirige' => 'Klikit amañ evit kederc’hel ma ne vez ket adheñchet ho merdeer.', |
|
| 550 | + 'numero' => 'Niverenn', |
|
| 551 | 551 | |
| 552 | - // O |
|
| 553 | - 'occurence' => 'Kavadenn', |
|
| 554 | - 'onglet_affacer_base' => 'Diverkañ an diaz', |
|
| 555 | - 'onglet_auteur' => 'Ar skridaozer', |
|
| 556 | - 'onglet_contenu_site' => 'Endalc’had al lec’hienn', |
|
| 557 | - 'onglet_evolution_visite_mod' => 'Emdroadur', |
|
| 558 | - 'onglet_fonctions_avances' => 'Arc’hwelioù kemplezh', |
|
| 559 | - 'onglet_informations_personnelles' => 'Titouroù hiniennel', |
|
| 560 | - 'onglet_interactivite' => 'Etreobererezh', |
|
| 561 | - 'onglet_messagerie' => 'Postelerezh', |
|
| 562 | - 'onglet_repartition_rubrique' => 'Dasparzh diouzh ar rummad', |
|
| 563 | - 'onglet_save_restaur_base' => 'Saveteiñ/Assevel an diaz', |
|
| 564 | - 'onglet_vider_cache' => 'Goullonderiñ ar grubuilh', |
|
| 552 | + // O |
|
| 553 | + 'occurence' => 'Kavadenn', |
|
| 554 | + 'onglet_affacer_base' => 'Diverkañ an diaz', |
|
| 555 | + 'onglet_auteur' => 'Ar skridaozer', |
|
| 556 | + 'onglet_contenu_site' => 'Endalc’had al lec’hienn', |
|
| 557 | + 'onglet_evolution_visite_mod' => 'Emdroadur', |
|
| 558 | + 'onglet_fonctions_avances' => 'Arc’hwelioù kemplezh', |
|
| 559 | + 'onglet_informations_personnelles' => 'Titouroù hiniennel', |
|
| 560 | + 'onglet_interactivite' => 'Etreobererezh', |
|
| 561 | + 'onglet_messagerie' => 'Postelerezh', |
|
| 562 | + 'onglet_repartition_rubrique' => 'Dasparzh diouzh ar rummad', |
|
| 563 | + 'onglet_save_restaur_base' => 'Saveteiñ/Assevel an diaz', |
|
| 564 | + 'onglet_vider_cache' => 'Goullonderiñ ar grubuilh', |
|
| 565 | 565 | |
| 566 | - // P |
|
| 567 | - 'pass_choix_pass' => 'Dibabit ho ker-tremen nevez :', |
|
| 568 | - 'pass_erreur' => 'Fazi', |
|
| 569 | - 'pass_erreur_acces_refuse' => '<b>Fazi :</b> n’hoc’h ket aotreet da zont war al lec’hienn-mañ ken.', |
|
| 570 | - 'pass_erreur_code_inconnu' => '<b>Fazi :</b> ne glot ar c’hod-mañ gant gweladenner ebet a c’hall mont war al lec’hienn-mañ.', |
|
| 571 | - 'pass_erreur_non_enregistre' => '<b>Fazi :</b>n’eo ket enrollet ar chomlec’h <tt>@email_oubli@</tt> war al lec’hienn-mañ.', |
|
| 572 | - 'pass_erreur_non_valide' => '<b>Fazi :</b> n’eo ket reizh ar postel <tt>@email_oubli@</tt> !', |
|
| 573 | - 'pass_erreur_probleme_technique' => '<b>Fazi :</b> abalamout d’u gudenn deknikel, ne c’hell ket ar postel bezañ kaset.', |
|
| 574 | - 'pass_espace_prive_bla' => 'Dav eo bezañ enskrivet a-raok gallout tizhout lodenn brevez al lec’hienn. |
|
| 566 | + // P |
|
| 567 | + 'pass_choix_pass' => 'Dibabit ho ker-tremen nevez :', |
|
| 568 | + 'pass_erreur' => 'Fazi', |
|
| 569 | + 'pass_erreur_acces_refuse' => '<b>Fazi :</b> n’hoc’h ket aotreet da zont war al lec’hienn-mañ ken.', |
|
| 570 | + 'pass_erreur_code_inconnu' => '<b>Fazi :</b> ne glot ar c’hod-mañ gant gweladenner ebet a c’hall mont war al lec’hienn-mañ.', |
|
| 571 | + 'pass_erreur_non_enregistre' => '<b>Fazi :</b>n’eo ket enrollet ar chomlec’h <tt>@email_oubli@</tt> war al lec’hienn-mañ.', |
|
| 572 | + 'pass_erreur_non_valide' => '<b>Fazi :</b> n’eo ket reizh ar postel <tt>@email_oubli@</tt> !', |
|
| 573 | + 'pass_erreur_probleme_technique' => '<b>Fazi :</b> abalamout d’u gudenn deknikel, ne c’hell ket ar postel bezañ kaset.', |
|
| 574 | + 'pass_espace_prive_bla' => 'Dav eo bezañ enskrivet a-raok gallout tizhout lodenn brevez al lec’hienn. |
|
| 575 | 575 | P aviot enrollet e c’hellot lenn ar pennadoù meeur o skrivañ, kinnig pennadoù, ha kemer perzh er foromoù.', |
| 576 | - 'pass_forum_bla' => 'Goulennet hoc’h eus gallout kemer perzh war ur forom n’hall nemet an implijerien enrollet skrivañ warnañ.', |
|
| 577 | - 'pass_indiquez_cidessous' => 'Skrivit amañ dindan ar postel a oa bet implijet ganeoc’h evit en em enrollañ. |
|
| 576 | + 'pass_forum_bla' => 'Goulennet hoc’h eus gallout kemer perzh war ur forom n’hall nemet an implijerien enrollet skrivañ warnañ.', |
|
| 577 | + 'pass_indiquez_cidessous' => 'Skrivit amañ dindan ar postel a oa bet implijet ganeoc’h evit en em enrollañ. |
|
| 578 | 578 | Ur postel a vo kaset deoc’h ennañ an titouroù ret evit gallout dont en-dro war al lec’hienn.', |
| 579 | - 'pass_mail_passcookie' => '(ur gemennadenn emgefre eo homañ) |
|
| 579 | + 'pass_mail_passcookie' => '(ur gemennadenn emgefre eo homañ) |
|
| 580 | 580 | Evit gallout distreiñ war al lec’hienn |
| 581 | 581 | @nom_site_spip@ (@adresse_site@) |
| 582 | 582 | |
@@ -588,139 +588,139 @@ discard block |
||
| 588 | 588 | kevreañ en-dro ouzh al lec’hienn. |
| 589 | 589 | |
| 590 | 590 | ', # Connecter : gwelloc'h eo ober gant kevreañ zo muioc'h en implij gant an dud. Kevreañ ouzh ar genrouedad hag all. |
| 591 | - 'pass_mot_oublie' => 'Ankouaet ar ger-tremen', |
|
| 592 | - 'pass_nouveau_enregistre' => 'Enrollet eo bet ho ker-tremen nevez.', |
|
| 593 | - 'pass_nouveau_pass' => 'Ger-tremen nevez', |
|
| 594 | - 'pass_ok' => 'MAT EO', |
|
| 595 | - 'pass_oubli_mot' => 'Ankouaet ar ger-tremen', |
|
| 596 | - 'pass_procedure_changer' => 'Evit kemmañ ho ker-tremen e rankomp gwiriekaat piv oc’h. Evit en ober diskouezit deomp ar postel liammet gant ho kont.', |
|
| 597 | - 'pass_quitter_fenetre' => 'Kuitaat ar prenestr-mañ', |
|
| 598 | - 'pass_rappel_login' => 'Dalc’hit soñj : « @login@ » eo ho anv-tremen (login).', |
|
| 599 | - 'pass_recevoir_mail' => 'Ur postel a vo kaset deoc’h, ennañ an titouroù ret da c’hallout tizhout al lec’hienn en-dro.', # MODIF |
|
| 600 | - 'pass_retour_public' => 'Distreiñ d’al lodenn foran', |
|
| 601 | - 'pass_rien_a_faire_ici' => 'Netra d’ober amañ.', |
|
| 602 | - 'pass_vousinscrire' => 'En em enskrivañ war al lec’hienn-mañ', |
|
| 603 | - 'precedent' => 'kent', |
|
| 604 | - 'previsualisation' => 'Rakwelet', |
|
| 605 | - 'previsualiser' => 'Rakwelet', |
|
| 591 | + 'pass_mot_oublie' => 'Ankouaet ar ger-tremen', |
|
| 592 | + 'pass_nouveau_enregistre' => 'Enrollet eo bet ho ker-tremen nevez.', |
|
| 593 | + 'pass_nouveau_pass' => 'Ger-tremen nevez', |
|
| 594 | + 'pass_ok' => 'MAT EO', |
|
| 595 | + 'pass_oubli_mot' => 'Ankouaet ar ger-tremen', |
|
| 596 | + 'pass_procedure_changer' => 'Evit kemmañ ho ker-tremen e rankomp gwiriekaat piv oc’h. Evit en ober diskouezit deomp ar postel liammet gant ho kont.', |
|
| 597 | + 'pass_quitter_fenetre' => 'Kuitaat ar prenestr-mañ', |
|
| 598 | + 'pass_rappel_login' => 'Dalc’hit soñj : « @login@ » eo ho anv-tremen (login).', |
|
| 599 | + 'pass_recevoir_mail' => 'Ur postel a vo kaset deoc’h, ennañ an titouroù ret da c’hallout tizhout al lec’hienn en-dro.', # MODIF |
|
| 600 | + 'pass_retour_public' => 'Distreiñ d’al lodenn foran', |
|
| 601 | + 'pass_rien_a_faire_ici' => 'Netra d’ober amañ.', |
|
| 602 | + 'pass_vousinscrire' => 'En em enskrivañ war al lec’hienn-mañ', |
|
| 603 | + 'precedent' => 'kent', |
|
| 604 | + 'previsualisation' => 'Rakwelet', |
|
| 605 | + 'previsualiser' => 'Rakwelet', |
|
| 606 | 606 | |
| 607 | - // R |
|
| 608 | - 'retour' => 'Distreiñ', |
|
| 607 | + // R |
|
| 608 | + 'retour' => 'Distreiñ', |
|
| 609 | 609 | |
| 610 | - // S |
|
| 611 | - 'spip_conforme_dtd' => 'SPIP a gav dezhañ e klot an teul-mañ gant e DOCTYPE :', |
|
| 612 | - 'squelette' => 'framm', |
|
| 613 | - 'squelette_inclus_ligne' => 'framm e-barzh, linenn', |
|
| 614 | - 'squelette_ligne' => 'framm, linenn', |
|
| 615 | - 'stats_visites_et_popularite' => '@visites@ gweladenn ; brud; : @popularite@', |
|
| 616 | - 'suivant' => 'war-lerc’h', |
|
| 610 | + // S |
|
| 611 | + 'spip_conforme_dtd' => 'SPIP a gav dezhañ e klot an teul-mañ gant e DOCTYPE :', |
|
| 612 | + 'squelette' => 'framm', |
|
| 613 | + 'squelette_inclus_ligne' => 'framm e-barzh, linenn', |
|
| 614 | + 'squelette_ligne' => 'framm, linenn', |
|
| 615 | + 'stats_visites_et_popularite' => '@visites@ gweladenn ; brud; : @popularite@', |
|
| 616 | + 'suivant' => 'war-lerc’h', |
|
| 617 | 617 | |
| 618 | - // T |
|
| 619 | - 'taille_go' => '@taille@ Go', |
|
| 620 | - 'taille_ko' => '@taille@ ke', |
|
| 621 | - 'taille_mo' => '@taille@ Me', |
|
| 622 | - 'taille_octets' => '@taille@ eizhbit', |
|
| 623 | - 'texte_actualite_site_1' => 'Pa viot boas ouzh an etrefas e c’hellot klikañ war «', |
|
| 624 | - 'texte_actualite_site_2' => 'etrefas klok', |
|
| 625 | - 'texte_actualite_site_3' => '» evit sevijoù ouzhpenn.', |
|
| 626 | - 'texte_creation_automatique_vignette' => 'Ober a reer gant ar sevel skeudennigoù adal skeudennoù. Ma stailhi skeudennoù er furmad(où) @gd_formats@, adal ar furmskrid-mañ e vo staget ur skeudennig @taille_preview@ piksel d’ar muiañ outo.', |
|
| 627 | - 'texte_documents_associes' => 'Stag eo an teulioù-mañ ouzh ar pennad, |
|
| 618 | + // T |
|
| 619 | + 'taille_go' => '@taille@ Go', |
|
| 620 | + 'taille_ko' => '@taille@ ke', |
|
| 621 | + 'taille_mo' => '@taille@ Me', |
|
| 622 | + 'taille_octets' => '@taille@ eizhbit', |
|
| 623 | + 'texte_actualite_site_1' => 'Pa viot boas ouzh an etrefas e c’hellot klikañ war «', |
|
| 624 | + 'texte_actualite_site_2' => 'etrefas klok', |
|
| 625 | + 'texte_actualite_site_3' => '» evit sevijoù ouzhpenn.', |
|
| 626 | + 'texte_creation_automatique_vignette' => 'Ober a reer gant ar sevel skeudennigoù adal skeudennoù. Ma stailhi skeudennoù er furmad(où) @gd_formats@, adal ar furmskrid-mañ e vo staget ur skeudennig @taille_preview@ piksel d’ar muiañ outo.', |
|
| 627 | + 'texte_documents_associes' => 'Stag eo an teulioù-mañ ouzh ar pennad, |
|
| 628 | 628 | met n’int ket bet ensoc’het diouzhtu ennañ |
| 629 | 629 | Diouzh mod pajennaozañ al lec’hienn e c’hellint bezañ diskouezet dindan stumm restroù stag.', |
| 630 | - 'texte_erreur_mise_niveau_base' => 'Ur fazi zo bet gant an diaz titouroù en ur hizivaat. |
|
| 630 | + 'texte_erreur_mise_niveau_base' => 'Ur fazi zo bet gant an diaz titouroù en ur hizivaat. |
|
| 631 | 631 | N’eo ket tremenet ar skeudenn <b>@fichier@</b> (pennad @id_article@). |
| 632 | 632 | Notennit an daveenn-se, klaksit hizivaat en-dro, |
| 633 | 633 | ha gwiriit e vez diskouezet ar skeudennoù er pennadoù.', |
| 634 | - 'texte_erreur_visiteur' => 'Klasket hoc’h eus tizhout al lodenn brevez gant un anv implijer direizh.', |
|
| 635 | - 'texte_inc_auth_1' => 'Enrollet oc’h dindan al ger kevreañ |
|
| 634 | + 'texte_erreur_visiteur' => 'Klasket hoc’h eus tizhout al lodenn brevez gant un anv implijer direizh.', |
|
| 635 | + 'texte_inc_auth_1' => 'Enrollet oc’h dindan al ger kevreañ |
|
| 636 | 636 | <b>@auth_login@</b>, met n’eus ket anezhañ (ken) en diaz titouroù. |
| 637 | 637 | Klaskit ', |
| 638 | - 'texte_inc_auth_2' => 'adkevreañ', |
|
| 639 | - 'texte_inc_auth_3' => ', goude bezañ kuitaet hag adloc’het ho merdeer.', |
|
| 640 | - 'texte_inc_config' => '>Ul levezon vras o deus kemmoù ar bajenn-mañ war mont en-dro hollek al lec’hienn. |
|
| 638 | + 'texte_inc_auth_2' => 'adkevreañ', |
|
| 639 | + 'texte_inc_auth_3' => ', goude bezañ kuitaet hag adloc’het ho merdeer.', |
|
| 640 | + 'texte_inc_config' => '>Ul levezon vras o deus kemmoù ar bajenn-mañ war mont en-dro hollek al lec’hienn. |
|
| 641 | 641 | Aliet oc’h da chom hep kemmañ tra ebet e-keit ha n’oc’h ket boas ouzh SPIP. |
| 642 | 642 | <br /><br /><b>Aliet oc’h da lezel webmestr pennañ al lec’hienn ober war-dro ar pajennoù-mañ.</b>', |
| 643 | - 'texte_inc_meta_1' => 'Ur fazi zo bet en ur skrivañ war ar restr <code>@fichier@</code>. Dre ma’z oc’h merour al lec’hienn e rankit ', |
|
| 644 | - 'texte_inc_meta_2' => 'Gwiriañ ar gwirioù da skrivañ ', |
|
| 645 | - 'texte_inc_meta_3' => 'war ar c’havlec’h <code>@repertoire@</code>.', |
|
| 646 | - 'texte_statut_en_cours_redaction' => 'o skridaozañ', |
|
| 647 | - 'texte_statut_poubelle' => 'er pod-lastez', |
|
| 648 | - 'texte_statut_propose_evaluation' => 'kinniget ouzh an amprou', |
|
| 649 | - 'texte_statut_publie' => 'embannet', |
|
| 650 | - 'texte_statut_refuse' => 'nac’het', |
|
| 651 | - 'titre_ajouter_mot_cle' => 'OUZHPENNAÑ UR GER-STUR :', |
|
| 652 | - 'titre_cadre_raccourcis' => 'BERRADENNOÙ :', |
|
| 653 | - 'titre_changer_couleur_interface' => 'Kemm liv an etrefas', |
|
| 654 | - 'titre_image_admin_article' => 'Gallout a rit merañ ar pennad-mañ', |
|
| 655 | - 'titre_image_administrateur' => 'Merour', |
|
| 656 | - 'titre_image_aide' => 'Skoazell diwar-benn an elfenn-mañ', |
|
| 657 | - 'titre_image_auteur_supprime' => 'Skridaozer bet diverket', |
|
| 658 | - 'titre_image_redacteur' => 'Skridaozer hep aotre moned', |
|
| 659 | - 'titre_image_redacteur_02' => 'Skridaozer', |
|
| 660 | - 'titre_image_selecteur' => 'Diskouez al listenn', |
|
| 661 | - 'titre_image_visiteur' => 'Gweladenner', |
|
| 662 | - 'titre_joindre_document' => 'STAGAÑ UN TEUL', |
|
| 663 | - 'titre_mots_cles' => 'GERIOÙ-STUR', |
|
| 664 | - 'titre_probleme_technique' => 'Diwallit : abalamour d’ur gudenn deknikel (servijer SQL), n’eus ket tu da dizhout al lodenn-mañ eus al lec’hienn. Trugarez evit ho komprenezon.', |
|
| 665 | - 'titre_publier_document' => 'EMBANN UN TEUL ER RUBRIKENN-MAÑ', |
|
| 666 | - 'titre_signatures_attente' => 'Sinadurioù a c’hortoz bezañ kadarnaet', |
|
| 667 | - 'titre_signatures_confirmees' => 'Sinadurioù bet gwiriekaet', |
|
| 668 | - 'titre_statistiques' => 'Stadegoù al lec’hienn', # Stadegoù, termen skoueriekaet gant TermBret evit Statistiques. |
|
| 669 | - 'titre_titre_document' => 'Titl an teul :', |
|
| 670 | - 'todo' => 'da zont', |
|
| 671 | - 'trad_definir_reference' => 'Dibab "@titre@" evel dave an troidigezhioù', |
|
| 672 | - 'trad_reference' => '(Pennad diazez evit an troidigezhioù)', |
|
| 643 | + 'texte_inc_meta_1' => 'Ur fazi zo bet en ur skrivañ war ar restr <code>@fichier@</code>. Dre ma’z oc’h merour al lec’hienn e rankit ', |
|
| 644 | + 'texte_inc_meta_2' => 'Gwiriañ ar gwirioù da skrivañ ', |
|
| 645 | + 'texte_inc_meta_3' => 'war ar c’havlec’h <code>@repertoire@</code>.', |
|
| 646 | + 'texte_statut_en_cours_redaction' => 'o skridaozañ', |
|
| 647 | + 'texte_statut_poubelle' => 'er pod-lastez', |
|
| 648 | + 'texte_statut_propose_evaluation' => 'kinniget ouzh an amprou', |
|
| 649 | + 'texte_statut_publie' => 'embannet', |
|
| 650 | + 'texte_statut_refuse' => 'nac’het', |
|
| 651 | + 'titre_ajouter_mot_cle' => 'OUZHPENNAÑ UR GER-STUR :', |
|
| 652 | + 'titre_cadre_raccourcis' => 'BERRADENNOÙ :', |
|
| 653 | + 'titre_changer_couleur_interface' => 'Kemm liv an etrefas', |
|
| 654 | + 'titre_image_admin_article' => 'Gallout a rit merañ ar pennad-mañ', |
|
| 655 | + 'titre_image_administrateur' => 'Merour', |
|
| 656 | + 'titre_image_aide' => 'Skoazell diwar-benn an elfenn-mañ', |
|
| 657 | + 'titre_image_auteur_supprime' => 'Skridaozer bet diverket', |
|
| 658 | + 'titre_image_redacteur' => 'Skridaozer hep aotre moned', |
|
| 659 | + 'titre_image_redacteur_02' => 'Skridaozer', |
|
| 660 | + 'titre_image_selecteur' => 'Diskouez al listenn', |
|
| 661 | + 'titre_image_visiteur' => 'Gweladenner', |
|
| 662 | + 'titre_joindre_document' => 'STAGAÑ UN TEUL', |
|
| 663 | + 'titre_mots_cles' => 'GERIOÙ-STUR', |
|
| 664 | + 'titre_probleme_technique' => 'Diwallit : abalamour d’ur gudenn deknikel (servijer SQL), n’eus ket tu da dizhout al lodenn-mañ eus al lec’hienn. Trugarez evit ho komprenezon.', |
|
| 665 | + 'titre_publier_document' => 'EMBANN UN TEUL ER RUBRIKENN-MAÑ', |
|
| 666 | + 'titre_signatures_attente' => 'Sinadurioù a c’hortoz bezañ kadarnaet', |
|
| 667 | + 'titre_signatures_confirmees' => 'Sinadurioù bet gwiriekaet', |
|
| 668 | + 'titre_statistiques' => 'Stadegoù al lec’hienn', # Stadegoù, termen skoueriekaet gant TermBret evit Statistiques. |
|
| 669 | + 'titre_titre_document' => 'Titl an teul :', |
|
| 670 | + 'todo' => 'da zont', |
|
| 671 | + 'trad_definir_reference' => 'Dibab "@titre@" evel dave an troidigezhioù', |
|
| 672 | + 'trad_reference' => '(Pennad diazez evit an troidigezhioù)', |
|
| 673 | 673 | |
| 674 | - // U |
|
| 675 | - 'upload_limit' => 'Re bounner eo ar fichennaoueg-mañ evit ar servijer ; brasañ ment aotreet e <i>upload</i> a zo @max@.', |
|
| 674 | + // U |
|
| 675 | + 'upload_limit' => 'Re bounner eo ar fichennaoueg-mañ evit ar servijer ; brasañ ment aotreet e <i>upload</i> a zo @max@.', |
|
| 676 | 676 | |
| 677 | - // Z |
|
| 678 | - 'zbug_balise_b_aval' => ' : balizenn B en ardraoñ', |
|
| 679 | - 'zbug_balise_inexistante' => 'Disklêriet-fall eo ar valizenn @balise@ evit @from@', |
|
| 680 | - 'zbug_balise_sans_argument' => 'Un arguzenn a vank er valizenn @balise@', |
|
| 681 | - 'zbug_boucle' => 'bouklenn', |
|
| 682 | - 'zbug_boucle_recursive_undef' => 'N’eo ket bet termenet ar vouklenn-mañ : @nom@', |
|
| 683 | - 'zbug_calcul' => 'jediñ', |
|
| 684 | - 'zbug_champ_hors_boucle' => 'Maezienn @champ@ e diavaez ar vouklenn', |
|
| 685 | - 'zbug_champ_hors_motif' => 'Maezienn @champ@ er-maez kendestenn @motif@', |
|
| 686 | - 'zbug_code' => 'kod', |
|
| 687 | - 'zbug_critere_inconnu' => 'Dezverk @critere@ dianav', |
|
| 688 | - 'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} war un daolenn hep alc’hwez kentael atomek', |
|
| 689 | - 'zbug_distant_interdit' => 'N’eo ket posupl war un diaz roadoù diavaez', |
|
| 690 | - 'zbug_doublon_table_sans_cle_primaire' => 'Doublennoù war un diaz hep alc’hwez kentañ atomek', |
|
| 691 | - 'zbug_doublon_table_sans_index' => 'Doublenn war un diaz hep meneger', |
|
| 692 | - 'zbug_erreur_boucle_double' => 'Bouklenn @id@ bet termenet div wech', |
|
| 693 | - 'zbug_erreur_boucle_fermant' => 'Chomet eo digor ar vouklenn @id@', |
|
| 694 | - 'zbug_erreur_boucle_syntaxe' => 'Direizh eo ereadurezh ar vouklenn @id@', |
|
| 695 | - 'zbug_erreur_compilation' => 'Fazi kempunañ', |
|
| 696 | - 'zbug_erreur_execution_page' => 'Fazi erounit', |
|
| 697 | - 'zbug_erreur_filtre' => 'Sil @filtre@ didermenet', |
|
| 698 | - 'zbug_erreur_meme_parent' => 'n’hall an dezverk {meme_parent} bezañ implijet nemet war ar bouklennoù (FOROMOÙ) pe (RUBRIKENNOÙ)', |
|
| 699 | - 'zbug_erreur_squelette' => 'Fazi(où) er framm', |
|
| 700 | - 'zbug_hors_compilation' => 'Er-maez kempunad', |
|
| 701 | - 'zbug_info_erreur_squelette' => 'Fazi war al lec’hienn', |
|
| 702 | - 'zbug_inversion_ordre_inexistant' => 'Eilpennañ un urzh n’eus ket anezhañ', |
|
| 703 | - 'zbug_pagination_sans_critere' => 'N’eus dezverk ebet d’ar valizenn #PAJENNAOUIÑ, pe neuze eo implijet en ur vouken a dro warni hec’h-unan', |
|
| 704 | - 'zbug_parametres_inclus_incorrects' => 'Direizh eo an arventenn ensoc’hañ @param@', |
|
| 705 | - 'zbug_profile' => 'Amzer jediñ : @time@', |
|
| 706 | - 'zbug_resultat' => 'disoc’h', |
|
| 707 | - 'zbug_serveur_indefini' => 'Servijer SQL didermenet', |
|
| 708 | - 'zbug_statistiques' => 'Stadegoù ar goulennoù SQL urzhiet diouzh o fad', |
|
| 709 | - 'zbug_table_inconnue' => 'Taolenn SQL « @table@ » dianav', |
|
| 710 | - 'zxml_connus_attributs' => 'perzhioù anavezet', |
|
| 711 | - 'zxml_de' => 'da', |
|
| 712 | - 'zxml_inconnu_attribut' => 'perzh dianav', |
|
| 713 | - 'zxml_inconnu_balise' => 'balizenn dianav', |
|
| 714 | - 'zxml_inconnu_entite' => 'elfenn dianav', |
|
| 715 | - 'zxml_inconnu_id' => 'ID dianav', |
|
| 716 | - 'zxml_mais_de' => 'met eus', |
|
| 717 | - 'zxml_non_conforme' => 'ne glot ket gant an abeg', |
|
| 718 | - 'zxml_non_fils' => 'n’eo ket ur mab da', |
|
| 719 | - 'zxml_nonvide_balise' => 'balizenn ket goullo', |
|
| 720 | - 'zxml_obligatoire_attribut' => 'perzh rediet, met na gaver ket e', |
|
| 721 | - 'zxml_succession_fils_incorrecte' => 'heuliad ar vibien direizh', |
|
| 722 | - 'zxml_survoler' => 'tremen buan da welet ar re zo reizh', |
|
| 723 | - 'zxml_valeur_attribut' => 'talvoudegezh ar perzh', |
|
| 724 | - 'zxml_vide_balise' => 'balizenn c’houllo', |
|
| 725 | - 'zxml_vu' => 'bet gwelet a-raok' |
|
| 677 | + // Z |
|
| 678 | + 'zbug_balise_b_aval' => ' : balizenn B en ardraoñ', |
|
| 679 | + 'zbug_balise_inexistante' => 'Disklêriet-fall eo ar valizenn @balise@ evit @from@', |
|
| 680 | + 'zbug_balise_sans_argument' => 'Un arguzenn a vank er valizenn @balise@', |
|
| 681 | + 'zbug_boucle' => 'bouklenn', |
|
| 682 | + 'zbug_boucle_recursive_undef' => 'N’eo ket bet termenet ar vouklenn-mañ : @nom@', |
|
| 683 | + 'zbug_calcul' => 'jediñ', |
|
| 684 | + 'zbug_champ_hors_boucle' => 'Maezienn @champ@ e diavaez ar vouklenn', |
|
| 685 | + 'zbug_champ_hors_motif' => 'Maezienn @champ@ er-maez kendestenn @motif@', |
|
| 686 | + 'zbug_code' => 'kod', |
|
| 687 | + 'zbug_critere_inconnu' => 'Dezverk @critere@ dianav', |
|
| 688 | + 'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} war un daolenn hep alc’hwez kentael atomek', |
|
| 689 | + 'zbug_distant_interdit' => 'N’eo ket posupl war un diaz roadoù diavaez', |
|
| 690 | + 'zbug_doublon_table_sans_cle_primaire' => 'Doublennoù war un diaz hep alc’hwez kentañ atomek', |
|
| 691 | + 'zbug_doublon_table_sans_index' => 'Doublenn war un diaz hep meneger', |
|
| 692 | + 'zbug_erreur_boucle_double' => 'Bouklenn @id@ bet termenet div wech', |
|
| 693 | + 'zbug_erreur_boucle_fermant' => 'Chomet eo digor ar vouklenn @id@', |
|
| 694 | + 'zbug_erreur_boucle_syntaxe' => 'Direizh eo ereadurezh ar vouklenn @id@', |
|
| 695 | + 'zbug_erreur_compilation' => 'Fazi kempunañ', |
|
| 696 | + 'zbug_erreur_execution_page' => 'Fazi erounit', |
|
| 697 | + 'zbug_erreur_filtre' => 'Sil @filtre@ didermenet', |
|
| 698 | + 'zbug_erreur_meme_parent' => 'n’hall an dezverk {meme_parent} bezañ implijet nemet war ar bouklennoù (FOROMOÙ) pe (RUBRIKENNOÙ)', |
|
| 699 | + 'zbug_erreur_squelette' => 'Fazi(où) er framm', |
|
| 700 | + 'zbug_hors_compilation' => 'Er-maez kempunad', |
|
| 701 | + 'zbug_info_erreur_squelette' => 'Fazi war al lec’hienn', |
|
| 702 | + 'zbug_inversion_ordre_inexistant' => 'Eilpennañ un urzh n’eus ket anezhañ', |
|
| 703 | + 'zbug_pagination_sans_critere' => 'N’eus dezverk ebet d’ar valizenn #PAJENNAOUIÑ, pe neuze eo implijet en ur vouken a dro warni hec’h-unan', |
|
| 704 | + 'zbug_parametres_inclus_incorrects' => 'Direizh eo an arventenn ensoc’hañ @param@', |
|
| 705 | + 'zbug_profile' => 'Amzer jediñ : @time@', |
|
| 706 | + 'zbug_resultat' => 'disoc’h', |
|
| 707 | + 'zbug_serveur_indefini' => 'Servijer SQL didermenet', |
|
| 708 | + 'zbug_statistiques' => 'Stadegoù ar goulennoù SQL urzhiet diouzh o fad', |
|
| 709 | + 'zbug_table_inconnue' => 'Taolenn SQL « @table@ » dianav', |
|
| 710 | + 'zxml_connus_attributs' => 'perzhioù anavezet', |
|
| 711 | + 'zxml_de' => 'da', |
|
| 712 | + 'zxml_inconnu_attribut' => 'perzh dianav', |
|
| 713 | + 'zxml_inconnu_balise' => 'balizenn dianav', |
|
| 714 | + 'zxml_inconnu_entite' => 'elfenn dianav', |
|
| 715 | + 'zxml_inconnu_id' => 'ID dianav', |
|
| 716 | + 'zxml_mais_de' => 'met eus', |
|
| 717 | + 'zxml_non_conforme' => 'ne glot ket gant an abeg', |
|
| 718 | + 'zxml_non_fils' => 'n’eo ket ur mab da', |
|
| 719 | + 'zxml_nonvide_balise' => 'balizenn ket goullo', |
|
| 720 | + 'zxml_obligatoire_attribut' => 'perzh rediet, met na gaver ket e', |
|
| 721 | + 'zxml_succession_fils_incorrecte' => 'heuliad ar vibien direizh', |
|
| 722 | + 'zxml_survoler' => 'tremen buan da welet ar re zo reizh', |
|
| 723 | + 'zxml_valeur_attribut' => 'talvoudegezh ar perzh', |
|
| 724 | + 'zxml_vide_balise' => 'balizenn c’houllo', |
|
| 725 | + 'zxml_vu' => 'bet gwelet a-raok' |
|
| 726 | 726 | ); |
@@ -100,7 +100,7 @@ discard block |
||
| 100 | 100 | $res['message_ok'] = _T('info_modification_enregistree'); |
| 101 | 101 | if ($retour) { |
| 102 | 102 | if (strncmp($retour, 'javascript:', 11) == 0) { |
| 103 | - $res['message_ok'] .= '<script type="text/javascript">/*<![CDATA[*/' . substr($retour, 11) . '/*]]>*/</script>'; |
|
| 103 | + $res['message_ok'] .= '<script type="text/javascript">/*<![CDATA[*/'.substr($retour, 11).'/*]]>*/</script>'; |
|
| 104 | 104 | $res['editable'] = true; |
| 105 | 105 | } else { |
| 106 | 106 | $res['redirect'] = parametre_url($retour, $id_table_objet, $id); |
@@ -140,7 +140,7 @@ discard block |
||
| 140 | 140 | if (!isset($erreurs[$champ])) { |
| 141 | 141 | $erreurs[$champ] = ''; |
| 142 | 142 | } |
| 143 | - $erreurs[$champ] .= _T('alerte_modif_info_concourante') . "<br /><textarea readonly='readonly' class='forml'>" . entites_html($conflit['base']) . '</textarea>'; |
|
| 143 | + $erreurs[$champ] .= _T('alerte_modif_info_concourante')."<br /><textarea readonly='readonly' class='forml'>".entites_html($conflit['base']).'</textarea>'; |
|
| 144 | 144 | } |
| 145 | 145 | } |
| 146 | 146 | } |
@@ -221,7 +221,7 @@ discard block |
||
| 221 | 221 | if ( |
| 222 | 222 | $config_fonc |
| 223 | 223 | and !in_array($config_fonc, ['articles_edit_config', 'rubriques_edit_config', 'auteurs_edit_config']) |
| 224 | - and $config_fonc !== $table_objet . '_edit_config' |
|
| 224 | + and $config_fonc !== $table_objet.'_edit_config' |
|
| 225 | 225 | ) { |
| 226 | 226 | if ( |
| 227 | 227 | $args = test_formulaire_inclus_par_modele() |
@@ -236,12 +236,12 @@ discard block |
||
| 236 | 236 | // Appel direct dans un squelette |
| 237 | 237 | if (!$row) { |
| 238 | 238 | if (!$new or $lier_trad) { |
| 239 | - if ($select = charger_fonction('precharger_' . $type, 'inc', true)) { |
|
| 239 | + if ($select = charger_fonction('precharger_'.$type, 'inc', true)) { |
|
| 240 | 240 | $row = $select($id, $id_parent, $lier_trad); |
| 241 | 241 | // si on a une fonction precharger, elle pu faire un reglage de langue |
| 242 | 242 | $lang_default = (!empty($row['lang']) ? $row['lang'] : null); |
| 243 | 243 | } else { |
| 244 | - $row = sql_fetsel('*', $table_objet_sql, $id_table_objet . '=' . intval($id)); |
|
| 244 | + $row = sql_fetsel('*', $table_objet_sql, $id_table_objet.'='.intval($id)); |
|
| 245 | 245 | } |
| 246 | 246 | if (!$new) { |
| 247 | 247 | $md5 = controles_md5($row ?? []); |
@@ -291,7 +291,7 @@ discard block |
||
| 291 | 291 | if ($config_fonc) { |
| 292 | 292 | $contexte['config'] = $config = $config_fonc($contexte); |
| 293 | 293 | if (!$lang_default) { |
| 294 | - $lang_default = $config['langue'] ?? session_get('lang') ; |
|
| 294 | + $lang_default = $config['langue'] ?? session_get('lang'); |
|
| 295 | 295 | } |
| 296 | 296 | } |
| 297 | 297 | $config = $config + [ |
@@ -315,13 +315,12 @@ discard block |
||
| 315 | 315 | unset($contexte['lang']); |
| 316 | 316 | } |
| 317 | 317 | |
| 318 | - $contexte['_hidden'] = "<input type='hidden' name='editer_$type' value='oui' />\n" . |
|
| 319 | - (!$lier_trad ? '' : |
|
| 320 | - ("\n<input type='hidden' name='lier_trad' value='" . |
|
| 321 | - $lier_trad . |
|
| 322 | - "' />" . |
|
| 323 | - "\n<input type='hidden' name='changer_lang' value='" . |
|
| 324 | - $lang_default . |
|
| 318 | + $contexte['_hidden'] = "<input type='hidden' name='editer_$type' value='oui' />\n". |
|
| 319 | + (!$lier_trad ? '' : ("\n<input type='hidden' name='lier_trad' value='". |
|
| 320 | + $lier_trad. |
|
| 321 | + "' />". |
|
| 322 | + "\n<input type='hidden' name='changer_lang' value='". |
|
| 323 | + $lang_default. |
|
| 325 | 324 | "' />")) |
| 326 | 325 | . $hidden |
| 327 | 326 | . ($md5 ?? ''); |
@@ -361,14 +360,14 @@ discard block |
||
| 361 | 360 | $aider = charger_fonction('aider', 'inc'); |
| 362 | 361 | if (strlen($texte) > 28 * 1024) { |
| 363 | 362 | $texte = str_replace("\r\n", "\n", $texte); |
| 364 | - $pos = strpos($texte, "\n\n", 28 * 1024); // coupe para > 28 ko |
|
| 363 | + $pos = strpos($texte, "\n\n", 28 * 1024); // coupe para > 28 ko |
|
| 365 | 364 | if ($pos > 0 and $pos < 32 * 1024) { |
| 366 | - $debut = substr($texte, 0, $pos) . "\n\n<!--SPIP-->\n"; |
|
| 365 | + $debut = substr($texte, 0, $pos)."\n\n<!--SPIP-->\n"; |
|
| 367 | 366 | $suite = substr($texte, $pos + 2); |
| 368 | 367 | } else { |
| 369 | - $pos = strpos($texte, ' ', 28 * 1024); // sinon coupe espace |
|
| 368 | + $pos = strpos($texte, ' ', 28 * 1024); // sinon coupe espace |
|
| 370 | 369 | if (!($pos > 0 and $pos < 32 * 1024)) { |
| 371 | - $pos = 28 * 1024; // au pire (pas d'espace trouv'e) |
|
| 370 | + $pos = 28 * 1024; // au pire (pas d'espace trouv'e) |
|
| 372 | 371 | $decalage = 0; // si y'a pas d'espace, il ne faut pas perdre le caract`ere |
| 373 | 372 | } else { |
| 374 | 373 | $decalage = 1; |
@@ -399,13 +398,13 @@ discard block |
||
| 399 | 398 | } |
| 400 | 399 | |
| 401 | 400 | include_spip('inc/barre'); |
| 402 | - $textes_supplement = "<br /><span style='color: red'>" . _T('info_texte_long') . "</span>\n"; |
|
| 401 | + $textes_supplement = "<br /><span style='color: red'>"._T('info_texte_long')."</span>\n"; |
|
| 403 | 402 | $nombre = 0; |
| 404 | 403 | |
| 405 | 404 | while (strlen($texte) > 29 * 1024) { |
| 406 | 405 | $nombre++; |
| 407 | 406 | [$texte1, $texte] = coupe_trop_long($texte); |
| 408 | - $textes_supplement .= '<br />' . |
|
| 407 | + $textes_supplement .= '<br />'. |
|
| 409 | 408 | "<textarea id='texte$nombre' name='texte_plus[$nombre]'$att_text>$texte1</textarea>\n"; |
| 410 | 409 | } |
| 411 | 410 | |
@@ -488,7 +487,7 @@ discard block |
||
| 488 | 487 | $ctr = []; |
| 489 | 488 | foreach ($data as $key => $val) { |
| 490 | 489 | $m = md5($val ?? ''); |
| 491 | - $k = $prefixe . $key; |
|
| 490 | + $k = $prefixe.$key; |
|
| 492 | 491 | |
| 493 | 492 | switch ($format) { |
| 494 | 493 | case 'html': |
@@ -501,7 +500,7 @@ discard block |
||
| 501 | 500 | } |
| 502 | 501 | |
| 503 | 502 | if ($format === 'html') { |
| 504 | - return "\n\n<!-- controles md5 -->\n" . join("\n", $ctr) . "\n\n"; |
|
| 503 | + return "\n\n<!-- controles md5 -->\n".join("\n", $ctr)."\n\n"; |
|
| 505 | 504 | } else { |
| 506 | 505 | return $ctr; |
| 507 | 506 | } |
@@ -653,7 +652,7 @@ discard block |
||
| 653 | 652 | // On elimine les donnees non modifiees par le formulaire (mais |
| 654 | 653 | // potentiellement modifiees entre temps par un autre utilisateur) |
| 655 | 654 | foreach ($champs as $key => $val) { |
| 656 | - if (isset($ctr[$prefix . $key]) and $m = $ctr[$prefix . $key]) { |
|
| 655 | + if (isset($ctr[$prefix.$key]) and $m = $ctr[$prefix.$key]) { |
|
| 657 | 656 | if (is_scalar($val) and $m == md5($val)) { |
| 658 | 657 | unset($champs[$key]); |
| 659 | 658 | } |
@@ -682,7 +681,7 @@ discard block |
||
| 682 | 681 | // de conflit. |
| 683 | 682 | $ctrh = $ctrq = $conflits = []; |
| 684 | 683 | foreach (array_keys($champs) as $key) { |
| 685 | - if (isset($ctr[$prefix . $key]) and $m = $ctr[$prefix . $key]) { |
|
| 684 | + if (isset($ctr[$prefix.$key]) and $m = $ctr[$prefix.$key]) { |
|
| 686 | 685 | $ctrh[$key] = $m; |
| 687 | 686 | $ctrq[] = $key; |
| 688 | 687 | } |
@@ -716,8 +715,8 @@ discard block |
||
| 716 | 715 | */ |
| 717 | 716 | function display_conflit_champ($x) { |
| 718 | 717 | if (strstr($x, "\n") or strlen($x) > 80) { |
| 719 | - return "<textarea style='width:99%; height:10em;'>" . entites_html($x) . "</textarea>\n"; |
|
| 718 | + return "<textarea style='width:99%; height:10em;'>".entites_html($x)."</textarea>\n"; |
|
| 720 | 719 | } else { |
| 721 | - return "<input type='text' size='40' style='width:99%' value=\"" . entites_html($x) . "\" />\n"; |
|
| 720 | + return "<input type='text' size='40' style='width:99%' value=\"".entites_html($x)."\" />\n"; |
|
| 722 | 721 | } |
| 723 | 722 | } |
@@ -17,7 +17,7 @@ discard block |
||
| 17 | 17 | **/ |
| 18 | 18 | |
| 19 | 19 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 20 | - return; |
|
| 20 | + return; |
|
| 21 | 21 | } |
| 22 | 22 | include_spip('base/abstract_sql'); |
| 23 | 23 | |
@@ -59,56 +59,56 @@ discard block |
||
| 59 | 59 | * Retour des traitements. |
| 60 | 60 | **/ |
| 61 | 61 | function formulaires_editer_objet_traiter( |
| 62 | - $type, |
|
| 63 | - $id = 'new', |
|
| 64 | - $id_parent = 0, |
|
| 65 | - $lier_trad = 0, |
|
| 66 | - $retour = '', |
|
| 67 | - $config_fonc = 'articles_edit_config', |
|
| 68 | - $row = [], |
|
| 69 | - $hidden = '' |
|
| 62 | + $type, |
|
| 63 | + $id = 'new', |
|
| 64 | + $id_parent = 0, |
|
| 65 | + $lier_trad = 0, |
|
| 66 | + $retour = '', |
|
| 67 | + $config_fonc = 'articles_edit_config', |
|
| 68 | + $row = [], |
|
| 69 | + $hidden = '' |
|
| 70 | 70 | ) { |
| 71 | 71 | |
| 72 | - $res = []; |
|
| 73 | - // eviter la redirection forcee par l'action... |
|
| 74 | - set_request('redirect'); |
|
| 75 | - if ($action_editer = charger_fonction("editer_$type", 'action', true)) { |
|
| 76 | - [$id, $err] = $action_editer($id); |
|
| 77 | - } else { |
|
| 78 | - $action_editer = charger_fonction('editer_objet', 'action'); |
|
| 79 | - [$id, $err] = $action_editer($id, $type); |
|
| 80 | - } |
|
| 81 | - $id_table_objet = id_table_objet($type); |
|
| 82 | - $res[$id_table_objet] = $id; |
|
| 83 | - if ($err or !$id) { |
|
| 84 | - $res['message_erreur'] = ($err ?: _T('erreur')); |
|
| 85 | - } else { |
|
| 86 | - // Un lien de trad a prendre en compte |
|
| 87 | - if ($lier_trad) { |
|
| 88 | - // referencer la traduction |
|
| 89 | - $referencer_traduction = charger_fonction('referencer_traduction', 'action'); |
|
| 90 | - $referencer_traduction($type, $id, $lier_trad); |
|
| 91 | - // actions de recopie de champs / liens sur le nouvel objet créé |
|
| 92 | - $completer_traduction = charger_fonction('completer_traduction', 'inc'); |
|
| 93 | - $err = $completer_traduction($type, $id, $lier_trad); |
|
| 94 | - if ($err) { |
|
| 95 | - $res['message_erreur'] = $err; |
|
| 96 | - return $res; |
|
| 97 | - } |
|
| 98 | - } |
|
| 99 | - |
|
| 100 | - $res['message_ok'] = _T('info_modification_enregistree'); |
|
| 101 | - if ($retour) { |
|
| 102 | - if (strncmp($retour, 'javascript:', 11) == 0) { |
|
| 103 | - $res['message_ok'] .= '<script type="text/javascript">/*<![CDATA[*/' . substr($retour, 11) . '/*]]>*/</script>'; |
|
| 104 | - $res['editable'] = true; |
|
| 105 | - } else { |
|
| 106 | - $res['redirect'] = parametre_url($retour, $id_table_objet, $id); |
|
| 107 | - } |
|
| 108 | - } |
|
| 109 | - } |
|
| 110 | - |
|
| 111 | - return $res; |
|
| 72 | + $res = []; |
|
| 73 | + // eviter la redirection forcee par l'action... |
|
| 74 | + set_request('redirect'); |
|
| 75 | + if ($action_editer = charger_fonction("editer_$type", 'action', true)) { |
|
| 76 | + [$id, $err] = $action_editer($id); |
|
| 77 | + } else { |
|
| 78 | + $action_editer = charger_fonction('editer_objet', 'action'); |
|
| 79 | + [$id, $err] = $action_editer($id, $type); |
|
| 80 | + } |
|
| 81 | + $id_table_objet = id_table_objet($type); |
|
| 82 | + $res[$id_table_objet] = $id; |
|
| 83 | + if ($err or !$id) { |
|
| 84 | + $res['message_erreur'] = ($err ?: _T('erreur')); |
|
| 85 | + } else { |
|
| 86 | + // Un lien de trad a prendre en compte |
|
| 87 | + if ($lier_trad) { |
|
| 88 | + // referencer la traduction |
|
| 89 | + $referencer_traduction = charger_fonction('referencer_traduction', 'action'); |
|
| 90 | + $referencer_traduction($type, $id, $lier_trad); |
|
| 91 | + // actions de recopie de champs / liens sur le nouvel objet créé |
|
| 92 | + $completer_traduction = charger_fonction('completer_traduction', 'inc'); |
|
| 93 | + $err = $completer_traduction($type, $id, $lier_trad); |
|
| 94 | + if ($err) { |
|
| 95 | + $res['message_erreur'] = $err; |
|
| 96 | + return $res; |
|
| 97 | + } |
|
| 98 | + } |
|
| 99 | + |
|
| 100 | + $res['message_ok'] = _T('info_modification_enregistree'); |
|
| 101 | + if ($retour) { |
|
| 102 | + if (strncmp($retour, 'javascript:', 11) == 0) { |
|
| 103 | + $res['message_ok'] .= '<script type="text/javascript">/*<![CDATA[*/' . substr($retour, 11) . '/*]]>*/</script>'; |
|
| 104 | + $res['editable'] = true; |
|
| 105 | + } else { |
|
| 106 | + $res['redirect'] = parametre_url($retour, $id_table_objet, $id); |
|
| 107 | + } |
|
| 108 | + } |
|
| 109 | + } |
|
| 110 | + |
|
| 111 | + return $res; |
|
| 112 | 112 | } |
| 113 | 113 | |
| 114 | 114 | /** |
@@ -132,29 +132,29 @@ discard block |
||
| 132 | 132 | * Tableau des erreurs |
| 133 | 133 | **/ |
| 134 | 134 | function formulaires_editer_objet_verifier($type, $id = 'new', $oblis = []) { |
| 135 | - $erreurs = []; |
|
| 136 | - if (intval($id)) { |
|
| 137 | - $conflits = controler_contenu($type, $id); |
|
| 138 | - if ($conflits and is_countable($conflits) ? count($conflits) : 0) { |
|
| 139 | - foreach ($conflits as $champ => $conflit) { |
|
| 140 | - if (!isset($erreurs[$champ])) { |
|
| 141 | - $erreurs[$champ] = ''; |
|
| 142 | - } |
|
| 143 | - $erreurs[$champ] .= _T('alerte_modif_info_concourante') . "<br /><textarea readonly='readonly' class='forml'>" . entites_html($conflit['base']) . '</textarea>'; |
|
| 144 | - } |
|
| 145 | - } |
|
| 146 | - } |
|
| 147 | - foreach ($oblis as $obli) { |
|
| 148 | - $value = _request($obli); |
|
| 149 | - if (is_null($value) or !(is_array($value) ? count($value) : strlen($value))) { |
|
| 150 | - if (!isset($erreurs[$obli])) { |
|
| 151 | - $erreurs[$obli] = ''; |
|
| 152 | - } |
|
| 153 | - $erreurs[$obli] .= _T('info_obligatoire'); |
|
| 154 | - } |
|
| 155 | - } |
|
| 156 | - |
|
| 157 | - return $erreurs; |
|
| 135 | + $erreurs = []; |
|
| 136 | + if (intval($id)) { |
|
| 137 | + $conflits = controler_contenu($type, $id); |
|
| 138 | + if ($conflits and is_countable($conflits) ? count($conflits) : 0) { |
|
| 139 | + foreach ($conflits as $champ => $conflit) { |
|
| 140 | + if (!isset($erreurs[$champ])) { |
|
| 141 | + $erreurs[$champ] = ''; |
|
| 142 | + } |
|
| 143 | + $erreurs[$champ] .= _T('alerte_modif_info_concourante') . "<br /><textarea readonly='readonly' class='forml'>" . entites_html($conflit['base']) . '</textarea>'; |
|
| 144 | + } |
|
| 145 | + } |
|
| 146 | + } |
|
| 147 | + foreach ($oblis as $obli) { |
|
| 148 | + $value = _request($obli); |
|
| 149 | + if (is_null($value) or !(is_array($value) ? count($value) : strlen($value))) { |
|
| 150 | + if (!isset($erreurs[$obli])) { |
|
| 151 | + $erreurs[$obli] = ''; |
|
| 152 | + } |
|
| 153 | + $erreurs[$obli] .= _T('info_obligatoire'); |
|
| 154 | + } |
|
| 155 | + } |
|
| 156 | + |
|
| 157 | + return $erreurs; |
|
| 158 | 158 | } |
| 159 | 159 | |
| 160 | 160 | /** |
@@ -199,154 +199,154 @@ discard block |
||
| 199 | 199 | * Environnement du formulaire. |
| 200 | 200 | **/ |
| 201 | 201 | function formulaires_editer_objet_charger( |
| 202 | - $type, |
|
| 203 | - $id = 'new', |
|
| 204 | - $id_parent = 0, |
|
| 205 | - $lier_trad = 0, |
|
| 206 | - $retour = '', |
|
| 207 | - $config_fonc = 'articles_edit_config', |
|
| 208 | - $row = [], |
|
| 209 | - $hidden = '' |
|
| 202 | + $type, |
|
| 203 | + $id = 'new', |
|
| 204 | + $id_parent = 0, |
|
| 205 | + $lier_trad = 0, |
|
| 206 | + $retour = '', |
|
| 207 | + $config_fonc = 'articles_edit_config', |
|
| 208 | + $row = [], |
|
| 209 | + $hidden = '' |
|
| 210 | 210 | ) { |
| 211 | 211 | |
| 212 | - $table_objet = table_objet($type); |
|
| 213 | - $table_objet_sql = table_objet_sql($type); |
|
| 214 | - $id_table_objet = id_table_objet($type); |
|
| 215 | - if (!is_array($row)) { |
|
| 216 | - $row = []; |
|
| 217 | - } |
|
| 218 | - |
|
| 219 | - // on accepte pas une fonction de config inconnue si elle vient d'un modele |
|
| 220 | - if ( |
|
| 221 | - $config_fonc |
|
| 222 | - and !in_array($config_fonc, ['articles_edit_config', 'rubriques_edit_config', 'auteurs_edit_config']) |
|
| 223 | - and $config_fonc !== $table_objet . '_edit_config' |
|
| 224 | - ) { |
|
| 225 | - if ( |
|
| 226 | - $args = test_formulaire_inclus_par_modele() |
|
| 227 | - and in_array($config_fonc, $args) |
|
| 228 | - ) { |
|
| 229 | - $config_fonc = ''; |
|
| 230 | - } |
|
| 231 | - } |
|
| 232 | - |
|
| 233 | - $new = !is_numeric($id); |
|
| 234 | - $lang_default = ''; |
|
| 235 | - // Appel direct dans un squelette |
|
| 236 | - if (!$row) { |
|
| 237 | - if (!$new or $lier_trad) { |
|
| 238 | - if ($select = charger_fonction('precharger_' . $type, 'inc', true)) { |
|
| 239 | - $row = $select($id, $id_parent, $lier_trad); |
|
| 240 | - // si on a une fonction precharger, elle pu faire un reglage de langue |
|
| 241 | - $lang_default = (!empty($row['lang']) ? $row['lang'] : null); |
|
| 242 | - } else { |
|
| 243 | - $row = sql_fetsel('*', $table_objet_sql, $id_table_objet . '=' . intval($id)); |
|
| 244 | - } |
|
| 245 | - if (!$new) { |
|
| 246 | - $md5 = controles_md5($row ?? []); |
|
| 247 | - } |
|
| 248 | - } |
|
| 249 | - if (!$row) { |
|
| 250 | - $row = []; |
|
| 251 | - $trouver_table = charger_fonction('trouver_table', 'base'); |
|
| 252 | - if ($desc = $trouver_table($table_objet)) { |
|
| 253 | - foreach ($desc['field'] as $k => $v) { |
|
| 254 | - $row[$k] = ''; |
|
| 255 | - } |
|
| 256 | - } |
|
| 257 | - } |
|
| 258 | - } |
|
| 259 | - |
|
| 260 | - // Gaffe: sans ceci, on ecrase systematiquement l'article d'origine |
|
| 261 | - // (et donc: pas de lien de traduction) |
|
| 262 | - $id = ($new or $lier_trad) |
|
| 263 | - ? 'oui' |
|
| 264 | - : $row[$id_table_objet]; |
|
| 265 | - $row[$id_table_objet] = $id; |
|
| 266 | - |
|
| 267 | - $contexte = $row; |
|
| 268 | - if (is_numeric($id_parent) && strlen($id_parent) && (!isset($contexte['id_parent']) or $new)) { |
|
| 269 | - if (!isset($contexte['id_parent'])) { |
|
| 270 | - unset($contexte['id_rubrique']); |
|
| 271 | - } |
|
| 272 | - $contexte['id_parent'] = $id_parent; |
|
| 273 | - } elseif (!isset($contexte['id_parent'])) { |
|
| 274 | - // id_rubrique dans id_parent si possible |
|
| 275 | - if (isset($contexte['id_rubrique'])) { |
|
| 276 | - $contexte['id_parent'] = $contexte['id_rubrique']; |
|
| 277 | - unset($contexte['id_rubrique']); |
|
| 278 | - } else { |
|
| 279 | - $contexte['id_parent'] = ''; |
|
| 280 | - } |
|
| 281 | - if ( |
|
| 282 | - !$contexte['id_parent'] |
|
| 283 | - and $preselectionner_parent_nouvel_objet = charger_fonction('preselectionner_parent_nouvel_objet', 'inc', true) |
|
| 284 | - ) { |
|
| 285 | - $contexte['id_parent'] = $preselectionner_parent_nouvel_objet($type, $row); |
|
| 286 | - } |
|
| 287 | - } |
|
| 288 | - |
|
| 289 | - $config = []; |
|
| 290 | - if ($config_fonc) { |
|
| 291 | - $contexte['config'] = $config = $config_fonc($contexte); |
|
| 292 | - if (!$lang_default) { |
|
| 293 | - $lang_default = $config['langue'] ?? session_get('lang') ; |
|
| 294 | - } |
|
| 295 | - } |
|
| 296 | - $config = $config + [ |
|
| 297 | - 'lignes' => 0, |
|
| 298 | - 'langue' => '', |
|
| 299 | - ]; |
|
| 300 | - |
|
| 301 | - $att_text = " class='textarea' " |
|
| 302 | - . " rows='" |
|
| 303 | - . ($config['lignes'] + 15) |
|
| 304 | - . "' cols='40'"; |
|
| 305 | - if (isset($contexte['texte'])) { |
|
| 306 | - [$contexte['texte'], $contexte['_texte_trop_long']] = editer_texte_recolle($contexte['texte'], $att_text); |
|
| 307 | - } |
|
| 308 | - |
|
| 309 | - // on veut conserver la langue de l'interface ; |
|
| 310 | - // on passe cette donnee sous un autre nom, au cas ou le squelette |
|
| 311 | - // voudrait l'exploiter |
|
| 312 | - if (isset($contexte['lang'])) { |
|
| 313 | - $contexte['langue'] = $contexte['lang']; |
|
| 314 | - unset($contexte['lang']); |
|
| 315 | - } |
|
| 316 | - |
|
| 317 | - $contexte['_hidden'] = "<input type='hidden' name='editer_$type' value='oui' />\n" . |
|
| 318 | - (!$lier_trad ? '' : |
|
| 319 | - ("\n<input type='hidden' name='lier_trad' value='" . |
|
| 320 | - $lier_trad . |
|
| 321 | - "' />" . |
|
| 322 | - "\n<input type='hidden' name='changer_lang' value='" . |
|
| 323 | - $lang_default . |
|
| 324 | - "' />")) |
|
| 325 | - . $hidden |
|
| 326 | - . ($md5 ?? ''); |
|
| 327 | - |
|
| 328 | - // preciser que le formulaire doit passer dans un pipeline |
|
| 329 | - $contexte['_pipeline'] = ['editer_contenu_objet', ['type' => $type, 'id' => $id]]; |
|
| 330 | - |
|
| 331 | - // preciser que le formulaire doit etre securise auteur/action |
|
| 332 | - // n'est plus utile lorsque l'action accepte l'id en argument direct |
|
| 333 | - // on le garde pour compat |
|
| 334 | - $contexte['_action'] = ["editer_$type", $id]; |
|
| 335 | - |
|
| 336 | - // et in fine placer l'autorisation |
|
| 337 | - include_spip('inc/autoriser'); |
|
| 338 | - if (intval($id)) { |
|
| 339 | - if (!autoriser('modifier', $type, intval($id))) { |
|
| 340 | - $contexte['editable'] = ''; |
|
| 341 | - } |
|
| 342 | - } |
|
| 343 | - else { |
|
| 344 | - if (!autoriser('creer', $type, 0, null, ['id_parent' => $id_parent])) { |
|
| 345 | - $contexte['editable'] = ''; |
|
| 346 | - } |
|
| 347 | - } |
|
| 348 | - |
|
| 349 | - return $contexte; |
|
| 212 | + $table_objet = table_objet($type); |
|
| 213 | + $table_objet_sql = table_objet_sql($type); |
|
| 214 | + $id_table_objet = id_table_objet($type); |
|
| 215 | + if (!is_array($row)) { |
|
| 216 | + $row = []; |
|
| 217 | + } |
|
| 218 | + |
|
| 219 | + // on accepte pas une fonction de config inconnue si elle vient d'un modele |
|
| 220 | + if ( |
|
| 221 | + $config_fonc |
|
| 222 | + and !in_array($config_fonc, ['articles_edit_config', 'rubriques_edit_config', 'auteurs_edit_config']) |
|
| 223 | + and $config_fonc !== $table_objet . '_edit_config' |
|
| 224 | + ) { |
|
| 225 | + if ( |
|
| 226 | + $args = test_formulaire_inclus_par_modele() |
|
| 227 | + and in_array($config_fonc, $args) |
|
| 228 | + ) { |
|
| 229 | + $config_fonc = ''; |
|
| 230 | + } |
|
| 231 | + } |
|
| 232 | + |
|
| 233 | + $new = !is_numeric($id); |
|
| 234 | + $lang_default = ''; |
|
| 235 | + // Appel direct dans un squelette |
|
| 236 | + if (!$row) { |
|
| 237 | + if (!$new or $lier_trad) { |
|
| 238 | + if ($select = charger_fonction('precharger_' . $type, 'inc', true)) { |
|
| 239 | + $row = $select($id, $id_parent, $lier_trad); |
|
| 240 | + // si on a une fonction precharger, elle pu faire un reglage de langue |
|
| 241 | + $lang_default = (!empty($row['lang']) ? $row['lang'] : null); |
|
| 242 | + } else { |
|
| 243 | + $row = sql_fetsel('*', $table_objet_sql, $id_table_objet . '=' . intval($id)); |
|
| 244 | + } |
|
| 245 | + if (!$new) { |
|
| 246 | + $md5 = controles_md5($row ?? []); |
|
| 247 | + } |
|
| 248 | + } |
|
| 249 | + if (!$row) { |
|
| 250 | + $row = []; |
|
| 251 | + $trouver_table = charger_fonction('trouver_table', 'base'); |
|
| 252 | + if ($desc = $trouver_table($table_objet)) { |
|
| 253 | + foreach ($desc['field'] as $k => $v) { |
|
| 254 | + $row[$k] = ''; |
|
| 255 | + } |
|
| 256 | + } |
|
| 257 | + } |
|
| 258 | + } |
|
| 259 | + |
|
| 260 | + // Gaffe: sans ceci, on ecrase systematiquement l'article d'origine |
|
| 261 | + // (et donc: pas de lien de traduction) |
|
| 262 | + $id = ($new or $lier_trad) |
|
| 263 | + ? 'oui' |
|
| 264 | + : $row[$id_table_objet]; |
|
| 265 | + $row[$id_table_objet] = $id; |
|
| 266 | + |
|
| 267 | + $contexte = $row; |
|
| 268 | + if (is_numeric($id_parent) && strlen($id_parent) && (!isset($contexte['id_parent']) or $new)) { |
|
| 269 | + if (!isset($contexte['id_parent'])) { |
|
| 270 | + unset($contexte['id_rubrique']); |
|
| 271 | + } |
|
| 272 | + $contexte['id_parent'] = $id_parent; |
|
| 273 | + } elseif (!isset($contexte['id_parent'])) { |
|
| 274 | + // id_rubrique dans id_parent si possible |
|
| 275 | + if (isset($contexte['id_rubrique'])) { |
|
| 276 | + $contexte['id_parent'] = $contexte['id_rubrique']; |
|
| 277 | + unset($contexte['id_rubrique']); |
|
| 278 | + } else { |
|
| 279 | + $contexte['id_parent'] = ''; |
|
| 280 | + } |
|
| 281 | + if ( |
|
| 282 | + !$contexte['id_parent'] |
|
| 283 | + and $preselectionner_parent_nouvel_objet = charger_fonction('preselectionner_parent_nouvel_objet', 'inc', true) |
|
| 284 | + ) { |
|
| 285 | + $contexte['id_parent'] = $preselectionner_parent_nouvel_objet($type, $row); |
|
| 286 | + } |
|
| 287 | + } |
|
| 288 | + |
|
| 289 | + $config = []; |
|
| 290 | + if ($config_fonc) { |
|
| 291 | + $contexte['config'] = $config = $config_fonc($contexte); |
|
| 292 | + if (!$lang_default) { |
|
| 293 | + $lang_default = $config['langue'] ?? session_get('lang') ; |
|
| 294 | + } |
|
| 295 | + } |
|
| 296 | + $config = $config + [ |
|
| 297 | + 'lignes' => 0, |
|
| 298 | + 'langue' => '', |
|
| 299 | + ]; |
|
| 300 | + |
|
| 301 | + $att_text = " class='textarea' " |
|
| 302 | + . " rows='" |
|
| 303 | + . ($config['lignes'] + 15) |
|
| 304 | + . "' cols='40'"; |
|
| 305 | + if (isset($contexte['texte'])) { |
|
| 306 | + [$contexte['texte'], $contexte['_texte_trop_long']] = editer_texte_recolle($contexte['texte'], $att_text); |
|
| 307 | + } |
|
| 308 | + |
|
| 309 | + // on veut conserver la langue de l'interface ; |
|
| 310 | + // on passe cette donnee sous un autre nom, au cas ou le squelette |
|
| 311 | + // voudrait l'exploiter |
|
| 312 | + if (isset($contexte['lang'])) { |
|
| 313 | + $contexte['langue'] = $contexte['lang']; |
|
| 314 | + unset($contexte['lang']); |
|
| 315 | + } |
|
| 316 | + |
|
| 317 | + $contexte['_hidden'] = "<input type='hidden' name='editer_$type' value='oui' />\n" . |
|
| 318 | + (!$lier_trad ? '' : |
|
| 319 | + ("\n<input type='hidden' name='lier_trad' value='" . |
|
| 320 | + $lier_trad . |
|
| 321 | + "' />" . |
|
| 322 | + "\n<input type='hidden' name='changer_lang' value='" . |
|
| 323 | + $lang_default . |
|
| 324 | + "' />")) |
|
| 325 | + . $hidden |
|
| 326 | + . ($md5 ?? ''); |
|
| 327 | + |
|
| 328 | + // preciser que le formulaire doit passer dans un pipeline |
|
| 329 | + $contexte['_pipeline'] = ['editer_contenu_objet', ['type' => $type, 'id' => $id]]; |
|
| 330 | + |
|
| 331 | + // preciser que le formulaire doit etre securise auteur/action |
|
| 332 | + // n'est plus utile lorsque l'action accepte l'id en argument direct |
|
| 333 | + // on le garde pour compat |
|
| 334 | + $contexte['_action'] = ["editer_$type", $id]; |
|
| 335 | + |
|
| 336 | + // et in fine placer l'autorisation |
|
| 337 | + include_spip('inc/autoriser'); |
|
| 338 | + if (intval($id)) { |
|
| 339 | + if (!autoriser('modifier', $type, intval($id))) { |
|
| 340 | + $contexte['editable'] = ''; |
|
| 341 | + } |
|
| 342 | + } |
|
| 343 | + else { |
|
| 344 | + if (!autoriser('creer', $type, 0, null, ['id_parent' => $id_parent])) { |
|
| 345 | + $contexte['editable'] = ''; |
|
| 346 | + } |
|
| 347 | + } |
|
| 348 | + |
|
| 349 | + return $contexte; |
|
| 350 | 350 | } |
| 351 | 351 | |
| 352 | 352 | /** |
@@ -357,29 +357,29 @@ discard block |
||
| 357 | 357 | * @return array |
| 358 | 358 | */ |
| 359 | 359 | function coupe_trop_long($texte) { |
| 360 | - $aider = charger_fonction('aider', 'inc'); |
|
| 361 | - if (strlen($texte) > 28 * 1024) { |
|
| 362 | - $texte = str_replace("\r\n", "\n", $texte); |
|
| 363 | - $pos = strpos($texte, "\n\n", 28 * 1024); // coupe para > 28 ko |
|
| 364 | - if ($pos > 0 and $pos < 32 * 1024) { |
|
| 365 | - $debut = substr($texte, 0, $pos) . "\n\n<!--SPIP-->\n"; |
|
| 366 | - $suite = substr($texte, $pos + 2); |
|
| 367 | - } else { |
|
| 368 | - $pos = strpos($texte, ' ', 28 * 1024); // sinon coupe espace |
|
| 369 | - if (!($pos > 0 and $pos < 32 * 1024)) { |
|
| 370 | - $pos = 28 * 1024; // au pire (pas d'espace trouv'e) |
|
| 371 | - $decalage = 0; // si y'a pas d'espace, il ne faut pas perdre le caract`ere |
|
| 372 | - } else { |
|
| 373 | - $decalage = 1; |
|
| 374 | - } |
|
| 375 | - $debut = substr($texte, 0, $pos + $decalage); // Il faut conserver l'espace s'il y en a un |
|
| 376 | - $suite = substr($texte, $pos + $decalage); |
|
| 377 | - } |
|
| 378 | - |
|
| 379 | - return ([$debut, $suite]); |
|
| 380 | - } else { |
|
| 381 | - return ([$texte, '']); |
|
| 382 | - } |
|
| 360 | + $aider = charger_fonction('aider', 'inc'); |
|
| 361 | + if (strlen($texte) > 28 * 1024) { |
|
| 362 | + $texte = str_replace("\r\n", "\n", $texte); |
|
| 363 | + $pos = strpos($texte, "\n\n", 28 * 1024); // coupe para > 28 ko |
|
| 364 | + if ($pos > 0 and $pos < 32 * 1024) { |
|
| 365 | + $debut = substr($texte, 0, $pos) . "\n\n<!--SPIP-->\n"; |
|
| 366 | + $suite = substr($texte, $pos + 2); |
|
| 367 | + } else { |
|
| 368 | + $pos = strpos($texte, ' ', 28 * 1024); // sinon coupe espace |
|
| 369 | + if (!($pos > 0 and $pos < 32 * 1024)) { |
|
| 370 | + $pos = 28 * 1024; // au pire (pas d'espace trouv'e) |
|
| 371 | + $decalage = 0; // si y'a pas d'espace, il ne faut pas perdre le caract`ere |
|
| 372 | + } else { |
|
| 373 | + $decalage = 1; |
|
| 374 | + } |
|
| 375 | + $debut = substr($texte, 0, $pos + $decalage); // Il faut conserver l'espace s'il y en a un |
|
| 376 | + $suite = substr($texte, $pos + $decalage); |
|
| 377 | + } |
|
| 378 | + |
|
| 379 | + return ([$debut, $suite]); |
|
| 380 | + } else { |
|
| 381 | + return ([$texte, '']); |
|
| 382 | + } |
|
| 383 | 383 | } |
| 384 | 384 | |
| 385 | 385 | /** |
@@ -390,25 +390,25 @@ discard block |
||
| 390 | 390 | * @return array |
| 391 | 391 | */ |
| 392 | 392 | function editer_texte_recolle($texte, $att_text) { |
| 393 | - if ( |
|
| 394 | - (strlen($texte) < 29 * 1024) |
|
| 395 | - or (include_spip('inc/layer') and ($GLOBALS['browser_name'] != 'MSIE')) |
|
| 396 | - ) { |
|
| 397 | - return [$texte, '']; |
|
| 398 | - } |
|
| 399 | - |
|
| 400 | - include_spip('inc/barre'); |
|
| 401 | - $textes_supplement = "<br /><span style='color: red'>" . _T('info_texte_long') . "</span>\n"; |
|
| 402 | - $nombre = 0; |
|
| 403 | - |
|
| 404 | - while (strlen($texte) > 29 * 1024) { |
|
| 405 | - $nombre++; |
|
| 406 | - [$texte1, $texte] = coupe_trop_long($texte); |
|
| 407 | - $textes_supplement .= '<br />' . |
|
| 408 | - "<textarea id='texte$nombre' name='texte_plus[$nombre]'$att_text>$texte1</textarea>\n"; |
|
| 409 | - } |
|
| 410 | - |
|
| 411 | - return [$texte, $textes_supplement]; |
|
| 393 | + if ( |
|
| 394 | + (strlen($texte) < 29 * 1024) |
|
| 395 | + or (include_spip('inc/layer') and ($GLOBALS['browser_name'] != 'MSIE')) |
|
| 396 | + ) { |
|
| 397 | + return [$texte, '']; |
|
| 398 | + } |
|
| 399 | + |
|
| 400 | + include_spip('inc/barre'); |
|
| 401 | + $textes_supplement = "<br /><span style='color: red'>" . _T('info_texte_long') . "</span>\n"; |
|
| 402 | + $nombre = 0; |
|
| 403 | + |
|
| 404 | + while (strlen($texte) > 29 * 1024) { |
|
| 405 | + $nombre++; |
|
| 406 | + [$texte1, $texte] = coupe_trop_long($texte); |
|
| 407 | + $textes_supplement .= '<br />' . |
|
| 408 | + "<textarea id='texte$nombre' name='texte_plus[$nombre]'$att_text>$texte1</textarea>\n"; |
|
| 409 | + } |
|
| 410 | + |
|
| 411 | + return [$texte, $textes_supplement]; |
|
| 412 | 412 | } |
| 413 | 413 | |
| 414 | 414 | /** |
@@ -419,17 +419,17 @@ discard block |
||
| 419 | 419 | * @param int $longueur |
| 420 | 420 | */ |
| 421 | 421 | function titre_automatique($champ_titre, $champs_contenu, $longueur = null) { |
| 422 | - if (!_request($champ_titre)) { |
|
| 423 | - $titrer_contenu = charger_fonction('titrer_contenu', 'inc'); |
|
| 424 | - if (!is_null($longueur)) { |
|
| 425 | - $t = $titrer_contenu($champs_contenu, null, $longueur); |
|
| 426 | - } else { |
|
| 427 | - $t = $titrer_contenu($champs_contenu); |
|
| 428 | - } |
|
| 429 | - if ($t) { |
|
| 430 | - set_request($champ_titre, $t); |
|
| 431 | - } |
|
| 432 | - } |
|
| 422 | + if (!_request($champ_titre)) { |
|
| 423 | + $titrer_contenu = charger_fonction('titrer_contenu', 'inc'); |
|
| 424 | + if (!is_null($longueur)) { |
|
| 425 | + $t = $titrer_contenu($champs_contenu, null, $longueur); |
|
| 426 | + } else { |
|
| 427 | + $t = $titrer_contenu($champs_contenu); |
|
| 428 | + } |
|
| 429 | + if ($t) { |
|
| 430 | + set_request($champ_titre, $t); |
|
| 431 | + } |
|
| 432 | + } |
|
| 433 | 433 | } |
| 434 | 434 | |
| 435 | 435 | /** |
@@ -449,20 +449,20 @@ discard block |
||
| 449 | 449 | * @return string |
| 450 | 450 | */ |
| 451 | 451 | function inc_titrer_contenu_dist($champs_contenu, $c = null, $longueur = 50) { |
| 452 | - // trouver un champ texte non vide |
|
| 453 | - $t = ''; |
|
| 454 | - foreach ($champs_contenu as $champ) { |
|
| 455 | - if ($t = _request($champ, $c)) { |
|
| 456 | - break; |
|
| 457 | - } |
|
| 458 | - } |
|
| 459 | - |
|
| 460 | - if ($t) { |
|
| 461 | - include_spip('inc/texte_mini'); |
|
| 462 | - $t = couper($t, $longueur, '...'); |
|
| 463 | - } |
|
| 464 | - |
|
| 465 | - return $t; |
|
| 452 | + // trouver un champ texte non vide |
|
| 453 | + $t = ''; |
|
| 454 | + foreach ($champs_contenu as $champ) { |
|
| 455 | + if ($t = _request($champ, $c)) { |
|
| 456 | + break; |
|
| 457 | + } |
|
| 458 | + } |
|
| 459 | + |
|
| 460 | + if ($t) { |
|
| 461 | + include_spip('inc/texte_mini'); |
|
| 462 | + $t = couper($t, $longueur, '...'); |
|
| 463 | + } |
|
| 464 | + |
|
| 465 | + return $t; |
|
| 466 | 466 | } |
| 467 | 467 | |
| 468 | 468 | /** |
@@ -484,26 +484,26 @@ discard block |
||
| 484 | 484 | * - array sinon couples ('$prefixe$colonne => md5) |
| 485 | 485 | **/ |
| 486 | 486 | function controles_md5(array $data, string $prefixe = 'ctr_', string $format = 'html') { |
| 487 | - $ctr = []; |
|
| 488 | - foreach ($data as $key => $val) { |
|
| 489 | - $m = md5($val ?? ''); |
|
| 490 | - $k = $prefixe . $key; |
|
| 491 | - |
|
| 492 | - switch ($format) { |
|
| 493 | - case 'html': |
|
| 494 | - $ctr[$k] = "<input type='hidden' value='$m' name='$k' />"; |
|
| 495 | - break; |
|
| 496 | - default: |
|
| 497 | - $ctr[$k] = $m; |
|
| 498 | - break; |
|
| 499 | - } |
|
| 500 | - } |
|
| 501 | - |
|
| 502 | - if ($format === 'html') { |
|
| 503 | - return "\n\n<!-- controles md5 -->\n" . join("\n", $ctr) . "\n\n"; |
|
| 504 | - } else { |
|
| 505 | - return $ctr; |
|
| 506 | - } |
|
| 487 | + $ctr = []; |
|
| 488 | + foreach ($data as $key => $val) { |
|
| 489 | + $m = md5($val ?? ''); |
|
| 490 | + $k = $prefixe . $key; |
|
| 491 | + |
|
| 492 | + switch ($format) { |
|
| 493 | + case 'html': |
|
| 494 | + $ctr[$k] = "<input type='hidden' value='$m' name='$k' />"; |
|
| 495 | + break; |
|
| 496 | + default: |
|
| 497 | + $ctr[$k] = $m; |
|
| 498 | + break; |
|
| 499 | + } |
|
| 500 | + } |
|
| 501 | + |
|
| 502 | + if ($format === 'html') { |
|
| 503 | + return "\n\n<!-- controles md5 -->\n" . join("\n", $ctr) . "\n\n"; |
|
| 504 | + } else { |
|
| 505 | + return $ctr; |
|
| 506 | + } |
|
| 507 | 507 | } |
| 508 | 508 | |
| 509 | 509 | /** |
@@ -542,80 +542,80 @@ discard block |
||
| 542 | 542 | * - post : le contenu posté |
| 543 | 543 | **/ |
| 544 | 544 | function controler_contenu($type, $id, $options = [], $c = false, $serveur = '') { |
| 545 | - include_spip('inc/filtres'); |
|
| 546 | - |
|
| 547 | - $table_objet = table_objet($type); |
|
| 548 | - $spip_table_objet = table_objet_sql($type); |
|
| 549 | - $trouver_table = charger_fonction('trouver_table', 'base'); |
|
| 550 | - $desc = $trouver_table($table_objet, $serveur); |
|
| 551 | - |
|
| 552 | - // Appels incomplets (sans $c) |
|
| 553 | - if (!is_array($c)) { |
|
| 554 | - $c = []; |
|
| 555 | - foreach ($desc['field'] as $champ => $ignore) { |
|
| 556 | - if (_request($champ)) { |
|
| 557 | - $c[$champ] = _request($champ); |
|
| 558 | - } |
|
| 559 | - } |
|
| 560 | - } |
|
| 561 | - |
|
| 562 | - // Securite : certaines variables ne sont jamais acceptees ici |
|
| 563 | - // car elles ne relevent pas de autoriser(article, modifier) ; |
|
| 564 | - // il faut passer par instituer_XX() |
|
| 565 | - // TODO: faut-il passer ces variables interdites |
|
| 566 | - // dans un fichier de description separe ? |
|
| 567 | - unset($c['statut']); |
|
| 568 | - unset($c['id_parent']); |
|
| 569 | - unset($c['id_rubrique']); |
|
| 570 | - unset($c['id_secteur']); |
|
| 571 | - |
|
| 572 | - // Gerer les champs non vides |
|
| 573 | - if (isset($options['nonvide']) and is_array($options['nonvide'])) { |
|
| 574 | - foreach ($options['nonvide'] as $champ => $sinon) { |
|
| 575 | - if ($c[$champ] === '') { |
|
| 576 | - $c[$champ] = $sinon; |
|
| 577 | - } |
|
| 578 | - } |
|
| 579 | - } |
|
| 580 | - |
|
| 581 | - // N'accepter que les champs qui existent |
|
| 582 | - // [TODO] ici aussi on peut valider les contenus en fonction du type |
|
| 583 | - $champs = []; |
|
| 584 | - foreach ($desc['field'] as $champ => $ignore) { |
|
| 585 | - if (isset($c[$champ])) { |
|
| 586 | - $champs[$champ] = $c[$champ]; |
|
| 587 | - } |
|
| 588 | - } |
|
| 589 | - |
|
| 590 | - // Nettoyer les valeurs |
|
| 591 | - $champs = array_map('corriger_caracteres', $champs); |
|
| 592 | - |
|
| 593 | - // Envoyer aux plugins |
|
| 594 | - $champs = pipeline( |
|
| 595 | - 'pre_edition', |
|
| 596 | - [ |
|
| 597 | - 'args' => [ |
|
| 598 | - 'table' => $spip_table_objet, // compatibilite |
|
| 599 | - 'table_objet' => $table_objet, |
|
| 600 | - 'spip_table_objet' => $spip_table_objet, |
|
| 601 | - 'type' => $type, |
|
| 602 | - 'id_objet' => $id, |
|
| 603 | - 'champs' => $options['champs'] ?? [], // [doc] c'est quoi ? |
|
| 604 | - 'action' => 'controler', |
|
| 605 | - 'serveur' => $serveur, |
|
| 606 | - ], |
|
| 607 | - 'data' => $champs |
|
| 608 | - ] |
|
| 609 | - ); |
|
| 610 | - |
|
| 611 | - if (!$champs) { |
|
| 612 | - return false; |
|
| 613 | - } |
|
| 614 | - |
|
| 615 | - // Verifier si les mises a jour sont pertinentes, datees, en conflit etc |
|
| 616 | - $conflits = controler_md5($champs, $_POST, $type, $id, $serveur, $options['prefix'] ?? 'ctr_'); |
|
| 617 | - |
|
| 618 | - return $conflits; |
|
| 545 | + include_spip('inc/filtres'); |
|
| 546 | + |
|
| 547 | + $table_objet = table_objet($type); |
|
| 548 | + $spip_table_objet = table_objet_sql($type); |
|
| 549 | + $trouver_table = charger_fonction('trouver_table', 'base'); |
|
| 550 | + $desc = $trouver_table($table_objet, $serveur); |
|
| 551 | + |
|
| 552 | + // Appels incomplets (sans $c) |
|
| 553 | + if (!is_array($c)) { |
|
| 554 | + $c = []; |
|
| 555 | + foreach ($desc['field'] as $champ => $ignore) { |
|
| 556 | + if (_request($champ)) { |
|
| 557 | + $c[$champ] = _request($champ); |
|
| 558 | + } |
|
| 559 | + } |
|
| 560 | + } |
|
| 561 | + |
|
| 562 | + // Securite : certaines variables ne sont jamais acceptees ici |
|
| 563 | + // car elles ne relevent pas de autoriser(article, modifier) ; |
|
| 564 | + // il faut passer par instituer_XX() |
|
| 565 | + // TODO: faut-il passer ces variables interdites |
|
| 566 | + // dans un fichier de description separe ? |
|
| 567 | + unset($c['statut']); |
|
| 568 | + unset($c['id_parent']); |
|
| 569 | + unset($c['id_rubrique']); |
|
| 570 | + unset($c['id_secteur']); |
|
| 571 | + |
|
| 572 | + // Gerer les champs non vides |
|
| 573 | + if (isset($options['nonvide']) and is_array($options['nonvide'])) { |
|
| 574 | + foreach ($options['nonvide'] as $champ => $sinon) { |
|
| 575 | + if ($c[$champ] === '') { |
|
| 576 | + $c[$champ] = $sinon; |
|
| 577 | + } |
|
| 578 | + } |
|
| 579 | + } |
|
| 580 | + |
|
| 581 | + // N'accepter que les champs qui existent |
|
| 582 | + // [TODO] ici aussi on peut valider les contenus en fonction du type |
|
| 583 | + $champs = []; |
|
| 584 | + foreach ($desc['field'] as $champ => $ignore) { |
|
| 585 | + if (isset($c[$champ])) { |
|
| 586 | + $champs[$champ] = $c[$champ]; |
|
| 587 | + } |
|
| 588 | + } |
|
| 589 | + |
|
| 590 | + // Nettoyer les valeurs |
|
| 591 | + $champs = array_map('corriger_caracteres', $champs); |
|
| 592 | + |
|
| 593 | + // Envoyer aux plugins |
|
| 594 | + $champs = pipeline( |
|
| 595 | + 'pre_edition', |
|
| 596 | + [ |
|
| 597 | + 'args' => [ |
|
| 598 | + 'table' => $spip_table_objet, // compatibilite |
|
| 599 | + 'table_objet' => $table_objet, |
|
| 600 | + 'spip_table_objet' => $spip_table_objet, |
|
| 601 | + 'type' => $type, |
|
| 602 | + 'id_objet' => $id, |
|
| 603 | + 'champs' => $options['champs'] ?? [], // [doc] c'est quoi ? |
|
| 604 | + 'action' => 'controler', |
|
| 605 | + 'serveur' => $serveur, |
|
| 606 | + ], |
|
| 607 | + 'data' => $champs |
|
| 608 | + ] |
|
| 609 | + ); |
|
| 610 | + |
|
| 611 | + if (!$champs) { |
|
| 612 | + return false; |
|
| 613 | + } |
|
| 614 | + |
|
| 615 | + // Verifier si les mises a jour sont pertinentes, datees, en conflit etc |
|
| 616 | + $conflits = controler_md5($champs, $_POST, $type, $id, $serveur, $options['prefix'] ?? 'ctr_'); |
|
| 617 | + |
|
| 618 | + return $conflits; |
|
| 619 | 619 | } |
| 620 | 620 | |
| 621 | 621 | |
@@ -645,64 +645,64 @@ discard block |
||
| 645 | 645 | * - post : le contenu posté |
| 646 | 646 | **/ |
| 647 | 647 | function controler_md5(&$champs, $ctr, $type, $id, $serveur, $prefix = 'ctr_') { |
| 648 | - $spip_table_objet = table_objet_sql($type); |
|
| 649 | - $id_table_objet = id_table_objet($type); |
|
| 650 | - |
|
| 651 | - // Controle des MD5 envoyes |
|
| 652 | - // On elimine les donnees non modifiees par le formulaire (mais |
|
| 653 | - // potentiellement modifiees entre temps par un autre utilisateur) |
|
| 654 | - foreach ($champs as $key => $val) { |
|
| 655 | - if (isset($ctr[$prefix . $key]) and $m = $ctr[$prefix . $key]) { |
|
| 656 | - if (is_scalar($val) and $m == md5($val)) { |
|
| 657 | - unset($champs[$key]); |
|
| 658 | - } |
|
| 659 | - } |
|
| 660 | - } |
|
| 661 | - if (!$champs) { |
|
| 662 | - return; |
|
| 663 | - } |
|
| 664 | - |
|
| 665 | - // On veut savoir si notre modif va avoir un impact |
|
| 666 | - // par rapport aux donnees contenues dans la base |
|
| 667 | - // (qui peuvent etre differentes de celles ayant servi a calculer le ctr) |
|
| 668 | - $s = sql_fetsel(array_keys($champs), $spip_table_objet, "$id_table_objet=$id", $serveur); |
|
| 669 | - $intact = true; |
|
| 670 | - foreach ($champs as $ch => $val) { |
|
| 671 | - $intact &= ($s[$ch] == $val); |
|
| 672 | - } |
|
| 673 | - if ($intact) { |
|
| 674 | - return; |
|
| 675 | - } |
|
| 676 | - |
|
| 677 | - // Detection de conflits : |
|
| 678 | - // On verifie si notre modif ne provient pas d'un formulaire |
|
| 679 | - // genere a partir de donnees modifiees dans l'intervalle ; ici |
|
| 680 | - // on compare a ce qui est dans la base, et on bloque en cas |
|
| 681 | - // de conflit. |
|
| 682 | - $ctrh = $ctrq = $conflits = []; |
|
| 683 | - foreach (array_keys($champs) as $key) { |
|
| 684 | - if (isset($ctr[$prefix . $key]) and $m = $ctr[$prefix . $key]) { |
|
| 685 | - $ctrh[$key] = $m; |
|
| 686 | - $ctrq[] = $key; |
|
| 687 | - } |
|
| 688 | - } |
|
| 689 | - if ($ctrq) { |
|
| 690 | - $ctrq = sql_fetsel($ctrq, $spip_table_objet, "$id_table_objet=$id", $serveur); |
|
| 691 | - foreach ($ctrh as $key => $m) { |
|
| 692 | - if ( |
|
| 693 | - $m != md5($ctrq[$key]) |
|
| 694 | - and $champs[$key] !== $ctrq[$key] |
|
| 695 | - ) { |
|
| 696 | - $conflits[$key] = [ |
|
| 697 | - 'base' => $ctrq[$key], |
|
| 698 | - 'post' => $champs[$key] |
|
| 699 | - ]; |
|
| 700 | - unset($champs[$key]); # stocker quand meme les modifs ? |
|
| 701 | - } |
|
| 702 | - } |
|
| 703 | - } |
|
| 704 | - |
|
| 705 | - return $conflits; |
|
| 648 | + $spip_table_objet = table_objet_sql($type); |
|
| 649 | + $id_table_objet = id_table_objet($type); |
|
| 650 | + |
|
| 651 | + // Controle des MD5 envoyes |
|
| 652 | + // On elimine les donnees non modifiees par le formulaire (mais |
|
| 653 | + // potentiellement modifiees entre temps par un autre utilisateur) |
|
| 654 | + foreach ($champs as $key => $val) { |
|
| 655 | + if (isset($ctr[$prefix . $key]) and $m = $ctr[$prefix . $key]) { |
|
| 656 | + if (is_scalar($val) and $m == md5($val)) { |
|
| 657 | + unset($champs[$key]); |
|
| 658 | + } |
|
| 659 | + } |
|
| 660 | + } |
|
| 661 | + if (!$champs) { |
|
| 662 | + return; |
|
| 663 | + } |
|
| 664 | + |
|
| 665 | + // On veut savoir si notre modif va avoir un impact |
|
| 666 | + // par rapport aux donnees contenues dans la base |
|
| 667 | + // (qui peuvent etre differentes de celles ayant servi a calculer le ctr) |
|
| 668 | + $s = sql_fetsel(array_keys($champs), $spip_table_objet, "$id_table_objet=$id", $serveur); |
|
| 669 | + $intact = true; |
|
| 670 | + foreach ($champs as $ch => $val) { |
|
| 671 | + $intact &= ($s[$ch] == $val); |
|
| 672 | + } |
|
| 673 | + if ($intact) { |
|
| 674 | + return; |
|
| 675 | + } |
|
| 676 | + |
|
| 677 | + // Detection de conflits : |
|
| 678 | + // On verifie si notre modif ne provient pas d'un formulaire |
|
| 679 | + // genere a partir de donnees modifiees dans l'intervalle ; ici |
|
| 680 | + // on compare a ce qui est dans la base, et on bloque en cas |
|
| 681 | + // de conflit. |
|
| 682 | + $ctrh = $ctrq = $conflits = []; |
|
| 683 | + foreach (array_keys($champs) as $key) { |
|
| 684 | + if (isset($ctr[$prefix . $key]) and $m = $ctr[$prefix . $key]) { |
|
| 685 | + $ctrh[$key] = $m; |
|
| 686 | + $ctrq[] = $key; |
|
| 687 | + } |
|
| 688 | + } |
|
| 689 | + if ($ctrq) { |
|
| 690 | + $ctrq = sql_fetsel($ctrq, $spip_table_objet, "$id_table_objet=$id", $serveur); |
|
| 691 | + foreach ($ctrh as $key => $m) { |
|
| 692 | + if ( |
|
| 693 | + $m != md5($ctrq[$key]) |
|
| 694 | + and $champs[$key] !== $ctrq[$key] |
|
| 695 | + ) { |
|
| 696 | + $conflits[$key] = [ |
|
| 697 | + 'base' => $ctrq[$key], |
|
| 698 | + 'post' => $champs[$key] |
|
| 699 | + ]; |
|
| 700 | + unset($champs[$key]); # stocker quand meme les modifs ? |
|
| 701 | + } |
|
| 702 | + } |
|
| 703 | + } |
|
| 704 | + |
|
| 705 | + return $conflits; |
|
| 706 | 706 | } |
| 707 | 707 | |
| 708 | 708 | /** |
@@ -714,9 +714,9 @@ discard block |
||
| 714 | 714 | * @return string |
| 715 | 715 | */ |
| 716 | 716 | function display_conflit_champ($x) { |
| 717 | - if (strstr($x, "\n") or strlen($x) > 80) { |
|
| 718 | - return "<textarea style='width:99%; height:10em;'>" . entites_html($x) . "</textarea>\n"; |
|
| 719 | - } else { |
|
| 720 | - return "<input type='text' size='40' style='width:99%' value=\"" . entites_html($x) . "\" />\n"; |
|
| 721 | - } |
|
| 717 | + if (strstr($x, "\n") or strlen($x) > 80) { |
|
| 718 | + return "<textarea style='width:99%; height:10em;'>" . entites_html($x) . "</textarea>\n"; |
|
| 719 | + } else { |
|
| 720 | + return "<input type='text' size='40' style='width:99%' value=\"" . entites_html($x) . "\" />\n"; |
|
| 721 | + } |
|
| 722 | 722 | } |
@@ -339,8 +339,7 @@ |
||
| 339 | 339 | if (!autoriser('modifier', $type, intval($id))) { |
| 340 | 340 | $contexte['editable'] = ''; |
| 341 | 341 | } |
| 342 | - } |
|
| 343 | - else { |
|
| 342 | + } else { |
|
| 344 | 343 | if (!autoriser('creer', $type, 0, null, ['id_parent' => $id_parent])) { |
| 345 | 344 | $contexte['editable'] = ''; |
| 346 | 345 | } |
@@ -17,7 +17,7 @@ discard block |
||
| 17 | 17 | **/ |
| 18 | 18 | |
| 19 | 19 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 20 | - return; |
|
| 20 | + return; |
|
| 21 | 21 | } |
| 22 | 22 | |
| 23 | 23 | |
@@ -27,210 +27,210 @@ discard block |
||
| 27 | 27 | * Permet d'itérer sur des données en base de données |
| 28 | 28 | */ |
| 29 | 29 | class IterateurSQL implements Iterator { |
| 30 | - /** |
|
| 31 | - * Ressource sql |
|
| 32 | - * |
|
| 33 | - * @var Object|bool |
|
| 34 | - */ |
|
| 35 | - protected $sqlresult = false; |
|
| 36 | - |
|
| 37 | - /** |
|
| 38 | - * row sql courante |
|
| 39 | - * |
|
| 40 | - * @var array|null |
|
| 41 | - */ |
|
| 42 | - protected $row = null; |
|
| 43 | - |
|
| 44 | - protected $firstseek = false; |
|
| 45 | - |
|
| 46 | - /** |
|
| 47 | - * Erreur presente ? |
|
| 48 | - * |
|
| 49 | - * @var bool |
|
| 50 | - **/ |
|
| 51 | - public $err = false; |
|
| 52 | - |
|
| 53 | - /** |
|
| 54 | - * Calcul du total des elements |
|
| 55 | - * |
|
| 56 | - * @var int|null |
|
| 57 | - **/ |
|
| 58 | - public $total = null; |
|
| 59 | - |
|
| 60 | - /** |
|
| 61 | - * selectionner les donnees, ie faire la requete SQL |
|
| 62 | - * |
|
| 63 | - * @return void |
|
| 64 | - */ |
|
| 65 | - protected function select() { |
|
| 66 | - $this->row = null; |
|
| 67 | - $v = &$this->command; |
|
| 68 | - $this->sqlresult = calculer_select( |
|
| 69 | - $v['select'], |
|
| 70 | - $v['from'], |
|
| 71 | - $v['type'], |
|
| 72 | - $v['where'], |
|
| 73 | - $v['join'], |
|
| 74 | - $v['groupby'], |
|
| 75 | - $v['orderby'], |
|
| 76 | - $v['limit'], |
|
| 77 | - $v['having'], |
|
| 78 | - $v['table'], |
|
| 79 | - $v['id'], |
|
| 80 | - $v['connect'], |
|
| 81 | - $this->info |
|
| 82 | - ); |
|
| 83 | - $this->err = !$this->sqlresult; |
|
| 84 | - $this->firstseek = false; |
|
| 85 | - $this->pos = -1; |
|
| 86 | - |
|
| 87 | - // pas d'init a priori, le calcul ne sera fait qu'en cas de besoin (provoque une double requete souvent inutile en sqlite) |
|
| 88 | - //$this->total = $this->count(); |
|
| 89 | - } |
|
| 90 | - |
|
| 91 | - /* |
|
| 30 | + /** |
|
| 31 | + * Ressource sql |
|
| 32 | + * |
|
| 33 | + * @var Object|bool |
|
| 34 | + */ |
|
| 35 | + protected $sqlresult = false; |
|
| 36 | + |
|
| 37 | + /** |
|
| 38 | + * row sql courante |
|
| 39 | + * |
|
| 40 | + * @var array|null |
|
| 41 | + */ |
|
| 42 | + protected $row = null; |
|
| 43 | + |
|
| 44 | + protected $firstseek = false; |
|
| 45 | + |
|
| 46 | + /** |
|
| 47 | + * Erreur presente ? |
|
| 48 | + * |
|
| 49 | + * @var bool |
|
| 50 | + **/ |
|
| 51 | + public $err = false; |
|
| 52 | + |
|
| 53 | + /** |
|
| 54 | + * Calcul du total des elements |
|
| 55 | + * |
|
| 56 | + * @var int|null |
|
| 57 | + **/ |
|
| 58 | + public $total = null; |
|
| 59 | + |
|
| 60 | + /** |
|
| 61 | + * selectionner les donnees, ie faire la requete SQL |
|
| 62 | + * |
|
| 63 | + * @return void |
|
| 64 | + */ |
|
| 65 | + protected function select() { |
|
| 66 | + $this->row = null; |
|
| 67 | + $v = &$this->command; |
|
| 68 | + $this->sqlresult = calculer_select( |
|
| 69 | + $v['select'], |
|
| 70 | + $v['from'], |
|
| 71 | + $v['type'], |
|
| 72 | + $v['where'], |
|
| 73 | + $v['join'], |
|
| 74 | + $v['groupby'], |
|
| 75 | + $v['orderby'], |
|
| 76 | + $v['limit'], |
|
| 77 | + $v['having'], |
|
| 78 | + $v['table'], |
|
| 79 | + $v['id'], |
|
| 80 | + $v['connect'], |
|
| 81 | + $this->info |
|
| 82 | + ); |
|
| 83 | + $this->err = !$this->sqlresult; |
|
| 84 | + $this->firstseek = false; |
|
| 85 | + $this->pos = -1; |
|
| 86 | + |
|
| 87 | + // pas d'init a priori, le calcul ne sera fait qu'en cas de besoin (provoque une double requete souvent inutile en sqlite) |
|
| 88 | + //$this->total = $this->count(); |
|
| 89 | + } |
|
| 90 | + |
|
| 91 | + /* |
|
| 92 | 92 | * array command: les commandes d'initialisation |
| 93 | 93 | * array info: les infos sur le squelette |
| 94 | 94 | */ |
| 95 | - public function __construct($command, $info = []) { |
|
| 96 | - $this->type = 'SQL'; |
|
| 97 | - $this->command = $command; |
|
| 98 | - $this->info = $info; |
|
| 99 | - $this->select(); |
|
| 100 | - } |
|
| 101 | - |
|
| 102 | - /** |
|
| 103 | - * Rembobiner |
|
| 104 | - * |
|
| 105 | - * @return bool |
|
| 106 | - */ |
|
| 107 | - public function rewind(): void { |
|
| 108 | - if ($this->pos > 0) { |
|
| 109 | - $this->seek(0); |
|
| 110 | - } |
|
| 111 | - } |
|
| 112 | - |
|
| 113 | - /** |
|
| 114 | - * Verifier l'etat de l'iterateur |
|
| 115 | - * |
|
| 116 | - * @return bool |
|
| 117 | - */ |
|
| 118 | - public function valid(): bool { |
|
| 119 | - if ($this->err) { |
|
| 120 | - return false; |
|
| 121 | - } |
|
| 122 | - if (!$this->firstseek) { |
|
| 123 | - $this->next(); |
|
| 124 | - } |
|
| 125 | - |
|
| 126 | - return is_array($this->row); |
|
| 127 | - } |
|
| 128 | - |
|
| 129 | - /** |
|
| 130 | - * Valeurs sur la position courante |
|
| 131 | - * |
|
| 132 | - * @return array |
|
| 133 | - */ |
|
| 134 | - #[\ReturnTypeWillChange] |
|
| 135 | - public function current() { |
|
| 136 | - return $this->row; |
|
| 137 | - } |
|
| 138 | - |
|
| 139 | - #[\ReturnTypeWillChange] |
|
| 140 | - public function key() { |
|
| 141 | - return $this->pos; |
|
| 142 | - } |
|
| 143 | - |
|
| 144 | - /** |
|
| 145 | - * Sauter a une position absolue |
|
| 146 | - * |
|
| 147 | - * @param int $n |
|
| 148 | - * @param null|string $continue |
|
| 149 | - * @return bool |
|
| 150 | - */ |
|
| 151 | - public function seek($n = 0, $continue = null) { |
|
| 152 | - if (!sql_seek($this->sqlresult, $n, $this->command['connect'], $continue)) { |
|
| 153 | - // SQLite ne sait pas seek(), il faut relancer la query |
|
| 154 | - // si la position courante est apres la position visee |
|
| 155 | - // il faut relancer la requete |
|
| 156 | - if ($this->pos > $n) { |
|
| 157 | - $this->free(); |
|
| 158 | - $this->select(); |
|
| 159 | - $this->valid(); |
|
| 160 | - } |
|
| 161 | - // et utiliser la methode par defaut pour se deplacer au bon endroit |
|
| 162 | - // (sera fait en cas d'echec de cette fonction) |
|
| 163 | - return false; |
|
| 164 | - } |
|
| 165 | - $this->row = sql_fetch($this->sqlresult, $this->command['connect']); |
|
| 166 | - $this->pos = min($n, $this->count()); |
|
| 167 | - |
|
| 168 | - return true; |
|
| 169 | - } |
|
| 170 | - |
|
| 171 | - /** |
|
| 172 | - * Avancer d'un cran |
|
| 173 | - * |
|
| 174 | - * @return void |
|
| 175 | - */ |
|
| 176 | - public function next(): void { |
|
| 177 | - $this->row = sql_fetch($this->sqlresult, $this->command['connect']); |
|
| 178 | - $this->pos++; |
|
| 179 | - $this->firstseek |= true; |
|
| 180 | - } |
|
| 181 | - |
|
| 182 | - /** |
|
| 183 | - * Avancer et retourner les donnees pour le nouvel element |
|
| 184 | - * |
|
| 185 | - * @return array|bool|null |
|
| 186 | - */ |
|
| 187 | - public function fetch() { |
|
| 188 | - if ($this->valid()) { |
|
| 189 | - $r = $this->current(); |
|
| 190 | - $this->next(); |
|
| 191 | - } else { |
|
| 192 | - $r = false; |
|
| 193 | - } |
|
| 194 | - |
|
| 195 | - return $r; |
|
| 196 | - } |
|
| 197 | - |
|
| 198 | - /** |
|
| 199 | - * liberer les ressources |
|
| 200 | - * |
|
| 201 | - * @return bool |
|
| 202 | - */ |
|
| 203 | - public function free() { |
|
| 204 | - if (!$this->sqlresult) { |
|
| 205 | - return true; |
|
| 206 | - } |
|
| 207 | - $a = sql_free($this->sqlresult, $this->command['connect']); |
|
| 208 | - $this->sqlresult = null; |
|
| 209 | - |
|
| 210 | - return $a; |
|
| 211 | - } |
|
| 212 | - |
|
| 213 | - /** |
|
| 214 | - * Compter le nombre de resultats |
|
| 215 | - * |
|
| 216 | - * @return int |
|
| 217 | - */ |
|
| 218 | - public function count() { |
|
| 219 | - if (is_null($this->total)) { |
|
| 220 | - if (!$this->sqlresult) { |
|
| 221 | - $this->total = 0; |
|
| 222 | - } else { |
|
| 223 | - # cas count(*) |
|
| 224 | - if (in_array('count(*)', $this->command['select'])) { |
|
| 225 | - $this->valid(); |
|
| 226 | - $s = $this->current(); |
|
| 227 | - $this->total = $s['count(*)']; |
|
| 228 | - } else { |
|
| 229 | - $this->total = sql_count($this->sqlresult, $this->command['connect']); |
|
| 230 | - } |
|
| 231 | - } |
|
| 232 | - } |
|
| 233 | - |
|
| 234 | - return $this->total; |
|
| 235 | - } |
|
| 95 | + public function __construct($command, $info = []) { |
|
| 96 | + $this->type = 'SQL'; |
|
| 97 | + $this->command = $command; |
|
| 98 | + $this->info = $info; |
|
| 99 | + $this->select(); |
|
| 100 | + } |
|
| 101 | + |
|
| 102 | + /** |
|
| 103 | + * Rembobiner |
|
| 104 | + * |
|
| 105 | + * @return bool |
|
| 106 | + */ |
|
| 107 | + public function rewind(): void { |
|
| 108 | + if ($this->pos > 0) { |
|
| 109 | + $this->seek(0); |
|
| 110 | + } |
|
| 111 | + } |
|
| 112 | + |
|
| 113 | + /** |
|
| 114 | + * Verifier l'etat de l'iterateur |
|
| 115 | + * |
|
| 116 | + * @return bool |
|
| 117 | + */ |
|
| 118 | + public function valid(): bool { |
|
| 119 | + if ($this->err) { |
|
| 120 | + return false; |
|
| 121 | + } |
|
| 122 | + if (!$this->firstseek) { |
|
| 123 | + $this->next(); |
|
| 124 | + } |
|
| 125 | + |
|
| 126 | + return is_array($this->row); |
|
| 127 | + } |
|
| 128 | + |
|
| 129 | + /** |
|
| 130 | + * Valeurs sur la position courante |
|
| 131 | + * |
|
| 132 | + * @return array |
|
| 133 | + */ |
|
| 134 | + #[\ReturnTypeWillChange] |
|
| 135 | + public function current() { |
|
| 136 | + return $this->row; |
|
| 137 | + } |
|
| 138 | + |
|
| 139 | + #[\ReturnTypeWillChange] |
|
| 140 | + public function key() { |
|
| 141 | + return $this->pos; |
|
| 142 | + } |
|
| 143 | + |
|
| 144 | + /** |
|
| 145 | + * Sauter a une position absolue |
|
| 146 | + * |
|
| 147 | + * @param int $n |
|
| 148 | + * @param null|string $continue |
|
| 149 | + * @return bool |
|
| 150 | + */ |
|
| 151 | + public function seek($n = 0, $continue = null) { |
|
| 152 | + if (!sql_seek($this->sqlresult, $n, $this->command['connect'], $continue)) { |
|
| 153 | + // SQLite ne sait pas seek(), il faut relancer la query |
|
| 154 | + // si la position courante est apres la position visee |
|
| 155 | + // il faut relancer la requete |
|
| 156 | + if ($this->pos > $n) { |
|
| 157 | + $this->free(); |
|
| 158 | + $this->select(); |
|
| 159 | + $this->valid(); |
|
| 160 | + } |
|
| 161 | + // et utiliser la methode par defaut pour se deplacer au bon endroit |
|
| 162 | + // (sera fait en cas d'echec de cette fonction) |
|
| 163 | + return false; |
|
| 164 | + } |
|
| 165 | + $this->row = sql_fetch($this->sqlresult, $this->command['connect']); |
|
| 166 | + $this->pos = min($n, $this->count()); |
|
| 167 | + |
|
| 168 | + return true; |
|
| 169 | + } |
|
| 170 | + |
|
| 171 | + /** |
|
| 172 | + * Avancer d'un cran |
|
| 173 | + * |
|
| 174 | + * @return void |
|
| 175 | + */ |
|
| 176 | + public function next(): void { |
|
| 177 | + $this->row = sql_fetch($this->sqlresult, $this->command['connect']); |
|
| 178 | + $this->pos++; |
|
| 179 | + $this->firstseek |= true; |
|
| 180 | + } |
|
| 181 | + |
|
| 182 | + /** |
|
| 183 | + * Avancer et retourner les donnees pour le nouvel element |
|
| 184 | + * |
|
| 185 | + * @return array|bool|null |
|
| 186 | + */ |
|
| 187 | + public function fetch() { |
|
| 188 | + if ($this->valid()) { |
|
| 189 | + $r = $this->current(); |
|
| 190 | + $this->next(); |
|
| 191 | + } else { |
|
| 192 | + $r = false; |
|
| 193 | + } |
|
| 194 | + |
|
| 195 | + return $r; |
|
| 196 | + } |
|
| 197 | + |
|
| 198 | + /** |
|
| 199 | + * liberer les ressources |
|
| 200 | + * |
|
| 201 | + * @return bool |
|
| 202 | + */ |
|
| 203 | + public function free() { |
|
| 204 | + if (!$this->sqlresult) { |
|
| 205 | + return true; |
|
| 206 | + } |
|
| 207 | + $a = sql_free($this->sqlresult, $this->command['connect']); |
|
| 208 | + $this->sqlresult = null; |
|
| 209 | + |
|
| 210 | + return $a; |
|
| 211 | + } |
|
| 212 | + |
|
| 213 | + /** |
|
| 214 | + * Compter le nombre de resultats |
|
| 215 | + * |
|
| 216 | + * @return int |
|
| 217 | + */ |
|
| 218 | + public function count() { |
|
| 219 | + if (is_null($this->total)) { |
|
| 220 | + if (!$this->sqlresult) { |
|
| 221 | + $this->total = 0; |
|
| 222 | + } else { |
|
| 223 | + # cas count(*) |
|
| 224 | + if (in_array('count(*)', $this->command['select'])) { |
|
| 225 | + $this->valid(); |
|
| 226 | + $s = $this->current(); |
|
| 227 | + $this->total = $s['count(*)']; |
|
| 228 | + } else { |
|
| 229 | + $this->total = sql_count($this->sqlresult, $this->command['connect']); |
|
| 230 | + } |
|
| 231 | + } |
|
| 232 | + } |
|
| 233 | + |
|
| 234 | + return $this->total; |
|
| 235 | + } |
|
| 236 | 236 | } |
@@ -17,91 +17,91 @@ |
||
| 17 | 17 | **/ |
| 18 | 18 | |
| 19 | 19 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 20 | - return; |
|
| 20 | + return; |
|
| 21 | 21 | } |
| 22 | 22 | |
| 23 | 23 | |
| 24 | 24 | function action_api_transmettre_dist($arg = null) { |
| 25 | 25 | |
| 26 | - // Obtenir l'argument 'id_auteur/cle/format/fond' |
|
| 27 | - if (is_null($arg)) { |
|
| 28 | - $arg = _request('arg'); |
|
| 29 | - } |
|
| 30 | - |
|
| 31 | - $args = explode('/', $arg); |
|
| 32 | - |
|
| 33 | - if (count($args) !== 4) { |
|
| 34 | - action_api_transmettre_fail($arg); |
|
| 35 | - } |
|
| 36 | - |
|
| 37 | - [$id_auteur, $cle, $format, $fond] = $args; |
|
| 38 | - $id_auteur = intval($id_auteur); |
|
| 39 | - |
|
| 40 | - if (preg_match(',[^\w\\.-],', $format)) { |
|
| 41 | - action_api_transmettre_fail("format $format ??"); |
|
| 42 | - } |
|
| 43 | - if (preg_match(',[^\w\\.-],', $fond)) { |
|
| 44 | - action_api_transmettre_fail("fond $fond ??"); |
|
| 45 | - } |
|
| 46 | - |
|
| 47 | - // verifier la cle |
|
| 48 | - //[(#ENV{id,0}|securiser_acces{#ENV{cle}, voirstats, #ENV{op}, #ENV{args}}|?{1,0})] |
|
| 49 | - //[(#ENV{id,0}|securiser_acces{#ENV{cle}, voirstats, #ENV{op}, #ENV{args}}|?{1,0})] |
|
| 50 | - |
|
| 51 | - $qs = $_SERVER['QUERY_STRING']; |
|
| 52 | - // retirer action et arg de la qs |
|
| 53 | - $contexte = []; |
|
| 54 | - parse_str($qs, $contexte); |
|
| 55 | - foreach ($contexte as $k => $v) { |
|
| 56 | - if (in_array($k, ['action', 'arg', 'var_mode'])) { |
|
| 57 | - unset($contexte[$k]); |
|
| 58 | - } |
|
| 59 | - } |
|
| 60 | - $qs = http_build_query($contexte); |
|
| 61 | - if (!securiser_acces_low_sec(intval($id_auteur), $cle, "transmettre/$format", $fond, $qs)) { |
|
| 62 | - // si le autoriser low_sec n'est pas bon, on peut valider l'appel si l'auteur est identifie |
|
| 63 | - include_spip('inc/autoriser'); |
|
| 64 | - $autoriser_type = preg_replace(',\W+,', '', "_{$format}{$fond}"); |
|
| 65 | - if ( |
|
| 66 | - !$id_auteur |
|
| 67 | - or empty($GLOBALS['visiteur_session']['id_auteur']) |
|
| 68 | - or $GLOBALS['visiteur_session']['id_auteur'] != $id_auteur |
|
| 69 | - or !autoriser('transmettre', $autoriser_type, $id_auteur) |
|
| 70 | - ) { |
|
| 71 | - action_api_transmettre_fail("auth QS $qs ??"); |
|
| 72 | - } |
|
| 73 | - } |
|
| 74 | - |
|
| 75 | - $contexte['id_auteur'] = $id_auteur; |
|
| 76 | - |
|
| 77 | - $fond = "transmettre/$format/$fond"; |
|
| 78 | - |
|
| 79 | - if (!trouver_fond($fond)) { |
|
| 80 | - $fond = "prive/$fond"; |
|
| 81 | - } |
|
| 82 | - |
|
| 83 | - if (!trouver_fond($fond)) { |
|
| 84 | - action_api_transmettre_fail("fond $fond ??"); |
|
| 85 | - } |
|
| 86 | - |
|
| 87 | - $res = recuperer_fond($fond, $contexte, ['raw' => true]); |
|
| 88 | - if (!empty($res['entetes'])) { |
|
| 89 | - foreach ($res['entetes'] as $h => $v) { |
|
| 90 | - header("$h: $v"); |
|
| 91 | - } |
|
| 92 | - } |
|
| 93 | - |
|
| 94 | - $res = ltrim($res['texte']); |
|
| 95 | - if (empty($res)) { |
|
| 96 | - spip_log("$arg $qs resultat vide", 'transmettre' . _LOG_INFO_IMPORTANTE); |
|
| 97 | - } |
|
| 98 | - |
|
| 99 | - echo $res; |
|
| 100 | - exit(); |
|
| 26 | + // Obtenir l'argument 'id_auteur/cle/format/fond' |
|
| 27 | + if (is_null($arg)) { |
|
| 28 | + $arg = _request('arg'); |
|
| 29 | + } |
|
| 30 | + |
|
| 31 | + $args = explode('/', $arg); |
|
| 32 | + |
|
| 33 | + if (count($args) !== 4) { |
|
| 34 | + action_api_transmettre_fail($arg); |
|
| 35 | + } |
|
| 36 | + |
|
| 37 | + [$id_auteur, $cle, $format, $fond] = $args; |
|
| 38 | + $id_auteur = intval($id_auteur); |
|
| 39 | + |
|
| 40 | + if (preg_match(',[^\w\\.-],', $format)) { |
|
| 41 | + action_api_transmettre_fail("format $format ??"); |
|
| 42 | + } |
|
| 43 | + if (preg_match(',[^\w\\.-],', $fond)) { |
|
| 44 | + action_api_transmettre_fail("fond $fond ??"); |
|
| 45 | + } |
|
| 46 | + |
|
| 47 | + // verifier la cle |
|
| 48 | + //[(#ENV{id,0}|securiser_acces{#ENV{cle}, voirstats, #ENV{op}, #ENV{args}}|?{1,0})] |
|
| 49 | + //[(#ENV{id,0}|securiser_acces{#ENV{cle}, voirstats, #ENV{op}, #ENV{args}}|?{1,0})] |
|
| 50 | + |
|
| 51 | + $qs = $_SERVER['QUERY_STRING']; |
|
| 52 | + // retirer action et arg de la qs |
|
| 53 | + $contexte = []; |
|
| 54 | + parse_str($qs, $contexte); |
|
| 55 | + foreach ($contexte as $k => $v) { |
|
| 56 | + if (in_array($k, ['action', 'arg', 'var_mode'])) { |
|
| 57 | + unset($contexte[$k]); |
|
| 58 | + } |
|
| 59 | + } |
|
| 60 | + $qs = http_build_query($contexte); |
|
| 61 | + if (!securiser_acces_low_sec(intval($id_auteur), $cle, "transmettre/$format", $fond, $qs)) { |
|
| 62 | + // si le autoriser low_sec n'est pas bon, on peut valider l'appel si l'auteur est identifie |
|
| 63 | + include_spip('inc/autoriser'); |
|
| 64 | + $autoriser_type = preg_replace(',\W+,', '', "_{$format}{$fond}"); |
|
| 65 | + if ( |
|
| 66 | + !$id_auteur |
|
| 67 | + or empty($GLOBALS['visiteur_session']['id_auteur']) |
|
| 68 | + or $GLOBALS['visiteur_session']['id_auteur'] != $id_auteur |
|
| 69 | + or !autoriser('transmettre', $autoriser_type, $id_auteur) |
|
| 70 | + ) { |
|
| 71 | + action_api_transmettre_fail("auth QS $qs ??"); |
|
| 72 | + } |
|
| 73 | + } |
|
| 74 | + |
|
| 75 | + $contexte['id_auteur'] = $id_auteur; |
|
| 76 | + |
|
| 77 | + $fond = "transmettre/$format/$fond"; |
|
| 78 | + |
|
| 79 | + if (!trouver_fond($fond)) { |
|
| 80 | + $fond = "prive/$fond"; |
|
| 81 | + } |
|
| 82 | + |
|
| 83 | + if (!trouver_fond($fond)) { |
|
| 84 | + action_api_transmettre_fail("fond $fond ??"); |
|
| 85 | + } |
|
| 86 | + |
|
| 87 | + $res = recuperer_fond($fond, $contexte, ['raw' => true]); |
|
| 88 | + if (!empty($res['entetes'])) { |
|
| 89 | + foreach ($res['entetes'] as $h => $v) { |
|
| 90 | + header("$h: $v"); |
|
| 91 | + } |
|
| 92 | + } |
|
| 93 | + |
|
| 94 | + $res = ltrim($res['texte']); |
|
| 95 | + if (empty($res)) { |
|
| 96 | + spip_log("$arg $qs resultat vide", 'transmettre' . _LOG_INFO_IMPORTANTE); |
|
| 97 | + } |
|
| 98 | + |
|
| 99 | + echo $res; |
|
| 100 | + exit(); |
|
| 101 | 101 | } |
| 102 | 102 | |
| 103 | 103 | function action_api_transmettre_fail($arg) { |
| 104 | - include_spip('inc/minipres'); |
|
| 105 | - echo minipres(_T('info_acces_interdit'), $arg); |
|
| 106 | - exit; |
|
| 104 | + include_spip('inc/minipres'); |
|
| 105 | + echo minipres(_T('info_acces_interdit'), $arg); |
|
| 106 | + exit; |
|
| 107 | 107 | } |
@@ -93,7 +93,7 @@ |
||
| 93 | 93 | |
| 94 | 94 | $res = ltrim($res['texte']); |
| 95 | 95 | if (empty($res)) { |
| 96 | - spip_log("$arg $qs resultat vide", 'transmettre' . _LOG_INFO_IMPORTANTE); |
|
| 96 | + spip_log("$arg $qs resultat vide", 'transmettre'._LOG_INFO_IMPORTANTE); |
|
| 97 | 97 | } |
| 98 | 98 | |
| 99 | 99 | echo $res; |
@@ -656,8 +656,7 @@ discard block |
||
| 656 | 656 | if (!$srcSize) { |
| 657 | 657 | $poids_img[$src] = filesize($src); |
| 658 | 658 | } |
| 659 | - } |
|
| 660 | - elseif (strpos($src, '<svg') !== false) { |
|
| 659 | + } elseif (strpos($src, '<svg') !== false) { |
|
| 661 | 660 | include_spip('inc/svg'); |
| 662 | 661 | if ($attrs = svg_lire_attributs($src)) { |
| 663 | 662 | [$width, $height, $viewbox] = svg_getimagesize_from_attr($attrs); |
@@ -3513,8 +3512,7 @@ discard block |
||
| 3513 | 3512 | ) { |
| 3514 | 3513 | if ($variante_svg_size = substr($variante_svg_generique, 0, -6) . $m[1] . '.svg' and file_exists($variante_svg_size)) { |
| 3515 | 3514 | $img_file = $variante_svg_size; |
| 3516 | - } |
|
| 3517 | - else { |
|
| 3515 | + } else { |
|
| 3518 | 3516 | $img_file = $variante_svg_generique; |
| 3519 | 3517 | } |
| 3520 | 3518 | } |
@@ -3546,8 +3544,7 @@ discard block |
||
| 3546 | 3544 | } |
| 3547 | 3545 | if (!isset($options['chemin_image']) or $options['chemin_image'] == true) { |
| 3548 | 3546 | $img_file = chemin_image($img); |
| 3549 | - } |
|
| 3550 | - else { |
|
| 3547 | + } else { |
|
| 3551 | 3548 | if (!isset($options['variante_svg_si_possible']) or $options['variante_svg_si_possible'] == true) { |
| 3552 | 3549 | $img_file = http_img_variante_svg_si_possible($img_file); |
| 3553 | 3550 | } |
@@ -3577,11 +3574,9 @@ discard block |
||
| 3577 | 3574 | } |
| 3578 | 3575 | if ($alt === false) { |
| 3579 | 3576 | $alt = ''; |
| 3580 | - } |
|
| 3581 | - elseif ($alt or $alt === '') { |
|
| 3577 | + } elseif ($alt or $alt === '') { |
|
| 3582 | 3578 | $alt = " alt='" . attribut_html($alt) . "'"; |
| 3583 | - } |
|
| 3584 | - else { |
|
| 3579 | + } else { |
|
| 3585 | 3580 | $alt = " alt='" . attribut_html($title) . "'"; |
| 3586 | 3581 | } |
| 3587 | 3582 | return "<img src='$img_file'$alt" |
@@ -3708,13 +3703,11 @@ discard block |
||
| 3708 | 3703 | if (!is_null($class)) { |
| 3709 | 3704 | if (strlen($class)) { |
| 3710 | 3705 | $img = inserer_attribut($img, 'class', $class); |
| 3711 | - } |
|
| 3712 | - else { |
|
| 3706 | + } else { |
|
| 3713 | 3707 | $img = vider_attribut($img, 'class'); |
| 3714 | 3708 | } |
| 3715 | 3709 | } |
| 3716 | - } |
|
| 3717 | - else { |
|
| 3710 | + } else { |
|
| 3718 | 3711 | $img = http_img_pack( |
| 3719 | 3712 | $img, |
| 3720 | 3713 | $alt, |
@@ -3812,8 +3805,7 @@ discard block |
||
| 3812 | 3805 | if (!is_null($class)) { |
| 3813 | 3806 | if (strlen($class)) { |
| 3814 | 3807 | $balise_svg = inserer_attribut($balise_svg, 'class', $class); |
| 3815 | - } |
|
| 3816 | - else { |
|
| 3808 | + } else { |
|
| 3817 | 3809 | $balise_svg = vider_attribut($balise_svg, 'class'); |
| 3818 | 3810 | } |
| 3819 | 3811 | } |
@@ -3825,8 +3817,7 @@ discard block |
||
| 3825 | 3817 | $balise_svg = inserer_attribut($balise_svg, 'aria-labelledby', $id); |
| 3826 | 3818 | $title = "<title id=\"$id\">" . entites_html($alt) . "</title>\n"; |
| 3827 | 3819 | $balise_svg .= $title; |
| 3828 | - } |
|
| 3829 | - else { |
|
| 3820 | + } else { |
|
| 3830 | 3821 | $balise_svg = inserer_attribut($balise_svg, 'aria-hidden', 'true'); |
| 3831 | 3822 | } |
| 3832 | 3823 | |
@@ -5234,8 +5225,7 @@ discard block |
||
| 5234 | 5225 | // reduit la variabilite du nom et donc le nombre de css concatenees possibles in fine |
| 5235 | 5226 | if (isset($options['hash_on_content']) and $options['hash_on_content']) { |
| 5236 | 5227 | $hash = md5($contexte_implicite['host'] . '::' . $cache); |
| 5237 | - } |
|
| 5238 | - else { |
|
| 5228 | + } else { |
|
| 5239 | 5229 | unset($contexte_implicite['notes']); // pas pertinent pour signaler un changeemnt de contenu pour des css/js |
| 5240 | 5230 | ksort($contexte); |
| 5241 | 5231 | $hash = md5($fond . json_encode($contexte_implicite, JSON_THROW_ON_ERROR) . json_encode($contexte, JSON_THROW_ON_ERROR) . $connect); |
@@ -16,7 +16,7 @@ discard block |
||
| 16 | 16 | * @package SPIP\Core\Filtres |
| 17 | 17 | **/ |
| 18 | 18 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 19 | - return; |
|
| 19 | + return; |
|
| 20 | 20 | } |
| 21 | 21 | |
| 22 | 22 | include_spip('inc/charsets'); |
@@ -42,8 +42,8 @@ discard block |
||
| 42 | 42 | * @return string Fonction PHP correspondante du filtre |
| 43 | 43 | */ |
| 44 | 44 | function charger_filtre($fonc, $default = 'filtre_identite_dist') { |
| 45 | - include_fichiers_fonctions(); // inclure les fichiers fonctions |
|
| 46 | - return chercher_filtre($fonc, $default); |
|
| 45 | + include_fichiers_fonctions(); // inclure les fichiers fonctions |
|
| 46 | + return chercher_filtre($fonc, $default); |
|
| 47 | 47 | } |
| 48 | 48 | |
| 49 | 49 | /** |
@@ -53,7 +53,7 @@ discard block |
||
| 53 | 53 | * @return string Texte |
| 54 | 54 | **/ |
| 55 | 55 | function filtre_identite_dist($texte) { |
| 56 | - return $texte; |
|
| 56 | + return $texte; |
|
| 57 | 57 | } |
| 58 | 58 | |
| 59 | 59 | /** |
@@ -77,33 +77,33 @@ discard block |
||
| 77 | 77 | * Fonction PHP correspondante du filtre demandé |
| 78 | 78 | */ |
| 79 | 79 | function chercher_filtre($fonc, $default = null) { |
| 80 | - if (!$fonc) { |
|
| 81 | - return $default; |
|
| 82 | - } |
|
| 83 | - // Cas des types mime, sans confondre avec les appels de fonction de classe |
|
| 84 | - // Foo::Bar |
|
| 85 | - // qui peuvent etre avec un namespace : space\Foo::Bar |
|
| 86 | - if (preg_match(',^[\w]+/,', $fonc)) { |
|
| 87 | - $nom = preg_replace(',\W,', '_', $fonc); |
|
| 88 | - $f = chercher_filtre($nom); |
|
| 89 | - // cas du sous-type MIME sans filtre associe, passer au type: |
|
| 90 | - // si filtre_text_plain pas defini, passe a filtre_text |
|
| 91 | - if (!$f and $nom !== $fonc) { |
|
| 92 | - $f = chercher_filtre(preg_replace(',\W.*$,', '', $fonc)); |
|
| 93 | - } |
|
| 94 | - |
|
| 95 | - return $f; |
|
| 96 | - } |
|
| 97 | - |
|
| 98 | - include_fichiers_fonctions(); |
|
| 99 | - foreach (['filtre_' . $fonc, 'filtre_' . $fonc . '_dist', $fonc] as $f) { |
|
| 100 | - trouver_filtre_matrice($f); // charge des fichiers spécifiques éventuels |
|
| 101 | - if (is_callable($f)) { |
|
| 102 | - return $f; |
|
| 103 | - } |
|
| 104 | - } |
|
| 105 | - |
|
| 106 | - return $default; |
|
| 80 | + if (!$fonc) { |
|
| 81 | + return $default; |
|
| 82 | + } |
|
| 83 | + // Cas des types mime, sans confondre avec les appels de fonction de classe |
|
| 84 | + // Foo::Bar |
|
| 85 | + // qui peuvent etre avec un namespace : space\Foo::Bar |
|
| 86 | + if (preg_match(',^[\w]+/,', $fonc)) { |
|
| 87 | + $nom = preg_replace(',\W,', '_', $fonc); |
|
| 88 | + $f = chercher_filtre($nom); |
|
| 89 | + // cas du sous-type MIME sans filtre associe, passer au type: |
|
| 90 | + // si filtre_text_plain pas defini, passe a filtre_text |
|
| 91 | + if (!$f and $nom !== $fonc) { |
|
| 92 | + $f = chercher_filtre(preg_replace(',\W.*$,', '', $fonc)); |
|
| 93 | + } |
|
| 94 | + |
|
| 95 | + return $f; |
|
| 96 | + } |
|
| 97 | + |
|
| 98 | + include_fichiers_fonctions(); |
|
| 99 | + foreach (['filtre_' . $fonc, 'filtre_' . $fonc . '_dist', $fonc] as $f) { |
|
| 100 | + trouver_filtre_matrice($f); // charge des fichiers spécifiques éventuels |
|
| 101 | + if (is_callable($f)) { |
|
| 102 | + return $f; |
|
| 103 | + } |
|
| 104 | + } |
|
| 105 | + |
|
| 106 | + return $default; |
|
| 107 | 107 | } |
| 108 | 108 | |
| 109 | 109 | /** |
@@ -147,8 +147,8 @@ discard block |
||
| 147 | 147 | * Chaîne vide sinon. |
| 148 | 148 | **/ |
| 149 | 149 | function appliquer_filtre($arg, $filtre) { |
| 150 | - $args = func_get_args(); |
|
| 151 | - return appliquer_filtre_sinon($arg, $filtre, $args, ''); |
|
| 150 | + $args = func_get_args(); |
|
| 151 | + return appliquer_filtre_sinon($arg, $filtre, $args, ''); |
|
| 152 | 152 | } |
| 153 | 153 | |
| 154 | 154 | /** |
@@ -173,8 +173,8 @@ discard block |
||
| 173 | 173 | * Texte d'origine sinon |
| 174 | 174 | **/ |
| 175 | 175 | function appliquer_si_filtre($arg, $filtre) { |
| 176 | - $args = func_get_args(); |
|
| 177 | - return appliquer_filtre_sinon($arg, $filtre, $args, $arg); |
|
| 176 | + $args = func_get_args(); |
|
| 177 | + return appliquer_filtre_sinon($arg, $filtre, $args, $arg); |
|
| 178 | 178 | } |
| 179 | 179 | |
| 180 | 180 | /** |
@@ -190,12 +190,12 @@ discard block |
||
| 190 | 190 | * Version de SPIP |
| 191 | 191 | **/ |
| 192 | 192 | function spip_version() { |
| 193 | - $version = $GLOBALS['spip_version_affichee']; |
|
| 194 | - if ($vcs_version = version_vcs_courante(_DIR_RACINE)) { |
|
| 195 | - $version .= " $vcs_version"; |
|
| 196 | - } |
|
| 193 | + $version = $GLOBALS['spip_version_affichee']; |
|
| 194 | + if ($vcs_version = version_vcs_courante(_DIR_RACINE)) { |
|
| 195 | + $version .= " $vcs_version"; |
|
| 196 | + } |
|
| 197 | 197 | |
| 198 | - return $version; |
|
| 198 | + return $version; |
|
| 199 | 199 | } |
| 200 | 200 | |
| 201 | 201 | /** |
@@ -207,11 +207,11 @@ discard block |
||
| 207 | 207 | * @return string |
| 208 | 208 | */ |
| 209 | 209 | function header_silencieux($version): string { |
| 210 | - if (isset($GLOBALS['spip_header_silencieux']) && (bool) $GLOBALS['spip_header_silencieux']) { |
|
| 211 | - $version = ''; |
|
| 212 | - } |
|
| 210 | + if (isset($GLOBALS['spip_header_silencieux']) && (bool) $GLOBALS['spip_header_silencieux']) { |
|
| 211 | + $version = ''; |
|
| 212 | + } |
|
| 213 | 213 | |
| 214 | - return (string) $version; |
|
| 214 | + return (string) $version; |
|
| 215 | 215 | } |
| 216 | 216 | |
| 217 | 217 | /** |
@@ -224,19 +224,19 @@ discard block |
||
| 224 | 224 | * - string|null si $raw = false |
| 225 | 225 | */ |
| 226 | 226 | function version_vcs_courante($dir, $raw = false) { |
| 227 | - $desc = decrire_version_git($dir); |
|
| 228 | - if ($desc === null) { |
|
| 229 | - $desc = decrire_version_svn($dir); |
|
| 230 | - } |
|
| 231 | - if ($desc === null or $raw) { |
|
| 232 | - return $desc; |
|
| 233 | - } |
|
| 234 | - // affichage "GIT [master: abcdef]" |
|
| 235 | - $commit = $desc['commit_short'] ?? $desc['commit']; |
|
| 236 | - if ($desc['branch']) { |
|
| 237 | - $commit = $desc['branch'] . ': ' . $commit; |
|
| 238 | - } |
|
| 239 | - return "{$desc['vcs']} [$commit]"; |
|
| 227 | + $desc = decrire_version_git($dir); |
|
| 228 | + if ($desc === null) { |
|
| 229 | + $desc = decrire_version_svn($dir); |
|
| 230 | + } |
|
| 231 | + if ($desc === null or $raw) { |
|
| 232 | + return $desc; |
|
| 233 | + } |
|
| 234 | + // affichage "GIT [master: abcdef]" |
|
| 235 | + $commit = $desc['commit_short'] ?? $desc['commit']; |
|
| 236 | + if ($desc['branch']) { |
|
| 237 | + $commit = $desc['branch'] . ': ' . $commit; |
|
| 238 | + } |
|
| 239 | + return "{$desc['vcs']} [$commit]"; |
|
| 240 | 240 | } |
| 241 | 241 | |
| 242 | 242 | /** |
@@ -248,24 +248,24 @@ discard block |
||
| 248 | 248 | * array ['branch' => xx, 'commit' => yy] sinon. |
| 249 | 249 | **/ |
| 250 | 250 | function decrire_version_git($dir) { |
| 251 | - if (!$dir) { |
|
| 252 | - $dir = '.'; |
|
| 253 | - } |
|
| 251 | + if (!$dir) { |
|
| 252 | + $dir = '.'; |
|
| 253 | + } |
|
| 254 | 254 | |
| 255 | - // version installee par GIT |
|
| 256 | - if (lire_fichier($dir . '/.git/HEAD', $c)) { |
|
| 257 | - $currentHead = trim(substr($c, 4)); |
|
| 258 | - if (lire_fichier($dir . '/.git/' . $currentHead, $hash)) { |
|
| 259 | - return [ |
|
| 260 | - 'vcs' => 'GIT', |
|
| 261 | - 'branch' => basename($currentHead), |
|
| 262 | - 'commit' => trim($hash), |
|
| 263 | - 'commit_short' => substr(trim($hash), 0, 8), |
|
| 264 | - ]; |
|
| 265 | - } |
|
| 266 | - } |
|
| 255 | + // version installee par GIT |
|
| 256 | + if (lire_fichier($dir . '/.git/HEAD', $c)) { |
|
| 257 | + $currentHead = trim(substr($c, 4)); |
|
| 258 | + if (lire_fichier($dir . '/.git/' . $currentHead, $hash)) { |
|
| 259 | + return [ |
|
| 260 | + 'vcs' => 'GIT', |
|
| 261 | + 'branch' => basename($currentHead), |
|
| 262 | + 'commit' => trim($hash), |
|
| 263 | + 'commit_short' => substr(trim($hash), 0, 8), |
|
| 264 | + ]; |
|
| 265 | + } |
|
| 266 | + } |
|
| 267 | 267 | |
| 268 | - return null; |
|
| 268 | + return null; |
|
| 269 | 269 | } |
| 270 | 270 | |
| 271 | 271 | |
@@ -278,25 +278,25 @@ discard block |
||
| 278 | 278 | * array ['commit' => yy, 'date' => xx, 'author' => xx] sinon. |
| 279 | 279 | **/ |
| 280 | 280 | function decrire_version_svn($dir) { |
| 281 | - if (!$dir) { |
|
| 282 | - $dir = '.'; |
|
| 283 | - } |
|
| 284 | - // version installee par SVN |
|
| 285 | - if (file_exists($dir . '/.svn/wc.db') && class_exists(\SQLite3::class)) { |
|
| 286 | - $db = new SQLite3($dir . '/.svn/wc.db'); |
|
| 287 | - $result = $db->query('SELECT changed_revision FROM nodes WHERE local_relpath = "" LIMIT 1'); |
|
| 288 | - if ($result) { |
|
| 289 | - $row = $result->fetchArray(); |
|
| 290 | - if ($row['changed_revision'] != '') { |
|
| 291 | - return [ |
|
| 292 | - 'vcs' => 'SVN', |
|
| 293 | - 'branch' => '', |
|
| 294 | - 'commit' => $row['changed_revision'], |
|
| 295 | - ]; |
|
| 296 | - } |
|
| 297 | - } |
|
| 298 | - } |
|
| 299 | - return null; |
|
| 281 | + if (!$dir) { |
|
| 282 | + $dir = '.'; |
|
| 283 | + } |
|
| 284 | + // version installee par SVN |
|
| 285 | + if (file_exists($dir . '/.svn/wc.db') && class_exists(\SQLite3::class)) { |
|
| 286 | + $db = new SQLite3($dir . '/.svn/wc.db'); |
|
| 287 | + $result = $db->query('SELECT changed_revision FROM nodes WHERE local_relpath = "" LIMIT 1'); |
|
| 288 | + if ($result) { |
|
| 289 | + $row = $result->fetchArray(); |
|
| 290 | + if ($row['changed_revision'] != '') { |
|
| 291 | + return [ |
|
| 292 | + 'vcs' => 'SVN', |
|
| 293 | + 'branch' => '', |
|
| 294 | + 'commit' => $row['changed_revision'], |
|
| 295 | + ]; |
|
| 296 | + } |
|
| 297 | + } |
|
| 298 | + } |
|
| 299 | + return null; |
|
| 300 | 300 | } |
| 301 | 301 | |
| 302 | 302 | // La matrice est necessaire pour ne filtrer _que_ des fonctions definies dans filtres_images |
@@ -343,18 +343,18 @@ discard block |
||
| 343 | 343 | * Code HTML retourné par le filtre |
| 344 | 344 | **/ |
| 345 | 345 | function filtrer($filtre) { |
| 346 | - $tous = func_get_args(); |
|
| 347 | - if (trouver_filtre_matrice($filtre) and substr($filtre, 0, 6) == 'image_') { |
|
| 348 | - return image_filtrer($tous); |
|
| 349 | - } elseif ($f = chercher_filtre($filtre)) { |
|
| 350 | - array_shift($tous); |
|
| 351 | - return $f(...$tous); |
|
| 352 | - } else { |
|
| 353 | - // le filtre n'existe pas, on provoque une erreur |
|
| 354 | - $msg = ['zbug_erreur_filtre', ['filtre' => texte_script($filtre)]]; |
|
| 355 | - erreur_squelette($msg); |
|
| 356 | - return ''; |
|
| 357 | - } |
|
| 346 | + $tous = func_get_args(); |
|
| 347 | + if (trouver_filtre_matrice($filtre) and substr($filtre, 0, 6) == 'image_') { |
|
| 348 | + return image_filtrer($tous); |
|
| 349 | + } elseif ($f = chercher_filtre($filtre)) { |
|
| 350 | + array_shift($tous); |
|
| 351 | + return $f(...$tous); |
|
| 352 | + } else { |
|
| 353 | + // le filtre n'existe pas, on provoque une erreur |
|
| 354 | + $msg = ['zbug_erreur_filtre', ['filtre' => texte_script($filtre)]]; |
|
| 355 | + erreur_squelette($msg); |
|
| 356 | + return ''; |
|
| 357 | + } |
|
| 358 | 358 | } |
| 359 | 359 | |
| 360 | 360 | /** |
@@ -371,11 +371,11 @@ discard block |
||
| 371 | 371 | * @return bool true si on trouve le filtre dans la matrice, false sinon. |
| 372 | 372 | */ |
| 373 | 373 | function trouver_filtre_matrice($filtre) { |
| 374 | - if (isset($GLOBALS['spip_matrice'][$filtre]) and is_string($f = $GLOBALS['spip_matrice'][$filtre])) { |
|
| 375 | - find_in_path($f, '', true); |
|
| 376 | - $GLOBALS['spip_matrice'][$filtre] = true; |
|
| 377 | - } |
|
| 378 | - return !empty($GLOBALS['spip_matrice'][$filtre]); |
|
| 374 | + if (isset($GLOBALS['spip_matrice'][$filtre]) and is_string($f = $GLOBALS['spip_matrice'][$filtre])) { |
|
| 375 | + find_in_path($f, '', true); |
|
| 376 | + $GLOBALS['spip_matrice'][$filtre] = true; |
|
| 377 | + } |
|
| 378 | + return !empty($GLOBALS['spip_matrice'][$filtre]); |
|
| 379 | 379 | } |
| 380 | 380 | |
| 381 | 381 | |
@@ -403,8 +403,8 @@ discard block |
||
| 403 | 403 | * @return mixed |
| 404 | 404 | */ |
| 405 | 405 | function filtre_set(&$Pile, $val, $key, $continue = null) { |
| 406 | - $Pile['vars'][$key] = $val; |
|
| 407 | - return $continue ? $val : ''; |
|
| 406 | + $Pile['vars'][$key] = $val; |
|
| 407 | + return $continue ? $val : ''; |
|
| 408 | 408 | } |
| 409 | 409 | |
| 410 | 410 | /** |
@@ -430,8 +430,8 @@ discard block |
||
| 430 | 430 | * @return string|mixed Retourne `$val` si `$continue` présent, sinon ''. |
| 431 | 431 | */ |
| 432 | 432 | function filtre_setenv(&$Pile, $val, $key, $continue = null) { |
| 433 | - $Pile[0][$key] = $val; |
|
| 434 | - return $continue ? $val : ''; |
|
| 433 | + $Pile[0][$key] = $val; |
|
| 434 | + return $continue ? $val : ''; |
|
| 435 | 435 | } |
| 436 | 436 | |
| 437 | 437 | /** |
@@ -440,8 +440,8 @@ discard block |
||
| 440 | 440 | * @return string |
| 441 | 441 | */ |
| 442 | 442 | function filtre_sanitize_env(&$Pile, $keys) { |
| 443 | - $Pile[0] = spip_sanitize_from_request($Pile[0], $keys); |
|
| 444 | - return ''; |
|
| 443 | + $Pile[0] = spip_sanitize_from_request($Pile[0], $keys); |
|
| 444 | + return ''; |
|
| 445 | 445 | } |
| 446 | 446 | |
| 447 | 447 | |
@@ -464,18 +464,18 @@ discard block |
||
| 464 | 464 | * @return mixed Retourne la valeur (sans la modifier). |
| 465 | 465 | */ |
| 466 | 466 | function filtre_debug($val, $key = null) { |
| 467 | - $debug = ( |
|
| 468 | - is_null($key) ? '' : (var_export($key, true) . ' = ') |
|
| 469 | - ) . var_export($val, true); |
|
| 467 | + $debug = ( |
|
| 468 | + is_null($key) ? '' : (var_export($key, true) . ' = ') |
|
| 469 | + ) . var_export($val, true); |
|
| 470 | 470 | |
| 471 | - include_spip('inc/autoriser'); |
|
| 472 | - if (autoriser('webmestre')) { |
|
| 473 | - echo "<div class='spip_debug'>\n", $debug, "</div>\n"; |
|
| 474 | - } |
|
| 471 | + include_spip('inc/autoriser'); |
|
| 472 | + if (autoriser('webmestre')) { |
|
| 473 | + echo "<div class='spip_debug'>\n", $debug, "</div>\n"; |
|
| 474 | + } |
|
| 475 | 475 | |
| 476 | - spip_log($debug, 'debug'); |
|
| 476 | + spip_log($debug, 'debug'); |
|
| 477 | 477 | |
| 478 | - return $val; |
|
| 478 | + return $val; |
|
| 479 | 479 | } |
| 480 | 480 | |
| 481 | 481 | |
@@ -505,84 +505,84 @@ discard block |
||
| 505 | 505 | * Texte qui a reçu les filtres |
| 506 | 506 | **/ |
| 507 | 507 | function image_filtrer($args) { |
| 508 | - $filtre = array_shift($args); # enlever $filtre |
|
| 509 | - $texte = array_shift($args); |
|
| 510 | - if ($texte === null || !strlen($texte)) { |
|
| 511 | - return ''; |
|
| 512 | - } |
|
| 513 | - find_in_path('filtres_images_mini.php', 'inc/', true); |
|
| 514 | - statut_effacer_images_temporaires(true); // activer la suppression des images temporaires car le compilo finit la chaine par un image_graver |
|
| 515 | - // Cas du nom de fichier local |
|
| 516 | - $is_file = trim($texte); |
|
| 517 | - if ( |
|
| 518 | - strpos(substr($is_file, strlen(_DIR_RACINE)), '..') !== false |
|
| 519 | - or strpbrk($is_file, "<>\n\r\t") !== false |
|
| 520 | - or strpos($is_file, '/') === 0 |
|
| 521 | - ) { |
|
| 522 | - $is_file = false; |
|
| 523 | - } |
|
| 524 | - if ($is_file) { |
|
| 525 | - $is_local_file = function ($path) { |
|
| 526 | - if (strpos($path, '?') !== false) { |
|
| 527 | - $path = supprimer_timestamp($path); |
|
| 528 | - // remove ?24px added by find_in_theme on .svg files |
|
| 529 | - $path = preg_replace(',\?[[:digit:]]+(px)$,', '', $path); |
|
| 530 | - } |
|
| 531 | - return file_exists($path); |
|
| 532 | - }; |
|
| 533 | - if ($is_local_file($is_file) or tester_url_absolue($is_file)) { |
|
| 534 | - $res = $filtre("<img src='$is_file' />", ...$args); |
|
| 535 | - statut_effacer_images_temporaires(false); // desactiver pour les appels hors compilo |
|
| 536 | - return $res; |
|
| 537 | - } |
|
| 538 | - } |
|
| 539 | - |
|
| 540 | - // Cas general : trier toutes les images, avec eventuellement leur <span> |
|
| 541 | - if ( |
|
| 542 | - preg_match_all( |
|
| 543 | - ',(<([a-z]+) [^<>]*spip_documents[^<>]*>)?\s*(<img\s.*>),UimsS', |
|
| 544 | - $texte, |
|
| 545 | - $tags, |
|
| 546 | - PREG_SET_ORDER |
|
| 547 | - ) |
|
| 548 | - ) { |
|
| 549 | - foreach ($tags as $tag) { |
|
| 550 | - $class = extraire_attribut($tag[3], 'class'); |
|
| 551 | - if ( |
|
| 552 | - !$class or |
|
| 553 | - (strpos($class, 'filtre_inactif') === false |
|
| 554 | - // compat historique a virer en 3.2 |
|
| 555 | - and strpos($class, 'no_image_filtrer') === false) |
|
| 556 | - ) { |
|
| 557 | - if ($reduit = $filtre($tag[3], ...$args)) { |
|
| 558 | - // En cas de span spip_documents, modifier le style=...width: |
|
| 559 | - if ($tag[1]) { |
|
| 560 | - $w = extraire_attribut($reduit, 'width'); |
|
| 561 | - if (!$w and preg_match(',width:\s*(\d+)px,S', extraire_attribut($reduit, 'style'), $regs)) { |
|
| 562 | - $w = $regs[1]; |
|
| 563 | - } |
|
| 564 | - if ($w and ($style = extraire_attribut($tag[1], 'style'))) { |
|
| 565 | - $style = preg_replace(',width:\s*\d+px,S', "width:${w}px", $style); |
|
| 566 | - $replace = inserer_attribut($tag[1], 'style', $style); |
|
| 567 | - $texte = str_replace($tag[1], $replace, $texte); |
|
| 568 | - } |
|
| 569 | - } |
|
| 570 | - // traiter aussi un eventuel mouseover |
|
| 571 | - if ($mouseover = extraire_attribut($reduit, 'onmouseover')) { |
|
| 572 | - if (preg_match(",this[.]src=['\"]([^'\"]+)['\"],ims", $mouseover, $match)) { |
|
| 573 | - $srcover = $match[1]; |
|
| 574 | - $srcover_filter = $filtre("<img src='" . $match[1] . "' />", ...$args); |
|
| 575 | - $srcover_filter = extraire_attribut($srcover_filter, 'src'); |
|
| 576 | - $reduit = str_replace($srcover, $srcover_filter, $reduit); |
|
| 577 | - } |
|
| 578 | - } |
|
| 579 | - $texte = str_replace($tag[3], $reduit, $texte); |
|
| 580 | - } |
|
| 581 | - } |
|
| 582 | - } |
|
| 583 | - } |
|
| 584 | - statut_effacer_images_temporaires(false); // desactiver pour les appels hors compilo |
|
| 585 | - return $texte; |
|
| 508 | + $filtre = array_shift($args); # enlever $filtre |
|
| 509 | + $texte = array_shift($args); |
|
| 510 | + if ($texte === null || !strlen($texte)) { |
|
| 511 | + return ''; |
|
| 512 | + } |
|
| 513 | + find_in_path('filtres_images_mini.php', 'inc/', true); |
|
| 514 | + statut_effacer_images_temporaires(true); // activer la suppression des images temporaires car le compilo finit la chaine par un image_graver |
|
| 515 | + // Cas du nom de fichier local |
|
| 516 | + $is_file = trim($texte); |
|
| 517 | + if ( |
|
| 518 | + strpos(substr($is_file, strlen(_DIR_RACINE)), '..') !== false |
|
| 519 | + or strpbrk($is_file, "<>\n\r\t") !== false |
|
| 520 | + or strpos($is_file, '/') === 0 |
|
| 521 | + ) { |
|
| 522 | + $is_file = false; |
|
| 523 | + } |
|
| 524 | + if ($is_file) { |
|
| 525 | + $is_local_file = function ($path) { |
|
| 526 | + if (strpos($path, '?') !== false) { |
|
| 527 | + $path = supprimer_timestamp($path); |
|
| 528 | + // remove ?24px added by find_in_theme on .svg files |
|
| 529 | + $path = preg_replace(',\?[[:digit:]]+(px)$,', '', $path); |
|
| 530 | + } |
|
| 531 | + return file_exists($path); |
|
| 532 | + }; |
|
| 533 | + if ($is_local_file($is_file) or tester_url_absolue($is_file)) { |
|
| 534 | + $res = $filtre("<img src='$is_file' />", ...$args); |
|
| 535 | + statut_effacer_images_temporaires(false); // desactiver pour les appels hors compilo |
|
| 536 | + return $res; |
|
| 537 | + } |
|
| 538 | + } |
|
| 539 | + |
|
| 540 | + // Cas general : trier toutes les images, avec eventuellement leur <span> |
|
| 541 | + if ( |
|
| 542 | + preg_match_all( |
|
| 543 | + ',(<([a-z]+) [^<>]*spip_documents[^<>]*>)?\s*(<img\s.*>),UimsS', |
|
| 544 | + $texte, |
|
| 545 | + $tags, |
|
| 546 | + PREG_SET_ORDER |
|
| 547 | + ) |
|
| 548 | + ) { |
|
| 549 | + foreach ($tags as $tag) { |
|
| 550 | + $class = extraire_attribut($tag[3], 'class'); |
|
| 551 | + if ( |
|
| 552 | + !$class or |
|
| 553 | + (strpos($class, 'filtre_inactif') === false |
|
| 554 | + // compat historique a virer en 3.2 |
|
| 555 | + and strpos($class, 'no_image_filtrer') === false) |
|
| 556 | + ) { |
|
| 557 | + if ($reduit = $filtre($tag[3], ...$args)) { |
|
| 558 | + // En cas de span spip_documents, modifier le style=...width: |
|
| 559 | + if ($tag[1]) { |
|
| 560 | + $w = extraire_attribut($reduit, 'width'); |
|
| 561 | + if (!$w and preg_match(',width:\s*(\d+)px,S', extraire_attribut($reduit, 'style'), $regs)) { |
|
| 562 | + $w = $regs[1]; |
|
| 563 | + } |
|
| 564 | + if ($w and ($style = extraire_attribut($tag[1], 'style'))) { |
|
| 565 | + $style = preg_replace(',width:\s*\d+px,S', "width:${w}px", $style); |
|
| 566 | + $replace = inserer_attribut($tag[1], 'style', $style); |
|
| 567 | + $texte = str_replace($tag[1], $replace, $texte); |
|
| 568 | + } |
|
| 569 | + } |
|
| 570 | + // traiter aussi un eventuel mouseover |
|
| 571 | + if ($mouseover = extraire_attribut($reduit, 'onmouseover')) { |
|
| 572 | + if (preg_match(",this[.]src=['\"]([^'\"]+)['\"],ims", $mouseover, $match)) { |
|
| 573 | + $srcover = $match[1]; |
|
| 574 | + $srcover_filter = $filtre("<img src='" . $match[1] . "' />", ...$args); |
|
| 575 | + $srcover_filter = extraire_attribut($srcover_filter, 'src'); |
|
| 576 | + $reduit = str_replace($srcover, $srcover_filter, $reduit); |
|
| 577 | + } |
|
| 578 | + } |
|
| 579 | + $texte = str_replace($tag[3], $reduit, $texte); |
|
| 580 | + } |
|
| 581 | + } |
|
| 582 | + } |
|
| 583 | + } |
|
| 584 | + statut_effacer_images_temporaires(false); // desactiver pour les appels hors compilo |
|
| 585 | + return $texte; |
|
| 586 | 586 | } |
| 587 | 587 | |
| 588 | 588 | /** |
@@ -599,91 +599,91 @@ discard block |
||
| 599 | 599 | **/ |
| 600 | 600 | function infos_image($img, $force_refresh = false) { |
| 601 | 601 | |
| 602 | - static $largeur_img = [], $hauteur_img = [], $poids_img = []; |
|
| 603 | - $srcWidth = 0; |
|
| 604 | - $srcHeight = 0; |
|
| 605 | - $srcSize = null; |
|
| 606 | - |
|
| 607 | - $src = extraire_attribut($img, 'src'); |
|
| 608 | - |
|
| 609 | - if (!$src) { |
|
| 610 | - $src = $img; |
|
| 611 | - } else { |
|
| 612 | - $srcWidth = extraire_attribut($img, 'width'); |
|
| 613 | - $srcHeight = extraire_attribut($img, 'height'); |
|
| 614 | - } |
|
| 615 | - |
|
| 616 | - // ne jamais operer directement sur une image distante pour des raisons de perfo |
|
| 617 | - // la copie locale a toutes les chances d'etre la ou de resservir |
|
| 618 | - if (tester_url_absolue($src)) { |
|
| 619 | - include_spip('inc/distant'); |
|
| 620 | - $fichier = copie_locale($src); |
|
| 621 | - $src = $fichier ? _DIR_RACINE . $fichier : $src; |
|
| 622 | - } |
|
| 623 | - if (($p = strpos($src, '?')) !== false) { |
|
| 624 | - $src = substr($src, 0, $p); |
|
| 625 | - } |
|
| 626 | - |
|
| 627 | - $imagesize = false; |
|
| 628 | - if (isset($largeur_img[$src]) and !$force_refresh) { |
|
| 629 | - $srcWidth = $largeur_img[$src]; |
|
| 630 | - } |
|
| 631 | - if (isset($hauteur_img[$src]) and !$force_refresh) { |
|
| 632 | - $srcHeight = $hauteur_img[$src]; |
|
| 633 | - } |
|
| 634 | - if (isset($poids_img[$src]) and !$force_refresh) { |
|
| 635 | - $srcSize = $poids_img[$src]; |
|
| 636 | - } |
|
| 637 | - if (!$srcWidth or !$srcHeight or is_null($srcSize)) { |
|
| 638 | - if ( |
|
| 639 | - file_exists($src) |
|
| 640 | - and $imagesize = spip_getimagesize($src) |
|
| 641 | - ) { |
|
| 642 | - if (!$srcWidth) { |
|
| 643 | - $largeur_img[$src] = $srcWidth = $imagesize[0]; |
|
| 644 | - } |
|
| 645 | - if (!$srcHeight) { |
|
| 646 | - $hauteur_img[$src] = $srcHeight = $imagesize[1]; |
|
| 647 | - } |
|
| 648 | - if (!$srcSize) { |
|
| 649 | - $poids_img[$src] = filesize($src); |
|
| 650 | - } |
|
| 651 | - } |
|
| 652 | - elseif (strpos($src, '<svg') !== false) { |
|
| 653 | - include_spip('inc/svg'); |
|
| 654 | - if ($attrs = svg_lire_attributs($src)) { |
|
| 655 | - [$width, $height, $viewbox] = svg_getimagesize_from_attr($attrs); |
|
| 656 | - if (!$srcWidth) { |
|
| 657 | - $largeur_img[$src] = $srcWidth = $width; |
|
| 658 | - } |
|
| 659 | - if (!$srcHeight) { |
|
| 660 | - $hauteur_img[$src] = $srcHeight = $height; |
|
| 661 | - } |
|
| 662 | - if (!$srcSize) { |
|
| 663 | - $poids_img[$src] = $srcSize = strlen($src); |
|
| 664 | - } |
|
| 665 | - } |
|
| 666 | - } |
|
| 667 | - // $src peut etre une reference a une image temporaire dont a n'a que le log .src |
|
| 668 | - // on s'y refere, l'image sera reconstruite en temps utile si necessaire |
|
| 669 | - elseif ( |
|
| 670 | - @file_exists($f = "$src.src") |
|
| 671 | - and lire_fichier($f, $valeurs) |
|
| 672 | - and $valeurs = unserialize($valeurs) |
|
| 673 | - ) { |
|
| 674 | - if (!$srcWidth) { |
|
| 675 | - $largeur_img[$src] = $srcWidth = $valeurs['largeur_dest']; |
|
| 676 | - } |
|
| 677 | - if (!$srcHeight) { |
|
| 678 | - $hauteur_img[$src] = $srcHeight = $valeurs['hauteur_dest']; |
|
| 679 | - } |
|
| 680 | - if (!$srcSize) { |
|
| 681 | - $poids_img[$src] = $srcSize = 0; |
|
| 682 | - } |
|
| 683 | - } |
|
| 684 | - } |
|
| 685 | - |
|
| 686 | - return ['hauteur' => $srcHeight, 'largeur' => $srcWidth, 'poids' => $srcSize]; |
|
| 602 | + static $largeur_img = [], $hauteur_img = [], $poids_img = []; |
|
| 603 | + $srcWidth = 0; |
|
| 604 | + $srcHeight = 0; |
|
| 605 | + $srcSize = null; |
|
| 606 | + |
|
| 607 | + $src = extraire_attribut($img, 'src'); |
|
| 608 | + |
|
| 609 | + if (!$src) { |
|
| 610 | + $src = $img; |
|
| 611 | + } else { |
|
| 612 | + $srcWidth = extraire_attribut($img, 'width'); |
|
| 613 | + $srcHeight = extraire_attribut($img, 'height'); |
|
| 614 | + } |
|
| 615 | + |
|
| 616 | + // ne jamais operer directement sur une image distante pour des raisons de perfo |
|
| 617 | + // la copie locale a toutes les chances d'etre la ou de resservir |
|
| 618 | + if (tester_url_absolue($src)) { |
|
| 619 | + include_spip('inc/distant'); |
|
| 620 | + $fichier = copie_locale($src); |
|
| 621 | + $src = $fichier ? _DIR_RACINE . $fichier : $src; |
|
| 622 | + } |
|
| 623 | + if (($p = strpos($src, '?')) !== false) { |
|
| 624 | + $src = substr($src, 0, $p); |
|
| 625 | + } |
|
| 626 | + |
|
| 627 | + $imagesize = false; |
|
| 628 | + if (isset($largeur_img[$src]) and !$force_refresh) { |
|
| 629 | + $srcWidth = $largeur_img[$src]; |
|
| 630 | + } |
|
| 631 | + if (isset($hauteur_img[$src]) and !$force_refresh) { |
|
| 632 | + $srcHeight = $hauteur_img[$src]; |
|
| 633 | + } |
|
| 634 | + if (isset($poids_img[$src]) and !$force_refresh) { |
|
| 635 | + $srcSize = $poids_img[$src]; |
|
| 636 | + } |
|
| 637 | + if (!$srcWidth or !$srcHeight or is_null($srcSize)) { |
|
| 638 | + if ( |
|
| 639 | + file_exists($src) |
|
| 640 | + and $imagesize = spip_getimagesize($src) |
|
| 641 | + ) { |
|
| 642 | + if (!$srcWidth) { |
|
| 643 | + $largeur_img[$src] = $srcWidth = $imagesize[0]; |
|
| 644 | + } |
|
| 645 | + if (!$srcHeight) { |
|
| 646 | + $hauteur_img[$src] = $srcHeight = $imagesize[1]; |
|
| 647 | + } |
|
| 648 | + if (!$srcSize) { |
|
| 649 | + $poids_img[$src] = filesize($src); |
|
| 650 | + } |
|
| 651 | + } |
|
| 652 | + elseif (strpos($src, '<svg') !== false) { |
|
| 653 | + include_spip('inc/svg'); |
|
| 654 | + if ($attrs = svg_lire_attributs($src)) { |
|
| 655 | + [$width, $height, $viewbox] = svg_getimagesize_from_attr($attrs); |
|
| 656 | + if (!$srcWidth) { |
|
| 657 | + $largeur_img[$src] = $srcWidth = $width; |
|
| 658 | + } |
|
| 659 | + if (!$srcHeight) { |
|
| 660 | + $hauteur_img[$src] = $srcHeight = $height; |
|
| 661 | + } |
|
| 662 | + if (!$srcSize) { |
|
| 663 | + $poids_img[$src] = $srcSize = strlen($src); |
|
| 664 | + } |
|
| 665 | + } |
|
| 666 | + } |
|
| 667 | + // $src peut etre une reference a une image temporaire dont a n'a que le log .src |
|
| 668 | + // on s'y refere, l'image sera reconstruite en temps utile si necessaire |
|
| 669 | + elseif ( |
|
| 670 | + @file_exists($f = "$src.src") |
|
| 671 | + and lire_fichier($f, $valeurs) |
|
| 672 | + and $valeurs = unserialize($valeurs) |
|
| 673 | + ) { |
|
| 674 | + if (!$srcWidth) { |
|
| 675 | + $largeur_img[$src] = $srcWidth = $valeurs['largeur_dest']; |
|
| 676 | + } |
|
| 677 | + if (!$srcHeight) { |
|
| 678 | + $hauteur_img[$src] = $srcHeight = $valeurs['hauteur_dest']; |
|
| 679 | + } |
|
| 680 | + if (!$srcSize) { |
|
| 681 | + $poids_img[$src] = $srcSize = 0; |
|
| 682 | + } |
|
| 683 | + } |
|
| 684 | + } |
|
| 685 | + |
|
| 686 | + return ['hauteur' => $srcHeight, 'largeur' => $srcWidth, 'poids' => $srcSize]; |
|
| 687 | 687 | } |
| 688 | 688 | |
| 689 | 689 | /** |
@@ -699,13 +699,13 @@ discard block |
||
| 699 | 699 | * poids |
| 700 | 700 | **/ |
| 701 | 701 | function poids_image($img, $force_refresh = false) { |
| 702 | - $infos = infos_image($img, $force_refresh); |
|
| 703 | - return $infos['poids']; |
|
| 702 | + $infos = infos_image($img, $force_refresh); |
|
| 703 | + return $infos['poids']; |
|
| 704 | 704 | } |
| 705 | 705 | |
| 706 | 706 | function taille_image($img, $force_refresh = false) { |
| 707 | - $infos = infos_image($img, $force_refresh); |
|
| 708 | - return [$infos['hauteur'], $infos['largeur']]; |
|
| 707 | + $infos = infos_image($img, $force_refresh); |
|
| 708 | + return [$infos['hauteur'], $infos['largeur']]; |
|
| 709 | 709 | } |
| 710 | 710 | |
| 711 | 711 | /** |
@@ -722,12 +722,12 @@ discard block |
||
| 722 | 722 | * Largeur en pixels, NULL ou 0 si aucune image. |
| 723 | 723 | **/ |
| 724 | 724 | function largeur($img) { |
| 725 | - if (!$img) { |
|
| 726 | - return; |
|
| 727 | - } |
|
| 728 | - [$h, $l] = taille_image($img); |
|
| 725 | + if (!$img) { |
|
| 726 | + return; |
|
| 727 | + } |
|
| 728 | + [$h, $l] = taille_image($img); |
|
| 729 | 729 | |
| 730 | - return $l; |
|
| 730 | + return $l; |
|
| 731 | 731 | } |
| 732 | 732 | |
| 733 | 733 | /** |
@@ -744,12 +744,12 @@ discard block |
||
| 744 | 744 | * Hauteur en pixels, NULL ou 0 si aucune image. |
| 745 | 745 | **/ |
| 746 | 746 | function hauteur($img) { |
| 747 | - if (!$img) { |
|
| 748 | - return; |
|
| 749 | - } |
|
| 750 | - [$h, $l] = taille_image($img); |
|
| 747 | + if (!$img) { |
|
| 748 | + return; |
|
| 749 | + } |
|
| 750 | + [$h, $l] = taille_image($img); |
|
| 751 | 751 | |
| 752 | - return $h; |
|
| 752 | + return $h; |
|
| 753 | 753 | } |
| 754 | 754 | |
| 755 | 755 | |
@@ -769,11 +769,11 @@ discard block |
||
| 769 | 769 | * @return string |
| 770 | 770 | **/ |
| 771 | 771 | function corriger_entites_html($texte) { |
| 772 | - if (strpos($texte, '&') === false) { |
|
| 773 | - return $texte; |
|
| 774 | - } |
|
| 772 | + if (strpos($texte, '&') === false) { |
|
| 773 | + return $texte; |
|
| 774 | + } |
|
| 775 | 775 | |
| 776 | - return preg_replace(',&(#[0-9][0-9][0-9]+;|amp;),iS', '&\1', $texte); |
|
| 776 | + return preg_replace(',&(#[0-9][0-9][0-9]+;|amp;),iS', '&\1', $texte); |
|
| 777 | 777 | } |
| 778 | 778 | |
| 779 | 779 | /** |
@@ -788,11 +788,11 @@ discard block |
||
| 788 | 788 | * @return string |
| 789 | 789 | **/ |
| 790 | 790 | function corriger_toutes_entites_html($texte) { |
| 791 | - if (strpos($texte, '&') === false) { |
|
| 792 | - return $texte; |
|
| 793 | - } |
|
| 791 | + if (strpos($texte, '&') === false) { |
|
| 792 | + return $texte; |
|
| 793 | + } |
|
| 794 | 794 | |
| 795 | - return preg_replace(',&(#?[a-z0-9]+;),iS', '&\1', $texte); |
|
| 795 | + return preg_replace(',&(#?[a-z0-9]+;),iS', '&\1', $texte); |
|
| 796 | 796 | } |
| 797 | 797 | |
| 798 | 798 | /** |
@@ -802,7 +802,7 @@ discard block |
||
| 802 | 802 | * @return string |
| 803 | 803 | **/ |
| 804 | 804 | function proteger_amp($texte) { |
| 805 | - return str_replace('&', '&', $texte); |
|
| 805 | + return str_replace('&', '&', $texte); |
|
| 806 | 806 | } |
| 807 | 807 | |
| 808 | 808 | |
@@ -833,21 +833,21 @@ discard block |
||
| 833 | 833 | * @return mixed|string |
| 834 | 834 | */ |
| 835 | 835 | function entites_html($texte, $tout = false, $quote = true) { |
| 836 | - if ( |
|
| 837 | - !is_string($texte) or !$texte |
|
| 838 | - or strpbrk($texte, "&\"'<>") == false |
|
| 839 | - ) { |
|
| 840 | - return $texte; |
|
| 841 | - } |
|
| 842 | - include_spip('inc/texte'); |
|
| 843 | - $flags = ($quote ? ENT_QUOTES : ENT_NOQUOTES); |
|
| 844 | - $flags |= ENT_HTML401; |
|
| 845 | - $texte = spip_htmlspecialchars(echappe_retour(echappe_html($texte, '', true), '', 'proteger_amp'), $flags); |
|
| 846 | - if ($tout) { |
|
| 847 | - return corriger_toutes_entites_html($texte); |
|
| 848 | - } else { |
|
| 849 | - return corriger_entites_html($texte); |
|
| 850 | - } |
|
| 836 | + if ( |
|
| 837 | + !is_string($texte) or !$texte |
|
| 838 | + or strpbrk($texte, "&\"'<>") == false |
|
| 839 | + ) { |
|
| 840 | + return $texte; |
|
| 841 | + } |
|
| 842 | + include_spip('inc/texte'); |
|
| 843 | + $flags = ($quote ? ENT_QUOTES : ENT_NOQUOTES); |
|
| 844 | + $flags |= ENT_HTML401; |
|
| 845 | + $texte = spip_htmlspecialchars(echappe_retour(echappe_html($texte, '', true), '', 'proteger_amp'), $flags); |
|
| 846 | + if ($tout) { |
|
| 847 | + return corriger_toutes_entites_html($texte); |
|
| 848 | + } else { |
|
| 849 | + return corriger_entites_html($texte); |
|
| 850 | + } |
|
| 851 | 851 | } |
| 852 | 852 | |
| 853 | 853 | /** |
@@ -866,37 +866,37 @@ discard block |
||
| 866 | 866 | * Texte converti |
| 867 | 867 | **/ |
| 868 | 868 | function filtrer_entites($texte) { |
| 869 | - if (strpos($texte, '&') === false) { |
|
| 870 | - return $texte; |
|
| 871 | - } |
|
| 872 | - // filtrer |
|
| 873 | - $texte = html2unicode($texte); |
|
| 874 | - // remettre le tout dans le charset cible |
|
| 875 | - $texte = unicode2charset($texte); |
|
| 876 | - // cas particulier des " et ' qu'il faut filtrer aussi |
|
| 877 | - // (on le faisait deja avec un ") |
|
| 878 | - if (strpos($texte, '&#') !== false) { |
|
| 879 | - $texte = str_replace([''', ''', '"', '"'], ["'", "'", '"', '"'], $texte); |
|
| 880 | - } |
|
| 869 | + if (strpos($texte, '&') === false) { |
|
| 870 | + return $texte; |
|
| 871 | + } |
|
| 872 | + // filtrer |
|
| 873 | + $texte = html2unicode($texte); |
|
| 874 | + // remettre le tout dans le charset cible |
|
| 875 | + $texte = unicode2charset($texte); |
|
| 876 | + // cas particulier des " et ' qu'il faut filtrer aussi |
|
| 877 | + // (on le faisait deja avec un ") |
|
| 878 | + if (strpos($texte, '&#') !== false) { |
|
| 879 | + $texte = str_replace([''', ''', '"', '"'], ["'", "'", '"', '"'], $texte); |
|
| 880 | + } |
|
| 881 | 881 | |
| 882 | - return $texte; |
|
| 882 | + return $texte; |
|
| 883 | 883 | } |
| 884 | 884 | |
| 885 | 885 | |
| 886 | 886 | if (!function_exists('filtre_filtrer_entites_dist')) { |
| 887 | - /** |
|
| 888 | - * Version sécurisée de filtrer_entites |
|
| 889 | - * |
|
| 890 | - * @uses interdire_scripts() |
|
| 891 | - * @uses filtrer_entites() |
|
| 892 | - * |
|
| 893 | - * @param string $t |
|
| 894 | - * @return string |
|
| 895 | - */ |
|
| 896 | - function filtre_filtrer_entites_dist($t) { |
|
| 897 | - include_spip('inc/texte'); |
|
| 898 | - return interdire_scripts(filtrer_entites($t)); |
|
| 899 | - } |
|
| 887 | + /** |
|
| 888 | + * Version sécurisée de filtrer_entites |
|
| 889 | + * |
|
| 890 | + * @uses interdire_scripts() |
|
| 891 | + * @uses filtrer_entites() |
|
| 892 | + * |
|
| 893 | + * @param string $t |
|
| 894 | + * @return string |
|
| 895 | + */ |
|
| 896 | + function filtre_filtrer_entites_dist($t) { |
|
| 897 | + include_spip('inc/texte'); |
|
| 898 | + return interdire_scripts(filtrer_entites($t)); |
|
| 899 | + } |
|
| 900 | 900 | } |
| 901 | 901 | |
| 902 | 902 | |
@@ -911,18 +911,18 @@ discard block |
||
| 911 | 911 | * @return string|array |
| 912 | 912 | **/ |
| 913 | 913 | function supprimer_caracteres_illegaux($texte) { |
| 914 | - static $from = "\x0\x1\x2\x3\x4\x5\x6\x7\x8\xB\xC\xE\xF\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F"; |
|
| 915 | - static $to = null; |
|
| 914 | + static $from = "\x0\x1\x2\x3\x4\x5\x6\x7\x8\xB\xC\xE\xF\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F"; |
|
| 915 | + static $to = null; |
|
| 916 | 916 | |
| 917 | - if (is_array($texte)) { |
|
| 918 | - return array_map('supprimer_caracteres_illegaux', $texte); |
|
| 919 | - } |
|
| 917 | + if (is_array($texte)) { |
|
| 918 | + return array_map('supprimer_caracteres_illegaux', $texte); |
|
| 919 | + } |
|
| 920 | 920 | |
| 921 | - if (!$to) { |
|
| 922 | - $to = str_repeat('-', strlen($from)); |
|
| 923 | - } |
|
| 921 | + if (!$to) { |
|
| 922 | + $to = str_repeat('-', strlen($from)); |
|
| 923 | + } |
|
| 924 | 924 | |
| 925 | - return strtr($texte, $from, $to); |
|
| 925 | + return strtr($texte, $from, $to); |
|
| 926 | 926 | } |
| 927 | 927 | |
| 928 | 928 | /** |
@@ -934,10 +934,10 @@ discard block |
||
| 934 | 934 | * @return string|array |
| 935 | 935 | **/ |
| 936 | 936 | function corriger_caracteres($texte) { |
| 937 | - $texte = corriger_caracteres_windows($texte); |
|
| 938 | - $texte = supprimer_caracteres_illegaux($texte); |
|
| 937 | + $texte = corriger_caracteres_windows($texte); |
|
| 938 | + $texte = supprimer_caracteres_illegaux($texte); |
|
| 939 | 939 | |
| 940 | - return $texte; |
|
| 940 | + return $texte; |
|
| 941 | 941 | } |
| 942 | 942 | |
| 943 | 943 | /** |
@@ -954,44 +954,44 @@ discard block |
||
| 954 | 954 | * Texte encodé pour XML |
| 955 | 955 | */ |
| 956 | 956 | function texte_backend(string $texte): string { |
| 957 | - if ($texte === '') { |
|
| 958 | - return ''; |
|
| 959 | - } |
|
| 957 | + if ($texte === '') { |
|
| 958 | + return ''; |
|
| 959 | + } |
|
| 960 | 960 | |
| 961 | - static $apostrophe = ['’', "'"]; # n'allouer qu'une fois |
|
| 961 | + static $apostrophe = ['’', "'"]; # n'allouer qu'une fois |
|
| 962 | 962 | |
| 963 | - // si on a des liens ou des images, les passer en absolu |
|
| 964 | - $texte = liens_absolus($texte); |
|
| 963 | + // si on a des liens ou des images, les passer en absolu |
|
| 964 | + $texte = liens_absolus($texte); |
|
| 965 | 965 | |
| 966 | - // echapper les tags > < |
|
| 967 | - $texte = preg_replace(',&(gt|lt);,S', '&\1;', $texte); |
|
| 966 | + // echapper les tags > < |
|
| 967 | + $texte = preg_replace(',&(gt|lt);,S', '&\1;', $texte); |
|
| 968 | 968 | |
| 969 | - // importer les é |
|
| 970 | - $texte = filtrer_entites($texte); |
|
| 969 | + // importer les é |
|
| 970 | + $texte = filtrer_entites($texte); |
|
| 971 | 971 | |
| 972 | - // " -> " et tout ce genre de choses |
|
| 973 | - $u = $GLOBALS['meta']['pcre_u']; |
|
| 974 | - $texte = str_replace(' ', ' ', $texte); |
|
| 975 | - $texte = preg_replace('/\s{2,}/S' . $u, ' ', $texte); |
|
| 976 | - // ne pas echapper les sinqle quotes car certains outils de syndication gerent mal |
|
| 977 | - $texte = entites_html($texte, false, false); |
|
| 978 | - // mais bien echapper les double quotes ! |
|
| 979 | - $texte = str_replace('"', '"', $texte); |
|
| 972 | + // " -> " et tout ce genre de choses |
|
| 973 | + $u = $GLOBALS['meta']['pcre_u']; |
|
| 974 | + $texte = str_replace(' ', ' ', $texte); |
|
| 975 | + $texte = preg_replace('/\s{2,}/S' . $u, ' ', $texte); |
|
| 976 | + // ne pas echapper les sinqle quotes car certains outils de syndication gerent mal |
|
| 977 | + $texte = entites_html($texte, false, false); |
|
| 978 | + // mais bien echapper les double quotes ! |
|
| 979 | + $texte = str_replace('"', '"', $texte); |
|
| 980 | 980 | |
| 981 | - // verifier le charset |
|
| 982 | - $texte = charset2unicode($texte); |
|
| 981 | + // verifier le charset |
|
| 982 | + $texte = charset2unicode($texte); |
|
| 983 | 983 | |
| 984 | - // Caracteres problematiques en iso-latin 1 |
|
| 985 | - if (isset($GLOBALS['meta']['charset']) and $GLOBALS['meta']['charset'] == 'iso-8859-1') { |
|
| 986 | - $texte = str_replace(chr(156), 'œ', $texte); |
|
| 987 | - $texte = str_replace(chr(140), 'Œ', $texte); |
|
| 988 | - $texte = str_replace(chr(159), 'Ÿ', $texte); |
|
| 989 | - } |
|
| 984 | + // Caracteres problematiques en iso-latin 1 |
|
| 985 | + if (isset($GLOBALS['meta']['charset']) and $GLOBALS['meta']['charset'] == 'iso-8859-1') { |
|
| 986 | + $texte = str_replace(chr(156), 'œ', $texte); |
|
| 987 | + $texte = str_replace(chr(140), 'Œ', $texte); |
|
| 988 | + $texte = str_replace(chr(159), 'Ÿ', $texte); |
|
| 989 | + } |
|
| 990 | 990 | |
| 991 | - // l'apostrophe curly pose probleme a certains lecteure de RSS |
|
| 992 | - // et le caractere apostrophe alourdit les squelettes avec PHP |
|
| 993 | - // ==> on les remplace par l'entite HTML |
|
| 994 | - return str_replace($apostrophe, "'", $texte); |
|
| 991 | + // l'apostrophe curly pose probleme a certains lecteure de RSS |
|
| 992 | + // et le caractere apostrophe alourdit les squelettes avec PHP |
|
| 993 | + // ==> on les remplace par l'entite HTML |
|
| 994 | + return str_replace($apostrophe, "'", $texte); |
|
| 995 | 995 | } |
| 996 | 996 | |
| 997 | 997 | /** |
@@ -1008,7 +1008,7 @@ discard block |
||
| 1008 | 1008 | * Texte encodé et quote pour XML |
| 1009 | 1009 | */ |
| 1010 | 1010 | function texte_backendq(string $texte): string { |
| 1011 | - return addslashes(texte_backend($texte)); |
|
| 1011 | + return addslashes(texte_backend($texte)); |
|
| 1012 | 1012 | } |
| 1013 | 1013 | |
| 1014 | 1014 | |
@@ -1031,11 +1031,11 @@ discard block |
||
| 1031 | 1031 | * Numéro de titre, sinon chaîne vide |
| 1032 | 1032 | **/ |
| 1033 | 1033 | function supprimer_numero($texte) { |
| 1034 | - return preg_replace( |
|
| 1035 | - ',^[[:space:]]*([0-9]+)([.)]|' . chr(194) . '?' . chr(176) . ')[[:space:]]+,S', |
|
| 1036 | - '', |
|
| 1037 | - $texte |
|
| 1038 | - ); |
|
| 1034 | + return preg_replace( |
|
| 1035 | + ',^[[:space:]]*([0-9]+)([.)]|' . chr(194) . '?' . chr(176) . ')[[:space:]]+,S', |
|
| 1036 | + '', |
|
| 1037 | + $texte |
|
| 1038 | + ); |
|
| 1039 | 1039 | } |
| 1040 | 1040 | |
| 1041 | 1041 | /** |
@@ -1058,17 +1058,17 @@ discard block |
||
| 1058 | 1058 | * Numéro de titre, sinon chaîne vide |
| 1059 | 1059 | **/ |
| 1060 | 1060 | function recuperer_numero($texte) { |
| 1061 | - if ( |
|
| 1062 | - preg_match( |
|
| 1063 | - ',^[[:space:]]*([0-9]+)([.)]|' . chr(194) . '?' . chr(176) . ')[[:space:]]+,S', |
|
| 1064 | - $texte, |
|
| 1065 | - $regs |
|
| 1066 | - ) |
|
| 1067 | - ) { |
|
| 1068 | - return strval($regs[1]); |
|
| 1069 | - } else { |
|
| 1070 | - return ''; |
|
| 1071 | - } |
|
| 1061 | + if ( |
|
| 1062 | + preg_match( |
|
| 1063 | + ',^[[:space:]]*([0-9]+)([.)]|' . chr(194) . '?' . chr(176) . ')[[:space:]]+,S', |
|
| 1064 | + $texte, |
|
| 1065 | + $regs |
|
| 1066 | + ) |
|
| 1067 | + ) { |
|
| 1068 | + return strval($regs[1]); |
|
| 1069 | + } else { |
|
| 1070 | + return ''; |
|
| 1071 | + } |
|
| 1072 | 1072 | } |
| 1073 | 1073 | |
| 1074 | 1074 | /** |
@@ -1095,16 +1095,16 @@ discard block |
||
| 1095 | 1095 | * Texte ou tableau de textes converti |
| 1096 | 1096 | **/ |
| 1097 | 1097 | function supprimer_tags($texte, $rempl = '') { |
| 1098 | - if ($texte === null) { |
|
| 1099 | - return ''; |
|
| 1100 | - } |
|
| 1101 | - $texte = preg_replace(',<(!--|\w|/|!\[endif|!\[if)[^>]*>,US', $rempl, $texte); |
|
| 1102 | - // ne pas oublier un < final non ferme car coupe |
|
| 1103 | - $texte = preg_replace(',<(!--|\w|/).*$,US', $rempl, $texte); |
|
| 1104 | - // mais qui peut aussi etre un simple signe plus petit que |
|
| 1105 | - $texte = str_replace('<', '<', $texte); |
|
| 1098 | + if ($texte === null) { |
|
| 1099 | + return ''; |
|
| 1100 | + } |
|
| 1101 | + $texte = preg_replace(',<(!--|\w|/|!\[endif|!\[if)[^>]*>,US', $rempl, $texte); |
|
| 1102 | + // ne pas oublier un < final non ferme car coupe |
|
| 1103 | + $texte = preg_replace(',<(!--|\w|/).*$,US', $rempl, $texte); |
|
| 1104 | + // mais qui peut aussi etre un simple signe plus petit que |
|
| 1105 | + $texte = str_replace('<', '<', $texte); |
|
| 1106 | 1106 | |
| 1107 | - return $texte; |
|
| 1107 | + return $texte; |
|
| 1108 | 1108 | } |
| 1109 | 1109 | |
| 1110 | 1110 | /** |
@@ -1127,9 +1127,9 @@ discard block |
||
| 1127 | 1127 | * Texte converti |
| 1128 | 1128 | **/ |
| 1129 | 1129 | function echapper_tags($texte, $rempl = '') { |
| 1130 | - $texte = preg_replace('/<([^>]*)>/', "<\\1>", $texte); |
|
| 1130 | + $texte = preg_replace('/<([^>]*)>/', "<\\1>", $texte); |
|
| 1131 | 1131 | |
| 1132 | - return $texte; |
|
| 1132 | + return $texte; |
|
| 1133 | 1133 | } |
| 1134 | 1134 | |
| 1135 | 1135 | /** |
@@ -1150,18 +1150,18 @@ discard block |
||
| 1150 | 1150 | * Texte converti |
| 1151 | 1151 | **/ |
| 1152 | 1152 | function textebrut($texte) { |
| 1153 | - $u = $GLOBALS['meta']['pcre_u']; |
|
| 1154 | - $texte = preg_replace('/\s+/S' . $u, ' ', $texte); |
|
| 1155 | - $texte = preg_replace('/<(p|br)( [^>]*)?' . '>/iS', "\n\n", $texte); |
|
| 1156 | - $texte = preg_replace("/^\n+/", '', $texte); |
|
| 1157 | - $texte = preg_replace("/\n+$/", '', $texte); |
|
| 1158 | - $texte = preg_replace("/\n +/", "\n", $texte); |
|
| 1159 | - $texte = supprimer_tags($texte); |
|
| 1160 | - $texte = preg_replace('/( | )+/S', ' ', $texte); |
|
| 1161 | - // nettoyer l'apostrophe curly qui pose probleme a certains rss-readers, lecteurs de mail... |
|
| 1162 | - $texte = str_replace('’', "'", $texte); |
|
| 1153 | + $u = $GLOBALS['meta']['pcre_u']; |
|
| 1154 | + $texte = preg_replace('/\s+/S' . $u, ' ', $texte); |
|
| 1155 | + $texte = preg_replace('/<(p|br)( [^>]*)?' . '>/iS', "\n\n", $texte); |
|
| 1156 | + $texte = preg_replace("/^\n+/", '', $texte); |
|
| 1157 | + $texte = preg_replace("/\n+$/", '', $texte); |
|
| 1158 | + $texte = preg_replace("/\n +/", "\n", $texte); |
|
| 1159 | + $texte = supprimer_tags($texte); |
|
| 1160 | + $texte = preg_replace('/( | )+/S', ' ', $texte); |
|
| 1161 | + // nettoyer l'apostrophe curly qui pose probleme a certains rss-readers, lecteurs de mail... |
|
| 1162 | + $texte = str_replace('’', "'", $texte); |
|
| 1163 | 1163 | |
| 1164 | - return $texte; |
|
| 1164 | + return $texte; |
|
| 1165 | 1165 | } |
| 1166 | 1166 | |
| 1167 | 1167 | |
@@ -1177,23 +1177,23 @@ discard block |
||
| 1177 | 1177 | * Texte avec liens ouvrants |
| 1178 | 1178 | **/ |
| 1179 | 1179 | function liens_ouvrants($texte) { |
| 1180 | - if ( |
|
| 1181 | - preg_match_all( |
|
| 1182 | - ",(<a\s+[^>]*https?://[^>]*class=[\"']spip_(out|url)\b[^>]+>),imsS", |
|
| 1183 | - $texte, |
|
| 1184 | - $liens, |
|
| 1185 | - PREG_PATTERN_ORDER |
|
| 1186 | - ) |
|
| 1187 | - ) { |
|
| 1188 | - foreach ($liens[0] as $a) { |
|
| 1189 | - $rel = 'noopener noreferrer ' . extraire_attribut($a, 'rel'); |
|
| 1190 | - $ablank = inserer_attribut($a, 'rel', $rel); |
|
| 1191 | - $ablank = inserer_attribut($ablank, 'target', '_blank'); |
|
| 1192 | - $texte = str_replace($a, $ablank, $texte); |
|
| 1193 | - } |
|
| 1194 | - } |
|
| 1195 | - |
|
| 1196 | - return $texte; |
|
| 1180 | + if ( |
|
| 1181 | + preg_match_all( |
|
| 1182 | + ",(<a\s+[^>]*https?://[^>]*class=[\"']spip_(out|url)\b[^>]+>),imsS", |
|
| 1183 | + $texte, |
|
| 1184 | + $liens, |
|
| 1185 | + PREG_PATTERN_ORDER |
|
| 1186 | + ) |
|
| 1187 | + ) { |
|
| 1188 | + foreach ($liens[0] as $a) { |
|
| 1189 | + $rel = 'noopener noreferrer ' . extraire_attribut($a, 'rel'); |
|
| 1190 | + $ablank = inserer_attribut($a, 'rel', $rel); |
|
| 1191 | + $ablank = inserer_attribut($ablank, 'target', '_blank'); |
|
| 1192 | + $texte = str_replace($a, $ablank, $texte); |
|
| 1193 | + } |
|
| 1194 | + } |
|
| 1195 | + |
|
| 1196 | + return $texte; |
|
| 1197 | 1197 | } |
| 1198 | 1198 | |
| 1199 | 1199 | /** |
@@ -1203,22 +1203,22 @@ discard block |
||
| 1203 | 1203 | * @return string |
| 1204 | 1204 | */ |
| 1205 | 1205 | function liens_nofollow($texte) { |
| 1206 | - if (stripos($texte, '<a') === false) { |
|
| 1207 | - return $texte; |
|
| 1208 | - } |
|
| 1206 | + if (stripos($texte, '<a') === false) { |
|
| 1207 | + return $texte; |
|
| 1208 | + } |
|
| 1209 | 1209 | |
| 1210 | - if (preg_match_all(",<a\b[^>]*>,UimsS", $texte, $regs, PREG_PATTERN_ORDER)) { |
|
| 1211 | - foreach ($regs[0] as $a) { |
|
| 1212 | - $rel = extraire_attribut($a, 'rel') ?? ''; |
|
| 1213 | - if (strpos($rel, 'nofollow') === false) { |
|
| 1214 | - $rel = 'nofollow' . ($rel ? " $rel" : ''); |
|
| 1215 | - $anofollow = inserer_attribut($a, 'rel', $rel); |
|
| 1216 | - $texte = str_replace($a, $anofollow, $texte); |
|
| 1217 | - } |
|
| 1218 | - } |
|
| 1219 | - } |
|
| 1210 | + if (preg_match_all(",<a\b[^>]*>,UimsS", $texte, $regs, PREG_PATTERN_ORDER)) { |
|
| 1211 | + foreach ($regs[0] as $a) { |
|
| 1212 | + $rel = extraire_attribut($a, 'rel') ?? ''; |
|
| 1213 | + if (strpos($rel, 'nofollow') === false) { |
|
| 1214 | + $rel = 'nofollow' . ($rel ? " $rel" : ''); |
|
| 1215 | + $anofollow = inserer_attribut($a, 'rel', $rel); |
|
| 1216 | + $texte = str_replace($a, $anofollow, $texte); |
|
| 1217 | + } |
|
| 1218 | + } |
|
| 1219 | + } |
|
| 1220 | 1220 | |
| 1221 | - return $texte; |
|
| 1221 | + return $texte; |
|
| 1222 | 1222 | } |
| 1223 | 1223 | |
| 1224 | 1224 | /** |
@@ -1237,12 +1237,12 @@ discard block |
||
| 1237 | 1237 | * Texte sans paraghaphes |
| 1238 | 1238 | **/ |
| 1239 | 1239 | function PtoBR($texte) { |
| 1240 | - $u = $GLOBALS['meta']['pcre_u']; |
|
| 1241 | - $texte = preg_replace('@</p>@iS', "\n", $texte); |
|
| 1242 | - $texte = preg_replace("@<p\b.*>@UiS", '<br />', $texte); |
|
| 1243 | - $texte = preg_replace('@^\s*<br />@S' . $u, '', $texte); |
|
| 1240 | + $u = $GLOBALS['meta']['pcre_u']; |
|
| 1241 | + $texte = preg_replace('@</p>@iS', "\n", $texte); |
|
| 1242 | + $texte = preg_replace("@<p\b.*>@UiS", '<br />', $texte); |
|
| 1243 | + $texte = preg_replace('@^\s*<br />@S' . $u, '', $texte); |
|
| 1244 | 1244 | |
| 1245 | - return $texte; |
|
| 1245 | + return $texte; |
|
| 1246 | 1246 | } |
| 1247 | 1247 | |
| 1248 | 1248 | |
@@ -1267,14 +1267,14 @@ discard block |
||
| 1267 | 1267 | * @return string Texte encadré du style CSS |
| 1268 | 1268 | */ |
| 1269 | 1269 | function lignes_longues($texte) { |
| 1270 | - if (!strlen(trim($texte))) { |
|
| 1271 | - return $texte; |
|
| 1272 | - } |
|
| 1273 | - include_spip('inc/texte'); |
|
| 1274 | - $tag = preg_match(',</?(' . _BALISES_BLOCS . ')[>[:space:]],iS', $texte) ? |
|
| 1275 | - 'div' : 'span'; |
|
| 1270 | + if (!strlen(trim($texte))) { |
|
| 1271 | + return $texte; |
|
| 1272 | + } |
|
| 1273 | + include_spip('inc/texte'); |
|
| 1274 | + $tag = preg_match(',</?(' . _BALISES_BLOCS . ')[>[:space:]],iS', $texte) ? |
|
| 1275 | + 'div' : 'span'; |
|
| 1276 | 1276 | |
| 1277 | - return "<$tag style='word-wrap:break-word;'>$texte</$tag>"; |
|
| 1277 | + return "<$tag style='word-wrap:break-word;'>$texte</$tag>"; |
|
| 1278 | 1278 | } |
| 1279 | 1279 | |
| 1280 | 1280 | /** |
@@ -1293,30 +1293,30 @@ discard block |
||
| 1293 | 1293 | * @return string Texte en majuscule |
| 1294 | 1294 | */ |
| 1295 | 1295 | function majuscules($texte) { |
| 1296 | - if (!strlen($texte)) { |
|
| 1297 | - return ''; |
|
| 1298 | - } |
|
| 1296 | + if (!strlen($texte)) { |
|
| 1297 | + return ''; |
|
| 1298 | + } |
|
| 1299 | 1299 | |
| 1300 | - // Cas du turc |
|
| 1301 | - if ($GLOBALS['spip_lang'] == 'tr') { |
|
| 1302 | - # remplacer hors des tags et des entites |
|
| 1303 | - if (preg_match_all(',<[^<>]+>|&[^;]+;,S', $texte, $regs, PREG_SET_ORDER)) { |
|
| 1304 | - foreach ($regs as $n => $match) { |
|
| 1305 | - $texte = str_replace($match[0], "@@SPIP_TURC$n@@", $texte); |
|
| 1306 | - } |
|
| 1307 | - } |
|
| 1300 | + // Cas du turc |
|
| 1301 | + if ($GLOBALS['spip_lang'] == 'tr') { |
|
| 1302 | + # remplacer hors des tags et des entites |
|
| 1303 | + if (preg_match_all(',<[^<>]+>|&[^;]+;,S', $texte, $regs, PREG_SET_ORDER)) { |
|
| 1304 | + foreach ($regs as $n => $match) { |
|
| 1305 | + $texte = str_replace($match[0], "@@SPIP_TURC$n@@", $texte); |
|
| 1306 | + } |
|
| 1307 | + } |
|
| 1308 | 1308 | |
| 1309 | - $texte = str_replace('i', 'İ', $texte); |
|
| 1309 | + $texte = str_replace('i', 'İ', $texte); |
|
| 1310 | 1310 | |
| 1311 | - if ($regs) { |
|
| 1312 | - foreach ($regs as $n => $match) { |
|
| 1313 | - $texte = str_replace("@@SPIP_TURC$n@@", $match[0], $texte); |
|
| 1314 | - } |
|
| 1315 | - } |
|
| 1316 | - } |
|
| 1311 | + if ($regs) { |
|
| 1312 | + foreach ($regs as $n => $match) { |
|
| 1313 | + $texte = str_replace("@@SPIP_TURC$n@@", $match[0], $texte); |
|
| 1314 | + } |
|
| 1315 | + } |
|
| 1316 | + } |
|
| 1317 | 1317 | |
| 1318 | - // Cas general |
|
| 1319 | - return "<span style='text-transform: uppercase;'>$texte</span>"; |
|
| 1318 | + // Cas general |
|
| 1319 | + return "<span style='text-transform: uppercase;'>$texte</span>"; |
|
| 1320 | 1320 | } |
| 1321 | 1321 | |
| 1322 | 1322 | /** |
@@ -1334,29 +1334,29 @@ discard block |
||
| 1334 | 1334 | * @return string |
| 1335 | 1335 | **/ |
| 1336 | 1336 | function taille_en_octets($taille) { |
| 1337 | - if (!defined('_KILOBYTE')) { |
|
| 1338 | - /** |
|
| 1339 | - * Définit le nombre d'octets dans un Kilobyte |
|
| 1340 | - * |
|
| 1341 | - * @var int |
|
| 1342 | - **/ |
|
| 1343 | - define('_KILOBYTE', 1024); |
|
| 1344 | - } |
|
| 1337 | + if (!defined('_KILOBYTE')) { |
|
| 1338 | + /** |
|
| 1339 | + * Définit le nombre d'octets dans un Kilobyte |
|
| 1340 | + * |
|
| 1341 | + * @var int |
|
| 1342 | + **/ |
|
| 1343 | + define('_KILOBYTE', 1024); |
|
| 1344 | + } |
|
| 1345 | 1345 | |
| 1346 | - if ($taille < 1) { |
|
| 1347 | - return ''; |
|
| 1348 | - } |
|
| 1349 | - if ($taille < _KILOBYTE) { |
|
| 1350 | - $taille = _T('taille_octets', ['taille' => $taille]); |
|
| 1351 | - } elseif ($taille < _KILOBYTE * _KILOBYTE) { |
|
| 1352 | - $taille = _T('taille_ko', ['taille' => round($taille / _KILOBYTE, 1)]); |
|
| 1353 | - } elseif ($taille < _KILOBYTE * _KILOBYTE * _KILOBYTE) { |
|
| 1354 | - $taille = _T('taille_mo', ['taille' => round($taille / _KILOBYTE / _KILOBYTE, 1)]); |
|
| 1355 | - } else { |
|
| 1356 | - $taille = _T('taille_go', ['taille' => round($taille / _KILOBYTE / _KILOBYTE / _KILOBYTE, 2)]); |
|
| 1357 | - } |
|
| 1346 | + if ($taille < 1) { |
|
| 1347 | + return ''; |
|
| 1348 | + } |
|
| 1349 | + if ($taille < _KILOBYTE) { |
|
| 1350 | + $taille = _T('taille_octets', ['taille' => $taille]); |
|
| 1351 | + } elseif ($taille < _KILOBYTE * _KILOBYTE) { |
|
| 1352 | + $taille = _T('taille_ko', ['taille' => round($taille / _KILOBYTE, 1)]); |
|
| 1353 | + } elseif ($taille < _KILOBYTE * _KILOBYTE * _KILOBYTE) { |
|
| 1354 | + $taille = _T('taille_mo', ['taille' => round($taille / _KILOBYTE / _KILOBYTE, 1)]); |
|
| 1355 | + } else { |
|
| 1356 | + $taille = _T('taille_go', ['taille' => round($taille / _KILOBYTE / _KILOBYTE / _KILOBYTE, 2)]); |
|
| 1357 | + } |
|
| 1358 | 1358 | |
| 1359 | - return $taille; |
|
| 1359 | + return $taille; |
|
| 1360 | 1360 | } |
| 1361 | 1361 | |
| 1362 | 1362 | |
@@ -1378,21 +1378,21 @@ discard block |
||
| 1378 | 1378 | * Texte prêt pour être utilisé en attribut HTML |
| 1379 | 1379 | **/ |
| 1380 | 1380 | function attribut_html(?string $texte, $textebrut = true): string { |
| 1381 | - if ($texte === null) { |
|
| 1382 | - return ''; |
|
| 1383 | - } |
|
| 1384 | - $u = $GLOBALS['meta']['pcre_u']; |
|
| 1385 | - if ($textebrut) { |
|
| 1386 | - $texte = preg_replace([",\n,", ',\s(?=\s),msS' . $u], [' ', ''], textebrut($texte)); |
|
| 1387 | - } |
|
| 1388 | - $texte = texte_backend($texte); |
|
| 1389 | - $texte = str_replace(["'", '"'], [''', '"'], $texte); |
|
| 1381 | + if ($texte === null) { |
|
| 1382 | + return ''; |
|
| 1383 | + } |
|
| 1384 | + $u = $GLOBALS['meta']['pcre_u']; |
|
| 1385 | + if ($textebrut) { |
|
| 1386 | + $texte = preg_replace([",\n,", ',\s(?=\s),msS' . $u], [' ', ''], textebrut($texte)); |
|
| 1387 | + } |
|
| 1388 | + $texte = texte_backend($texte); |
|
| 1389 | + $texte = str_replace(["'", '"'], [''', '"'], $texte); |
|
| 1390 | 1390 | |
| 1391 | - return preg_replace( |
|
| 1392 | - ['/&(amp;|#38;)/', '/&(?![A-Za-z]{0,4}\w{2,3};|#[0-9]{2,5};)/'], |
|
| 1393 | - ['&', '&'], |
|
| 1394 | - $texte |
|
| 1395 | - ); |
|
| 1391 | + return preg_replace( |
|
| 1392 | + ['/&(amp;|#38;)/', '/&(?![A-Za-z]{0,4}\w{2,3};|#[0-9]{2,5};)/'], |
|
| 1393 | + ['&', '&'], |
|
| 1394 | + $texte |
|
| 1395 | + ); |
|
| 1396 | 1396 | } |
| 1397 | 1397 | |
| 1398 | 1398 | |
@@ -1412,15 +1412,15 @@ discard block |
||
| 1412 | 1412 | * URL ou chaîne vide |
| 1413 | 1413 | **/ |
| 1414 | 1414 | function vider_url(?string $url, $entites = true): string { |
| 1415 | - if ($url === null) { |
|
| 1416 | - return ''; |
|
| 1417 | - } |
|
| 1418 | - # un message pour abs_url |
|
| 1419 | - $GLOBALS['mode_abs_url'] = 'url'; |
|
| 1420 | - $url = trim($url); |
|
| 1421 | - $r = ',^(?:' . _PROTOCOLES_STD . '):?/?/?$,iS'; |
|
| 1415 | + if ($url === null) { |
|
| 1416 | + return ''; |
|
| 1417 | + } |
|
| 1418 | + # un message pour abs_url |
|
| 1419 | + $GLOBALS['mode_abs_url'] = 'url'; |
|
| 1420 | + $url = trim($url); |
|
| 1421 | + $r = ',^(?:' . _PROTOCOLES_STD . '):?/?/?$,iS'; |
|
| 1422 | 1422 | |
| 1423 | - return preg_match($r, $url) ? '' : ($entites ? entites_html($url) : $url); |
|
| 1423 | + return preg_match($r, $url) ? '' : ($entites ? entites_html($url) : $url); |
|
| 1424 | 1424 | } |
| 1425 | 1425 | |
| 1426 | 1426 | |
@@ -1435,10 +1435,10 @@ discard block |
||
| 1435 | 1435 | * @return string Adresse email maquillée |
| 1436 | 1436 | **/ |
| 1437 | 1437 | function antispam($texte) { |
| 1438 | - include_spip('inc/acces'); |
|
| 1439 | - $masque = creer_pass_aleatoire(3); |
|
| 1438 | + include_spip('inc/acces'); |
|
| 1439 | + $masque = creer_pass_aleatoire(3); |
|
| 1440 | 1440 | |
| 1441 | - return preg_replace('/@/', " $masque ", $texte); |
|
| 1441 | + return preg_replace('/@/', " $masque ", $texte); |
|
| 1442 | 1442 | } |
| 1443 | 1443 | |
| 1444 | 1444 | /** |
@@ -1470,8 +1470,8 @@ discard block |
||
| 1470 | 1470 | * True si on a le droit d'accès, false sinon. |
| 1471 | 1471 | **/ |
| 1472 | 1472 | function filtre_securiser_acces_dist($id_auteur, $cle, $dir, $op = '', $args = '') { |
| 1473 | - include_spip('inc/acces'); |
|
| 1474 | - return securiser_acces_low_sec($id_auteur, $cle, $op ? "$dir $op $args" : $dir); |
|
| 1473 | + include_spip('inc/acces'); |
|
| 1474 | + return securiser_acces_low_sec($id_auteur, $cle, $op ? "$dir $op $args" : $dir); |
|
| 1475 | 1475 | } |
| 1476 | 1476 | |
| 1477 | 1477 | /** |
@@ -1496,13 +1496,13 @@ discard block |
||
| 1496 | 1496 | * Retourne $texte, sinon $sinon. |
| 1497 | 1497 | **/ |
| 1498 | 1498 | function sinon($texte, $sinon = '') { |
| 1499 | - if ($texte) { |
|
| 1500 | - return $texte; |
|
| 1501 | - } elseif (is_scalar($texte) and strlen($texte)) { |
|
| 1502 | - return $texte; |
|
| 1503 | - } else { |
|
| 1504 | - return $sinon; |
|
| 1505 | - } |
|
| 1499 | + if ($texte) { |
|
| 1500 | + return $texte; |
|
| 1501 | + } elseif (is_scalar($texte) and strlen($texte)) { |
|
| 1502 | + return $texte; |
|
| 1503 | + } else { |
|
| 1504 | + return $sinon; |
|
| 1505 | + } |
|
| 1506 | 1506 | } |
| 1507 | 1507 | |
| 1508 | 1508 | /** |
@@ -1526,7 +1526,7 @@ discard block |
||
| 1526 | 1526 | * @return mixed |
| 1527 | 1527 | **/ |
| 1528 | 1528 | function choixsivide($a, $vide, $pasvide) { |
| 1529 | - return $a ? $pasvide : $vide; |
|
| 1529 | + return $a ? $pasvide : $vide; |
|
| 1530 | 1530 | } |
| 1531 | 1531 | |
| 1532 | 1532 | /** |
@@ -1550,7 +1550,7 @@ discard block |
||
| 1550 | 1550 | * @return mixed |
| 1551 | 1551 | **/ |
| 1552 | 1552 | function choixsiegal($a1, $a2, $v, $f) { |
| 1553 | - return ($a1 == $a2) ? $v : $f; |
|
| 1553 | + return ($a1 == $a2) ? $v : $f; |
|
| 1554 | 1554 | } |
| 1555 | 1555 | |
| 1556 | 1556 | // |
@@ -1569,13 +1569,13 @@ discard block |
||
| 1569 | 1569 | * @return string |
| 1570 | 1570 | **/ |
| 1571 | 1571 | function filtrer_ical($texte) { |
| 1572 | - #include_spip('inc/charsets'); |
|
| 1573 | - $texte = html2unicode($texte); |
|
| 1574 | - $texte = unicode2charset(charset2unicode($texte, $GLOBALS['meta']['charset']), 'utf-8'); |
|
| 1575 | - $texte = preg_replace("/\n/", ' ', $texte); |
|
| 1576 | - $texte = preg_replace('/,/', '\,', $texte); |
|
| 1572 | + #include_spip('inc/charsets'); |
|
| 1573 | + $texte = html2unicode($texte); |
|
| 1574 | + $texte = unicode2charset(charset2unicode($texte, $GLOBALS['meta']['charset']), 'utf-8'); |
|
| 1575 | + $texte = preg_replace("/\n/", ' ', $texte); |
|
| 1576 | + $texte = preg_replace('/,/', '\,', $texte); |
|
| 1577 | 1577 | |
| 1578 | - return $texte; |
|
| 1578 | + return $texte; |
|
| 1579 | 1579 | } |
| 1580 | 1580 | |
| 1581 | 1581 | |
@@ -1600,54 +1600,54 @@ discard block |
||
| 1600 | 1600 | * @return string |
| 1601 | 1601 | **/ |
| 1602 | 1602 | function post_autobr($texte, $delim = "\n_ ") { |
| 1603 | - if (!function_exists('echappe_html')) { |
|
| 1604 | - include_spip('inc/texte_mini'); |
|
| 1605 | - } |
|
| 1606 | - $texte = str_replace("\r\n", "\r", $texte); |
|
| 1607 | - $texte = str_replace("\r", "\n", $texte); |
|
| 1608 | - |
|
| 1609 | - if (preg_match(",\n+$,", $texte, $fin)) { |
|
| 1610 | - $texte = substr($texte, 0, -strlen($fin = $fin[0])); |
|
| 1611 | - } else { |
|
| 1612 | - $fin = ''; |
|
| 1613 | - } |
|
| 1614 | - |
|
| 1615 | - $texte = echappe_html($texte, '', true); |
|
| 1616 | - |
|
| 1617 | - // echapper les modeles |
|
| 1618 | - if (strpos($texte, '<') !== false) { |
|
| 1619 | - include_spip('inc/lien'); |
|
| 1620 | - if (defined('_PREG_MODELE')) { |
|
| 1621 | - $preg_modeles = '@' . _PREG_MODELE . '@imsS'; |
|
| 1622 | - $texte = echappe_html($texte, '', true, $preg_modeles); |
|
| 1623 | - } |
|
| 1624 | - } |
|
| 1625 | - |
|
| 1626 | - $debut = ''; |
|
| 1627 | - $suite = $texte; |
|
| 1628 | - while ($t = strpos('-' . $suite, "\n", 1)) { |
|
| 1629 | - $debut .= substr($suite, 0, $t - 1); |
|
| 1630 | - $suite = substr($suite, $t); |
|
| 1631 | - $car = substr($suite, 0, 1); |
|
| 1632 | - if ( |
|
| 1633 | - ($car <> '-') and ($car <> '_') and ($car <> "\n") and ($car <> '|') and ($car <> '}') |
|
| 1634 | - and !preg_match(',^\s*(\n|</?(quote|div|dl|dt|dd)|$),S', ($suite)) |
|
| 1635 | - and !preg_match(',</?(quote|div|dl|dt|dd)> *$,iS', $debut) |
|
| 1636 | - ) { |
|
| 1637 | - $debut .= $delim; |
|
| 1638 | - } else { |
|
| 1639 | - $debut .= "\n"; |
|
| 1640 | - } |
|
| 1641 | - if (preg_match(",^\n+,", $suite, $regs)) { |
|
| 1642 | - $debut .= $regs[0]; |
|
| 1643 | - $suite = substr($suite, strlen($regs[0])); |
|
| 1644 | - } |
|
| 1645 | - } |
|
| 1646 | - $texte = $debut . $suite; |
|
| 1647 | - |
|
| 1648 | - $texte = echappe_retour($texte); |
|
| 1649 | - |
|
| 1650 | - return $texte . $fin; |
|
| 1603 | + if (!function_exists('echappe_html')) { |
|
| 1604 | + include_spip('inc/texte_mini'); |
|
| 1605 | + } |
|
| 1606 | + $texte = str_replace("\r\n", "\r", $texte); |
|
| 1607 | + $texte = str_replace("\r", "\n", $texte); |
|
| 1608 | + |
|
| 1609 | + if (preg_match(",\n+$,", $texte, $fin)) { |
|
| 1610 | + $texte = substr($texte, 0, -strlen($fin = $fin[0])); |
|
| 1611 | + } else { |
|
| 1612 | + $fin = ''; |
|
| 1613 | + } |
|
| 1614 | + |
|
| 1615 | + $texte = echappe_html($texte, '', true); |
|
| 1616 | + |
|
| 1617 | + // echapper les modeles |
|
| 1618 | + if (strpos($texte, '<') !== false) { |
|
| 1619 | + include_spip('inc/lien'); |
|
| 1620 | + if (defined('_PREG_MODELE')) { |
|
| 1621 | + $preg_modeles = '@' . _PREG_MODELE . '@imsS'; |
|
| 1622 | + $texte = echappe_html($texte, '', true, $preg_modeles); |
|
| 1623 | + } |
|
| 1624 | + } |
|
| 1625 | + |
|
| 1626 | + $debut = ''; |
|
| 1627 | + $suite = $texte; |
|
| 1628 | + while ($t = strpos('-' . $suite, "\n", 1)) { |
|
| 1629 | + $debut .= substr($suite, 0, $t - 1); |
|
| 1630 | + $suite = substr($suite, $t); |
|
| 1631 | + $car = substr($suite, 0, 1); |
|
| 1632 | + if ( |
|
| 1633 | + ($car <> '-') and ($car <> '_') and ($car <> "\n") and ($car <> '|') and ($car <> '}') |
|
| 1634 | + and !preg_match(',^\s*(\n|</?(quote|div|dl|dt|dd)|$),S', ($suite)) |
|
| 1635 | + and !preg_match(',</?(quote|div|dl|dt|dd)> *$,iS', $debut) |
|
| 1636 | + ) { |
|
| 1637 | + $debut .= $delim; |
|
| 1638 | + } else { |
|
| 1639 | + $debut .= "\n"; |
|
| 1640 | + } |
|
| 1641 | + if (preg_match(",^\n+,", $suite, $regs)) { |
|
| 1642 | + $debut .= $regs[0]; |
|
| 1643 | + $suite = substr($suite, strlen($regs[0])); |
|
| 1644 | + } |
|
| 1645 | + } |
|
| 1646 | + $texte = $debut . $suite; |
|
| 1647 | + |
|
| 1648 | + $texte = echappe_retour($texte); |
|
| 1649 | + |
|
| 1650 | + return $texte . $fin; |
|
| 1651 | 1651 | } |
| 1652 | 1652 | |
| 1653 | 1653 | |
@@ -1688,47 +1688,47 @@ discard block |
||
| 1688 | 1688 | * @return string |
| 1689 | 1689 | **/ |
| 1690 | 1690 | function extraire_idiome($letexte, $lang = null, $options = []) { |
| 1691 | - static $traduire = false; |
|
| 1692 | - if ( |
|
| 1693 | - $letexte |
|
| 1694 | - and preg_match_all(_EXTRAIRE_IDIOME, $letexte, $regs, PREG_SET_ORDER) |
|
| 1695 | - ) { |
|
| 1696 | - if (!$traduire) { |
|
| 1697 | - $traduire = charger_fonction('traduire', 'inc'); |
|
| 1698 | - include_spip('inc/lang'); |
|
| 1699 | - } |
|
| 1700 | - if (!$lang) { |
|
| 1701 | - $lang = $GLOBALS['spip_lang']; |
|
| 1702 | - } |
|
| 1703 | - // Compatibilité avec le prototype de fonction précédente qui utilisait un boolean |
|
| 1704 | - if (is_bool($options)) { |
|
| 1705 | - $options = ['echappe_span' => $options]; |
|
| 1706 | - } |
|
| 1707 | - if (!isset($options['echappe_span'])) { |
|
| 1708 | - $options = array_merge($options, ['echappe_span' => false]); |
|
| 1709 | - } |
|
| 1710 | - |
|
| 1711 | - foreach ($regs as $reg) { |
|
| 1712 | - $cle = ($reg[1] ? $reg[1] . ':' : '') . $reg[2]; |
|
| 1713 | - $desc = $traduire($cle, $lang, true); |
|
| 1714 | - $l = $desc->langue; |
|
| 1715 | - // si pas de traduction, on laissera l'écriture de l'idiome entier dans le texte. |
|
| 1716 | - if (strlen($desc->texte ?? '')) { |
|
| 1717 | - $trad = code_echappement($desc->texte, 'idiome', false); |
|
| 1718 | - if ($l !== $lang) { |
|
| 1719 | - $trad = str_replace("'", '"', inserer_attribut($trad, 'lang', $l)); |
|
| 1720 | - } |
|
| 1721 | - if (lang_dir($l) !== lang_dir($lang)) { |
|
| 1722 | - $trad = str_replace("'", '"', inserer_attribut($trad, 'dir', lang_dir($l))); |
|
| 1723 | - } |
|
| 1724 | - if (!$options['echappe_span']) { |
|
| 1725 | - $trad = echappe_retour($trad, 'idiome'); |
|
| 1726 | - } |
|
| 1727 | - $letexte = str_replace($reg[0], $trad, $letexte); |
|
| 1728 | - } |
|
| 1729 | - } |
|
| 1730 | - } |
|
| 1731 | - return $letexte; |
|
| 1691 | + static $traduire = false; |
|
| 1692 | + if ( |
|
| 1693 | + $letexte |
|
| 1694 | + and preg_match_all(_EXTRAIRE_IDIOME, $letexte, $regs, PREG_SET_ORDER) |
|
| 1695 | + ) { |
|
| 1696 | + if (!$traduire) { |
|
| 1697 | + $traduire = charger_fonction('traduire', 'inc'); |
|
| 1698 | + include_spip('inc/lang'); |
|
| 1699 | + } |
|
| 1700 | + if (!$lang) { |
|
| 1701 | + $lang = $GLOBALS['spip_lang']; |
|
| 1702 | + } |
|
| 1703 | + // Compatibilité avec le prototype de fonction précédente qui utilisait un boolean |
|
| 1704 | + if (is_bool($options)) { |
|
| 1705 | + $options = ['echappe_span' => $options]; |
|
| 1706 | + } |
|
| 1707 | + if (!isset($options['echappe_span'])) { |
|
| 1708 | + $options = array_merge($options, ['echappe_span' => false]); |
|
| 1709 | + } |
|
| 1710 | + |
|
| 1711 | + foreach ($regs as $reg) { |
|
| 1712 | + $cle = ($reg[1] ? $reg[1] . ':' : '') . $reg[2]; |
|
| 1713 | + $desc = $traduire($cle, $lang, true); |
|
| 1714 | + $l = $desc->langue; |
|
| 1715 | + // si pas de traduction, on laissera l'écriture de l'idiome entier dans le texte. |
|
| 1716 | + if (strlen($desc->texte ?? '')) { |
|
| 1717 | + $trad = code_echappement($desc->texte, 'idiome', false); |
|
| 1718 | + if ($l !== $lang) { |
|
| 1719 | + $trad = str_replace("'", '"', inserer_attribut($trad, 'lang', $l)); |
|
| 1720 | + } |
|
| 1721 | + if (lang_dir($l) !== lang_dir($lang)) { |
|
| 1722 | + $trad = str_replace("'", '"', inserer_attribut($trad, 'dir', lang_dir($l))); |
|
| 1723 | + } |
|
| 1724 | + if (!$options['echappe_span']) { |
|
| 1725 | + $trad = echappe_retour($trad, 'idiome'); |
|
| 1726 | + } |
|
| 1727 | + $letexte = str_replace($reg[0], $trad, $letexte); |
|
| 1728 | + } |
|
| 1729 | + } |
|
| 1730 | + } |
|
| 1731 | + return $letexte; |
|
| 1732 | 1732 | } |
| 1733 | 1733 | |
| 1734 | 1734 | /** |
@@ -1780,68 +1780,68 @@ discard block |
||
| 1780 | 1780 | **/ |
| 1781 | 1781 | function extraire_multi($letexte, $lang = null, $options = []) { |
| 1782 | 1782 | |
| 1783 | - if ( |
|
| 1784 | - $letexte |
|
| 1785 | - and preg_match_all(_EXTRAIRE_MULTI, $letexte, $regs, PREG_SET_ORDER) |
|
| 1786 | - ) { |
|
| 1787 | - if (!$lang) { |
|
| 1788 | - $lang = $GLOBALS['spip_lang']; |
|
| 1789 | - } |
|
| 1790 | - |
|
| 1791 | - // Compatibilité avec le prototype de fonction précédente qui utilisait un boolean |
|
| 1792 | - if (is_bool($options)) { |
|
| 1793 | - $options = ['echappe_span' => $options, 'lang_defaut' => _LANGUE_PAR_DEFAUT]; |
|
| 1794 | - } |
|
| 1795 | - if (!isset($options['echappe_span'])) { |
|
| 1796 | - $options = array_merge($options, ['echappe_span' => false]); |
|
| 1797 | - } |
|
| 1798 | - if (!isset($options['lang_defaut'])) { |
|
| 1799 | - $options = array_merge($options, ['lang_defaut' => _LANGUE_PAR_DEFAUT]); |
|
| 1800 | - } |
|
| 1801 | - |
|
| 1802 | - include_spip('inc/lang'); |
|
| 1803 | - foreach ($regs as $reg) { |
|
| 1804 | - // chercher la version de la langue courante |
|
| 1805 | - $trads = extraire_trads($reg[1]); |
|
| 1806 | - if ($l = approcher_langue($trads, $lang)) { |
|
| 1807 | - $trad = $trads[$l]; |
|
| 1808 | - } else { |
|
| 1809 | - if ($options['lang_defaut'] == 'aucune') { |
|
| 1810 | - $trad = ''; |
|
| 1811 | - } else { |
|
| 1812 | - // langue absente, prendre le fr ou une langue précisée (meme comportement que inc/traduire.php) |
|
| 1813 | - // ou la premiere dispo |
|
| 1814 | - // mais typographier le texte selon les regles de celle-ci |
|
| 1815 | - // Attention aux blocs multi sur plusieurs lignes |
|
| 1816 | - if (!$l = approcher_langue($trads, $options['lang_defaut'])) { |
|
| 1817 | - $l = key($trads); |
|
| 1818 | - } |
|
| 1819 | - $trad = $trads[$l]; |
|
| 1820 | - $typographie = charger_fonction(lang_typo($l), 'typographie'); |
|
| 1821 | - $trad = $typographie($trad); |
|
| 1822 | - // Tester si on echappe en span ou en div |
|
| 1823 | - // il ne faut pas echapper en div si propre produit un seul paragraphe |
|
| 1824 | - include_spip('inc/texte'); |
|
| 1825 | - $trad_propre = preg_replace(',(^<p[^>]*>|</p>$),Uims', '', propre($trad)); |
|
| 1826 | - $mode = preg_match(',</?(' . _BALISES_BLOCS . ')[>[:space:]],iS', $trad_propre) ? 'div' : 'span'; |
|
| 1827 | - if ($mode === 'div') { |
|
| 1828 | - $trad = rtrim($trad) . "\n\n"; |
|
| 1829 | - } |
|
| 1830 | - $trad = code_echappement($trad, 'multi', false, $mode); |
|
| 1831 | - $trad = str_replace("'", '"', inserer_attribut($trad, 'lang', $l)); |
|
| 1832 | - if (lang_dir($l) !== lang_dir($lang)) { |
|
| 1833 | - $trad = str_replace("'", '"', inserer_attribut($trad, 'dir', lang_dir($l))); |
|
| 1834 | - } |
|
| 1835 | - if (!$options['echappe_span']) { |
|
| 1836 | - $trad = echappe_retour($trad, 'multi'); |
|
| 1837 | - } |
|
| 1838 | - } |
|
| 1839 | - } |
|
| 1840 | - $letexte = str_replace($reg[0], $trad, $letexte); |
|
| 1841 | - } |
|
| 1842 | - } |
|
| 1843 | - |
|
| 1844 | - return $letexte; |
|
| 1783 | + if ( |
|
| 1784 | + $letexte |
|
| 1785 | + and preg_match_all(_EXTRAIRE_MULTI, $letexte, $regs, PREG_SET_ORDER) |
|
| 1786 | + ) { |
|
| 1787 | + if (!$lang) { |
|
| 1788 | + $lang = $GLOBALS['spip_lang']; |
|
| 1789 | + } |
|
| 1790 | + |
|
| 1791 | + // Compatibilité avec le prototype de fonction précédente qui utilisait un boolean |
|
| 1792 | + if (is_bool($options)) { |
|
| 1793 | + $options = ['echappe_span' => $options, 'lang_defaut' => _LANGUE_PAR_DEFAUT]; |
|
| 1794 | + } |
|
| 1795 | + if (!isset($options['echappe_span'])) { |
|
| 1796 | + $options = array_merge($options, ['echappe_span' => false]); |
|
| 1797 | + } |
|
| 1798 | + if (!isset($options['lang_defaut'])) { |
|
| 1799 | + $options = array_merge($options, ['lang_defaut' => _LANGUE_PAR_DEFAUT]); |
|
| 1800 | + } |
|
| 1801 | + |
|
| 1802 | + include_spip('inc/lang'); |
|
| 1803 | + foreach ($regs as $reg) { |
|
| 1804 | + // chercher la version de la langue courante |
|
| 1805 | + $trads = extraire_trads($reg[1]); |
|
| 1806 | + if ($l = approcher_langue($trads, $lang)) { |
|
| 1807 | + $trad = $trads[$l]; |
|
| 1808 | + } else { |
|
| 1809 | + if ($options['lang_defaut'] == 'aucune') { |
|
| 1810 | + $trad = ''; |
|
| 1811 | + } else { |
|
| 1812 | + // langue absente, prendre le fr ou une langue précisée (meme comportement que inc/traduire.php) |
|
| 1813 | + // ou la premiere dispo |
|
| 1814 | + // mais typographier le texte selon les regles de celle-ci |
|
| 1815 | + // Attention aux blocs multi sur plusieurs lignes |
|
| 1816 | + if (!$l = approcher_langue($trads, $options['lang_defaut'])) { |
|
| 1817 | + $l = key($trads); |
|
| 1818 | + } |
|
| 1819 | + $trad = $trads[$l]; |
|
| 1820 | + $typographie = charger_fonction(lang_typo($l), 'typographie'); |
|
| 1821 | + $trad = $typographie($trad); |
|
| 1822 | + // Tester si on echappe en span ou en div |
|
| 1823 | + // il ne faut pas echapper en div si propre produit un seul paragraphe |
|
| 1824 | + include_spip('inc/texte'); |
|
| 1825 | + $trad_propre = preg_replace(',(^<p[^>]*>|</p>$),Uims', '', propre($trad)); |
|
| 1826 | + $mode = preg_match(',</?(' . _BALISES_BLOCS . ')[>[:space:]],iS', $trad_propre) ? 'div' : 'span'; |
|
| 1827 | + if ($mode === 'div') { |
|
| 1828 | + $trad = rtrim($trad) . "\n\n"; |
|
| 1829 | + } |
|
| 1830 | + $trad = code_echappement($trad, 'multi', false, $mode); |
|
| 1831 | + $trad = str_replace("'", '"', inserer_attribut($trad, 'lang', $l)); |
|
| 1832 | + if (lang_dir($l) !== lang_dir($lang)) { |
|
| 1833 | + $trad = str_replace("'", '"', inserer_attribut($trad, 'dir', lang_dir($l))); |
|
| 1834 | + } |
|
| 1835 | + if (!$options['echappe_span']) { |
|
| 1836 | + $trad = echappe_retour($trad, 'multi'); |
|
| 1837 | + } |
|
| 1838 | + } |
|
| 1839 | + } |
|
| 1840 | + $letexte = str_replace($reg[0], $trad, $letexte); |
|
| 1841 | + } |
|
| 1842 | + } |
|
| 1843 | + |
|
| 1844 | + return $letexte; |
|
| 1845 | 1845 | } |
| 1846 | 1846 | |
| 1847 | 1847 | /** |
@@ -1857,21 +1857,21 @@ discard block |
||
| 1857 | 1857 | * Peut retourner un code de langue vide, lorsqu'un texte par défaut est indiqué. |
| 1858 | 1858 | **/ |
| 1859 | 1859 | function extraire_trads($bloc) { |
| 1860 | - $trads = []; |
|
| 1861 | - $lang = ''; |
|
| 1860 | + $trads = []; |
|
| 1861 | + $lang = ''; |
|
| 1862 | 1862 | // ce reg fait planter l'analyse multi s'il y a de l'{italique} dans le champ |
| 1863 | 1863 | // while (preg_match("/^(.*?)[{\[]([a-z_]+)[}\]]/siS", $bloc, $regs)) { |
| 1864 | - while (preg_match('/^(.*?)[\[]([a-z_]+)[\]]/siS', $bloc, $regs)) { |
|
| 1865 | - $texte = trim($regs[1]); |
|
| 1866 | - if ($texte or $lang) { |
|
| 1867 | - $trads[$lang] = $texte; |
|
| 1868 | - } |
|
| 1869 | - $bloc = substr($bloc, strlen($regs[0])); |
|
| 1870 | - $lang = $regs[2]; |
|
| 1871 | - } |
|
| 1872 | - $trads[$lang] = $bloc; |
|
| 1864 | + while (preg_match('/^(.*?)[\[]([a-z_]+)[\]]/siS', $bloc, $regs)) { |
|
| 1865 | + $texte = trim($regs[1]); |
|
| 1866 | + if ($texte or $lang) { |
|
| 1867 | + $trads[$lang] = $texte; |
|
| 1868 | + } |
|
| 1869 | + $bloc = substr($bloc, strlen($regs[0])); |
|
| 1870 | + $lang = $regs[2]; |
|
| 1871 | + } |
|
| 1872 | + $trads[$lang] = $bloc; |
|
| 1873 | 1873 | |
| 1874 | - return $trads; |
|
| 1874 | + return $trads; |
|
| 1875 | 1875 | } |
| 1876 | 1876 | |
| 1877 | 1877 | |
@@ -1882,7 +1882,7 @@ discard block |
||
| 1882 | 1882 | * @return string L'initiale en majuscule |
| 1883 | 1883 | */ |
| 1884 | 1884 | function filtre_initiale($nom) { |
| 1885 | - return spip_substr(trim(strtoupper(extraire_multi($nom))), 0, 1); |
|
| 1885 | + return spip_substr(trim(strtoupper(extraire_multi($nom))), 0, 1); |
|
| 1886 | 1886 | } |
| 1887 | 1887 | |
| 1888 | 1888 | |
@@ -1927,33 +1927,33 @@ discard block |
||
| 1927 | 1927 | * - null (interne) : si on empile |
| 1928 | 1928 | **/ |
| 1929 | 1929 | function unique($donnee, $famille = '', $cpt = false) { |
| 1930 | - static $mem = []; |
|
| 1931 | - // permettre de vider la pile et de la restaurer |
|
| 1932 | - // pour le calcul de introduction... |
|
| 1933 | - if ($famille == '_spip_raz_') { |
|
| 1934 | - $tmp = $mem; |
|
| 1935 | - $mem = []; |
|
| 1936 | - |
|
| 1937 | - return $tmp; |
|
| 1938 | - } elseif ($famille == '_spip_set_') { |
|
| 1939 | - $mem = $donnee; |
|
| 1940 | - |
|
| 1941 | - return; |
|
| 1942 | - } |
|
| 1943 | - // eviter une notice |
|
| 1944 | - if (!isset($mem[$famille])) { |
|
| 1945 | - $mem[$famille] = []; |
|
| 1946 | - } |
|
| 1947 | - if ($cpt) { |
|
| 1948 | - return is_countable($mem[$famille]) ? count($mem[$famille]) : 0; |
|
| 1949 | - } |
|
| 1950 | - // eviter une notice |
|
| 1951 | - if (!isset($mem[$famille][$donnee])) { |
|
| 1952 | - $mem[$famille][$donnee] = 0; |
|
| 1953 | - } |
|
| 1954 | - if (!($mem[$famille][$donnee]++)) { |
|
| 1955 | - return $donnee; |
|
| 1956 | - } |
|
| 1930 | + static $mem = []; |
|
| 1931 | + // permettre de vider la pile et de la restaurer |
|
| 1932 | + // pour le calcul de introduction... |
|
| 1933 | + if ($famille == '_spip_raz_') { |
|
| 1934 | + $tmp = $mem; |
|
| 1935 | + $mem = []; |
|
| 1936 | + |
|
| 1937 | + return $tmp; |
|
| 1938 | + } elseif ($famille == '_spip_set_') { |
|
| 1939 | + $mem = $donnee; |
|
| 1940 | + |
|
| 1941 | + return; |
|
| 1942 | + } |
|
| 1943 | + // eviter une notice |
|
| 1944 | + if (!isset($mem[$famille])) { |
|
| 1945 | + $mem[$famille] = []; |
|
| 1946 | + } |
|
| 1947 | + if ($cpt) { |
|
| 1948 | + return is_countable($mem[$famille]) ? count($mem[$famille]) : 0; |
|
| 1949 | + } |
|
| 1950 | + // eviter une notice |
|
| 1951 | + if (!isset($mem[$famille][$donnee])) { |
|
| 1952 | + $mem[$famille][$donnee] = 0; |
|
| 1953 | + } |
|
| 1954 | + if (!($mem[$famille][$donnee]++)) { |
|
| 1955 | + return $donnee; |
|
| 1956 | + } |
|
| 1957 | 1957 | } |
| 1958 | 1958 | |
| 1959 | 1959 | |
@@ -1983,20 +1983,20 @@ discard block |
||
| 1983 | 1983 | * Une des valeurs en fonction du compteur. |
| 1984 | 1984 | **/ |
| 1985 | 1985 | function alterner($i, ...$args) { |
| 1986 | - // recuperer les arguments (attention fonctions un peu space) |
|
| 1987 | - $num = count($args); |
|
| 1986 | + // recuperer les arguments (attention fonctions un peu space) |
|
| 1987 | + $num = count($args); |
|
| 1988 | 1988 | |
| 1989 | - if ($num === 1 && is_array($args[0])) { |
|
| 1990 | - // un tableau de valeur dont les cles sont numerotees de 0 a num |
|
| 1991 | - $args = array_values($args[0]); |
|
| 1992 | - $num = count($args); |
|
| 1993 | - } |
|
| 1989 | + if ($num === 1 && is_array($args[0])) { |
|
| 1990 | + // un tableau de valeur dont les cles sont numerotees de 0 a num |
|
| 1991 | + $args = array_values($args[0]); |
|
| 1992 | + $num = count($args); |
|
| 1993 | + } |
|
| 1994 | 1994 | |
| 1995 | - // un index compris entre 0 et num exclus |
|
| 1996 | - $i = ((intval($i) - 1) % $num); // dans ]-$num;$num[ |
|
| 1997 | - $i = ($i + $num) % $num; // dans [0;$num[ |
|
| 1998 | - // renvoyer le i-ieme argument, modulo le nombre d'arguments |
|
| 1999 | - return $args[$i]; |
|
| 1995 | + // un index compris entre 0 et num exclus |
|
| 1996 | + $i = ((intval($i) - 1) % $num); // dans ]-$num;$num[ |
|
| 1997 | + $i = ($i + $num) % $num; // dans [0;$num[ |
|
| 1998 | + // renvoyer le i-ieme argument, modulo le nombre d'arguments |
|
| 1999 | + return $args[$i]; |
|
| 2000 | 2000 | } |
| 2001 | 2001 | |
| 2002 | 2002 | |
@@ -2022,51 +2022,51 @@ discard block |
||
| 2022 | 2022 | * - null lorsque l’attribut n’existe pas. |
| 2023 | 2023 | **/ |
| 2024 | 2024 | function extraire_attribut($balise, $attribut, $complet = false) { |
| 2025 | - if (is_array($balise)) { |
|
| 2026 | - array_walk( |
|
| 2027 | - $balise, |
|
| 2028 | - function (&$a, $key, $t) { |
|
| 2029 | - $a = extraire_attribut($a, $t); |
|
| 2030 | - }, |
|
| 2031 | - $attribut |
|
| 2032 | - ); |
|
| 2033 | - |
|
| 2034 | - return $balise; |
|
| 2035 | - } |
|
| 2036 | - if ( |
|
| 2037 | - $balise |
|
| 2038 | - && preg_match( |
|
| 2039 | - ',(^.*?<(?:(?>\s*)(?>[\w:.-]+)(?>(?:=(?:"[^"]*"|\'[^\']*\'|[^\'"]\S*))?))*?)(\s+' |
|
| 2040 | - . $attribut |
|
| 2041 | - . '(?:=\s*("[^"]*"|\'[^\']*\'|[^\'"]\S*))?)()((?:[\s/][^>]*)?>.*),isS', |
|
| 2042 | - $balise, |
|
| 2043 | - $r |
|
| 2044 | - ) |
|
| 2045 | - ) { |
|
| 2046 | - if (isset($r[3][0]) and ($r[3][0] == '"' || $r[3][0] == "'")) { |
|
| 2047 | - $r[4] = substr($r[3], 1, -1); |
|
| 2048 | - $r[3] = $r[3][0]; |
|
| 2049 | - } elseif ($r[3] !== '') { |
|
| 2050 | - $r[4] = $r[3]; |
|
| 2051 | - $r[3] = ''; |
|
| 2052 | - } else { |
|
| 2053 | - $r[4] = trim($r[2]); |
|
| 2054 | - } |
|
| 2055 | - $att = $r[4]; |
|
| 2056 | - if (strpos($att, '&#') !== false) { |
|
| 2057 | - $att = str_replace([''', ''', '"', '"'], ["'", "'", '"', '"'], $att); |
|
| 2058 | - } |
|
| 2059 | - $att = filtrer_entites($att); |
|
| 2060 | - } else { |
|
| 2061 | - $att = null; |
|
| 2062 | - $r = []; |
|
| 2063 | - } |
|
| 2064 | - |
|
| 2065 | - if ($complet) { |
|
| 2066 | - return [$att, $r]; |
|
| 2067 | - } else { |
|
| 2068 | - return $att; |
|
| 2069 | - } |
|
| 2025 | + if (is_array($balise)) { |
|
| 2026 | + array_walk( |
|
| 2027 | + $balise, |
|
| 2028 | + function (&$a, $key, $t) { |
|
| 2029 | + $a = extraire_attribut($a, $t); |
|
| 2030 | + }, |
|
| 2031 | + $attribut |
|
| 2032 | + ); |
|
| 2033 | + |
|
| 2034 | + return $balise; |
|
| 2035 | + } |
|
| 2036 | + if ( |
|
| 2037 | + $balise |
|
| 2038 | + && preg_match( |
|
| 2039 | + ',(^.*?<(?:(?>\s*)(?>[\w:.-]+)(?>(?:=(?:"[^"]*"|\'[^\']*\'|[^\'"]\S*))?))*?)(\s+' |
|
| 2040 | + . $attribut |
|
| 2041 | + . '(?:=\s*("[^"]*"|\'[^\']*\'|[^\'"]\S*))?)()((?:[\s/][^>]*)?>.*),isS', |
|
| 2042 | + $balise, |
|
| 2043 | + $r |
|
| 2044 | + ) |
|
| 2045 | + ) { |
|
| 2046 | + if (isset($r[3][0]) and ($r[3][0] == '"' || $r[3][0] == "'")) { |
|
| 2047 | + $r[4] = substr($r[3], 1, -1); |
|
| 2048 | + $r[3] = $r[3][0]; |
|
| 2049 | + } elseif ($r[3] !== '') { |
|
| 2050 | + $r[4] = $r[3]; |
|
| 2051 | + $r[3] = ''; |
|
| 2052 | + } else { |
|
| 2053 | + $r[4] = trim($r[2]); |
|
| 2054 | + } |
|
| 2055 | + $att = $r[4]; |
|
| 2056 | + if (strpos($att, '&#') !== false) { |
|
| 2057 | + $att = str_replace([''', ''', '"', '"'], ["'", "'", '"', '"'], $att); |
|
| 2058 | + } |
|
| 2059 | + $att = filtrer_entites($att); |
|
| 2060 | + } else { |
|
| 2061 | + $att = null; |
|
| 2062 | + $r = []; |
|
| 2063 | + } |
|
| 2064 | + |
|
| 2065 | + if ($complet) { |
|
| 2066 | + return [$att, $r]; |
|
| 2067 | + } else { |
|
| 2068 | + return $att; |
|
| 2069 | + } |
|
| 2070 | 2070 | } |
| 2071 | 2071 | |
| 2072 | 2072 | /** |
@@ -2099,41 +2099,41 @@ discard block |
||
| 2099 | 2099 | **/ |
| 2100 | 2100 | function inserer_attribut(?string $balise, string $attribut, string $val, bool $proteger = true, bool $vider = false): string { |
| 2101 | 2101 | |
| 2102 | - if ($balise === null or $balise === '') { |
|
| 2103 | - return ''; |
|
| 2104 | - } |
|
| 2102 | + if ($balise === null or $balise === '') { |
|
| 2103 | + return ''; |
|
| 2104 | + } |
|
| 2105 | 2105 | |
| 2106 | - // preparer l'attribut |
|
| 2107 | - // supprimer les etc mais pas les balises html |
|
| 2108 | - // qui ont un sens dans un attribut value d'un input |
|
| 2109 | - if ($proteger) { |
|
| 2110 | - $val = attribut_html($val, false); |
|
| 2111 | - } |
|
| 2106 | + // preparer l'attribut |
|
| 2107 | + // supprimer les etc mais pas les balises html |
|
| 2108 | + // qui ont un sens dans un attribut value d'un input |
|
| 2109 | + if ($proteger) { |
|
| 2110 | + $val = attribut_html($val, false); |
|
| 2111 | + } |
|
| 2112 | 2112 | |
| 2113 | - // echapper les ' pour eviter tout bug |
|
| 2114 | - $val = str_replace("'", ''', $val); |
|
| 2115 | - if ($vider and strlen($val) === 0) { |
|
| 2116 | - $insert = ''; |
|
| 2117 | - } else { |
|
| 2118 | - $insert = " $attribut='$val'"; |
|
| 2119 | - } |
|
| 2113 | + // echapper les ' pour eviter tout bug |
|
| 2114 | + $val = str_replace("'", ''', $val); |
|
| 2115 | + if ($vider and strlen($val) === 0) { |
|
| 2116 | + $insert = ''; |
|
| 2117 | + } else { |
|
| 2118 | + $insert = " $attribut='$val'"; |
|
| 2119 | + } |
|
| 2120 | 2120 | |
| 2121 | - [$old, $r] = extraire_attribut($balise, $attribut, true); |
|
| 2121 | + [$old, $r] = extraire_attribut($balise, $attribut, true); |
|
| 2122 | 2122 | |
| 2123 | - if ($old !== null) { |
|
| 2124 | - // Remplacer l'ancien attribut du meme nom |
|
| 2125 | - $balise = $r[1] . $insert . $r[5]; |
|
| 2126 | - } else { |
|
| 2127 | - // preferer une balise " />" (comme <img />) |
|
| 2128 | - if (preg_match(',/>,', $balise)) { |
|
| 2129 | - $balise = preg_replace(',\s?/>,S', $insert . ' />', $balise, 1); |
|
| 2130 | - } // sinon une balise <a ...> ... </a> |
|
| 2131 | - else { |
|
| 2132 | - $balise = preg_replace(',\s?>,S', $insert . '>', $balise, 1); |
|
| 2133 | - } |
|
| 2134 | - } |
|
| 2123 | + if ($old !== null) { |
|
| 2124 | + // Remplacer l'ancien attribut du meme nom |
|
| 2125 | + $balise = $r[1] . $insert . $r[5]; |
|
| 2126 | + } else { |
|
| 2127 | + // preferer une balise " />" (comme <img />) |
|
| 2128 | + if (preg_match(',/>,', $balise)) { |
|
| 2129 | + $balise = preg_replace(',\s?/>,S', $insert . ' />', $balise, 1); |
|
| 2130 | + } // sinon une balise <a ...> ... </a> |
|
| 2131 | + else { |
|
| 2132 | + $balise = preg_replace(',\s?>,S', $insert . '>', $balise, 1); |
|
| 2133 | + } |
|
| 2134 | + } |
|
| 2135 | 2135 | |
| 2136 | - return $balise; |
|
| 2136 | + return $balise; |
|
| 2137 | 2137 | } |
| 2138 | 2138 | |
| 2139 | 2139 | /** |
@@ -2151,7 +2151,7 @@ discard block |
||
| 2151 | 2151 | * @return string Code HTML sans l'attribut |
| 2152 | 2152 | **/ |
| 2153 | 2153 | function vider_attribut(?string $balise, string $attribut): string { |
| 2154 | - return inserer_attribut($balise, $attribut, '', false, true); |
|
| 2154 | + return inserer_attribut($balise, $attribut, '', false, true); |
|
| 2155 | 2155 | } |
| 2156 | 2156 | |
| 2157 | 2157 | /** |
@@ -2163,53 +2163,53 @@ discard block |
||
| 2163 | 2163 | * @return string |
| 2164 | 2164 | */ |
| 2165 | 2165 | function modifier_class($balise, $class, $operation = 'ajouter') { |
| 2166 | - if (is_string($class)) { |
|
| 2167 | - $class = explode(' ', trim($class)); |
|
| 2168 | - } |
|
| 2169 | - $class = array_filter($class); |
|
| 2170 | - $class = array_unique($class); |
|
| 2171 | - if (!$class) { |
|
| 2172 | - return $balise; |
|
| 2173 | - } |
|
| 2174 | - |
|
| 2175 | - // si la ou les classes ont des caracteres invalides on ne fait rien |
|
| 2176 | - if (preg_match(',[^\w-],', implode('', $class))) { |
|
| 2177 | - return $balise; |
|
| 2178 | - } |
|
| 2179 | - |
|
| 2180 | - $class_courante = extraire_attribut($balise, 'class'); |
|
| 2181 | - $class_new = $class_courante; |
|
| 2182 | - foreach ($class as $c) { |
|
| 2183 | - $is_class_presente = false; |
|
| 2184 | - if ( |
|
| 2185 | - $class_courante |
|
| 2186 | - and strpos($class_courante, (string) $c) !== false |
|
| 2187 | - and preg_match('/(^|\s)' . preg_quote($c) . '($|\s)/', $class_courante) |
|
| 2188 | - ) { |
|
| 2189 | - $is_class_presente = true; |
|
| 2190 | - } |
|
| 2191 | - if ( |
|
| 2192 | - in_array($operation, ['ajouter', 'commuter']) |
|
| 2193 | - and !$is_class_presente |
|
| 2194 | - ) { |
|
| 2195 | - $class_new = ltrim(rtrim($class_new ?? '') . ' ' . $c); |
|
| 2196 | - } elseif ( |
|
| 2197 | - in_array($operation, ['supprimer', 'commuter']) |
|
| 2198 | - and $is_class_presente |
|
| 2199 | - ) { |
|
| 2200 | - $class_new = trim(preg_replace('/(^|\s)' . preg_quote($c) . '($|\s)/', "\\1", $class_new)); |
|
| 2201 | - } |
|
| 2202 | - } |
|
| 2203 | - |
|
| 2204 | - if ($class_new !== $class_courante) { |
|
| 2205 | - if (strlen($class_new)) { |
|
| 2206 | - $balise = inserer_attribut($balise, 'class', $class_new); |
|
| 2207 | - } elseif ($class_courante) { |
|
| 2208 | - $balise = vider_attribut($balise, 'class'); |
|
| 2209 | - } |
|
| 2210 | - } |
|
| 2211 | - |
|
| 2212 | - return $balise; |
|
| 2166 | + if (is_string($class)) { |
|
| 2167 | + $class = explode(' ', trim($class)); |
|
| 2168 | + } |
|
| 2169 | + $class = array_filter($class); |
|
| 2170 | + $class = array_unique($class); |
|
| 2171 | + if (!$class) { |
|
| 2172 | + return $balise; |
|
| 2173 | + } |
|
| 2174 | + |
|
| 2175 | + // si la ou les classes ont des caracteres invalides on ne fait rien |
|
| 2176 | + if (preg_match(',[^\w-],', implode('', $class))) { |
|
| 2177 | + return $balise; |
|
| 2178 | + } |
|
| 2179 | + |
|
| 2180 | + $class_courante = extraire_attribut($balise, 'class'); |
|
| 2181 | + $class_new = $class_courante; |
|
| 2182 | + foreach ($class as $c) { |
|
| 2183 | + $is_class_presente = false; |
|
| 2184 | + if ( |
|
| 2185 | + $class_courante |
|
| 2186 | + and strpos($class_courante, (string) $c) !== false |
|
| 2187 | + and preg_match('/(^|\s)' . preg_quote($c) . '($|\s)/', $class_courante) |
|
| 2188 | + ) { |
|
| 2189 | + $is_class_presente = true; |
|
| 2190 | + } |
|
| 2191 | + if ( |
|
| 2192 | + in_array($operation, ['ajouter', 'commuter']) |
|
| 2193 | + and !$is_class_presente |
|
| 2194 | + ) { |
|
| 2195 | + $class_new = ltrim(rtrim($class_new ?? '') . ' ' . $c); |
|
| 2196 | + } elseif ( |
|
| 2197 | + in_array($operation, ['supprimer', 'commuter']) |
|
| 2198 | + and $is_class_presente |
|
| 2199 | + ) { |
|
| 2200 | + $class_new = trim(preg_replace('/(^|\s)' . preg_quote($c) . '($|\s)/', "\\1", $class_new)); |
|
| 2201 | + } |
|
| 2202 | + } |
|
| 2203 | + |
|
| 2204 | + if ($class_new !== $class_courante) { |
|
| 2205 | + if (strlen($class_new)) { |
|
| 2206 | + $balise = inserer_attribut($balise, 'class', $class_new); |
|
| 2207 | + } elseif ($class_courante) { |
|
| 2208 | + $balise = vider_attribut($balise, 'class'); |
|
| 2209 | + } |
|
| 2210 | + } |
|
| 2211 | + |
|
| 2212 | + return $balise; |
|
| 2213 | 2213 | } |
| 2214 | 2214 | |
| 2215 | 2215 | /** |
@@ -2219,7 +2219,7 @@ discard block |
||
| 2219 | 2219 | * @return string |
| 2220 | 2220 | */ |
| 2221 | 2221 | function ajouter_class($balise, $class) { |
| 2222 | - return modifier_class($balise, $class, 'ajouter'); |
|
| 2222 | + return modifier_class($balise, $class, 'ajouter'); |
|
| 2223 | 2223 | } |
| 2224 | 2224 | |
| 2225 | 2225 | /** |
@@ -2229,7 +2229,7 @@ discard block |
||
| 2229 | 2229 | * @return string |
| 2230 | 2230 | */ |
| 2231 | 2231 | function supprimer_class($balise, $class) { |
| 2232 | - return modifier_class($balise, $class, 'supprimer'); |
|
| 2232 | + return modifier_class($balise, $class, 'supprimer'); |
|
| 2233 | 2233 | } |
| 2234 | 2234 | |
| 2235 | 2235 | /** |
@@ -2240,7 +2240,7 @@ discard block |
||
| 2240 | 2240 | * @return string |
| 2241 | 2241 | */ |
| 2242 | 2242 | function commuter_class($balise, $class) { |
| 2243 | - return modifier_class($balise, $class, 'commuter'); |
|
| 2243 | + return modifier_class($balise, $class, 'commuter'); |
|
| 2244 | 2244 | } |
| 2245 | 2245 | |
| 2246 | 2246 | /** |
@@ -2251,19 +2251,19 @@ discard block |
||
| 2251 | 2251 | * @return string |
| 2252 | 2252 | */ |
| 2253 | 2253 | function tester_config($id, $mode = '') { |
| 2254 | - include_spip('action/inscrire_auteur'); |
|
| 2254 | + include_spip('action/inscrire_auteur'); |
|
| 2255 | 2255 | |
| 2256 | - return tester_statut_inscription($mode, $id); |
|
| 2256 | + return tester_statut_inscription($mode, $id); |
|
| 2257 | 2257 | } |
| 2258 | 2258 | |
| 2259 | 2259 | // |
| 2260 | 2260 | // Quelques fonctions de calcul arithmetique |
| 2261 | 2261 | // |
| 2262 | 2262 | function floatstr($a) { |
| 2263 | - return str_replace(',', '.', (string)floatval($a)); |
|
| 2263 | + return str_replace(',', '.', (string)floatval($a)); |
|
| 2264 | 2264 | } |
| 2265 | 2265 | function strize($f, $a, $b) { |
| 2266 | - return floatstr($f(floatstr($a), floatstr($b))); |
|
| 2266 | + return floatstr($f(floatstr($a), floatstr($b))); |
|
| 2267 | 2267 | } |
| 2268 | 2268 | |
| 2269 | 2269 | /** |
@@ -2282,7 +2282,7 @@ discard block |
||
| 2282 | 2282 | * @return int $a+$b |
| 2283 | 2283 | **/ |
| 2284 | 2284 | function plus($a, $b) { |
| 2285 | - return $a + $b; |
|
| 2285 | + return $a + $b; |
|
| 2286 | 2286 | } |
| 2287 | 2287 | function strplus($a, $b) { |
| 2288 | 2288 | return strize('plus', $a, $b); |
@@ -2303,7 +2303,7 @@ discard block |
||
| 2303 | 2303 | * @return int $a-$b |
| 2304 | 2304 | **/ |
| 2305 | 2305 | function moins($a, $b) { |
| 2306 | - return $a - $b; |
|
| 2306 | + return $a - $b; |
|
| 2307 | 2307 | } |
| 2308 | 2308 | function strmoins($a, $b) { |
| 2309 | 2309 | return strize('moins', $a, $b); |
@@ -2326,7 +2326,7 @@ discard block |
||
| 2326 | 2326 | * @return int $a*$b |
| 2327 | 2327 | **/ |
| 2328 | 2328 | function mult($a, $b) { |
| 2329 | - return $a * $b; |
|
| 2329 | + return $a * $b; |
|
| 2330 | 2330 | } |
| 2331 | 2331 | function strmult($a, $b) { |
| 2332 | 2332 | return strize('mult', $a, $b); |
@@ -2349,7 +2349,7 @@ discard block |
||
| 2349 | 2349 | * @return int $a/$b (ou 0 si $b est nul) |
| 2350 | 2350 | **/ |
| 2351 | 2351 | function div($a, $b) { |
| 2352 | - return $b ? $a / $b : 0; |
|
| 2352 | + return $b ? $a / $b : 0; |
|
| 2353 | 2353 | } |
| 2354 | 2354 | function strdiv($a, $b) { |
| 2355 | 2355 | return strize('div', $a, $b); |
@@ -2373,7 +2373,7 @@ discard block |
||
| 2373 | 2373 | * @return int ($nb % $mod) + $add |
| 2374 | 2374 | **/ |
| 2375 | 2375 | function modulo($nb, $mod, $add = 0) { |
| 2376 | - return ($mod ? $nb % $mod : 0) + $add; |
|
| 2376 | + return ($mod ? $nb % $mod : 0) + $add; |
|
| 2377 | 2377 | } |
| 2378 | 2378 | |
| 2379 | 2379 | |
@@ -2388,26 +2388,26 @@ discard block |
||
| 2388 | 2388 | * - true sinon |
| 2389 | 2389 | **/ |
| 2390 | 2390 | function nom_acceptable($nom) { |
| 2391 | - $remp2 = []; |
|
| 2392 | - $remp1 = []; |
|
| 2393 | - if (!is_string($nom)) { |
|
| 2394 | - return false; |
|
| 2395 | - } |
|
| 2396 | - if (!defined('_TAGS_NOM_AUTEUR')) { |
|
| 2397 | - define('_TAGS_NOM_AUTEUR', ''); |
|
| 2398 | - } |
|
| 2399 | - $tags_acceptes = array_unique(explode(',', 'multi,' . _TAGS_NOM_AUTEUR)); |
|
| 2400 | - foreach ($tags_acceptes as $tag) { |
|
| 2401 | - if (strlen($tag)) { |
|
| 2402 | - $remp1[] = '<' . trim($tag) . '>'; |
|
| 2403 | - $remp1[] = '</' . trim($tag) . '>'; |
|
| 2404 | - $remp2[] = '\x60' . trim($tag) . '\x61'; |
|
| 2405 | - $remp2[] = '\x60/' . trim($tag) . '\x61'; |
|
| 2406 | - } |
|
| 2407 | - } |
|
| 2408 | - $v_nom = str_replace($remp2, $remp1, supprimer_tags(str_replace($remp1, $remp2, $nom))); |
|
| 2409 | - |
|
| 2410 | - return str_replace('<', '<', $v_nom) == $nom; |
|
| 2391 | + $remp2 = []; |
|
| 2392 | + $remp1 = []; |
|
| 2393 | + if (!is_string($nom)) { |
|
| 2394 | + return false; |
|
| 2395 | + } |
|
| 2396 | + if (!defined('_TAGS_NOM_AUTEUR')) { |
|
| 2397 | + define('_TAGS_NOM_AUTEUR', ''); |
|
| 2398 | + } |
|
| 2399 | + $tags_acceptes = array_unique(explode(',', 'multi,' . _TAGS_NOM_AUTEUR)); |
|
| 2400 | + foreach ($tags_acceptes as $tag) { |
|
| 2401 | + if (strlen($tag)) { |
|
| 2402 | + $remp1[] = '<' . trim($tag) . '>'; |
|
| 2403 | + $remp1[] = '</' . trim($tag) . '>'; |
|
| 2404 | + $remp2[] = '\x60' . trim($tag) . '\x61'; |
|
| 2405 | + $remp2[] = '\x60/' . trim($tag) . '\x61'; |
|
| 2406 | + } |
|
| 2407 | + } |
|
| 2408 | + $v_nom = str_replace($remp2, $remp1, supprimer_tags(str_replace($remp1, $remp2, $nom))); |
|
| 2409 | + |
|
| 2410 | + return str_replace('<', '<', $v_nom) == $nom; |
|
| 2411 | 2411 | } |
| 2412 | 2412 | |
| 2413 | 2413 | |
@@ -2423,14 +2423,14 @@ discard block |
||
| 2423 | 2423 | * - renvoie un tableau si l'entree est un tableau |
| 2424 | 2424 | **/ |
| 2425 | 2425 | function email_valide($adresses) { |
| 2426 | - if (is_array($adresses)) { |
|
| 2427 | - $adresses = array_map('email_valide', $adresses); |
|
| 2428 | - $adresses = array_filter($adresses); |
|
| 2429 | - return $adresses; |
|
| 2430 | - } |
|
| 2426 | + if (is_array($adresses)) { |
|
| 2427 | + $adresses = array_map('email_valide', $adresses); |
|
| 2428 | + $adresses = array_filter($adresses); |
|
| 2429 | + return $adresses; |
|
| 2430 | + } |
|
| 2431 | 2431 | |
| 2432 | - $email_valide = charger_fonction('email_valide', 'inc'); |
|
| 2433 | - return $email_valide($adresses); |
|
| 2432 | + $email_valide = charger_fonction('email_valide', 'inc'); |
|
| 2433 | + return $email_valide($adresses); |
|
| 2434 | 2434 | } |
| 2435 | 2435 | |
| 2436 | 2436 | /** |
@@ -2444,29 +2444,29 @@ discard block |
||
| 2444 | 2444 | * @return string Texte |
| 2445 | 2445 | **/ |
| 2446 | 2446 | function afficher_enclosures($tags) { |
| 2447 | - $s = []; |
|
| 2448 | - foreach (extraire_balises($tags, 'a') as $tag) { |
|
| 2449 | - if ( |
|
| 2450 | - extraire_attribut($tag, 'rel') == 'enclosure' |
|
| 2451 | - and $t = extraire_attribut($tag, 'href') |
|
| 2452 | - ) { |
|
| 2453 | - $s[] = preg_replace( |
|
| 2454 | - ',>[^<]+</a>,S', |
|
| 2455 | - '>' |
|
| 2456 | - . http_img_pack( |
|
| 2457 | - 'attachment-16.png', |
|
| 2458 | - $t, |
|
| 2459 | - '', |
|
| 2460 | - $t, |
|
| 2461 | - ['utiliser_suffixe_size' => true] |
|
| 2462 | - ) |
|
| 2463 | - . '</a>', |
|
| 2464 | - $tag |
|
| 2465 | - ); |
|
| 2466 | - } |
|
| 2467 | - } |
|
| 2468 | - |
|
| 2469 | - return join(' ', $s); |
|
| 2447 | + $s = []; |
|
| 2448 | + foreach (extraire_balises($tags, 'a') as $tag) { |
|
| 2449 | + if ( |
|
| 2450 | + extraire_attribut($tag, 'rel') == 'enclosure' |
|
| 2451 | + and $t = extraire_attribut($tag, 'href') |
|
| 2452 | + ) { |
|
| 2453 | + $s[] = preg_replace( |
|
| 2454 | + ',>[^<]+</a>,S', |
|
| 2455 | + '>' |
|
| 2456 | + . http_img_pack( |
|
| 2457 | + 'attachment-16.png', |
|
| 2458 | + $t, |
|
| 2459 | + '', |
|
| 2460 | + $t, |
|
| 2461 | + ['utiliser_suffixe_size' => true] |
|
| 2462 | + ) |
|
| 2463 | + . '</a>', |
|
| 2464 | + $tag |
|
| 2465 | + ); |
|
| 2466 | + } |
|
| 2467 | + } |
|
| 2468 | + |
|
| 2469 | + return join(' ', $s); |
|
| 2470 | 2470 | } |
| 2471 | 2471 | |
| 2472 | 2472 | /** |
@@ -2481,15 +2481,15 @@ discard block |
||
| 2481 | 2481 | * @return string Liens trouvés |
| 2482 | 2482 | **/ |
| 2483 | 2483 | function afficher_tags($tags, $rels = 'tag,directory') { |
| 2484 | - $s = []; |
|
| 2485 | - foreach (extraire_balises($tags, 'a') as $tag) { |
|
| 2486 | - $rel = extraire_attribut($tag, 'rel'); |
|
| 2487 | - if (strstr(",$rels,", (string) ",$rel,")) { |
|
| 2488 | - $s[] = $tag; |
|
| 2489 | - } |
|
| 2490 | - } |
|
| 2484 | + $s = []; |
|
| 2485 | + foreach (extraire_balises($tags, 'a') as $tag) { |
|
| 2486 | + $rel = extraire_attribut($tag, 'rel'); |
|
| 2487 | + if (strstr(",$rels,", (string) ",$rel,")) { |
|
| 2488 | + $s[] = $tag; |
|
| 2489 | + } |
|
| 2490 | + } |
|
| 2491 | 2491 | |
| 2492 | - return join(', ', $s); |
|
| 2492 | + return join(', ', $s); |
|
| 2493 | 2493 | } |
| 2494 | 2494 | |
| 2495 | 2495 | |
@@ -2511,21 +2511,21 @@ discard block |
||
| 2511 | 2511 | * @return string Tag HTML `<a>` avec microformat. |
| 2512 | 2512 | **/ |
| 2513 | 2513 | function enclosure2microformat($e) { |
| 2514 | - if (!$url = filtrer_entites(extraire_attribut($e, 'url'))) { |
|
| 2515 | - $url = filtrer_entites(extraire_attribut($e, 'href')); |
|
| 2516 | - } |
|
| 2517 | - $type = extraire_attribut($e, 'type'); |
|
| 2518 | - if (!$length = extraire_attribut($e, 'length')) { |
|
| 2519 | - # <media:content : longeur dans fileSize. On tente. |
|
| 2520 | - $length = extraire_attribut($e, 'fileSize'); |
|
| 2521 | - } |
|
| 2522 | - $fichier = basename($url); |
|
| 2514 | + if (!$url = filtrer_entites(extraire_attribut($e, 'url'))) { |
|
| 2515 | + $url = filtrer_entites(extraire_attribut($e, 'href')); |
|
| 2516 | + } |
|
| 2517 | + $type = extraire_attribut($e, 'type'); |
|
| 2518 | + if (!$length = extraire_attribut($e, 'length')) { |
|
| 2519 | + # <media:content : longeur dans fileSize. On tente. |
|
| 2520 | + $length = extraire_attribut($e, 'fileSize'); |
|
| 2521 | + } |
|
| 2522 | + $fichier = basename($url); |
|
| 2523 | 2523 | |
| 2524 | - return '<a rel="enclosure"' |
|
| 2525 | - . ($url ? ' href="' . spip_htmlspecialchars($url) . '"' : '') |
|
| 2526 | - . ($type ? ' type="' . spip_htmlspecialchars($type) . '"' : '') |
|
| 2527 | - . ($length ? ' title="' . spip_htmlspecialchars($length) . '"' : '') |
|
| 2528 | - . '>' . $fichier . '</a>'; |
|
| 2524 | + return '<a rel="enclosure"' |
|
| 2525 | + . ($url ? ' href="' . spip_htmlspecialchars($url) . '"' : '') |
|
| 2526 | + . ($type ? ' type="' . spip_htmlspecialchars($type) . '"' : '') |
|
| 2527 | + . ($length ? ' title="' . spip_htmlspecialchars($length) . '"' : '') |
|
| 2528 | + . '>' . $fichier . '</a>'; |
|
| 2529 | 2529 | } |
| 2530 | 2530 | |
| 2531 | 2531 | /** |
@@ -2543,24 +2543,24 @@ discard block |
||
| 2543 | 2543 | * @return string Tags RSS `<enclosure>`. |
| 2544 | 2544 | **/ |
| 2545 | 2545 | function microformat2enclosure($tags) { |
| 2546 | - $enclosures = []; |
|
| 2547 | - foreach (extraire_balises($tags, 'a') as $e) { |
|
| 2548 | - if (extraire_attribut($e, 'rel') == 'enclosure') { |
|
| 2549 | - $url = filtrer_entites(extraire_attribut($e, 'href')); |
|
| 2550 | - $type = extraire_attribut($e, 'type'); |
|
| 2551 | - if (!$length = intval(extraire_attribut($e, 'title'))) { |
|
| 2552 | - $length = intval(extraire_attribut($e, 'length')); |
|
| 2553 | - } # vieux data |
|
| 2554 | - $fichier = basename($url); |
|
| 2555 | - $enclosures[] = '<enclosure' |
|
| 2556 | - . ($url ? ' url="' . spip_htmlspecialchars($url) . '"' : '') |
|
| 2557 | - . ($type ? ' type="' . spip_htmlspecialchars($type) . '"' : '') |
|
| 2558 | - . ($length ? ' length="' . $length . '"' : '') |
|
| 2559 | - . ' />'; |
|
| 2560 | - } |
|
| 2561 | - } |
|
| 2546 | + $enclosures = []; |
|
| 2547 | + foreach (extraire_balises($tags, 'a') as $e) { |
|
| 2548 | + if (extraire_attribut($e, 'rel') == 'enclosure') { |
|
| 2549 | + $url = filtrer_entites(extraire_attribut($e, 'href')); |
|
| 2550 | + $type = extraire_attribut($e, 'type'); |
|
| 2551 | + if (!$length = intval(extraire_attribut($e, 'title'))) { |
|
| 2552 | + $length = intval(extraire_attribut($e, 'length')); |
|
| 2553 | + } # vieux data |
|
| 2554 | + $fichier = basename($url); |
|
| 2555 | + $enclosures[] = '<enclosure' |
|
| 2556 | + . ($url ? ' url="' . spip_htmlspecialchars($url) . '"' : '') |
|
| 2557 | + . ($type ? ' type="' . spip_htmlspecialchars($type) . '"' : '') |
|
| 2558 | + . ($length ? ' length="' . $length . '"' : '') |
|
| 2559 | + . ' />'; |
|
| 2560 | + } |
|
| 2561 | + } |
|
| 2562 | 2562 | |
| 2563 | - return join("\n", $enclosures); |
|
| 2563 | + return join("\n", $enclosures); |
|
| 2564 | 2564 | } |
| 2565 | 2565 | |
| 2566 | 2566 | |
@@ -2576,16 +2576,16 @@ discard block |
||
| 2576 | 2576 | * @return string Tags RSS Atom `<dc:subject>`. |
| 2577 | 2577 | **/ |
| 2578 | 2578 | function tags2dcsubject($tags) { |
| 2579 | - $subjects = ''; |
|
| 2580 | - foreach (extraire_balises($tags, 'a') as $e) { |
|
| 2581 | - if (extraire_attribut($e, 'rel') == 'tag') { |
|
| 2582 | - $subjects .= '<dc:subject>' |
|
| 2583 | - . texte_backend(textebrut($e)) |
|
| 2584 | - . '</dc:subject>' . "\n"; |
|
| 2585 | - } |
|
| 2586 | - } |
|
| 2579 | + $subjects = ''; |
|
| 2580 | + foreach (extraire_balises($tags, 'a') as $e) { |
|
| 2581 | + if (extraire_attribut($e, 'rel') == 'tag') { |
|
| 2582 | + $subjects .= '<dc:subject>' |
|
| 2583 | + . texte_backend(textebrut($e)) |
|
| 2584 | + . '</dc:subject>' . "\n"; |
|
| 2585 | + } |
|
| 2586 | + } |
|
| 2587 | 2587 | |
| 2588 | - return $subjects; |
|
| 2588 | + return $subjects; |
|
| 2589 | 2589 | } |
| 2590 | 2590 | |
| 2591 | 2591 | /** |
@@ -2614,27 +2614,27 @@ discard block |
||
| 2614 | 2614 | * - Tableau de résultats, si tableau en entrée. |
| 2615 | 2615 | **/ |
| 2616 | 2616 | function extraire_balise($texte, $tag = 'a') { |
| 2617 | - if (is_array($texte)) { |
|
| 2618 | - array_walk( |
|
| 2619 | - $texte, |
|
| 2620 | - function (&$a, $key, $t) { |
|
| 2621 | - $a = extraire_balise($a, $t); |
|
| 2622 | - }, |
|
| 2623 | - $tag |
|
| 2624 | - ); |
|
| 2625 | - |
|
| 2626 | - return $texte; |
|
| 2627 | - } |
|
| 2628 | - |
|
| 2629 | - if ( |
|
| 2630 | - preg_match( |
|
| 2631 | - ",<$tag\b[^>]*(/>|>.*</$tag\b[^>]*>|>),UimsS", |
|
| 2632 | - $texte, |
|
| 2633 | - $regs |
|
| 2634 | - ) |
|
| 2635 | - ) { |
|
| 2636 | - return $regs[0]; |
|
| 2637 | - } |
|
| 2617 | + if (is_array($texte)) { |
|
| 2618 | + array_walk( |
|
| 2619 | + $texte, |
|
| 2620 | + function (&$a, $key, $t) { |
|
| 2621 | + $a = extraire_balise($a, $t); |
|
| 2622 | + }, |
|
| 2623 | + $tag |
|
| 2624 | + ); |
|
| 2625 | + |
|
| 2626 | + return $texte; |
|
| 2627 | + } |
|
| 2628 | + |
|
| 2629 | + if ( |
|
| 2630 | + preg_match( |
|
| 2631 | + ",<$tag\b[^>]*(/>|>.*</$tag\b[^>]*>|>),UimsS", |
|
| 2632 | + $texte, |
|
| 2633 | + $regs |
|
| 2634 | + ) |
|
| 2635 | + ) { |
|
| 2636 | + return $regs[0]; |
|
| 2637 | + } |
|
| 2638 | 2638 | } |
| 2639 | 2639 | |
| 2640 | 2640 | /** |
@@ -2662,30 +2662,30 @@ discard block |
||
| 2662 | 2662 | * - Tableau de résultats, si tableau en entrée. |
| 2663 | 2663 | **/ |
| 2664 | 2664 | function extraire_balises($texte, $tag = 'a') { |
| 2665 | - if (is_array($texte)) { |
|
| 2666 | - array_walk( |
|
| 2667 | - $texte, |
|
| 2668 | - function (&$a, $key, $t) { |
|
| 2669 | - $a = extraire_balises($a, $t); |
|
| 2670 | - }, |
|
| 2671 | - $tag |
|
| 2672 | - ); |
|
| 2673 | - |
|
| 2674 | - return $texte; |
|
| 2675 | - } |
|
| 2676 | - |
|
| 2677 | - if ( |
|
| 2678 | - preg_match_all( |
|
| 2679 | - ",<${tag}\b[^>]*(/>|>.*</${tag}\b[^>]*>|>),UimsS", |
|
| 2680 | - $texte, |
|
| 2681 | - $regs, |
|
| 2682 | - PREG_PATTERN_ORDER |
|
| 2683 | - ) |
|
| 2684 | - ) { |
|
| 2685 | - return $regs[0]; |
|
| 2686 | - } else { |
|
| 2687 | - return []; |
|
| 2688 | - } |
|
| 2665 | + if (is_array($texte)) { |
|
| 2666 | + array_walk( |
|
| 2667 | + $texte, |
|
| 2668 | + function (&$a, $key, $t) { |
|
| 2669 | + $a = extraire_balises($a, $t); |
|
| 2670 | + }, |
|
| 2671 | + $tag |
|
| 2672 | + ); |
|
| 2673 | + |
|
| 2674 | + return $texte; |
|
| 2675 | + } |
|
| 2676 | + |
|
| 2677 | + if ( |
|
| 2678 | + preg_match_all( |
|
| 2679 | + ",<${tag}\b[^>]*(/>|>.*</${tag}\b[^>]*>|>),UimsS", |
|
| 2680 | + $texte, |
|
| 2681 | + $regs, |
|
| 2682 | + PREG_PATTERN_ORDER |
|
| 2683 | + ) |
|
| 2684 | + ) { |
|
| 2685 | + return $regs[0]; |
|
| 2686 | + } else { |
|
| 2687 | + return []; |
|
| 2688 | + } |
|
| 2689 | 2689 | } |
| 2690 | 2690 | |
| 2691 | 2691 | /** |
@@ -2714,11 +2714,11 @@ discard block |
||
| 2714 | 2714 | * - `$def` si on n'a pas transmis de tableau |
| 2715 | 2715 | **/ |
| 2716 | 2716 | function in_any($val, $vals, $def = '') { |
| 2717 | - if (!is_array($vals) and $vals and $v = unserialize($vals)) { |
|
| 2718 | - $vals = $v; |
|
| 2719 | - } |
|
| 2717 | + if (!is_array($vals) and $vals and $v = unserialize($vals)) { |
|
| 2718 | + $vals = $v; |
|
| 2719 | + } |
|
| 2720 | 2720 | |
| 2721 | - return (!is_array($vals) ? $def : (in_array($val, $vals) ? ' ' : '')); |
|
| 2721 | + return (!is_array($vals) ? $def : (in_array($val, $vals) ? ' ' : '')); |
|
| 2722 | 2722 | } |
| 2723 | 2723 | |
| 2724 | 2724 | |
@@ -2739,12 +2739,12 @@ discard block |
||
| 2739 | 2739 | * Résultat du calcul |
| 2740 | 2740 | **/ |
| 2741 | 2741 | function valeur_numerique($expr) { |
| 2742 | - $a = 0; |
|
| 2743 | - if (preg_match(',^[0-9]+(\s*[+*-]\s*[0-9]+)*$,S', trim($expr))) { |
|
| 2744 | - eval("\$a = $expr;"); |
|
| 2745 | - } |
|
| 2742 | + $a = 0; |
|
| 2743 | + if (preg_match(',^[0-9]+(\s*[+*-]\s*[0-9]+)*$,S', trim($expr))) { |
|
| 2744 | + eval("\$a = $expr;"); |
|
| 2745 | + } |
|
| 2746 | 2746 | |
| 2747 | - return intval($a); |
|
| 2747 | + return intval($a); |
|
| 2748 | 2748 | } |
| 2749 | 2749 | |
| 2750 | 2750 | /** |
@@ -2763,7 +2763,7 @@ discard block |
||
| 2763 | 2763 | * Retourne `$a*$b/$c` |
| 2764 | 2764 | **/ |
| 2765 | 2765 | function regledetrois($a, $b, $c) { |
| 2766 | - return round($a * $b / $c); |
|
| 2766 | + return round($a * $b / $c); |
|
| 2767 | 2767 | } |
| 2768 | 2768 | |
| 2769 | 2769 | |
@@ -2786,79 +2786,79 @@ discard block |
||
| 2786 | 2786 | * @return string Suite de champs input hidden |
| 2787 | 2787 | **/ |
| 2788 | 2788 | function form_hidden(?string $action = ''): string { |
| 2789 | - $action ??= ''; |
|
| 2790 | - |
|
| 2791 | - $contexte = []; |
|
| 2792 | - include_spip('inc/urls'); |
|
| 2793 | - if ( |
|
| 2794 | - $p = urls_decoder_url($action, '') |
|
| 2795 | - and reset($p) |
|
| 2796 | - ) { |
|
| 2797 | - $fond = array_shift($p); |
|
| 2798 | - if ($fond != '404') { |
|
| 2799 | - $contexte = array_shift($p); |
|
| 2800 | - $contexte['page'] = $fond; |
|
| 2801 | - $action = preg_replace('/([?]' . preg_quote($fond) . '[^&=]*[0-9]+)(&|$)/', '?&', $action); |
|
| 2802 | - } |
|
| 2803 | - } |
|
| 2804 | - // defaire ce qu'a injecte urls_decoder_url : a revoir en modifiant la signature de urls_decoder_url |
|
| 2805 | - if (defined('_DEFINIR_CONTEXTE_TYPE') and _DEFINIR_CONTEXTE_TYPE) { |
|
| 2806 | - unset($contexte['type']); |
|
| 2807 | - } |
|
| 2808 | - if (!defined('_DEFINIR_CONTEXTE_TYPE_PAGE') or _DEFINIR_CONTEXTE_TYPE_PAGE) { |
|
| 2809 | - unset($contexte['type-page']); |
|
| 2810 | - } |
|
| 2811 | - |
|
| 2812 | - // on va remplir un tableau de valeurs en prenant bien soin de ne pas |
|
| 2813 | - // ecraser les elements de la forme mots[]=1&mots[]=2 |
|
| 2814 | - $values = []; |
|
| 2815 | - |
|
| 2816 | - // d'abord avec celles de l'url |
|
| 2817 | - if (false !== ($p = strpos($action, '?'))) { |
|
| 2818 | - foreach (preg_split('/&(amp;)?/S', substr($action, $p + 1)) as $c) { |
|
| 2819 | - $c = explode('=', $c, 2); |
|
| 2820 | - $var = array_shift($c); |
|
| 2821 | - $val = array_shift($c) ?? ''; |
|
| 2822 | - if ($var) { |
|
| 2823 | - $val = rawurldecode($val); |
|
| 2824 | - $var = rawurldecode($var); // decoder les [] eventuels |
|
| 2825 | - if (preg_match(',\[\]$,S', $var)) { |
|
| 2826 | - $values[] = [$var, $val]; |
|
| 2827 | - } else { |
|
| 2828 | - if (!isset($values[$var])) { |
|
| 2829 | - $values[$var] = [$var, $val]; |
|
| 2830 | - } |
|
| 2831 | - } |
|
| 2832 | - } |
|
| 2833 | - } |
|
| 2834 | - } |
|
| 2835 | - |
|
| 2836 | - // ensuite avec celles du contexte, sans doublonner ! |
|
| 2837 | - foreach ($contexte as $var => $val) { |
|
| 2838 | - if (preg_match(',\[\]$,S', $var)) { |
|
| 2839 | - $values[] = [$var, $val]; |
|
| 2840 | - } else { |
|
| 2841 | - if (!isset($values[$var])) { |
|
| 2842 | - $values[$var] = [$var, $val]; |
|
| 2843 | - } |
|
| 2844 | - } |
|
| 2845 | - } |
|
| 2846 | - |
|
| 2847 | - // puis on rassemble le tout |
|
| 2848 | - $hidden = []; |
|
| 2849 | - foreach ($values as $value) { |
|
| 2850 | - [$var, $val] = $value; |
|
| 2851 | - $hidden[] = '<input name="' |
|
| 2852 | - . entites_html($var) |
|
| 2853 | - . '"' |
|
| 2854 | - . (is_null($val) |
|
| 2855 | - ? '' |
|
| 2856 | - : ' value="' . entites_html($val) . '"' |
|
| 2857 | - ) |
|
| 2858 | - . ' type="hidden"' . "\n/>"; |
|
| 2859 | - } |
|
| 2860 | - |
|
| 2861 | - return join('', $hidden); |
|
| 2789 | + $action ??= ''; |
|
| 2790 | + |
|
| 2791 | + $contexte = []; |
|
| 2792 | + include_spip('inc/urls'); |
|
| 2793 | + if ( |
|
| 2794 | + $p = urls_decoder_url($action, '') |
|
| 2795 | + and reset($p) |
|
| 2796 | + ) { |
|
| 2797 | + $fond = array_shift($p); |
|
| 2798 | + if ($fond != '404') { |
|
| 2799 | + $contexte = array_shift($p); |
|
| 2800 | + $contexte['page'] = $fond; |
|
| 2801 | + $action = preg_replace('/([?]' . preg_quote($fond) . '[^&=]*[0-9]+)(&|$)/', '?&', $action); |
|
| 2802 | + } |
|
| 2803 | + } |
|
| 2804 | + // defaire ce qu'a injecte urls_decoder_url : a revoir en modifiant la signature de urls_decoder_url |
|
| 2805 | + if (defined('_DEFINIR_CONTEXTE_TYPE') and _DEFINIR_CONTEXTE_TYPE) { |
|
| 2806 | + unset($contexte['type']); |
|
| 2807 | + } |
|
| 2808 | + if (!defined('_DEFINIR_CONTEXTE_TYPE_PAGE') or _DEFINIR_CONTEXTE_TYPE_PAGE) { |
|
| 2809 | + unset($contexte['type-page']); |
|
| 2810 | + } |
|
| 2811 | + |
|
| 2812 | + // on va remplir un tableau de valeurs en prenant bien soin de ne pas |
|
| 2813 | + // ecraser les elements de la forme mots[]=1&mots[]=2 |
|
| 2814 | + $values = []; |
|
| 2815 | + |
|
| 2816 | + // d'abord avec celles de l'url |
|
| 2817 | + if (false !== ($p = strpos($action, '?'))) { |
|
| 2818 | + foreach (preg_split('/&(amp;)?/S', substr($action, $p + 1)) as $c) { |
|
| 2819 | + $c = explode('=', $c, 2); |
|
| 2820 | + $var = array_shift($c); |
|
| 2821 | + $val = array_shift($c) ?? ''; |
|
| 2822 | + if ($var) { |
|
| 2823 | + $val = rawurldecode($val); |
|
| 2824 | + $var = rawurldecode($var); // decoder les [] eventuels |
|
| 2825 | + if (preg_match(',\[\]$,S', $var)) { |
|
| 2826 | + $values[] = [$var, $val]; |
|
| 2827 | + } else { |
|
| 2828 | + if (!isset($values[$var])) { |
|
| 2829 | + $values[$var] = [$var, $val]; |
|
| 2830 | + } |
|
| 2831 | + } |
|
| 2832 | + } |
|
| 2833 | + } |
|
| 2834 | + } |
|
| 2835 | + |
|
| 2836 | + // ensuite avec celles du contexte, sans doublonner ! |
|
| 2837 | + foreach ($contexte as $var => $val) { |
|
| 2838 | + if (preg_match(',\[\]$,S', $var)) { |
|
| 2839 | + $values[] = [$var, $val]; |
|
| 2840 | + } else { |
|
| 2841 | + if (!isset($values[$var])) { |
|
| 2842 | + $values[$var] = [$var, $val]; |
|
| 2843 | + } |
|
| 2844 | + } |
|
| 2845 | + } |
|
| 2846 | + |
|
| 2847 | + // puis on rassemble le tout |
|
| 2848 | + $hidden = []; |
|
| 2849 | + foreach ($values as $value) { |
|
| 2850 | + [$var, $val] = $value; |
|
| 2851 | + $hidden[] = '<input name="' |
|
| 2852 | + . entites_html($var) |
|
| 2853 | + . '"' |
|
| 2854 | + . (is_null($val) |
|
| 2855 | + ? '' |
|
| 2856 | + : ' value="' . entites_html($val) . '"' |
|
| 2857 | + ) |
|
| 2858 | + . ' type="hidden"' . "\n/>"; |
|
| 2859 | + } |
|
| 2860 | + |
|
| 2861 | + return join('', $hidden); |
|
| 2862 | 2862 | } |
| 2863 | 2863 | |
| 2864 | 2864 | |
@@ -2880,7 +2880,7 @@ discard block |
||
| 2880 | 2880 | * - la première valeur du tableau sinon. |
| 2881 | 2881 | **/ |
| 2882 | 2882 | function filtre_reset($array) { |
| 2883 | - return !is_array($array) ? null : reset($array); |
|
| 2883 | + return !is_array($array) ? null : reset($array); |
|
| 2884 | 2884 | } |
| 2885 | 2885 | |
| 2886 | 2886 | /** |
@@ -2901,7 +2901,7 @@ discard block |
||
| 2901 | 2901 | * - la dernière valeur du tableau sinon. |
| 2902 | 2902 | **/ |
| 2903 | 2903 | function filtre_end($array) { |
| 2904 | - return !is_array($array) ? null : end($array); |
|
| 2904 | + return !is_array($array) ? null : end($array); |
|
| 2905 | 2905 | } |
| 2906 | 2906 | |
| 2907 | 2907 | /** |
@@ -2921,11 +2921,11 @@ discard block |
||
| 2921 | 2921 | * |
| 2922 | 2922 | **/ |
| 2923 | 2923 | function filtre_push($array, $val) { |
| 2924 | - if (!is_array($array) or !array_push($array, $val)) { |
|
| 2925 | - return ''; |
|
| 2926 | - } |
|
| 2924 | + if (!is_array($array) or !array_push($array, $val)) { |
|
| 2925 | + return ''; |
|
| 2926 | + } |
|
| 2927 | 2927 | |
| 2928 | - return $array; |
|
| 2928 | + return $array; |
|
| 2929 | 2929 | } |
| 2930 | 2930 | |
| 2931 | 2931 | /** |
@@ -2944,7 +2944,7 @@ discard block |
||
| 2944 | 2944 | * - `true` si la valeur existe dans le tableau, `false` sinon. |
| 2945 | 2945 | **/ |
| 2946 | 2946 | function filtre_find($array, $val) { |
| 2947 | - return (is_array($array) and in_array($val, $array)); |
|
| 2947 | + return (is_array($array) and in_array($val, $array)); |
|
| 2948 | 2948 | } |
| 2949 | 2949 | |
| 2950 | 2950 | |
@@ -2961,13 +2961,13 @@ discard block |
||
| 2961 | 2961 | * Contenu avec urls en absolus |
| 2962 | 2962 | **/ |
| 2963 | 2963 | function urls_absolues_css($contenu, $source) { |
| 2964 | - $path = suivre_lien(url_absolue($source), './'); |
|
| 2964 | + $path = suivre_lien(url_absolue($source), './'); |
|
| 2965 | 2965 | |
| 2966 | - return preg_replace_callback( |
|
| 2967 | - ",url\s*\(\s*['\"]?([^'\"/#\s][^:]*)['\"]?\s*\),Uims", |
|
| 2968 | - fn($x) => "url('" . suivre_lien($path, $x[1]) . "')", |
|
| 2969 | - $contenu |
|
| 2970 | - ); |
|
| 2966 | + return preg_replace_callback( |
|
| 2967 | + ",url\s*\(\s*['\"]?([^'\"/#\s][^:]*)['\"]?\s*\),Uims", |
|
| 2968 | + fn($x) => "url('" . suivre_lien($path, $x[1]) . "')", |
|
| 2969 | + $contenu |
|
| 2970 | + ); |
|
| 2971 | 2971 | } |
| 2972 | 2972 | |
| 2973 | 2973 | |
@@ -2996,119 +2996,119 @@ discard block |
||
| 2996 | 2996 | * Chemin du fichier CSS inversé |
| 2997 | 2997 | **/ |
| 2998 | 2998 | function direction_css($css, $voulue = '') { |
| 2999 | - if (!preg_match(',(_rtl)?\.css$,i', $css, $r)) { |
|
| 3000 | - return $css; |
|
| 3001 | - } |
|
| 3002 | - include_spip('inc/lang'); |
|
| 3003 | - // si on a precise le sens voulu en argument, le prendre en compte |
|
| 3004 | - if ($voulue = strtolower($voulue)) { |
|
| 3005 | - if ($voulue != 'rtl' and $voulue != 'ltr') { |
|
| 3006 | - $voulue = lang_dir($voulue); |
|
| 3007 | - } |
|
| 3008 | - } else { |
|
| 3009 | - $voulue = lang_dir(); |
|
| 3010 | - } |
|
| 3011 | - |
|
| 3012 | - $r = count($r) > 1; |
|
| 3013 | - $right = $r ? 'left' : 'right'; // 'right' de la css lue en entree |
|
| 3014 | - $dir = $r ? 'rtl' : 'ltr'; |
|
| 3015 | - $ndir = $r ? 'ltr' : 'rtl'; |
|
| 3016 | - |
|
| 3017 | - if ($voulue == $dir) { |
|
| 3018 | - return $css; |
|
| 3019 | - } |
|
| 3020 | - |
|
| 3021 | - if ( |
|
| 3022 | - // url absolue |
|
| 3023 | - preg_match(',^https?:,i', $css) |
|
| 3024 | - // ou qui contient un ? |
|
| 3025 | - or (($p = strpos($css, '?')) !== false) |
|
| 3026 | - ) { |
|
| 3027 | - $distant = true; |
|
| 3028 | - $cssf = parse_url($css); |
|
| 3029 | - $cssf = $cssf['path'] . ($cssf['query'] ? '?' . $cssf['query'] : ''); |
|
| 3030 | - $cssf = preg_replace(',[?:&=],', '_', $cssf); |
|
| 3031 | - } else { |
|
| 3032 | - $distant = false; |
|
| 3033 | - $cssf = $css; |
|
| 3034 | - // 1. regarder d'abord si un fichier avec la bonne direction n'est pas aussi |
|
| 3035 | - //propose (rien a faire dans ce cas) |
|
| 3036 | - $f = preg_replace(',(_rtl)?\.css$,i', '_' . $ndir . '.css', $css); |
|
| 3037 | - if (@file_exists($f)) { |
|
| 3038 | - return $f; |
|
| 3039 | - } |
|
| 3040 | - } |
|
| 3041 | - |
|
| 3042 | - // 2. |
|
| 3043 | - $dir_var = sous_repertoire(_DIR_VAR, 'cache-css'); |
|
| 3044 | - $f = $dir_var |
|
| 3045 | - . preg_replace(',.*/(.*?)(_rtl)?\.css,', '\1', $cssf) |
|
| 3046 | - . '.' . substr(md5($cssf), 0, 4) . '_' . $ndir . '.css'; |
|
| 3047 | - |
|
| 3048 | - // la css peut etre distante (url absolue !) |
|
| 3049 | - if ($distant) { |
|
| 3050 | - include_spip('inc/distant'); |
|
| 3051 | - $res = recuperer_url($css); |
|
| 3052 | - if (!$res or !$contenu = $res['page']) { |
|
| 3053 | - return $css; |
|
| 3054 | - } |
|
| 3055 | - } else { |
|
| 3056 | - if ( |
|
| 3057 | - (@filemtime($f) > @filemtime($css)) |
|
| 3058 | - and (_VAR_MODE != 'recalcul') |
|
| 3059 | - ) { |
|
| 3060 | - return $f; |
|
| 3061 | - } |
|
| 3062 | - if (!lire_fichier($css, $contenu)) { |
|
| 3063 | - return $css; |
|
| 3064 | - } |
|
| 3065 | - } |
|
| 3066 | - |
|
| 3067 | - |
|
| 3068 | - // Inverser la direction gauche-droite en utilisant CSSTidy qui gere aussi les shorthands |
|
| 3069 | - include_spip('lib/csstidy/class.csstidy'); |
|
| 3070 | - $parser = new csstidy(); |
|
| 3071 | - $parser->set_cfg('optimise_shorthands', 0); |
|
| 3072 | - $parser->set_cfg('reverse_left_and_right', true); |
|
| 3073 | - $parser->parse($contenu); |
|
| 3074 | - |
|
| 3075 | - $contenu = $parser->print->plain(); |
|
| 3076 | - |
|
| 3077 | - |
|
| 3078 | - // reperer les @import auxquels il faut propager le direction_css |
|
| 3079 | - preg_match_all(",\@import\s*url\s*\(\s*['\"]?([^'\"/][^:]*)['\"]?\s*\),Uims", $contenu, $regs); |
|
| 3080 | - $src = []; |
|
| 3081 | - $src_direction_css = []; |
|
| 3082 | - $src_faux_abs = []; |
|
| 3083 | - $d = dirname($css); |
|
| 3084 | - foreach ($regs[1] as $k => $import_css) { |
|
| 3085 | - $css_direction = direction_css("$d/$import_css", $voulue); |
|
| 3086 | - // si la css_direction est dans le meme path que la css d'origine, on tronque le path, elle sera passee en absolue |
|
| 3087 | - if (substr($css_direction, 0, strlen($d) + 1) == "$d/") { |
|
| 3088 | - $css_direction = substr($css_direction, strlen($d) + 1); |
|
| 3089 | - } // si la css_direction commence par $dir_var on la fait passer pour une absolue |
|
| 3090 | - elseif (substr($css_direction, 0, strlen($dir_var)) == $dir_var) { |
|
| 3091 | - $css_direction = substr($css_direction, strlen($dir_var)); |
|
| 3092 | - $src_faux_abs['/@@@@@@/' . $css_direction] = $css_direction; |
|
| 3093 | - $css_direction = '/@@@@@@/' . $css_direction; |
|
| 3094 | - } |
|
| 3095 | - $src[] = $regs[0][$k]; |
|
| 3096 | - $src_direction_css[] = str_replace($import_css, $css_direction, $regs[0][$k]); |
|
| 3097 | - } |
|
| 3098 | - $contenu = str_replace($src, $src_direction_css, $contenu); |
|
| 3099 | - |
|
| 3100 | - $contenu = urls_absolues_css($contenu, $css); |
|
| 3101 | - |
|
| 3102 | - // virer les fausses url absolues que l'on a mis dans les import |
|
| 3103 | - if (count($src_faux_abs)) { |
|
| 3104 | - $contenu = str_replace(array_keys($src_faux_abs), $src_faux_abs, $contenu); |
|
| 3105 | - } |
|
| 3106 | - |
|
| 3107 | - if (!ecrire_fichier($f, $contenu)) { |
|
| 3108 | - return $css; |
|
| 3109 | - } |
|
| 3110 | - |
|
| 3111 | - return $f; |
|
| 2999 | + if (!preg_match(',(_rtl)?\.css$,i', $css, $r)) { |
|
| 3000 | + return $css; |
|
| 3001 | + } |
|
| 3002 | + include_spip('inc/lang'); |
|
| 3003 | + // si on a precise le sens voulu en argument, le prendre en compte |
|
| 3004 | + if ($voulue = strtolower($voulue)) { |
|
| 3005 | + if ($voulue != 'rtl' and $voulue != 'ltr') { |
|
| 3006 | + $voulue = lang_dir($voulue); |
|
| 3007 | + } |
|
| 3008 | + } else { |
|
| 3009 | + $voulue = lang_dir(); |
|
| 3010 | + } |
|
| 3011 | + |
|
| 3012 | + $r = count($r) > 1; |
|
| 3013 | + $right = $r ? 'left' : 'right'; // 'right' de la css lue en entree |
|
| 3014 | + $dir = $r ? 'rtl' : 'ltr'; |
|
| 3015 | + $ndir = $r ? 'ltr' : 'rtl'; |
|
| 3016 | + |
|
| 3017 | + if ($voulue == $dir) { |
|
| 3018 | + return $css; |
|
| 3019 | + } |
|
| 3020 | + |
|
| 3021 | + if ( |
|
| 3022 | + // url absolue |
|
| 3023 | + preg_match(',^https?:,i', $css) |
|
| 3024 | + // ou qui contient un ? |
|
| 3025 | + or (($p = strpos($css, '?')) !== false) |
|
| 3026 | + ) { |
|
| 3027 | + $distant = true; |
|
| 3028 | + $cssf = parse_url($css); |
|
| 3029 | + $cssf = $cssf['path'] . ($cssf['query'] ? '?' . $cssf['query'] : ''); |
|
| 3030 | + $cssf = preg_replace(',[?:&=],', '_', $cssf); |
|
| 3031 | + } else { |
|
| 3032 | + $distant = false; |
|
| 3033 | + $cssf = $css; |
|
| 3034 | + // 1. regarder d'abord si un fichier avec la bonne direction n'est pas aussi |
|
| 3035 | + //propose (rien a faire dans ce cas) |
|
| 3036 | + $f = preg_replace(',(_rtl)?\.css$,i', '_' . $ndir . '.css', $css); |
|
| 3037 | + if (@file_exists($f)) { |
|
| 3038 | + return $f; |
|
| 3039 | + } |
|
| 3040 | + } |
|
| 3041 | + |
|
| 3042 | + // 2. |
|
| 3043 | + $dir_var = sous_repertoire(_DIR_VAR, 'cache-css'); |
|
| 3044 | + $f = $dir_var |
|
| 3045 | + . preg_replace(',.*/(.*?)(_rtl)?\.css,', '\1', $cssf) |
|
| 3046 | + . '.' . substr(md5($cssf), 0, 4) . '_' . $ndir . '.css'; |
|
| 3047 | + |
|
| 3048 | + // la css peut etre distante (url absolue !) |
|
| 3049 | + if ($distant) { |
|
| 3050 | + include_spip('inc/distant'); |
|
| 3051 | + $res = recuperer_url($css); |
|
| 3052 | + if (!$res or !$contenu = $res['page']) { |
|
| 3053 | + return $css; |
|
| 3054 | + } |
|
| 3055 | + } else { |
|
| 3056 | + if ( |
|
| 3057 | + (@filemtime($f) > @filemtime($css)) |
|
| 3058 | + and (_VAR_MODE != 'recalcul') |
|
| 3059 | + ) { |
|
| 3060 | + return $f; |
|
| 3061 | + } |
|
| 3062 | + if (!lire_fichier($css, $contenu)) { |
|
| 3063 | + return $css; |
|
| 3064 | + } |
|
| 3065 | + } |
|
| 3066 | + |
|
| 3067 | + |
|
| 3068 | + // Inverser la direction gauche-droite en utilisant CSSTidy qui gere aussi les shorthands |
|
| 3069 | + include_spip('lib/csstidy/class.csstidy'); |
|
| 3070 | + $parser = new csstidy(); |
|
| 3071 | + $parser->set_cfg('optimise_shorthands', 0); |
|
| 3072 | + $parser->set_cfg('reverse_left_and_right', true); |
|
| 3073 | + $parser->parse($contenu); |
|
| 3074 | + |
|
| 3075 | + $contenu = $parser->print->plain(); |
|
| 3076 | + |
|
| 3077 | + |
|
| 3078 | + // reperer les @import auxquels il faut propager le direction_css |
|
| 3079 | + preg_match_all(",\@import\s*url\s*\(\s*['\"]?([^'\"/][^:]*)['\"]?\s*\),Uims", $contenu, $regs); |
|
| 3080 | + $src = []; |
|
| 3081 | + $src_direction_css = []; |
|
| 3082 | + $src_faux_abs = []; |
|
| 3083 | + $d = dirname($css); |
|
| 3084 | + foreach ($regs[1] as $k => $import_css) { |
|
| 3085 | + $css_direction = direction_css("$d/$import_css", $voulue); |
|
| 3086 | + // si la css_direction est dans le meme path que la css d'origine, on tronque le path, elle sera passee en absolue |
|
| 3087 | + if (substr($css_direction, 0, strlen($d) + 1) == "$d/") { |
|
| 3088 | + $css_direction = substr($css_direction, strlen($d) + 1); |
|
| 3089 | + } // si la css_direction commence par $dir_var on la fait passer pour une absolue |
|
| 3090 | + elseif (substr($css_direction, 0, strlen($dir_var)) == $dir_var) { |
|
| 3091 | + $css_direction = substr($css_direction, strlen($dir_var)); |
|
| 3092 | + $src_faux_abs['/@@@@@@/' . $css_direction] = $css_direction; |
|
| 3093 | + $css_direction = '/@@@@@@/' . $css_direction; |
|
| 3094 | + } |
|
| 3095 | + $src[] = $regs[0][$k]; |
|
| 3096 | + $src_direction_css[] = str_replace($import_css, $css_direction, $regs[0][$k]); |
|
| 3097 | + } |
|
| 3098 | + $contenu = str_replace($src, $src_direction_css, $contenu); |
|
| 3099 | + |
|
| 3100 | + $contenu = urls_absolues_css($contenu, $css); |
|
| 3101 | + |
|
| 3102 | + // virer les fausses url absolues que l'on a mis dans les import |
|
| 3103 | + if (count($src_faux_abs)) { |
|
| 3104 | + $contenu = str_replace(array_keys($src_faux_abs), $src_faux_abs, $contenu); |
|
| 3105 | + } |
|
| 3106 | + |
|
| 3107 | + if (!ecrire_fichier($f, $contenu)) { |
|
| 3108 | + return $css; |
|
| 3109 | + } |
|
| 3110 | + |
|
| 3111 | + return $f; |
|
| 3112 | 3112 | } |
| 3113 | 3113 | |
| 3114 | 3114 | |
@@ -3131,46 +3131,46 @@ discard block |
||
| 3131 | 3131 | * - Chemin ou URL du fichier CSS source sinon. |
| 3132 | 3132 | **/ |
| 3133 | 3133 | function url_absolue_css($css) { |
| 3134 | - if (!preg_match(',\.css$,i', $css, $r)) { |
|
| 3135 | - return $css; |
|
| 3136 | - } |
|
| 3134 | + if (!preg_match(',\.css$,i', $css, $r)) { |
|
| 3135 | + return $css; |
|
| 3136 | + } |
|
| 3137 | 3137 | |
| 3138 | - $url_absolue_css = url_absolue($css); |
|
| 3138 | + $url_absolue_css = url_absolue($css); |
|
| 3139 | 3139 | |
| 3140 | - $f = basename($css, '.css'); |
|
| 3141 | - $f = sous_repertoire(_DIR_VAR, 'cache-css') |
|
| 3142 | - . preg_replace(',(.*?)(_rtl|_ltr)?$,', "\\1-urlabs-" . substr(md5("$css-urlabs"), 0, 4) . "\\2", $f) |
|
| 3143 | - . '.css'; |
|
| 3140 | + $f = basename($css, '.css'); |
|
| 3141 | + $f = sous_repertoire(_DIR_VAR, 'cache-css') |
|
| 3142 | + . preg_replace(',(.*?)(_rtl|_ltr)?$,', "\\1-urlabs-" . substr(md5("$css-urlabs"), 0, 4) . "\\2", $f) |
|
| 3143 | + . '.css'; |
|
| 3144 | 3144 | |
| 3145 | - if ((@filemtime($f) > @filemtime($css)) and (_VAR_MODE != 'recalcul')) { |
|
| 3146 | - return $f; |
|
| 3147 | - } |
|
| 3145 | + if ((@filemtime($f) > @filemtime($css)) and (_VAR_MODE != 'recalcul')) { |
|
| 3146 | + return $f; |
|
| 3147 | + } |
|
| 3148 | 3148 | |
| 3149 | - if ($url_absolue_css == $css) { |
|
| 3150 | - if ( |
|
| 3151 | - strncmp($GLOBALS['meta']['adresse_site'], $css, $l = strlen($GLOBALS['meta']['adresse_site'])) != 0 |
|
| 3152 | - or !lire_fichier(_DIR_RACINE . substr($css, $l), $contenu) |
|
| 3153 | - ) { |
|
| 3154 | - include_spip('inc/distant'); |
|
| 3155 | - $contenu = recuperer_url($css); |
|
| 3156 | - $contenu = $contenu['page'] ?? ''; |
|
| 3157 | - if (!$contenu) { |
|
| 3158 | - return $css; |
|
| 3159 | - } |
|
| 3160 | - } |
|
| 3161 | - } elseif (!lire_fichier($css, $contenu)) { |
|
| 3162 | - return $css; |
|
| 3163 | - } |
|
| 3149 | + if ($url_absolue_css == $css) { |
|
| 3150 | + if ( |
|
| 3151 | + strncmp($GLOBALS['meta']['adresse_site'], $css, $l = strlen($GLOBALS['meta']['adresse_site'])) != 0 |
|
| 3152 | + or !lire_fichier(_DIR_RACINE . substr($css, $l), $contenu) |
|
| 3153 | + ) { |
|
| 3154 | + include_spip('inc/distant'); |
|
| 3155 | + $contenu = recuperer_url($css); |
|
| 3156 | + $contenu = $contenu['page'] ?? ''; |
|
| 3157 | + if (!$contenu) { |
|
| 3158 | + return $css; |
|
| 3159 | + } |
|
| 3160 | + } |
|
| 3161 | + } elseif (!lire_fichier($css, $contenu)) { |
|
| 3162 | + return $css; |
|
| 3163 | + } |
|
| 3164 | 3164 | |
| 3165 | - // passer les url relatives a la css d'origine en url absolues |
|
| 3166 | - $contenu = urls_absolues_css($contenu, $css); |
|
| 3165 | + // passer les url relatives a la css d'origine en url absolues |
|
| 3166 | + $contenu = urls_absolues_css($contenu, $css); |
|
| 3167 | 3167 | |
| 3168 | - // ecrire la css |
|
| 3169 | - if (!ecrire_fichier($f, $contenu)) { |
|
| 3170 | - return $css; |
|
| 3171 | - } |
|
| 3168 | + // ecrire la css |
|
| 3169 | + if (!ecrire_fichier($f, $contenu)) { |
|
| 3170 | + return $css; |
|
| 3171 | + } |
|
| 3172 | 3172 | |
| 3173 | - return $f; |
|
| 3173 | + return $f; |
|
| 3174 | 3174 | } |
| 3175 | 3175 | |
| 3176 | 3176 | |
@@ -3204,24 +3204,24 @@ discard block |
||
| 3204 | 3204 | * Valeur trouvée ou valeur par défaut. |
| 3205 | 3205 | **/ |
| 3206 | 3206 | function table_valeur($table, $cle, $defaut = '', $conserver_null = false) { |
| 3207 | - foreach (explode('/', $cle) as $k) { |
|
| 3208 | - $table = (is_string($table) ? @unserialize($table) : $table); |
|
| 3207 | + foreach (explode('/', $cle) as $k) { |
|
| 3208 | + $table = (is_string($table) ? @unserialize($table) : $table); |
|
| 3209 | 3209 | |
| 3210 | - if (is_object($table)) { |
|
| 3211 | - $table = (($k !== '') and isset($table->$k)) ? $table->$k : $defaut; |
|
| 3212 | - } elseif (is_array($table)) { |
|
| 3213 | - if ($conserver_null) { |
|
| 3214 | - $table = array_key_exists($k, $table) ? $table[$k] : $defaut; |
|
| 3215 | - } else { |
|
| 3216 | - $table = ($table[$k] ?? $defaut); |
|
| 3217 | - } |
|
| 3218 | - } else { |
|
| 3219 | - $table = $defaut; |
|
| 3220 | - break; |
|
| 3221 | - } |
|
| 3222 | - } |
|
| 3210 | + if (is_object($table)) { |
|
| 3211 | + $table = (($k !== '') and isset($table->$k)) ? $table->$k : $defaut; |
|
| 3212 | + } elseif (is_array($table)) { |
|
| 3213 | + if ($conserver_null) { |
|
| 3214 | + $table = array_key_exists($k, $table) ? $table[$k] : $defaut; |
|
| 3215 | + } else { |
|
| 3216 | + $table = ($table[$k] ?? $defaut); |
|
| 3217 | + } |
|
| 3218 | + } else { |
|
| 3219 | + $table = $defaut; |
|
| 3220 | + break; |
|
| 3221 | + } |
|
| 3222 | + } |
|
| 3223 | 3223 | |
| 3224 | - return $table; |
|
| 3224 | + return $table; |
|
| 3225 | 3225 | } |
| 3226 | 3226 | |
| 3227 | 3227 | /** |
@@ -3254,22 +3254,22 @@ discard block |
||
| 3254 | 3254 | * - string : expression trouvée. |
| 3255 | 3255 | **/ |
| 3256 | 3256 | function filtre_match_dist(?string $texte, $expression, $modif = 'UimsS', $capte = 0) { |
| 3257 | - if (intval($modif) and $capte == 0) { |
|
| 3258 | - $capte = $modif; |
|
| 3259 | - $modif = 'UimsS'; |
|
| 3260 | - } |
|
| 3261 | - $expression = str_replace('\/', '/', $expression); |
|
| 3262 | - $expression = str_replace('/', '\/', $expression); |
|
| 3257 | + if (intval($modif) and $capte == 0) { |
|
| 3258 | + $capte = $modif; |
|
| 3259 | + $modif = 'UimsS'; |
|
| 3260 | + } |
|
| 3261 | + $expression = str_replace('\/', '/', $expression); |
|
| 3262 | + $expression = str_replace('/', '\/', $expression); |
|
| 3263 | 3263 | |
| 3264 | - if (preg_match('/' . $expression . '/' . $modif, $texte ?? '', $r)) { |
|
| 3265 | - if (isset($r[$capte])) { |
|
| 3266 | - return $r[$capte]; |
|
| 3267 | - } else { |
|
| 3268 | - return true; |
|
| 3269 | - } |
|
| 3270 | - } |
|
| 3264 | + if (preg_match('/' . $expression . '/' . $modif, $texte ?? '', $r)) { |
|
| 3265 | + if (isset($r[$capte])) { |
|
| 3266 | + return $r[$capte]; |
|
| 3267 | + } else { |
|
| 3268 | + return true; |
|
| 3269 | + } |
|
| 3270 | + } |
|
| 3271 | 3271 | |
| 3272 | - return false; |
|
| 3272 | + return false; |
|
| 3273 | 3273 | } |
| 3274 | 3274 | |
| 3275 | 3275 | |
@@ -3296,10 +3296,10 @@ discard block |
||
| 3296 | 3296 | * Texte |
| 3297 | 3297 | **/ |
| 3298 | 3298 | function replace($texte, $expression, $replace = '', $modif = 'UimsS') { |
| 3299 | - $expression = str_replace('\/', '/', $expression); |
|
| 3300 | - $expression = str_replace('/', '\/', $expression); |
|
| 3299 | + $expression = str_replace('\/', '/', $expression); |
|
| 3300 | + $expression = str_replace('/', '\/', $expression); |
|
| 3301 | 3301 | |
| 3302 | - return preg_replace('/' . $expression . '/' . $modif, $replace, $texte); |
|
| 3302 | + return preg_replace('/' . $expression . '/' . $modif, $replace, $texte); |
|
| 3303 | 3303 | } |
| 3304 | 3304 | |
| 3305 | 3305 | |
@@ -3317,25 +3317,25 @@ discard block |
||
| 3317 | 3317 | **/ |
| 3318 | 3318 | function traiter_doublons_documents(&$doublons, $letexte) { |
| 3319 | 3319 | |
| 3320 | - // Verifier dans le texte & les notes (pas beau, helas) |
|
| 3321 | - $t = $letexte . $GLOBALS['les_notes']; |
|
| 3320 | + // Verifier dans le texte & les notes (pas beau, helas) |
|
| 3321 | + $t = $letexte . $GLOBALS['les_notes']; |
|
| 3322 | 3322 | |
| 3323 | - if ( |
|
| 3324 | - strstr($t, 'spip_document_') // evite le preg_match_all si inutile |
|
| 3325 | - and preg_match_all( |
|
| 3326 | - ',<[^>]+\sclass=["\']spip_document_([0-9]+)[\s"\'],imsS', |
|
| 3327 | - $t, |
|
| 3328 | - $matches, |
|
| 3329 | - PREG_PATTERN_ORDER |
|
| 3330 | - ) |
|
| 3331 | - ) { |
|
| 3332 | - if (!isset($doublons['documents'])) { |
|
| 3333 | - $doublons['documents'] = ''; |
|
| 3334 | - } |
|
| 3335 | - $doublons['documents'] .= ',' . join(',', $matches[1]); |
|
| 3336 | - } |
|
| 3323 | + if ( |
|
| 3324 | + strstr($t, 'spip_document_') // evite le preg_match_all si inutile |
|
| 3325 | + and preg_match_all( |
|
| 3326 | + ',<[^>]+\sclass=["\']spip_document_([0-9]+)[\s"\'],imsS', |
|
| 3327 | + $t, |
|
| 3328 | + $matches, |
|
| 3329 | + PREG_PATTERN_ORDER |
|
| 3330 | + ) |
|
| 3331 | + ) { |
|
| 3332 | + if (!isset($doublons['documents'])) { |
|
| 3333 | + $doublons['documents'] = ''; |
|
| 3334 | + } |
|
| 3335 | + $doublons['documents'] .= ',' . join(',', $matches[1]); |
|
| 3336 | + } |
|
| 3337 | 3337 | |
| 3338 | - return $letexte; |
|
| 3338 | + return $letexte; |
|
| 3339 | 3339 | } |
| 3340 | 3340 | |
| 3341 | 3341 | /** |
@@ -3349,7 +3349,7 @@ discard block |
||
| 3349 | 3349 | * @return string Chaîne vide |
| 3350 | 3350 | **/ |
| 3351 | 3351 | function vide($texte) { |
| 3352 | - return ''; |
|
| 3352 | + return ''; |
|
| 3353 | 3353 | } |
| 3354 | 3354 | |
| 3355 | 3355 | // |
@@ -3378,23 +3378,23 @@ discard block |
||
| 3378 | 3378 | * Code HTML résultant |
| 3379 | 3379 | **/ |
| 3380 | 3380 | function env_to_params($env, $ignore_params = []) { |
| 3381 | - $ignore_params = array_merge( |
|
| 3382 | - ['id', 'lang', 'id_document', 'date', 'date_redac', 'align', 'fond', '', 'recurs', 'emb', 'dir_racine'], |
|
| 3383 | - $ignore_params |
|
| 3384 | - ); |
|
| 3385 | - if (!is_array($env)) { |
|
| 3386 | - $env = unserialize($env); |
|
| 3387 | - } |
|
| 3388 | - $texte = ''; |
|
| 3389 | - if ($env) { |
|
| 3390 | - foreach ($env as $i => $j) { |
|
| 3391 | - if (is_string($j) and !in_array($i, $ignore_params)) { |
|
| 3392 | - $texte .= "<param name='" . attribut_html($i) . "'\n\tvalue='" . attribut_html($j) . "' />"; |
|
| 3393 | - } |
|
| 3394 | - } |
|
| 3395 | - } |
|
| 3396 | - |
|
| 3397 | - return $texte; |
|
| 3381 | + $ignore_params = array_merge( |
|
| 3382 | + ['id', 'lang', 'id_document', 'date', 'date_redac', 'align', 'fond', '', 'recurs', 'emb', 'dir_racine'], |
|
| 3383 | + $ignore_params |
|
| 3384 | + ); |
|
| 3385 | + if (!is_array($env)) { |
|
| 3386 | + $env = unserialize($env); |
|
| 3387 | + } |
|
| 3388 | + $texte = ''; |
|
| 3389 | + if ($env) { |
|
| 3390 | + foreach ($env as $i => $j) { |
|
| 3391 | + if (is_string($j) and !in_array($i, $ignore_params)) { |
|
| 3392 | + $texte .= "<param name='" . attribut_html($i) . "'\n\tvalue='" . attribut_html($j) . "' />"; |
|
| 3393 | + } |
|
| 3394 | + } |
|
| 3395 | + } |
|
| 3396 | + |
|
| 3397 | + return $texte; |
|
| 3398 | 3398 | } |
| 3399 | 3399 | |
| 3400 | 3400 | /** |
@@ -3417,23 +3417,23 @@ discard block |
||
| 3417 | 3417 | * Code HTML résultant |
| 3418 | 3418 | **/ |
| 3419 | 3419 | function env_to_attributs($env, $ignore_params = []) { |
| 3420 | - $ignore_params = array_merge( |
|
| 3421 | - ['id', 'lang', 'id_document', 'date', 'date_redac', 'align', 'fond', '', 'recurs', 'emb', 'dir_racine'], |
|
| 3422 | - $ignore_params |
|
| 3423 | - ); |
|
| 3424 | - if (!is_array($env)) { |
|
| 3425 | - $env = unserialize($env); |
|
| 3426 | - } |
|
| 3427 | - $texte = ''; |
|
| 3428 | - if ($env) { |
|
| 3429 | - foreach ($env as $i => $j) { |
|
| 3430 | - if (is_string($j) and !in_array($i, $ignore_params)) { |
|
| 3431 | - $texte .= attribut_html($i) . "='" . attribut_html($j) . "' "; |
|
| 3432 | - } |
|
| 3433 | - } |
|
| 3434 | - } |
|
| 3420 | + $ignore_params = array_merge( |
|
| 3421 | + ['id', 'lang', 'id_document', 'date', 'date_redac', 'align', 'fond', '', 'recurs', 'emb', 'dir_racine'], |
|
| 3422 | + $ignore_params |
|
| 3423 | + ); |
|
| 3424 | + if (!is_array($env)) { |
|
| 3425 | + $env = unserialize($env); |
|
| 3426 | + } |
|
| 3427 | + $texte = ''; |
|
| 3428 | + if ($env) { |
|
| 3429 | + foreach ($env as $i => $j) { |
|
| 3430 | + if (is_string($j) and !in_array($i, $ignore_params)) { |
|
| 3431 | + $texte .= attribut_html($i) . "='" . attribut_html($j) . "' "; |
|
| 3432 | + } |
|
| 3433 | + } |
|
| 3434 | + } |
|
| 3435 | 3435 | |
| 3436 | - return $texte; |
|
| 3436 | + return $texte; |
|
| 3437 | 3437 | } |
| 3438 | 3438 | |
| 3439 | 3439 | |
@@ -3451,7 +3451,7 @@ discard block |
||
| 3451 | 3451 | * @return string Chaînes concaténés |
| 3452 | 3452 | **/ |
| 3453 | 3453 | function concat(...$args): string { |
| 3454 | - return join('', $args); |
|
| 3454 | + return join('', $args); |
|
| 3455 | 3455 | } |
| 3456 | 3456 | |
| 3457 | 3457 | |
@@ -3471,23 +3471,23 @@ discard block |
||
| 3471 | 3471 | * Contenu du ou des fichiers, concaténé |
| 3472 | 3472 | **/ |
| 3473 | 3473 | function charge_scripts($files, $script = true) { |
| 3474 | - $flux = ''; |
|
| 3475 | - foreach (is_array($files) ? $files : explode('|', $files) as $file) { |
|
| 3476 | - if (!is_string($file)) { |
|
| 3477 | - continue; |
|
| 3478 | - } |
|
| 3479 | - if ($script) { |
|
| 3480 | - $file = preg_match(',^\w+$,', $file) ? "javascript/$file.js" : ''; |
|
| 3481 | - } |
|
| 3482 | - if ($file) { |
|
| 3483 | - $path = find_in_path($file); |
|
| 3484 | - if ($path) { |
|
| 3485 | - $flux .= spip_file_get_contents($path); |
|
| 3486 | - } |
|
| 3487 | - } |
|
| 3488 | - } |
|
| 3489 | - |
|
| 3490 | - return $flux; |
|
| 3474 | + $flux = ''; |
|
| 3475 | + foreach (is_array($files) ? $files : explode('|', $files) as $file) { |
|
| 3476 | + if (!is_string($file)) { |
|
| 3477 | + continue; |
|
| 3478 | + } |
|
| 3479 | + if ($script) { |
|
| 3480 | + $file = preg_match(',^\w+$,', $file) ? "javascript/$file.js" : ''; |
|
| 3481 | + } |
|
| 3482 | + if ($file) { |
|
| 3483 | + $path = find_in_path($file); |
|
| 3484 | + if ($path) { |
|
| 3485 | + $flux .= spip_file_get_contents($path); |
|
| 3486 | + } |
|
| 3487 | + } |
|
| 3488 | + } |
|
| 3489 | + |
|
| 3490 | + return $flux; |
|
| 3491 | 3491 | } |
| 3492 | 3492 | |
| 3493 | 3493 | /** |
@@ -3498,22 +3498,22 @@ discard block |
||
| 3498 | 3498 | * @return string |
| 3499 | 3499 | */ |
| 3500 | 3500 | function http_img_variante_svg_si_possible($img_file) { |
| 3501 | - // on peut fournir une icone generique -xx.svg qui fera le job dans toutes les tailles, et qui est prioritaire sur le png |
|
| 3502 | - // si il y a un .svg a la bonne taille (-16.svg) a cote, on l'utilise en remplacement du -16.png |
|
| 3503 | - if ( |
|
| 3504 | - preg_match(',-(\d+)[.](png|gif|svg)$,', $img_file, $m) |
|
| 3505 | - and $variante_svg_generique = substr($img_file, 0, -strlen($m[0])) . '-xx.svg' |
|
| 3506 | - and file_exists($variante_svg_generique) |
|
| 3507 | - ) { |
|
| 3508 | - if ($variante_svg_size = substr($variante_svg_generique, 0, -6) . $m[1] . '.svg' and file_exists($variante_svg_size)) { |
|
| 3509 | - $img_file = $variante_svg_size; |
|
| 3510 | - } |
|
| 3511 | - else { |
|
| 3512 | - $img_file = $variante_svg_generique; |
|
| 3513 | - } |
|
| 3514 | - } |
|
| 3501 | + // on peut fournir une icone generique -xx.svg qui fera le job dans toutes les tailles, et qui est prioritaire sur le png |
|
| 3502 | + // si il y a un .svg a la bonne taille (-16.svg) a cote, on l'utilise en remplacement du -16.png |
|
| 3503 | + if ( |
|
| 3504 | + preg_match(',-(\d+)[.](png|gif|svg)$,', $img_file, $m) |
|
| 3505 | + and $variante_svg_generique = substr($img_file, 0, -strlen($m[0])) . '-xx.svg' |
|
| 3506 | + and file_exists($variante_svg_generique) |
|
| 3507 | + ) { |
|
| 3508 | + if ($variante_svg_size = substr($variante_svg_generique, 0, -6) . $m[1] . '.svg' and file_exists($variante_svg_size)) { |
|
| 3509 | + $img_file = $variante_svg_size; |
|
| 3510 | + } |
|
| 3511 | + else { |
|
| 3512 | + $img_file = $variante_svg_generique; |
|
| 3513 | + } |
|
| 3514 | + } |
|
| 3515 | 3515 | |
| 3516 | - return $img_file; |
|
| 3516 | + return $img_file; |
|
| 3517 | 3517 | } |
| 3518 | 3518 | |
| 3519 | 3519 | /** |
@@ -3534,54 +3534,54 @@ discard block |
||
| 3534 | 3534 | */ |
| 3535 | 3535 | function http_img_pack($img, $alt, $atts = '', $title = '', $options = []) { |
| 3536 | 3536 | |
| 3537 | - $img_file = $img; |
|
| 3538 | - if ($p = strpos($img_file, '?')) { |
|
| 3539 | - $img_file = substr($img_file, 0, $p); |
|
| 3540 | - } |
|
| 3541 | - if (!isset($options['chemin_image']) or $options['chemin_image'] == true) { |
|
| 3542 | - $img_file = chemin_image($img); |
|
| 3543 | - } |
|
| 3544 | - else { |
|
| 3545 | - if (!isset($options['variante_svg_si_possible']) or $options['variante_svg_si_possible'] == true) { |
|
| 3546 | - $img_file = http_img_variante_svg_si_possible($img_file); |
|
| 3547 | - } |
|
| 3548 | - } |
|
| 3549 | - if (stripos($atts, 'width') === false) { |
|
| 3550 | - // utiliser directement l'info de taille presente dans le nom |
|
| 3551 | - if ( |
|
| 3552 | - (!isset($options['utiliser_suffixe_size']) |
|
| 3553 | - or $options['utiliser_suffixe_size'] == true |
|
| 3554 | - or strpos($img_file, '-xx.svg') !== false) |
|
| 3555 | - and (preg_match(',-([0-9]+)[.](png|gif|svg)$,', $img, $regs) |
|
| 3556 | - or preg_match(',\?([0-9]+)px$,', $img, $regs)) |
|
| 3557 | - ) { |
|
| 3558 | - $largeur = $hauteur = intval($regs[1]); |
|
| 3559 | - } else { |
|
| 3560 | - $taille = taille_image($img_file); |
|
| 3561 | - [$hauteur, $largeur] = $taille; |
|
| 3562 | - if (!$hauteur or !$largeur) { |
|
| 3563 | - return ''; |
|
| 3564 | - } |
|
| 3565 | - } |
|
| 3566 | - $atts .= " width='" . $largeur . "' height='" . $hauteur . "'"; |
|
| 3567 | - } |
|
| 3568 | - |
|
| 3569 | - if (file_exists($img_file)) { |
|
| 3570 | - $img_file = timestamp($img_file); |
|
| 3571 | - } |
|
| 3572 | - if ($alt === false) { |
|
| 3573 | - $alt = ''; |
|
| 3574 | - } |
|
| 3575 | - elseif ($alt or $alt === '') { |
|
| 3576 | - $alt = " alt='" . attribut_html($alt) . "'"; |
|
| 3577 | - } |
|
| 3578 | - else { |
|
| 3579 | - $alt = " alt='" . attribut_html($title) . "'"; |
|
| 3580 | - } |
|
| 3581 | - return "<img src='$img_file'$alt" |
|
| 3582 | - . ($title ? ' title="' . attribut_html($title) . '"' : '') |
|
| 3583 | - . ' ' . ltrim($atts) |
|
| 3584 | - . ' />'; |
|
| 3537 | + $img_file = $img; |
|
| 3538 | + if ($p = strpos($img_file, '?')) { |
|
| 3539 | + $img_file = substr($img_file, 0, $p); |
|
| 3540 | + } |
|
| 3541 | + if (!isset($options['chemin_image']) or $options['chemin_image'] == true) { |
|
| 3542 | + $img_file = chemin_image($img); |
|
| 3543 | + } |
|
| 3544 | + else { |
|
| 3545 | + if (!isset($options['variante_svg_si_possible']) or $options['variante_svg_si_possible'] == true) { |
|
| 3546 | + $img_file = http_img_variante_svg_si_possible($img_file); |
|
| 3547 | + } |
|
| 3548 | + } |
|
| 3549 | + if (stripos($atts, 'width') === false) { |
|
| 3550 | + // utiliser directement l'info de taille presente dans le nom |
|
| 3551 | + if ( |
|
| 3552 | + (!isset($options['utiliser_suffixe_size']) |
|
| 3553 | + or $options['utiliser_suffixe_size'] == true |
|
| 3554 | + or strpos($img_file, '-xx.svg') !== false) |
|
| 3555 | + and (preg_match(',-([0-9]+)[.](png|gif|svg)$,', $img, $regs) |
|
| 3556 | + or preg_match(',\?([0-9]+)px$,', $img, $regs)) |
|
| 3557 | + ) { |
|
| 3558 | + $largeur = $hauteur = intval($regs[1]); |
|
| 3559 | + } else { |
|
| 3560 | + $taille = taille_image($img_file); |
|
| 3561 | + [$hauteur, $largeur] = $taille; |
|
| 3562 | + if (!$hauteur or !$largeur) { |
|
| 3563 | + return ''; |
|
| 3564 | + } |
|
| 3565 | + } |
|
| 3566 | + $atts .= " width='" . $largeur . "' height='" . $hauteur . "'"; |
|
| 3567 | + } |
|
| 3568 | + |
|
| 3569 | + if (file_exists($img_file)) { |
|
| 3570 | + $img_file = timestamp($img_file); |
|
| 3571 | + } |
|
| 3572 | + if ($alt === false) { |
|
| 3573 | + $alt = ''; |
|
| 3574 | + } |
|
| 3575 | + elseif ($alt or $alt === '') { |
|
| 3576 | + $alt = " alt='" . attribut_html($alt) . "'"; |
|
| 3577 | + } |
|
| 3578 | + else { |
|
| 3579 | + $alt = " alt='" . attribut_html($title) . "'"; |
|
| 3580 | + } |
|
| 3581 | + return "<img src='$img_file'$alt" |
|
| 3582 | + . ($title ? ' title="' . attribut_html($title) . '"' : '') |
|
| 3583 | + . ' ' . ltrim($atts) |
|
| 3584 | + . ' />'; |
|
| 3585 | 3585 | } |
| 3586 | 3586 | |
| 3587 | 3587 | /** |
@@ -3593,70 +3593,70 @@ discard block |
||
| 3593 | 3593 | * @return string |
| 3594 | 3594 | */ |
| 3595 | 3595 | function http_style_background($img, $att = '', $size = null) { |
| 3596 | - if ($size and is_numeric($size)) { |
|
| 3597 | - $size = trim($size) . 'px'; |
|
| 3598 | - } |
|
| 3599 | - return " style='background" . |
|
| 3600 | - ($att ? '' : '-image') . ': url("' . chemin_image($img) . '")' . ($att ? (' ' . $att) : '') . ';' |
|
| 3601 | - . ($size ? "background-size:{$size};" : '') |
|
| 3602 | - . "'"; |
|
| 3596 | + if ($size and is_numeric($size)) { |
|
| 3597 | + $size = trim($size) . 'px'; |
|
| 3598 | + } |
|
| 3599 | + return " style='background" . |
|
| 3600 | + ($att ? '' : '-image') . ': url("' . chemin_image($img) . '")' . ($att ? (' ' . $att) : '') . ';' |
|
| 3601 | + . ($size ? "background-size:{$size};" : '') |
|
| 3602 | + . "'"; |
|
| 3603 | 3603 | } |
| 3604 | 3604 | |
| 3605 | 3605 | |
| 3606 | 3606 | function helper_filtre_balise_img_svg_arguments($alt_or_size, $class_or_size, $size) { |
| 3607 | - $args = [$alt_or_size, $class_or_size, $size]; |
|
| 3608 | - while (is_null(end($args)) and count($args)) { |
|
| 3609 | - array_pop($args); |
|
| 3610 | - } |
|
| 3611 | - if (!count($args)) { |
|
| 3612 | - return [null, null, null]; |
|
| 3613 | - } |
|
| 3614 | - if (count($args) < 3) { |
|
| 3615 | - $maybe_size = array_pop($args); |
|
| 3616 | - // @2x |
|
| 3617 | - // @1.5x |
|
| 3618 | - // 512 |
|
| 3619 | - // 512x* |
|
| 3620 | - // 512x300 |
|
| 3621 | - if ( |
|
| 3622 | - !strlen($maybe_size) |
|
| 3623 | - or !preg_match(',^(@\d+(\.\d+)?x|\d+(x\*)?|\d+x\d+)$,', trim($maybe_size)) |
|
| 3624 | - ) { |
|
| 3625 | - $args[] = $maybe_size; |
|
| 3626 | - $maybe_size = null; |
|
| 3627 | - } |
|
| 3628 | - while (count($args) < 2) { |
|
| 3629 | - $args[] = null; // default alt or class |
|
| 3630 | - } |
|
| 3631 | - $args[] = $maybe_size; |
|
| 3632 | - } |
|
| 3633 | - return $args; |
|
| 3607 | + $args = [$alt_or_size, $class_or_size, $size]; |
|
| 3608 | + while (is_null(end($args)) and count($args)) { |
|
| 3609 | + array_pop($args); |
|
| 3610 | + } |
|
| 3611 | + if (!count($args)) { |
|
| 3612 | + return [null, null, null]; |
|
| 3613 | + } |
|
| 3614 | + if (count($args) < 3) { |
|
| 3615 | + $maybe_size = array_pop($args); |
|
| 3616 | + // @2x |
|
| 3617 | + // @1.5x |
|
| 3618 | + // 512 |
|
| 3619 | + // 512x* |
|
| 3620 | + // 512x300 |
|
| 3621 | + if ( |
|
| 3622 | + !strlen($maybe_size) |
|
| 3623 | + or !preg_match(',^(@\d+(\.\d+)?x|\d+(x\*)?|\d+x\d+)$,', trim($maybe_size)) |
|
| 3624 | + ) { |
|
| 3625 | + $args[] = $maybe_size; |
|
| 3626 | + $maybe_size = null; |
|
| 3627 | + } |
|
| 3628 | + while (count($args) < 2) { |
|
| 3629 | + $args[] = null; // default alt or class |
|
| 3630 | + } |
|
| 3631 | + $args[] = $maybe_size; |
|
| 3632 | + } |
|
| 3633 | + return $args; |
|
| 3634 | 3634 | } |
| 3635 | 3635 | |
| 3636 | 3636 | function helper_filtre_balise_img_svg_size($img, $size) { |
| 3637 | - // si size est de la forme '@2x' c'est un coeff multiplicateur sur la densite |
|
| 3638 | - if (strpos($size, '@') === 0 and substr($size, -1) === 'x') { |
|
| 3639 | - $coef = floatval(substr($size, 1, -1)); |
|
| 3640 | - [$h, $w] = taille_image($img); |
|
| 3641 | - $height = intval(round($h / $coef)); |
|
| 3642 | - $width = intval(round($w / $coef)); |
|
| 3643 | - } |
|
| 3644 | - // sinon c'est une valeur seule si image caree ou largeurxhauteur |
|
| 3645 | - else { |
|
| 3646 | - $size = explode('x', $size, 2); |
|
| 3647 | - $size = array_map('trim', $size); |
|
| 3648 | - $height = $width = intval(array_shift($size)); |
|
| 3649 | - |
|
| 3650 | - if (count($size) and reset($size)) { |
|
| 3651 | - $height = array_shift($size); |
|
| 3652 | - if ($height === '*') { |
|
| 3653 | - [$h, $w] = taille_image($img); |
|
| 3654 | - $height = intval(round($h * $width / $w)); |
|
| 3655 | - } |
|
| 3656 | - } |
|
| 3657 | - } |
|
| 3658 | - |
|
| 3659 | - return [$width, $height]; |
|
| 3637 | + // si size est de la forme '@2x' c'est un coeff multiplicateur sur la densite |
|
| 3638 | + if (strpos($size, '@') === 0 and substr($size, -1) === 'x') { |
|
| 3639 | + $coef = floatval(substr($size, 1, -1)); |
|
| 3640 | + [$h, $w] = taille_image($img); |
|
| 3641 | + $height = intval(round($h / $coef)); |
|
| 3642 | + $width = intval(round($w / $coef)); |
|
| 3643 | + } |
|
| 3644 | + // sinon c'est une valeur seule si image caree ou largeurxhauteur |
|
| 3645 | + else { |
|
| 3646 | + $size = explode('x', $size, 2); |
|
| 3647 | + $size = array_map('trim', $size); |
|
| 3648 | + $height = $width = intval(array_shift($size)); |
|
| 3649 | + |
|
| 3650 | + if (count($size) and reset($size)) { |
|
| 3651 | + $height = array_shift($size); |
|
| 3652 | + if ($height === '*') { |
|
| 3653 | + [$h, $w] = taille_image($img); |
|
| 3654 | + $height = intval(round($h * $width / $w)); |
|
| 3655 | + } |
|
| 3656 | + } |
|
| 3657 | + } |
|
| 3658 | + |
|
| 3659 | + return [$width, $height]; |
|
| 3660 | 3660 | } |
| 3661 | 3661 | |
| 3662 | 3662 | /** |
@@ -3692,43 +3692,43 @@ discard block |
||
| 3692 | 3692 | */ |
| 3693 | 3693 | function filtre_balise_img_dist($img, $alt = '', $class = null, $size = null) { |
| 3694 | 3694 | |
| 3695 | - [$alt, $class, $size] = helper_filtre_balise_img_svg_arguments($alt, $class, $size); |
|
| 3696 | - |
|
| 3697 | - $img = trim((string) $img); |
|
| 3698 | - if (strpos($img, '<img') === 0) { |
|
| 3699 | - if (!is_null($alt)) { |
|
| 3700 | - $img = inserer_attribut($img, 'alt', $alt); |
|
| 3701 | - } |
|
| 3702 | - if (!is_null($class)) { |
|
| 3703 | - if (strlen($class)) { |
|
| 3704 | - $img = inserer_attribut($img, 'class', $class); |
|
| 3705 | - } |
|
| 3706 | - else { |
|
| 3707 | - $img = vider_attribut($img, 'class'); |
|
| 3708 | - } |
|
| 3709 | - } |
|
| 3710 | - } |
|
| 3711 | - else { |
|
| 3712 | - $img = http_img_pack( |
|
| 3713 | - $img, |
|
| 3714 | - $alt, |
|
| 3715 | - $class ? " class='" . attribut_html($class) . "'" : '', |
|
| 3716 | - '', |
|
| 3717 | - ['chemin_image' => false, 'utiliser_suffixe_size' => false] |
|
| 3718 | - ); |
|
| 3719 | - if (is_null($alt)) { |
|
| 3720 | - $img = vider_attribut($img, 'alt'); |
|
| 3721 | - } |
|
| 3722 | - } |
|
| 3723 | - |
|
| 3724 | - if ($img and !is_null($size) and strlen($size = trim($size))) { |
|
| 3725 | - [$width, $height] = helper_filtre_balise_img_svg_size($img, $size); |
|
| 3726 | - |
|
| 3727 | - $img = inserer_attribut($img, 'width', $width); |
|
| 3728 | - $img = inserer_attribut($img, 'height', $height); |
|
| 3729 | - } |
|
| 3730 | - |
|
| 3731 | - return $img; |
|
| 3695 | + [$alt, $class, $size] = helper_filtre_balise_img_svg_arguments($alt, $class, $size); |
|
| 3696 | + |
|
| 3697 | + $img = trim((string) $img); |
|
| 3698 | + if (strpos($img, '<img') === 0) { |
|
| 3699 | + if (!is_null($alt)) { |
|
| 3700 | + $img = inserer_attribut($img, 'alt', $alt); |
|
| 3701 | + } |
|
| 3702 | + if (!is_null($class)) { |
|
| 3703 | + if (strlen($class)) { |
|
| 3704 | + $img = inserer_attribut($img, 'class', $class); |
|
| 3705 | + } |
|
| 3706 | + else { |
|
| 3707 | + $img = vider_attribut($img, 'class'); |
|
| 3708 | + } |
|
| 3709 | + } |
|
| 3710 | + } |
|
| 3711 | + else { |
|
| 3712 | + $img = http_img_pack( |
|
| 3713 | + $img, |
|
| 3714 | + $alt, |
|
| 3715 | + $class ? " class='" . attribut_html($class) . "'" : '', |
|
| 3716 | + '', |
|
| 3717 | + ['chemin_image' => false, 'utiliser_suffixe_size' => false] |
|
| 3718 | + ); |
|
| 3719 | + if (is_null($alt)) { |
|
| 3720 | + $img = vider_attribut($img, 'alt'); |
|
| 3721 | + } |
|
| 3722 | + } |
|
| 3723 | + |
|
| 3724 | + if ($img and !is_null($size) and strlen($size = trim($size))) { |
|
| 3725 | + [$width, $height] = helper_filtre_balise_img_svg_size($img, $size); |
|
| 3726 | + |
|
| 3727 | + $img = inserer_attribut($img, 'width', $width); |
|
| 3728 | + $img = inserer_attribut($img, 'height', $height); |
|
| 3729 | + } |
|
| 3730 | + |
|
| 3731 | + return $img; |
|
| 3732 | 3732 | } |
| 3733 | 3733 | |
| 3734 | 3734 | |
@@ -3762,80 +3762,80 @@ discard block |
||
| 3762 | 3762 | */ |
| 3763 | 3763 | function filtre_balise_svg_dist($img, $alt = '', $class = null, $size = null) { |
| 3764 | 3764 | |
| 3765 | - $svg = null; |
|
| 3766 | - $img = trim($img); |
|
| 3767 | - $img_file = $img; |
|
| 3768 | - if (strpos($img, '<svg') === false) { |
|
| 3769 | - if ($p = strpos($img_file, '?')) { |
|
| 3770 | - $img_file = substr($img_file, 0, $p); |
|
| 3771 | - } |
|
| 3772 | - |
|
| 3773 | - // ne jamais operer directement sur une image distante pour des raisons de perfo |
|
| 3774 | - // la copie locale a toutes les chances d'etre la ou de resservir |
|
| 3775 | - if (tester_url_absolue($img_file)) { |
|
| 3776 | - include_spip('inc/distant'); |
|
| 3777 | - $fichier = copie_locale($img_file); |
|
| 3778 | - $img_file = ($fichier ? _DIR_RACINE . $fichier : $img_file); |
|
| 3779 | - } |
|
| 3780 | - |
|
| 3781 | - if ( |
|
| 3782 | - !$img_file |
|
| 3783 | - or !file_exists($img_file) |
|
| 3784 | - or !$svg = file_get_contents($img_file) |
|
| 3785 | - ) { |
|
| 3786 | - return ''; |
|
| 3787 | - } |
|
| 3788 | - } |
|
| 3789 | - |
|
| 3790 | - if (!preg_match(",<svg\b[^>]*>,UimsS", $svg, $match)) { |
|
| 3791 | - return ''; |
|
| 3792 | - } |
|
| 3793 | - |
|
| 3794 | - [$alt, $class, $size] = helper_filtre_balise_img_svg_arguments($alt, $class, $size); |
|
| 3795 | - |
|
| 3796 | - $balise_svg = $match[0]; |
|
| 3797 | - $balise_svg_source = $balise_svg; |
|
| 3798 | - |
|
| 3799 | - // entete XML à supprimer |
|
| 3800 | - $svg = preg_replace(',^\s*<\?xml[^>]*\?' . '>,', '', $svg); |
|
| 3801 | - |
|
| 3802 | - // IE est toujours mon ami |
|
| 3803 | - $balise_svg = inserer_attribut($balise_svg, 'focusable', 'false'); |
|
| 3804 | - |
|
| 3805 | - // regler la classe |
|
| 3806 | - if (!is_null($class)) { |
|
| 3807 | - if (strlen($class)) { |
|
| 3808 | - $balise_svg = inserer_attribut($balise_svg, 'class', $class); |
|
| 3809 | - } |
|
| 3810 | - else { |
|
| 3811 | - $balise_svg = vider_attribut($balise_svg, 'class'); |
|
| 3812 | - } |
|
| 3813 | - } |
|
| 3814 | - |
|
| 3815 | - // regler le alt |
|
| 3816 | - if ($alt) { |
|
| 3817 | - $balise_svg = inserer_attribut($balise_svg, 'role', 'img'); |
|
| 3818 | - $id = 'img-svg-title-' . substr(md5("$img_file:$svg:$alt"), 0, 4); |
|
| 3819 | - $balise_svg = inserer_attribut($balise_svg, 'aria-labelledby', $id); |
|
| 3820 | - $title = "<title id=\"$id\">" . entites_html($alt) . "</title>\n"; |
|
| 3821 | - $balise_svg .= $title; |
|
| 3822 | - } |
|
| 3823 | - else { |
|
| 3824 | - $balise_svg = inserer_attribut($balise_svg, 'aria-hidden', 'true'); |
|
| 3825 | - } |
|
| 3826 | - |
|
| 3827 | - $svg = str_replace($balise_svg_source, $balise_svg, $svg); |
|
| 3828 | - |
|
| 3829 | - if (!is_null($size) and strlen($size = trim($size))) { |
|
| 3830 | - [$width, $height] = helper_filtre_balise_img_svg_size($svg, $size); |
|
| 3831 | - |
|
| 3832 | - if (!function_exists('svg_redimensionner')) { |
|
| 3833 | - include_spip('inc/svg'); |
|
| 3834 | - } |
|
| 3835 | - $svg = svg_redimensionner($svg, $width, $height); |
|
| 3836 | - } |
|
| 3837 | - |
|
| 3838 | - return $svg; |
|
| 3765 | + $svg = null; |
|
| 3766 | + $img = trim($img); |
|
| 3767 | + $img_file = $img; |
|
| 3768 | + if (strpos($img, '<svg') === false) { |
|
| 3769 | + if ($p = strpos($img_file, '?')) { |
|
| 3770 | + $img_file = substr($img_file, 0, $p); |
|
| 3771 | + } |
|
| 3772 | + |
|
| 3773 | + // ne jamais operer directement sur une image distante pour des raisons de perfo |
|
| 3774 | + // la copie locale a toutes les chances d'etre la ou de resservir |
|
| 3775 | + if (tester_url_absolue($img_file)) { |
|
| 3776 | + include_spip('inc/distant'); |
|
| 3777 | + $fichier = copie_locale($img_file); |
|
| 3778 | + $img_file = ($fichier ? _DIR_RACINE . $fichier : $img_file); |
|
| 3779 | + } |
|
| 3780 | + |
|
| 3781 | + if ( |
|
| 3782 | + !$img_file |
|
| 3783 | + or !file_exists($img_file) |
|
| 3784 | + or !$svg = file_get_contents($img_file) |
|
| 3785 | + ) { |
|
| 3786 | + return ''; |
|
| 3787 | + } |
|
| 3788 | + } |
|
| 3789 | + |
|
| 3790 | + if (!preg_match(",<svg\b[^>]*>,UimsS", $svg, $match)) { |
|
| 3791 | + return ''; |
|
| 3792 | + } |
|
| 3793 | + |
|
| 3794 | + [$alt, $class, $size] = helper_filtre_balise_img_svg_arguments($alt, $class, $size); |
|
| 3795 | + |
|
| 3796 | + $balise_svg = $match[0]; |
|
| 3797 | + $balise_svg_source = $balise_svg; |
|
| 3798 | + |
|
| 3799 | + // entete XML à supprimer |
|
| 3800 | + $svg = preg_replace(',^\s*<\?xml[^>]*\?' . '>,', '', $svg); |
|
| 3801 | + |
|
| 3802 | + // IE est toujours mon ami |
|
| 3803 | + $balise_svg = inserer_attribut($balise_svg, 'focusable', 'false'); |
|
| 3804 | + |
|
| 3805 | + // regler la classe |
|
| 3806 | + if (!is_null($class)) { |
|
| 3807 | + if (strlen($class)) { |
|
| 3808 | + $balise_svg = inserer_attribut($balise_svg, 'class', $class); |
|
| 3809 | + } |
|
| 3810 | + else { |
|
| 3811 | + $balise_svg = vider_attribut($balise_svg, 'class'); |
|
| 3812 | + } |
|
| 3813 | + } |
|
| 3814 | + |
|
| 3815 | + // regler le alt |
|
| 3816 | + if ($alt) { |
|
| 3817 | + $balise_svg = inserer_attribut($balise_svg, 'role', 'img'); |
|
| 3818 | + $id = 'img-svg-title-' . substr(md5("$img_file:$svg:$alt"), 0, 4); |
|
| 3819 | + $balise_svg = inserer_attribut($balise_svg, 'aria-labelledby', $id); |
|
| 3820 | + $title = "<title id=\"$id\">" . entites_html($alt) . "</title>\n"; |
|
| 3821 | + $balise_svg .= $title; |
|
| 3822 | + } |
|
| 3823 | + else { |
|
| 3824 | + $balise_svg = inserer_attribut($balise_svg, 'aria-hidden', 'true'); |
|
| 3825 | + } |
|
| 3826 | + |
|
| 3827 | + $svg = str_replace($balise_svg_source, $balise_svg, $svg); |
|
| 3828 | + |
|
| 3829 | + if (!is_null($size) and strlen($size = trim($size))) { |
|
| 3830 | + [$width, $height] = helper_filtre_balise_img_svg_size($svg, $size); |
|
| 3831 | + |
|
| 3832 | + if (!function_exists('svg_redimensionner')) { |
|
| 3833 | + include_spip('inc/svg'); |
|
| 3834 | + } |
|
| 3835 | + $svg = svg_redimensionner($svg, $width, $height); |
|
| 3836 | + } |
|
| 3837 | + |
|
| 3838 | + return $svg; |
|
| 3839 | 3839 | } |
| 3840 | 3840 | |
| 3841 | 3841 | |
@@ -3861,18 +3861,18 @@ discard block |
||
| 3861 | 3861 | * Code HTML résultant |
| 3862 | 3862 | **/ |
| 3863 | 3863 | function filtre_foreach_dist($tableau, $modele = 'foreach') { |
| 3864 | - $texte = ''; |
|
| 3865 | - if (is_array($tableau)) { |
|
| 3866 | - foreach ($tableau as $k => $v) { |
|
| 3867 | - $res = recuperer_fond( |
|
| 3868 | - 'modeles/' . $modele, |
|
| 3869 | - array_merge(['cle' => $k], (is_array($v) ? $v : ['valeur' => $v])) |
|
| 3870 | - ); |
|
| 3871 | - $texte .= $res; |
|
| 3872 | - } |
|
| 3873 | - } |
|
| 3864 | + $texte = ''; |
|
| 3865 | + if (is_array($tableau)) { |
|
| 3866 | + foreach ($tableau as $k => $v) { |
|
| 3867 | + $res = recuperer_fond( |
|
| 3868 | + 'modeles/' . $modele, |
|
| 3869 | + array_merge(['cle' => $k], (is_array($v) ? $v : ['valeur' => $v])) |
|
| 3870 | + ); |
|
| 3871 | + $texte .= $res; |
|
| 3872 | + } |
|
| 3873 | + } |
|
| 3874 | 3874 | |
| 3875 | - return $texte; |
|
| 3875 | + return $texte; |
|
| 3876 | 3876 | } |
| 3877 | 3877 | |
| 3878 | 3878 | |
@@ -3897,37 +3897,37 @@ discard block |
||
| 3897 | 3897 | * - tout : retourne toutes les informations du plugin actif |
| 3898 | 3898 | **/ |
| 3899 | 3899 | function filtre_info_plugin_dist($plugin, $type_info, $reload = false) { |
| 3900 | - include_spip('inc/plugin'); |
|
| 3901 | - $plugin = strtoupper($plugin); |
|
| 3902 | - $plugins_actifs = liste_plugin_actifs(); |
|
| 3903 | - |
|
| 3904 | - if (!$plugin) { |
|
| 3905 | - return serialize(array_keys($plugins_actifs)); |
|
| 3906 | - } elseif (empty($plugins_actifs[$plugin]) and !$reload) { |
|
| 3907 | - return ''; |
|
| 3908 | - } elseif (($type_info == 'est_actif') and !$reload) { |
|
| 3909 | - return $plugins_actifs[$plugin] ? 1 : 0; |
|
| 3910 | - } elseif (isset($plugins_actifs[$plugin][$type_info]) and !$reload) { |
|
| 3911 | - return $plugins_actifs[$plugin][$type_info]; |
|
| 3912 | - } else { |
|
| 3913 | - $get_infos = charger_fonction('get_infos', 'plugins'); |
|
| 3914 | - // On prend en compte les extensions |
|
| 3915 | - if (!is_dir($plugins_actifs[$plugin]['dir_type'])) { |
|
| 3916 | - $dir_plugins = constant($plugins_actifs[$plugin]['dir_type']); |
|
| 3917 | - } else { |
|
| 3918 | - $dir_plugins = $plugins_actifs[$plugin]['dir_type']; |
|
| 3919 | - } |
|
| 3920 | - if (!$infos = $get_infos($plugins_actifs[$plugin]['dir'], $reload, $dir_plugins)) { |
|
| 3921 | - return ''; |
|
| 3922 | - } |
|
| 3923 | - if ($type_info == 'tout') { |
|
| 3924 | - return $infos; |
|
| 3925 | - } elseif ($type_info == 'est_actif') { |
|
| 3926 | - return $infos ? 1 : 0; |
|
| 3927 | - } else { |
|
| 3928 | - return strval($infos[$type_info]); |
|
| 3929 | - } |
|
| 3930 | - } |
|
| 3900 | + include_spip('inc/plugin'); |
|
| 3901 | + $plugin = strtoupper($plugin); |
|
| 3902 | + $plugins_actifs = liste_plugin_actifs(); |
|
| 3903 | + |
|
| 3904 | + if (!$plugin) { |
|
| 3905 | + return serialize(array_keys($plugins_actifs)); |
|
| 3906 | + } elseif (empty($plugins_actifs[$plugin]) and !$reload) { |
|
| 3907 | + return ''; |
|
| 3908 | + } elseif (($type_info == 'est_actif') and !$reload) { |
|
| 3909 | + return $plugins_actifs[$plugin] ? 1 : 0; |
|
| 3910 | + } elseif (isset($plugins_actifs[$plugin][$type_info]) and !$reload) { |
|
| 3911 | + return $plugins_actifs[$plugin][$type_info]; |
|
| 3912 | + } else { |
|
| 3913 | + $get_infos = charger_fonction('get_infos', 'plugins'); |
|
| 3914 | + // On prend en compte les extensions |
|
| 3915 | + if (!is_dir($plugins_actifs[$plugin]['dir_type'])) { |
|
| 3916 | + $dir_plugins = constant($plugins_actifs[$plugin]['dir_type']); |
|
| 3917 | + } else { |
|
| 3918 | + $dir_plugins = $plugins_actifs[$plugin]['dir_type']; |
|
| 3919 | + } |
|
| 3920 | + if (!$infos = $get_infos($plugins_actifs[$plugin]['dir'], $reload, $dir_plugins)) { |
|
| 3921 | + return ''; |
|
| 3922 | + } |
|
| 3923 | + if ($type_info == 'tout') { |
|
| 3924 | + return $infos; |
|
| 3925 | + } elseif ($type_info == 'est_actif') { |
|
| 3926 | + return $infos ? 1 : 0; |
|
| 3927 | + } else { |
|
| 3928 | + return strval($infos[$type_info]); |
|
| 3929 | + } |
|
| 3930 | + } |
|
| 3931 | 3931 | } |
| 3932 | 3932 | |
| 3933 | 3933 | |
@@ -3954,9 +3954,9 @@ discard block |
||
| 3954 | 3954 | * Code HTML de l'image de puce de statut à insérer (et du menu de changement si présent) |
| 3955 | 3955 | */ |
| 3956 | 3956 | function puce_changement_statut($id_objet, $statut, $id_rubrique, $type, $ajax = false) { |
| 3957 | - $puce_statut = charger_fonction('puce_statut', 'inc'); |
|
| 3957 | + $puce_statut = charger_fonction('puce_statut', 'inc'); |
|
| 3958 | 3958 | |
| 3959 | - return $puce_statut($id_objet, $statut, $id_rubrique, $type, $ajax); |
|
| 3959 | + return $puce_statut($id_objet, $statut, $id_rubrique, $type, $ajax); |
|
| 3960 | 3960 | } |
| 3961 | 3961 | |
| 3962 | 3962 | |
@@ -3986,19 +3986,19 @@ discard block |
||
| 3986 | 3986 | * Code HTML de l'image de puce de statut à insérer (et du menu de changement si présent) |
| 3987 | 3987 | */ |
| 3988 | 3988 | function filtre_puce_statut_dist($statut, $objet, $id_objet = 0, $id_parent = 0) { |
| 3989 | - static $puce_statut = null; |
|
| 3990 | - if (!$puce_statut) { |
|
| 3991 | - $puce_statut = charger_fonction('puce_statut', 'inc'); |
|
| 3992 | - } |
|
| 3989 | + static $puce_statut = null; |
|
| 3990 | + if (!$puce_statut) { |
|
| 3991 | + $puce_statut = charger_fonction('puce_statut', 'inc'); |
|
| 3992 | + } |
|
| 3993 | 3993 | |
| 3994 | - return $puce_statut( |
|
| 3995 | - $id_objet, |
|
| 3996 | - $statut, |
|
| 3997 | - $id_parent, |
|
| 3998 | - $objet, |
|
| 3999 | - false, |
|
| 4000 | - objet_info($objet, 'editable') ? _ACTIVER_PUCE_RAPIDE : false |
|
| 4001 | - ); |
|
| 3994 | + return $puce_statut( |
|
| 3995 | + $id_objet, |
|
| 3996 | + $statut, |
|
| 3997 | + $id_parent, |
|
| 3998 | + $objet, |
|
| 3999 | + false, |
|
| 4000 | + objet_info($objet, 'editable') ? _ACTIVER_PUCE_RAPIDE : false |
|
| 4001 | + ); |
|
| 4002 | 4002 | } |
| 4003 | 4003 | |
| 4004 | 4004 | |
@@ -4025,98 +4025,98 @@ discard block |
||
| 4025 | 4025 | * hash du contexte |
| 4026 | 4026 | */ |
| 4027 | 4027 | function encoder_contexte_ajax($c, $form = '', $emboite = null, $ajaxid = '') { |
| 4028 | - $env = null; |
|
| 4029 | - if ( |
|
| 4030 | - is_string($c) |
|
| 4031 | - and @unserialize($c) !== false |
|
| 4032 | - ) { |
|
| 4033 | - $c = unserialize($c); |
|
| 4034 | - } |
|
| 4035 | - |
|
| 4036 | - // supprimer les parametres debut_x |
|
| 4037 | - // pour que la pagination ajax ne soit pas plantee |
|
| 4038 | - // si on charge la page &debut_x=1 : car alors en cliquant sur l'item 0, |
|
| 4039 | - // le debut_x=0 n'existe pas, et on resterait sur 1 |
|
| 4040 | - if (is_array($c)) { |
|
| 4041 | - foreach ($c as $k => $v) { |
|
| 4042 | - if (strpos($k, 'debut_') === 0) { |
|
| 4043 | - unset($c[$k]); |
|
| 4044 | - } |
|
| 4045 | - } |
|
| 4046 | - } |
|
| 4047 | - |
|
| 4048 | - if (!function_exists('calculer_cle_action')) { |
|
| 4049 | - include_spip('inc/securiser_action'); |
|
| 4050 | - } |
|
| 4051 | - |
|
| 4052 | - $c = serialize($c); |
|
| 4053 | - $cle = calculer_cle_action($form . $c); |
|
| 4054 | - $c = "$cle:$c"; |
|
| 4055 | - |
|
| 4056 | - // on ne stocke pas les contextes dans des fichiers en cache |
|
| 4057 | - // par defaut, sauf si cette configuration a été forcée |
|
| 4058 | - // OU que la longueur de l’argument géneré est plus long |
|
| 4059 | - // que ce qui est toléré. |
|
| 4060 | - $cache_contextes_ajax = (defined('_CACHE_CONTEXTES_AJAX') and _CACHE_CONTEXTES_AJAX); |
|
| 4061 | - if (!$cache_contextes_ajax) { |
|
| 4062 | - $env = $c; |
|
| 4063 | - if (function_exists('gzdeflate') && function_exists('gzinflate')) { |
|
| 4064 | - $env = gzdeflate($env); |
|
| 4065 | - } |
|
| 4066 | - $env = _xor($env); |
|
| 4067 | - $env = base64_encode($env); |
|
| 4068 | - $len = strlen($env); |
|
| 4069 | - // Si l’url est trop longue pour le navigateur |
|
| 4070 | - $max_len = _CACHE_CONTEXTES_AJAX_SUR_LONGUEUR; |
|
| 4071 | - if ($len > $max_len) { |
|
| 4072 | - $cache_contextes_ajax = true; |
|
| 4073 | - spip_log( |
|
| 4074 | - 'Contextes AJAX forces en fichiers !' |
|
| 4075 | - . ' Cela arrive lorsque la valeur du contexte' |
|
| 4076 | - . " depasse la longueur maximale autorisee ($max_len). Ici : $len.", |
|
| 4077 | - _LOG_AVERTISSEMENT |
|
| 4078 | - ); |
|
| 4079 | - } |
|
| 4080 | - // Sinon si Suhosin est actif et a une la valeur maximale des variables en GET... |
|
| 4081 | - elseif ( |
|
| 4082 | - $max_len = @ini_get('suhosin.get.max_value_length') |
|
| 4083 | - and $max_len < $len |
|
| 4084 | - ) { |
|
| 4085 | - $cache_contextes_ajax = true; |
|
| 4086 | - spip_log('Contextes AJAX forces en fichiers !' |
|
| 4087 | - . ' Cela arrive lorsque la valeur du contexte' |
|
| 4088 | - . ' depasse la longueur maximale autorisee par Suhosin' |
|
| 4089 | - . " ($max_len) dans 'suhosin.get.max_value_length'. Ici : $len." |
|
| 4090 | - . ' Vous devriez modifier les parametres de Suhosin' |
|
| 4091 | - . ' pour accepter au moins 1024 caracteres.', _LOG_AVERTISSEMENT); |
|
| 4092 | - } |
|
| 4093 | - } |
|
| 4094 | - |
|
| 4095 | - if ($cache_contextes_ajax) { |
|
| 4096 | - $dir = sous_repertoire(_DIR_CACHE, 'contextes'); |
|
| 4097 | - // stocker les contextes sur disque et ne passer qu'un hash dans l'url |
|
| 4098 | - $md5 = md5($c); |
|
| 4099 | - ecrire_fichier("$dir/c$md5", $c); |
|
| 4100 | - $env = $md5; |
|
| 4101 | - } |
|
| 4102 | - |
|
| 4103 | - if ($emboite === null) { |
|
| 4104 | - return $env; |
|
| 4105 | - } |
|
| 4106 | - if (!trim($emboite)) { |
|
| 4107 | - return ''; |
|
| 4108 | - } |
|
| 4109 | - // toujours encoder l'url source dans le bloc ajax |
|
| 4110 | - $r = self(); |
|
| 4111 | - $r = ' data-origin="' . $r . '"'; |
|
| 4112 | - $class = 'ajaxbloc'; |
|
| 4113 | - if ($ajaxid and is_string($ajaxid)) { |
|
| 4114 | - // ajaxid est normalement conforme a un nom de classe css |
|
| 4115 | - // on ne verifie pas la conformite, mais on passe entites_html par dessus par precaution |
|
| 4116 | - $class .= ' ajax-id-' . entites_html($ajaxid); |
|
| 4117 | - } |
|
| 4118 | - |
|
| 4119 | - return "<div class='$class' " . "data-ajax-env='$env'$r>\n$emboite</div><!--ajaxbloc-->\n"; |
|
| 4028 | + $env = null; |
|
| 4029 | + if ( |
|
| 4030 | + is_string($c) |
|
| 4031 | + and @unserialize($c) !== false |
|
| 4032 | + ) { |
|
| 4033 | + $c = unserialize($c); |
|
| 4034 | + } |
|
| 4035 | + |
|
| 4036 | + // supprimer les parametres debut_x |
|
| 4037 | + // pour que la pagination ajax ne soit pas plantee |
|
| 4038 | + // si on charge la page &debut_x=1 : car alors en cliquant sur l'item 0, |
|
| 4039 | + // le debut_x=0 n'existe pas, et on resterait sur 1 |
|
| 4040 | + if (is_array($c)) { |
|
| 4041 | + foreach ($c as $k => $v) { |
|
| 4042 | + if (strpos($k, 'debut_') === 0) { |
|
| 4043 | + unset($c[$k]); |
|
| 4044 | + } |
|
| 4045 | + } |
|
| 4046 | + } |
|
| 4047 | + |
|
| 4048 | + if (!function_exists('calculer_cle_action')) { |
|
| 4049 | + include_spip('inc/securiser_action'); |
|
| 4050 | + } |
|
| 4051 | + |
|
| 4052 | + $c = serialize($c); |
|
| 4053 | + $cle = calculer_cle_action($form . $c); |
|
| 4054 | + $c = "$cle:$c"; |
|
| 4055 | + |
|
| 4056 | + // on ne stocke pas les contextes dans des fichiers en cache |
|
| 4057 | + // par defaut, sauf si cette configuration a été forcée |
|
| 4058 | + // OU que la longueur de l’argument géneré est plus long |
|
| 4059 | + // que ce qui est toléré. |
|
| 4060 | + $cache_contextes_ajax = (defined('_CACHE_CONTEXTES_AJAX') and _CACHE_CONTEXTES_AJAX); |
|
| 4061 | + if (!$cache_contextes_ajax) { |
|
| 4062 | + $env = $c; |
|
| 4063 | + if (function_exists('gzdeflate') && function_exists('gzinflate')) { |
|
| 4064 | + $env = gzdeflate($env); |
|
| 4065 | + } |
|
| 4066 | + $env = _xor($env); |
|
| 4067 | + $env = base64_encode($env); |
|
| 4068 | + $len = strlen($env); |
|
| 4069 | + // Si l’url est trop longue pour le navigateur |
|
| 4070 | + $max_len = _CACHE_CONTEXTES_AJAX_SUR_LONGUEUR; |
|
| 4071 | + if ($len > $max_len) { |
|
| 4072 | + $cache_contextes_ajax = true; |
|
| 4073 | + spip_log( |
|
| 4074 | + 'Contextes AJAX forces en fichiers !' |
|
| 4075 | + . ' Cela arrive lorsque la valeur du contexte' |
|
| 4076 | + . " depasse la longueur maximale autorisee ($max_len). Ici : $len.", |
|
| 4077 | + _LOG_AVERTISSEMENT |
|
| 4078 | + ); |
|
| 4079 | + } |
|
| 4080 | + // Sinon si Suhosin est actif et a une la valeur maximale des variables en GET... |
|
| 4081 | + elseif ( |
|
| 4082 | + $max_len = @ini_get('suhosin.get.max_value_length') |
|
| 4083 | + and $max_len < $len |
|
| 4084 | + ) { |
|
| 4085 | + $cache_contextes_ajax = true; |
|
| 4086 | + spip_log('Contextes AJAX forces en fichiers !' |
|
| 4087 | + . ' Cela arrive lorsque la valeur du contexte' |
|
| 4088 | + . ' depasse la longueur maximale autorisee par Suhosin' |
|
| 4089 | + . " ($max_len) dans 'suhosin.get.max_value_length'. Ici : $len." |
|
| 4090 | + . ' Vous devriez modifier les parametres de Suhosin' |
|
| 4091 | + . ' pour accepter au moins 1024 caracteres.', _LOG_AVERTISSEMENT); |
|
| 4092 | + } |
|
| 4093 | + } |
|
| 4094 | + |
|
| 4095 | + if ($cache_contextes_ajax) { |
|
| 4096 | + $dir = sous_repertoire(_DIR_CACHE, 'contextes'); |
|
| 4097 | + // stocker les contextes sur disque et ne passer qu'un hash dans l'url |
|
| 4098 | + $md5 = md5($c); |
|
| 4099 | + ecrire_fichier("$dir/c$md5", $c); |
|
| 4100 | + $env = $md5; |
|
| 4101 | + } |
|
| 4102 | + |
|
| 4103 | + if ($emboite === null) { |
|
| 4104 | + return $env; |
|
| 4105 | + } |
|
| 4106 | + if (!trim($emboite)) { |
|
| 4107 | + return ''; |
|
| 4108 | + } |
|
| 4109 | + // toujours encoder l'url source dans le bloc ajax |
|
| 4110 | + $r = self(); |
|
| 4111 | + $r = ' data-origin="' . $r . '"'; |
|
| 4112 | + $class = 'ajaxbloc'; |
|
| 4113 | + if ($ajaxid and is_string($ajaxid)) { |
|
| 4114 | + // ajaxid est normalement conforme a un nom de classe css |
|
| 4115 | + // on ne verifie pas la conformite, mais on passe entites_html par dessus par precaution |
|
| 4116 | + $class .= ' ajax-id-' . entites_html($ajaxid); |
|
| 4117 | + } |
|
| 4118 | + |
|
| 4119 | + return "<div class='$class' " . "data-ajax-env='$env'$r>\n$emboite</div><!--ajaxbloc-->\n"; |
|
| 4120 | 4120 | } |
| 4121 | 4121 | |
| 4122 | 4122 | /** |
@@ -4136,37 +4136,37 @@ discard block |
||
| 4136 | 4136 | * - false : erreur de décodage |
| 4137 | 4137 | */ |
| 4138 | 4138 | function decoder_contexte_ajax($c, $form = '') { |
| 4139 | - if (!function_exists('calculer_cle_action')) { |
|
| 4140 | - include_spip('inc/securiser_action'); |
|
| 4141 | - } |
|
| 4142 | - if ( |
|
| 4143 | - ((defined('_CACHE_CONTEXTES_AJAX') and _CACHE_CONTEXTES_AJAX) or strlen($c) == 32) |
|
| 4144 | - and $dir = sous_repertoire(_DIR_CACHE, 'contextes') |
|
| 4145 | - and lire_fichier("$dir/c$c", $contexte) |
|
| 4146 | - ) { |
|
| 4147 | - $c = $contexte; |
|
| 4148 | - } else { |
|
| 4149 | - $c = @base64_decode($c); |
|
| 4150 | - $c = _xor($c); |
|
| 4151 | - if (function_exists('gzdeflate') && function_exists('gzinflate')) { |
|
| 4152 | - $c = @gzinflate($c); |
|
| 4153 | - } |
|
| 4154 | - } |
|
| 4155 | - |
|
| 4156 | - // extraire la signature en debut de contexte |
|
| 4157 | - // et la verifier avant de deserializer |
|
| 4158 | - // format : signature:donneesserializees |
|
| 4159 | - if ($p = strpos($c, ':')) { |
|
| 4160 | - $cle = substr($c, 0, $p); |
|
| 4161 | - $c = substr($c, $p + 1); |
|
| 4162 | - |
|
| 4163 | - if ($cle == calculer_cle_action($form . $c)) { |
|
| 4164 | - $env = @unserialize($c); |
|
| 4165 | - return $env; |
|
| 4166 | - } |
|
| 4167 | - } |
|
| 4168 | - |
|
| 4169 | - return false; |
|
| 4139 | + if (!function_exists('calculer_cle_action')) { |
|
| 4140 | + include_spip('inc/securiser_action'); |
|
| 4141 | + } |
|
| 4142 | + if ( |
|
| 4143 | + ((defined('_CACHE_CONTEXTES_AJAX') and _CACHE_CONTEXTES_AJAX) or strlen($c) == 32) |
|
| 4144 | + and $dir = sous_repertoire(_DIR_CACHE, 'contextes') |
|
| 4145 | + and lire_fichier("$dir/c$c", $contexte) |
|
| 4146 | + ) { |
|
| 4147 | + $c = $contexte; |
|
| 4148 | + } else { |
|
| 4149 | + $c = @base64_decode($c); |
|
| 4150 | + $c = _xor($c); |
|
| 4151 | + if (function_exists('gzdeflate') && function_exists('gzinflate')) { |
|
| 4152 | + $c = @gzinflate($c); |
|
| 4153 | + } |
|
| 4154 | + } |
|
| 4155 | + |
|
| 4156 | + // extraire la signature en debut de contexte |
|
| 4157 | + // et la verifier avant de deserializer |
|
| 4158 | + // format : signature:donneesserializees |
|
| 4159 | + if ($p = strpos($c, ':')) { |
|
| 4160 | + $cle = substr($c, 0, $p); |
|
| 4161 | + $c = substr($c, $p + 1); |
|
| 4162 | + |
|
| 4163 | + if ($cle == calculer_cle_action($form . $c)) { |
|
| 4164 | + $env = @unserialize($c); |
|
| 4165 | + return $env; |
|
| 4166 | + } |
|
| 4167 | + } |
|
| 4168 | + |
|
| 4169 | + return false; |
|
| 4170 | 4170 | } |
| 4171 | 4171 | |
| 4172 | 4172 | |
@@ -4184,20 +4184,20 @@ discard block |
||
| 4184 | 4184 | * Message décrypté ou encrypté |
| 4185 | 4185 | **/ |
| 4186 | 4186 | function _xor($message, $key = null) { |
| 4187 | - if (is_null($key)) { |
|
| 4188 | - if (!function_exists('calculer_cle_action')) { |
|
| 4189 | - include_spip('inc/securiser_action'); |
|
| 4190 | - } |
|
| 4191 | - $key = pack('H*', calculer_cle_action('_xor')); |
|
| 4192 | - } |
|
| 4187 | + if (is_null($key)) { |
|
| 4188 | + if (!function_exists('calculer_cle_action')) { |
|
| 4189 | + include_spip('inc/securiser_action'); |
|
| 4190 | + } |
|
| 4191 | + $key = pack('H*', calculer_cle_action('_xor')); |
|
| 4192 | + } |
|
| 4193 | 4193 | |
| 4194 | - $keylen = strlen($key); |
|
| 4195 | - $messagelen = strlen($message); |
|
| 4196 | - for ($i = 0; $i < $messagelen; $i++) { |
|
| 4197 | - $message[$i] = ~($message[$i] ^ $key[$i % $keylen]); |
|
| 4198 | - } |
|
| 4194 | + $keylen = strlen($key); |
|
| 4195 | + $messagelen = strlen($message); |
|
| 4196 | + for ($i = 0; $i < $messagelen; $i++) { |
|
| 4197 | + $message[$i] = ~($message[$i] ^ $key[$i % $keylen]); |
|
| 4198 | + } |
|
| 4199 | 4199 | |
| 4200 | - return $message; |
|
| 4200 | + return $message; |
|
| 4201 | 4201 | } |
| 4202 | 4202 | |
| 4203 | 4203 | /** |
@@ -4211,7 +4211,7 @@ discard block |
||
| 4211 | 4211 | * @return string |
| 4212 | 4212 | */ |
| 4213 | 4213 | function url_reponse_forum($texte) { |
| 4214 | - return $texte; |
|
| 4214 | + return $texte; |
|
| 4215 | 4215 | } |
| 4216 | 4216 | |
| 4217 | 4217 | /** |
@@ -4225,7 +4225,7 @@ discard block |
||
| 4225 | 4225 | * @return string |
| 4226 | 4226 | */ |
| 4227 | 4227 | function url_rss_forum($texte) { |
| 4228 | - return $texte; |
|
| 4228 | + return $texte; |
|
| 4229 | 4229 | } |
| 4230 | 4230 | |
| 4231 | 4231 | |
@@ -4264,37 +4264,37 @@ discard block |
||
| 4264 | 4264 | * Code HTML |
| 4265 | 4265 | */ |
| 4266 | 4266 | function lien_ou_expose($url, $libelle = null, $on = false, $class = '', $title = '', $rel = '', $evt = '') { |
| 4267 | - if ($on) { |
|
| 4268 | - $bal = 'strong'; |
|
| 4269 | - $class = ''; |
|
| 4270 | - $att = ''; |
|
| 4271 | - // si $on passe la balise et optionnelement une ou ++classe |
|
| 4272 | - // a.active span.selected.active etc.... |
|
| 4273 | - if (is_string($on) and (strncmp($on, 'a', 1) == 0 or strncmp($on, 'span', 4) == 0 or strncmp($on, 'strong', 6) == 0)) { |
|
| 4274 | - $on = explode('.', $on); |
|
| 4275 | - // on verifie que c'est exactement une des 3 balises a, span ou strong |
|
| 4276 | - if (in_array(reset($on), ['a', 'span', 'strong'])) { |
|
| 4277 | - $bal = array_shift($on); |
|
| 4278 | - $class = implode(' ', $on); |
|
| 4279 | - if ($bal == 'a') { |
|
| 4280 | - $att = 'href="#" '; |
|
| 4281 | - } |
|
| 4282 | - } |
|
| 4283 | - } |
|
| 4284 | - $att .= 'class="' . ($class ? attribut_html($class) . ' ' : '') . (defined('_LIEN_OU_EXPOSE_CLASS_ON') ? _LIEN_OU_EXPOSE_CLASS_ON : 'on') . '"'; |
|
| 4285 | - } else { |
|
| 4286 | - $bal = 'a'; |
|
| 4287 | - $att = "href='$url'" |
|
| 4288 | - . ($title ? " title='" . attribut_html($title) . "'" : '') |
|
| 4289 | - . ($class ? " class='" . attribut_html($class) . "'" : '') |
|
| 4290 | - . ($rel ? " rel='" . attribut_html($rel) . "'" : '') |
|
| 4291 | - . $evt; |
|
| 4292 | - } |
|
| 4293 | - if ($libelle === null) { |
|
| 4294 | - $libelle = $url; |
|
| 4295 | - } |
|
| 4296 | - |
|
| 4297 | - return "<$bal $att>$libelle</$bal>"; |
|
| 4267 | + if ($on) { |
|
| 4268 | + $bal = 'strong'; |
|
| 4269 | + $class = ''; |
|
| 4270 | + $att = ''; |
|
| 4271 | + // si $on passe la balise et optionnelement une ou ++classe |
|
| 4272 | + // a.active span.selected.active etc.... |
|
| 4273 | + if (is_string($on) and (strncmp($on, 'a', 1) == 0 or strncmp($on, 'span', 4) == 0 or strncmp($on, 'strong', 6) == 0)) { |
|
| 4274 | + $on = explode('.', $on); |
|
| 4275 | + // on verifie que c'est exactement une des 3 balises a, span ou strong |
|
| 4276 | + if (in_array(reset($on), ['a', 'span', 'strong'])) { |
|
| 4277 | + $bal = array_shift($on); |
|
| 4278 | + $class = implode(' ', $on); |
|
| 4279 | + if ($bal == 'a') { |
|
| 4280 | + $att = 'href="#" '; |
|
| 4281 | + } |
|
| 4282 | + } |
|
| 4283 | + } |
|
| 4284 | + $att .= 'class="' . ($class ? attribut_html($class) . ' ' : '') . (defined('_LIEN_OU_EXPOSE_CLASS_ON') ? _LIEN_OU_EXPOSE_CLASS_ON : 'on') . '"'; |
|
| 4285 | + } else { |
|
| 4286 | + $bal = 'a'; |
|
| 4287 | + $att = "href='$url'" |
|
| 4288 | + . ($title ? " title='" . attribut_html($title) . "'" : '') |
|
| 4289 | + . ($class ? " class='" . attribut_html($class) . "'" : '') |
|
| 4290 | + . ($rel ? " rel='" . attribut_html($rel) . "'" : '') |
|
| 4291 | + . $evt; |
|
| 4292 | + } |
|
| 4293 | + if ($libelle === null) { |
|
| 4294 | + $libelle = $url; |
|
| 4295 | + } |
|
| 4296 | + |
|
| 4297 | + return "<$bal $att>$libelle</$bal>"; |
|
| 4298 | 4298 | } |
| 4299 | 4299 | |
| 4300 | 4300 | |
@@ -4311,39 +4311,39 @@ discard block |
||
| 4311 | 4311 | * @return string : la chaine de langue finale en utilisant la fonction _T() |
| 4312 | 4312 | */ |
| 4313 | 4313 | function singulier_ou_pluriel($nb, $chaine_un, $chaine_plusieurs, $var = 'nb', $vars = []) { |
| 4314 | - static $local_singulier_ou_pluriel = []; |
|
| 4315 | - |
|
| 4316 | - // si nb=0 ou pas de $vars valide on retourne une chaine vide, a traiter par un |sinon |
|
| 4317 | - if (!is_numeric($nb) or $nb == 0) { |
|
| 4318 | - return ''; |
|
| 4319 | - } |
|
| 4320 | - if (!is_array($vars)) { |
|
| 4321 | - return ''; |
|
| 4322 | - } |
|
| 4323 | - |
|
| 4324 | - $langue = $GLOBALS['spip_lang']; |
|
| 4325 | - if (!isset($local_singulier_ou_pluriel[$langue])) { |
|
| 4326 | - $local_singulier_ou_pluriel[$langue] = false; |
|
| 4327 | - if ( |
|
| 4328 | - $f = charger_fonction("singulier_ou_pluriel_${langue}", 'inc', true) |
|
| 4329 | - or $f = charger_fonction('singulier_ou_pluriel', 'inc', true) |
|
| 4330 | - ) { |
|
| 4331 | - $local_singulier_ou_pluriel[$langue] = $f; |
|
| 4332 | - } |
|
| 4333 | - } |
|
| 4334 | - |
|
| 4335 | - // si on a une surcharge on l'utilise |
|
| 4336 | - if ($local_singulier_ou_pluriel[$langue]) { |
|
| 4337 | - return ($local_singulier_ou_pluriel[$langue])($nb, $chaine_un, $chaine_plusieurs, $var, $vars); |
|
| 4338 | - } |
|
| 4339 | - |
|
| 4340 | - // sinon traitement par defaut |
|
| 4341 | - $vars[$var] = $nb; |
|
| 4342 | - if ($nb >= 2) { |
|
| 4343 | - return _T($chaine_plusieurs, $vars); |
|
| 4344 | - } else { |
|
| 4345 | - return _T($chaine_un, $vars); |
|
| 4346 | - } |
|
| 4314 | + static $local_singulier_ou_pluriel = []; |
|
| 4315 | + |
|
| 4316 | + // si nb=0 ou pas de $vars valide on retourne une chaine vide, a traiter par un |sinon |
|
| 4317 | + if (!is_numeric($nb) or $nb == 0) { |
|
| 4318 | + return ''; |
|
| 4319 | + } |
|
| 4320 | + if (!is_array($vars)) { |
|
| 4321 | + return ''; |
|
| 4322 | + } |
|
| 4323 | + |
|
| 4324 | + $langue = $GLOBALS['spip_lang']; |
|
| 4325 | + if (!isset($local_singulier_ou_pluriel[$langue])) { |
|
| 4326 | + $local_singulier_ou_pluriel[$langue] = false; |
|
| 4327 | + if ( |
|
| 4328 | + $f = charger_fonction("singulier_ou_pluriel_${langue}", 'inc', true) |
|
| 4329 | + or $f = charger_fonction('singulier_ou_pluriel', 'inc', true) |
|
| 4330 | + ) { |
|
| 4331 | + $local_singulier_ou_pluriel[$langue] = $f; |
|
| 4332 | + } |
|
| 4333 | + } |
|
| 4334 | + |
|
| 4335 | + // si on a une surcharge on l'utilise |
|
| 4336 | + if ($local_singulier_ou_pluriel[$langue]) { |
|
| 4337 | + return ($local_singulier_ou_pluriel[$langue])($nb, $chaine_un, $chaine_plusieurs, $var, $vars); |
|
| 4338 | + } |
|
| 4339 | + |
|
| 4340 | + // sinon traitement par defaut |
|
| 4341 | + $vars[$var] = $nb; |
|
| 4342 | + if ($nb >= 2) { |
|
| 4343 | + return _T($chaine_plusieurs, $vars); |
|
| 4344 | + } else { |
|
| 4345 | + return _T($chaine_un, $vars); |
|
| 4346 | + } |
|
| 4347 | 4347 | } |
| 4348 | 4348 | |
| 4349 | 4349 | |
@@ -4371,73 +4371,73 @@ discard block |
||
| 4371 | 4371 | */ |
| 4372 | 4372 | function prepare_icone_base($type, $lien, $texte, $fond, $fonction = '', $class = '', $javascript = '') { |
| 4373 | 4373 | |
| 4374 | - $class_lien = $class_bouton = $class; |
|
| 4375 | - |
|
| 4376 | - // Normaliser la fonction et compléter la classe en fonction |
|
| 4377 | - if (in_array($fonction, ['del', 'supprimer.gif'])) { |
|
| 4378 | - $class_lien .= ' danger'; |
|
| 4379 | - $class_bouton .= ' btn_danger'; |
|
| 4380 | - } elseif ($fonction == 'rien.gif') { |
|
| 4381 | - $fonction = ''; |
|
| 4382 | - } elseif ($fonction == 'delsafe') { |
|
| 4383 | - $fonction = 'del'; |
|
| 4384 | - } |
|
| 4385 | - |
|
| 4386 | - $fond_origine = $fond; |
|
| 4387 | - // Remappage des icone : article-24.png+new => article-new-24.png |
|
| 4388 | - if ($icone_renommer = charger_fonction('icone_renommer', 'inc', true)) { |
|
| 4389 | - [$fond, $fonction] = $icone_renommer($fond, $fonction); |
|
| 4390 | - } |
|
| 4391 | - |
|
| 4392 | - // Ajouter le type d'objet dans la classe |
|
| 4393 | - $objet_type = substr(basename($fond), 0, -4); |
|
| 4394 | - $class_lien .= " $objet_type"; |
|
| 4395 | - $class_bouton .= " $objet_type"; |
|
| 4396 | - |
|
| 4397 | - // Texte |
|
| 4398 | - $alt = attribut_html($texte); |
|
| 4399 | - $title = " title=\"$alt\""; // est-ce pertinent de doubler le alt par un title ? |
|
| 4400 | - |
|
| 4401 | - // Liens : préparer les classes ajax |
|
| 4402 | - $ajax = ''; |
|
| 4403 | - if ($type === 'lien') { |
|
| 4404 | - if (strpos($class_lien, 'ajax') !== false) { |
|
| 4405 | - $ajax = 'ajax'; |
|
| 4406 | - if (strpos($class_lien, 'preload') !== false) { |
|
| 4407 | - $ajax .= ' preload'; |
|
| 4408 | - } |
|
| 4409 | - if (strpos($class_lien, 'nocache') !== false) { |
|
| 4410 | - $ajax .= ' nocache'; |
|
| 4411 | - } |
|
| 4412 | - $ajax = " class='$ajax'"; |
|
| 4413 | - } |
|
| 4414 | - } |
|
| 4415 | - |
|
| 4416 | - // Repérer la taille et l'ajouter dans la classe |
|
| 4417 | - $size = 24; |
|
| 4418 | - if ( |
|
| 4419 | - preg_match('/-([0-9]{1,3})[.](gif|png|svg)$/i', $fond, $match) |
|
| 4420 | - or preg_match('/-([0-9]{1,3})([.](gif|png|svg))?$/i', $fond_origine, $match) |
|
| 4421 | - ) { |
|
| 4422 | - $size = $match[1]; |
|
| 4423 | - } |
|
| 4424 | - $class_lien .= " s$size"; |
|
| 4425 | - $class_bouton .= " s$size"; |
|
| 4426 | - |
|
| 4427 | - // Icône |
|
| 4428 | - $icone = http_img_pack($fond, $alt, "width='$size' height='$size'"); |
|
| 4429 | - $icone = '<span class="icone-image' . ($fonction ? " icone-fonction icone-fonction-$fonction" : '') . "\">$icone</span>"; |
|
| 4430 | - |
|
| 4431 | - // Markup final |
|
| 4432 | - if ($type == 'lien') { |
|
| 4433 | - return "<span class='icone $class_lien'>" |
|
| 4434 | - . "<a href='$lien'$title$ajax$javascript>" |
|
| 4435 | - . $icone |
|
| 4436 | - . "<b>$texte</b>" |
|
| 4437 | - . "</a></span>\n"; |
|
| 4438 | - } else { |
|
| 4439 | - return bouton_action("$icone $texte", $lien, $class_bouton, $javascript, $alt); |
|
| 4440 | - } |
|
| 4374 | + $class_lien = $class_bouton = $class; |
|
| 4375 | + |
|
| 4376 | + // Normaliser la fonction et compléter la classe en fonction |
|
| 4377 | + if (in_array($fonction, ['del', 'supprimer.gif'])) { |
|
| 4378 | + $class_lien .= ' danger'; |
|
| 4379 | + $class_bouton .= ' btn_danger'; |
|
| 4380 | + } elseif ($fonction == 'rien.gif') { |
|
| 4381 | + $fonction = ''; |
|
| 4382 | + } elseif ($fonction == 'delsafe') { |
|
| 4383 | + $fonction = 'del'; |
|
| 4384 | + } |
|
| 4385 | + |
|
| 4386 | + $fond_origine = $fond; |
|
| 4387 | + // Remappage des icone : article-24.png+new => article-new-24.png |
|
| 4388 | + if ($icone_renommer = charger_fonction('icone_renommer', 'inc', true)) { |
|
| 4389 | + [$fond, $fonction] = $icone_renommer($fond, $fonction); |
|
| 4390 | + } |
|
| 4391 | + |
|
| 4392 | + // Ajouter le type d'objet dans la classe |
|
| 4393 | + $objet_type = substr(basename($fond), 0, -4); |
|
| 4394 | + $class_lien .= " $objet_type"; |
|
| 4395 | + $class_bouton .= " $objet_type"; |
|
| 4396 | + |
|
| 4397 | + // Texte |
|
| 4398 | + $alt = attribut_html($texte); |
|
| 4399 | + $title = " title=\"$alt\""; // est-ce pertinent de doubler le alt par un title ? |
|
| 4400 | + |
|
| 4401 | + // Liens : préparer les classes ajax |
|
| 4402 | + $ajax = ''; |
|
| 4403 | + if ($type === 'lien') { |
|
| 4404 | + if (strpos($class_lien, 'ajax') !== false) { |
|
| 4405 | + $ajax = 'ajax'; |
|
| 4406 | + if (strpos($class_lien, 'preload') !== false) { |
|
| 4407 | + $ajax .= ' preload'; |
|
| 4408 | + } |
|
| 4409 | + if (strpos($class_lien, 'nocache') !== false) { |
|
| 4410 | + $ajax .= ' nocache'; |
|
| 4411 | + } |
|
| 4412 | + $ajax = " class='$ajax'"; |
|
| 4413 | + } |
|
| 4414 | + } |
|
| 4415 | + |
|
| 4416 | + // Repérer la taille et l'ajouter dans la classe |
|
| 4417 | + $size = 24; |
|
| 4418 | + if ( |
|
| 4419 | + preg_match('/-([0-9]{1,3})[.](gif|png|svg)$/i', $fond, $match) |
|
| 4420 | + or preg_match('/-([0-9]{1,3})([.](gif|png|svg))?$/i', $fond_origine, $match) |
|
| 4421 | + ) { |
|
| 4422 | + $size = $match[1]; |
|
| 4423 | + } |
|
| 4424 | + $class_lien .= " s$size"; |
|
| 4425 | + $class_bouton .= " s$size"; |
|
| 4426 | + |
|
| 4427 | + // Icône |
|
| 4428 | + $icone = http_img_pack($fond, $alt, "width='$size' height='$size'"); |
|
| 4429 | + $icone = '<span class="icone-image' . ($fonction ? " icone-fonction icone-fonction-$fonction" : '') . "\">$icone</span>"; |
|
| 4430 | + |
|
| 4431 | + // Markup final |
|
| 4432 | + if ($type == 'lien') { |
|
| 4433 | + return "<span class='icone $class_lien'>" |
|
| 4434 | + . "<a href='$lien'$title$ajax$javascript>" |
|
| 4435 | + . $icone |
|
| 4436 | + . "<b>$texte</b>" |
|
| 4437 | + . "</a></span>\n"; |
|
| 4438 | + } else { |
|
| 4439 | + return bouton_action("$icone $texte", $lien, $class_bouton, $javascript, $alt); |
|
| 4440 | + } |
|
| 4441 | 4441 | } |
| 4442 | 4442 | |
| 4443 | 4443 | /** |
@@ -4461,7 +4461,7 @@ discard block |
||
| 4461 | 4461 | * Code HTML du lien |
| 4462 | 4462 | **/ |
| 4463 | 4463 | function icone_base($lien, $texte, $fond, $fonction = '', $class = '', $javascript = '') { |
| 4464 | - return prepare_icone_base('lien', $lien, $texte, $fond, $fonction, $class, $javascript); |
|
| 4464 | + return prepare_icone_base('lien', $lien, $texte, $fond, $fonction, $class, $javascript); |
|
| 4465 | 4465 | } |
| 4466 | 4466 | |
| 4467 | 4467 | /** |
@@ -4496,7 +4496,7 @@ discard block |
||
| 4496 | 4496 | * Code HTML du lien |
| 4497 | 4497 | **/ |
| 4498 | 4498 | function filtre_icone_verticale_dist($lien, $texte, $fond, $fonction = '', $class = '', $javascript = '') { |
| 4499 | - return icone_base($lien, $texte, $fond, $fonction, "verticale $class", $javascript); |
|
| 4499 | + return icone_base($lien, $texte, $fond, $fonction, "verticale $class", $javascript); |
|
| 4500 | 4500 | } |
| 4501 | 4501 | |
| 4502 | 4502 | /** |
@@ -4541,7 +4541,7 @@ discard block |
||
| 4541 | 4541 | * Code HTML du lien |
| 4542 | 4542 | **/ |
| 4543 | 4543 | function filtre_icone_horizontale_dist($lien, $texte, $fond, $fonction = '', $class = '', $javascript = '') { |
| 4544 | - return icone_base($lien, $texte, $fond, $fonction, "horizontale $class", $javascript); |
|
| 4544 | + return icone_base($lien, $texte, $fond, $fonction, "horizontale $class", $javascript); |
|
| 4545 | 4545 | } |
| 4546 | 4546 | |
| 4547 | 4547 | /** |
@@ -4572,7 +4572,7 @@ discard block |
||
| 4572 | 4572 | * Code HTML du lien |
| 4573 | 4573 | **/ |
| 4574 | 4574 | function filtre_bouton_action_horizontal_dist($lien, $texte, $fond, $fonction = '', $class = '', $confirm = '') { |
| 4575 | - return prepare_icone_base('bouton', $lien, $texte, $fond, $fonction, $class, $confirm); |
|
| 4575 | + return prepare_icone_base('bouton', $lien, $texte, $fond, $fonction, $class, $confirm); |
|
| 4576 | 4576 | } |
| 4577 | 4577 | |
| 4578 | 4578 | /** |
@@ -4603,7 +4603,7 @@ discard block |
||
| 4603 | 4603 | * Code HTML du lien |
| 4604 | 4604 | */ |
| 4605 | 4605 | function filtre_icone_dist($lien, $texte, $fond, $align = '', $fonction = '', $class = '', $javascript = '') { |
| 4606 | - return icone_base($lien, $texte, $fond, $fonction, "verticale $align $class", $javascript); |
|
| 4606 | + return icone_base($lien, $texte, $fond, $fonction, "verticale $align $class", $javascript); |
|
| 4607 | 4607 | } |
| 4608 | 4608 | |
| 4609 | 4609 | |
@@ -4625,7 +4625,7 @@ discard block |
||
| 4625 | 4625 | * @return array Liste des éléments |
| 4626 | 4626 | */ |
| 4627 | 4627 | function filtre_explode_dist($a, $b) { |
| 4628 | - return explode($b, (string) $a); |
|
| 4628 | + return explode($b, (string) $a); |
|
| 4629 | 4629 | } |
| 4630 | 4630 | |
| 4631 | 4631 | /** |
@@ -4646,7 +4646,7 @@ discard block |
||
| 4646 | 4646 | * @return string Texte |
| 4647 | 4647 | */ |
| 4648 | 4648 | function filtre_implode_dist($a, $b) { |
| 4649 | - return is_array($a) ? implode($b, $a) : $a; |
|
| 4649 | + return is_array($a) ? implode($b, $a) : $a; |
|
| 4650 | 4650 | } |
| 4651 | 4651 | |
| 4652 | 4652 | /** |
@@ -4655,22 +4655,22 @@ discard block |
||
| 4655 | 4655 | * @return string Code CSS |
| 4656 | 4656 | */ |
| 4657 | 4657 | function bando_images_background() { |
| 4658 | - include_spip('inc/bandeau'); |
|
| 4659 | - // recuperer tous les boutons et leurs images |
|
| 4660 | - $boutons = definir_barre_boutons(definir_barre_contexte(), true, false); |
|
| 4658 | + include_spip('inc/bandeau'); |
|
| 4659 | + // recuperer tous les boutons et leurs images |
|
| 4660 | + $boutons = definir_barre_boutons(definir_barre_contexte(), true, false); |
|
| 4661 | 4661 | |
| 4662 | - $res = ''; |
|
| 4663 | - foreach ($boutons as $page => $detail) { |
|
| 4664 | - $selecteur = (in_array($page, ['outils_rapides', 'outils_collaboratifs']) ? '' : '.navigation_avec_icones '); |
|
| 4665 | - foreach ($detail->sousmenu as $souspage => $sousdetail) { |
|
| 4666 | - if ($sousdetail->icone and strlen(trim($sousdetail->icone))) { |
|
| 4667 | - $img = http_img_variante_svg_si_possible($sousdetail->icone); |
|
| 4668 | - $res .= "\n$selecteur.bando2_$souspage {background-image:url($img);}"; |
|
| 4669 | - } |
|
| 4670 | - } |
|
| 4671 | - } |
|
| 4662 | + $res = ''; |
|
| 4663 | + foreach ($boutons as $page => $detail) { |
|
| 4664 | + $selecteur = (in_array($page, ['outils_rapides', 'outils_collaboratifs']) ? '' : '.navigation_avec_icones '); |
|
| 4665 | + foreach ($detail->sousmenu as $souspage => $sousdetail) { |
|
| 4666 | + if ($sousdetail->icone and strlen(trim($sousdetail->icone))) { |
|
| 4667 | + $img = http_img_variante_svg_si_possible($sousdetail->icone); |
|
| 4668 | + $res .= "\n$selecteur.bando2_$souspage {background-image:url($img);}"; |
|
| 4669 | + } |
|
| 4670 | + } |
|
| 4671 | + } |
|
| 4672 | 4672 | |
| 4673 | - return $res; |
|
| 4673 | + return $res; |
|
| 4674 | 4674 | } |
| 4675 | 4675 | |
| 4676 | 4676 | /** |
@@ -4695,27 +4695,27 @@ discard block |
||
| 4695 | 4695 | */ |
| 4696 | 4696 | function bouton_action($libelle, $url, $class = '', $confirm = '', $title = '', $callback = '') { |
| 4697 | 4697 | |
| 4698 | - // Classes : dispatcher `ajax` sur le formulaire |
|
| 4699 | - $class_form = ''; |
|
| 4700 | - if (strpos($class, 'ajax') !== false) { |
|
| 4701 | - $class_form = 'ajax'; |
|
| 4702 | - $class = str_replace('ajax', '', $class); |
|
| 4703 | - } |
|
| 4704 | - $class_btn = 'submit ' . trim($class); |
|
| 4698 | + // Classes : dispatcher `ajax` sur le formulaire |
|
| 4699 | + $class_form = ''; |
|
| 4700 | + if (strpos($class, 'ajax') !== false) { |
|
| 4701 | + $class_form = 'ajax'; |
|
| 4702 | + $class = str_replace('ajax', '', $class); |
|
| 4703 | + } |
|
| 4704 | + $class_btn = 'submit ' . trim($class); |
|
| 4705 | 4705 | |
| 4706 | - if ($confirm) { |
|
| 4707 | - $confirm = 'confirm("' . attribut_html($confirm) . '")'; |
|
| 4708 | - if ($callback) { |
|
| 4709 | - $callback = "$confirm?($callback):false"; |
|
| 4710 | - } else { |
|
| 4711 | - $callback = $confirm; |
|
| 4712 | - } |
|
| 4713 | - } |
|
| 4714 | - $onclick = $callback ? " onclick='return " . addcslashes($callback, "'") . "'" : ''; |
|
| 4715 | - $title = $title ? " title='$title'" : ''; |
|
| 4706 | + if ($confirm) { |
|
| 4707 | + $confirm = 'confirm("' . attribut_html($confirm) . '")'; |
|
| 4708 | + if ($callback) { |
|
| 4709 | + $callback = "$confirm?($callback):false"; |
|
| 4710 | + } else { |
|
| 4711 | + $callback = $confirm; |
|
| 4712 | + } |
|
| 4713 | + } |
|
| 4714 | + $onclick = $callback ? " onclick='return " . addcslashes($callback, "'") . "'" : ''; |
|
| 4715 | + $title = $title ? " title='$title'" : ''; |
|
| 4716 | 4716 | |
| 4717 | - return "<form class='bouton_action_post $class_form' method='post' action='$url'><div>" . form_hidden($url) |
|
| 4718 | - . "<button type='submit' class='$class_btn'$title$onclick>$libelle</button></div></form>"; |
|
| 4717 | + return "<form class='bouton_action_post $class_form' method='post' action='$url'><div>" . form_hidden($url) |
|
| 4718 | + . "<button type='submit' class='$class_btn'$title$onclick>$libelle</button></div></form>"; |
|
| 4719 | 4719 | } |
| 4720 | 4720 | |
| 4721 | 4721 | /** |
@@ -4738,101 +4738,101 @@ discard block |
||
| 4738 | 4738 | * @return string |
| 4739 | 4739 | */ |
| 4740 | 4740 | function generer_objet_info($id_objet, string $type_objet, string $info, string $etoile = '', array $params = []): string { |
| 4741 | - static $trouver_table = null; |
|
| 4742 | - static $objets; |
|
| 4743 | - |
|
| 4744 | - // On verifie qu'on a tout ce qu'il faut |
|
| 4745 | - $id_objet = intval($id_objet); |
|
| 4746 | - if (!($id_objet and $type_objet and $info)) { |
|
| 4747 | - return ''; |
|
| 4748 | - } |
|
| 4749 | - |
|
| 4750 | - // si on a deja note que l'objet n'existe pas, ne pas aller plus loin |
|
| 4751 | - if (isset($objets[$type_objet]) and $objets[$type_objet] === false) { |
|
| 4752 | - return ''; |
|
| 4753 | - } |
|
| 4754 | - |
|
| 4755 | - // Si on demande l'url, on retourne direct la fonction |
|
| 4756 | - if ($info == 'url') { |
|
| 4757 | - return generer_objet_url($id_objet, $type_objet, ...$params); |
|
| 4758 | - } |
|
| 4759 | - |
|
| 4760 | - // Sinon on va tout chercher dans la table et on garde en memoire |
|
| 4761 | - $demande_titre = ($info === 'titre'); |
|
| 4762 | - $demande_introduction = ($info === 'introduction'); |
|
| 4763 | - |
|
| 4764 | - // On ne fait la requete que si on a pas deja l'objet ou si on demande le titre mais qu'on ne l'a pas encore |
|
| 4765 | - if ( |
|
| 4766 | - !isset($objets[$type_objet][$id_objet]) |
|
| 4767 | - or |
|
| 4768 | - ($demande_titre and !isset($objets[$type_objet][$id_objet]['titre'])) |
|
| 4769 | - ) { |
|
| 4770 | - if (!$trouver_table) { |
|
| 4771 | - $trouver_table = charger_fonction('trouver_table', 'base'); |
|
| 4772 | - } |
|
| 4773 | - $desc = $trouver_table(table_objet_sql($type_objet)); |
|
| 4774 | - if (!$desc) { |
|
| 4775 | - return $objets[$type_objet] = false; |
|
| 4776 | - } |
|
| 4777 | - |
|
| 4778 | - // Si on demande le titre, on le gere en interne |
|
| 4779 | - $champ_titre = ''; |
|
| 4780 | - if ($demande_titre) { |
|
| 4781 | - // si pas de titre declare mais champ titre, il sera peuple par le select * |
|
| 4782 | - $champ_titre = (!empty($desc['titre'])) ? ', ' . $desc['titre'] : ''; |
|
| 4783 | - } |
|
| 4784 | - include_spip('base/abstract_sql'); |
|
| 4785 | - include_spip('base/connect_sql'); |
|
| 4786 | - $objets[$type_objet][$id_objet] = sql_fetsel( |
|
| 4787 | - '*' . $champ_titre, |
|
| 4788 | - $desc['table_sql'], |
|
| 4789 | - id_table_objet($type_objet) . ' = ' . intval($id_objet) |
|
| 4790 | - ); |
|
| 4791 | - |
|
| 4792 | - // Toujours noter la longueur d'introduction, même si pas demandé cette fois-ci |
|
| 4793 | - $objets[$type_objet]['introduction_longueur'] = $desc['introduction_longueur'] ?? null; |
|
| 4794 | - } |
|
| 4795 | - |
|
| 4796 | - // Pour les fonction generer_xxx, si on demande l'introduction, |
|
| 4797 | - // ajouter la longueur au début des params supplémentaires |
|
| 4798 | - if ($demande_introduction) { |
|
| 4799 | - $introduction_longueur = $objets[$type_objet]['introduction_longueur']; |
|
| 4800 | - array_unshift($params, $introduction_longueur); |
|
| 4801 | - } |
|
| 4802 | - |
|
| 4803 | - // Si la fonction generer_TYPE_TRUC existe, on l'utilise pour formater $info_generee |
|
| 4804 | - if ( |
|
| 4805 | - $generer = charger_fonction("generer_${type_objet}_${info}", '', true) |
|
| 4806 | - // @deprecated 4.1 generer_TRUC_TYPE |
|
| 4807 | - or $generer = charger_fonction("generer_${info}_${type_objet}", '', true) |
|
| 4808 | - ) { |
|
| 4809 | - $info_generee = $generer($id_objet, $objets[$type_objet][$id_objet], ...$params); |
|
| 4810 | - } |
|
| 4811 | - // Si la fonction generer_objet_TRUC existe, on l'utilise pour formater $info_generee |
|
| 4812 | - elseif ( |
|
| 4813 | - $generer = charger_fonction("generer_objet_${info}", '', true) |
|
| 4814 | - // @deprecated 4.1 generer_TRUC_entite |
|
| 4815 | - or $generer = charger_fonction("generer_${info}_entite", '', true) |
|
| 4816 | - ) { |
|
| 4817 | - $info_generee = $generer($id_objet, $type_objet, $objets[$type_objet][$id_objet], ...$params); |
|
| 4818 | - } // Sinon on prend directement le champ SQL tel quel |
|
| 4819 | - else { |
|
| 4820 | - $info_generee = ($objets[$type_objet][$id_objet][$info] ?? ''); |
|
| 4821 | - } |
|
| 4822 | - |
|
| 4823 | - // On va ensuite appliquer les traitements automatiques si besoin |
|
| 4824 | - if (!$etoile) { |
|
| 4825 | - // FIXME: on fournit un ENV minimum avec id et type et connect='' |
|
| 4826 | - // mais ce fonctionnement est a ameliorer ! |
|
| 4827 | - $info_generee = appliquer_traitement_champ( |
|
| 4828 | - $info_generee, |
|
| 4829 | - $info, |
|
| 4830 | - table_objet($type_objet), |
|
| 4831 | - ['id_objet' => $id_objet, 'objet' => $type_objet, ''] |
|
| 4832 | - ); |
|
| 4833 | - } |
|
| 4834 | - |
|
| 4835 | - return $info_generee; |
|
| 4741 | + static $trouver_table = null; |
|
| 4742 | + static $objets; |
|
| 4743 | + |
|
| 4744 | + // On verifie qu'on a tout ce qu'il faut |
|
| 4745 | + $id_objet = intval($id_objet); |
|
| 4746 | + if (!($id_objet and $type_objet and $info)) { |
|
| 4747 | + return ''; |
|
| 4748 | + } |
|
| 4749 | + |
|
| 4750 | + // si on a deja note que l'objet n'existe pas, ne pas aller plus loin |
|
| 4751 | + if (isset($objets[$type_objet]) and $objets[$type_objet] === false) { |
|
| 4752 | + return ''; |
|
| 4753 | + } |
|
| 4754 | + |
|
| 4755 | + // Si on demande l'url, on retourne direct la fonction |
|
| 4756 | + if ($info == 'url') { |
|
| 4757 | + return generer_objet_url($id_objet, $type_objet, ...$params); |
|
| 4758 | + } |
|
| 4759 | + |
|
| 4760 | + // Sinon on va tout chercher dans la table et on garde en memoire |
|
| 4761 | + $demande_titre = ($info === 'titre'); |
|
| 4762 | + $demande_introduction = ($info === 'introduction'); |
|
| 4763 | + |
|
| 4764 | + // On ne fait la requete que si on a pas deja l'objet ou si on demande le titre mais qu'on ne l'a pas encore |
|
| 4765 | + if ( |
|
| 4766 | + !isset($objets[$type_objet][$id_objet]) |
|
| 4767 | + or |
|
| 4768 | + ($demande_titre and !isset($objets[$type_objet][$id_objet]['titre'])) |
|
| 4769 | + ) { |
|
| 4770 | + if (!$trouver_table) { |
|
| 4771 | + $trouver_table = charger_fonction('trouver_table', 'base'); |
|
| 4772 | + } |
|
| 4773 | + $desc = $trouver_table(table_objet_sql($type_objet)); |
|
| 4774 | + if (!$desc) { |
|
| 4775 | + return $objets[$type_objet] = false; |
|
| 4776 | + } |
|
| 4777 | + |
|
| 4778 | + // Si on demande le titre, on le gere en interne |
|
| 4779 | + $champ_titre = ''; |
|
| 4780 | + if ($demande_titre) { |
|
| 4781 | + // si pas de titre declare mais champ titre, il sera peuple par le select * |
|
| 4782 | + $champ_titre = (!empty($desc['titre'])) ? ', ' . $desc['titre'] : ''; |
|
| 4783 | + } |
|
| 4784 | + include_spip('base/abstract_sql'); |
|
| 4785 | + include_spip('base/connect_sql'); |
|
| 4786 | + $objets[$type_objet][$id_objet] = sql_fetsel( |
|
| 4787 | + '*' . $champ_titre, |
|
| 4788 | + $desc['table_sql'], |
|
| 4789 | + id_table_objet($type_objet) . ' = ' . intval($id_objet) |
|
| 4790 | + ); |
|
| 4791 | + |
|
| 4792 | + // Toujours noter la longueur d'introduction, même si pas demandé cette fois-ci |
|
| 4793 | + $objets[$type_objet]['introduction_longueur'] = $desc['introduction_longueur'] ?? null; |
|
| 4794 | + } |
|
| 4795 | + |
|
| 4796 | + // Pour les fonction generer_xxx, si on demande l'introduction, |
|
| 4797 | + // ajouter la longueur au début des params supplémentaires |
|
| 4798 | + if ($demande_introduction) { |
|
| 4799 | + $introduction_longueur = $objets[$type_objet]['introduction_longueur']; |
|
| 4800 | + array_unshift($params, $introduction_longueur); |
|
| 4801 | + } |
|
| 4802 | + |
|
| 4803 | + // Si la fonction generer_TYPE_TRUC existe, on l'utilise pour formater $info_generee |
|
| 4804 | + if ( |
|
| 4805 | + $generer = charger_fonction("generer_${type_objet}_${info}", '', true) |
|
| 4806 | + // @deprecated 4.1 generer_TRUC_TYPE |
|
| 4807 | + or $generer = charger_fonction("generer_${info}_${type_objet}", '', true) |
|
| 4808 | + ) { |
|
| 4809 | + $info_generee = $generer($id_objet, $objets[$type_objet][$id_objet], ...$params); |
|
| 4810 | + } |
|
| 4811 | + // Si la fonction generer_objet_TRUC existe, on l'utilise pour formater $info_generee |
|
| 4812 | + elseif ( |
|
| 4813 | + $generer = charger_fonction("generer_objet_${info}", '', true) |
|
| 4814 | + // @deprecated 4.1 generer_TRUC_entite |
|
| 4815 | + or $generer = charger_fonction("generer_${info}_entite", '', true) |
|
| 4816 | + ) { |
|
| 4817 | + $info_generee = $generer($id_objet, $type_objet, $objets[$type_objet][$id_objet], ...$params); |
|
| 4818 | + } // Sinon on prend directement le champ SQL tel quel |
|
| 4819 | + else { |
|
| 4820 | + $info_generee = ($objets[$type_objet][$id_objet][$info] ?? ''); |
|
| 4821 | + } |
|
| 4822 | + |
|
| 4823 | + // On va ensuite appliquer les traitements automatiques si besoin |
|
| 4824 | + if (!$etoile) { |
|
| 4825 | + // FIXME: on fournit un ENV minimum avec id et type et connect='' |
|
| 4826 | + // mais ce fonctionnement est a ameliorer ! |
|
| 4827 | + $info_generee = appliquer_traitement_champ( |
|
| 4828 | + $info_generee, |
|
| 4829 | + $info, |
|
| 4830 | + table_objet($type_objet), |
|
| 4831 | + ['id_objet' => $id_objet, 'objet' => $type_objet, ''] |
|
| 4832 | + ); |
|
| 4833 | + } |
|
| 4834 | + |
|
| 4835 | + return $info_generee; |
|
| 4836 | 4836 | } |
| 4837 | 4837 | |
| 4838 | 4838 | /** |
@@ -4840,7 +4840,7 @@ discard block |
||
| 4840 | 4840 | * @see generer_objet_info |
| 4841 | 4841 | */ |
| 4842 | 4842 | function generer_info_entite($id_objet, $type_objet, $info, $etoile = '', $params = []) { |
| 4843 | - return generer_objet_info(intval($id_objet), $type_objet, $info, $etoile, $params); |
|
| 4843 | + return generer_objet_info(intval($id_objet), $type_objet, $info, $etoile, $params); |
|
| 4844 | 4844 | } |
| 4845 | 4845 | |
| 4846 | 4846 | /** |
@@ -4873,36 +4873,36 @@ discard block |
||
| 4873 | 4873 | */ |
| 4874 | 4874 | function generer_objet_introduction(int $id_objet, string $type_objet, array $ligne_sql, ?int $introduction_longueur = null, $longueur_ou_suite = null, ?string $suite = null, string $connect = ''): string { |
| 4875 | 4875 | |
| 4876 | - $descriptif = $ligne_sql['descriptif'] ?? ''; |
|
| 4877 | - $texte = $ligne_sql['texte'] ?? ''; |
|
| 4878 | - // En absence de descriptif, on se rabat sur chapo + texte |
|
| 4879 | - if (isset($ligne_sql['chapo'])) { |
|
| 4880 | - $chapo = $ligne_sql['chapo']; |
|
| 4881 | - $texte = strlen($descriptif) ? |
|
| 4882 | - '' : |
|
| 4883 | - "$chapo \n\n $texte"; |
|
| 4884 | - } |
|
| 4876 | + $descriptif = $ligne_sql['descriptif'] ?? ''; |
|
| 4877 | + $texte = $ligne_sql['texte'] ?? ''; |
|
| 4878 | + // En absence de descriptif, on se rabat sur chapo + texte |
|
| 4879 | + if (isset($ligne_sql['chapo'])) { |
|
| 4880 | + $chapo = $ligne_sql['chapo']; |
|
| 4881 | + $texte = strlen($descriptif) ? |
|
| 4882 | + '' : |
|
| 4883 | + "$chapo \n\n $texte"; |
|
| 4884 | + } |
|
| 4885 | 4885 | |
| 4886 | - // Longueur en paramètre, sinon celle renseignée dans la description de l'objet, sinon valeur en dur |
|
| 4887 | - if (!intval($longueur_ou_suite)) { |
|
| 4888 | - $longueur = intval($introduction_longueur ?: 600); |
|
| 4889 | - } else { |
|
| 4890 | - $longueur = intval($longueur_ou_suite); |
|
| 4891 | - } |
|
| 4886 | + // Longueur en paramètre, sinon celle renseignée dans la description de l'objet, sinon valeur en dur |
|
| 4887 | + if (!intval($longueur_ou_suite)) { |
|
| 4888 | + $longueur = intval($introduction_longueur ?: 600); |
|
| 4889 | + } else { |
|
| 4890 | + $longueur = intval($longueur_ou_suite); |
|
| 4891 | + } |
|
| 4892 | 4892 | |
| 4893 | - // On peut optionnellement passer la suite en 1er paramètre de la balise |
|
| 4894 | - // Ex : #INTRODUCTION{...} |
|
| 4895 | - if ( |
|
| 4896 | - is_null($suite) |
|
| 4897 | - and !intval($longueur_ou_suite) |
|
| 4898 | - ) { |
|
| 4899 | - $suite = $longueur_ou_suite; |
|
| 4900 | - } |
|
| 4893 | + // On peut optionnellement passer la suite en 1er paramètre de la balise |
|
| 4894 | + // Ex : #INTRODUCTION{...} |
|
| 4895 | + if ( |
|
| 4896 | + is_null($suite) |
|
| 4897 | + and !intval($longueur_ou_suite) |
|
| 4898 | + ) { |
|
| 4899 | + $suite = $longueur_ou_suite; |
|
| 4900 | + } |
|
| 4901 | 4901 | |
| 4902 | - $f = chercher_filtre('introduction'); |
|
| 4903 | - $introduction = $f($descriptif, $texte, $longueur, $connect, $suite); |
|
| 4902 | + $f = chercher_filtre('introduction'); |
|
| 4903 | + $introduction = $f($descriptif, $texte, $longueur, $connect, $suite); |
|
| 4904 | 4904 | |
| 4905 | - return $introduction; |
|
| 4905 | + return $introduction; |
|
| 4906 | 4906 | } |
| 4907 | 4907 | |
| 4908 | 4908 | /** |
@@ -4910,7 +4910,7 @@ discard block |
||
| 4910 | 4910 | * @see generer_objet_introduction |
| 4911 | 4911 | */ |
| 4912 | 4912 | function generer_introduction_entite($id_objet, $type_objet, $ligne_sql, $introduction_longueur = null, $longueur_ou_suite = null, $suite = null, string $connect = '') { |
| 4913 | - return generer_objet_introduction(intval($id_objet), $type_objet, $ligne_sql, $introduction_longueur, $longueur_ou_suite, $suite, $connect); |
|
| 4913 | + return generer_objet_introduction(intval($id_objet), $type_objet, $ligne_sql, $introduction_longueur, $longueur_ou_suite, $suite, $connect); |
|
| 4914 | 4914 | } |
| 4915 | 4915 | |
| 4916 | 4916 | /** |
@@ -4924,49 +4924,49 @@ discard block |
||
| 4924 | 4924 | * @return string |
| 4925 | 4925 | */ |
| 4926 | 4926 | function appliquer_traitement_champ($texte, $champ, $table_objet = '', $env = [], string $connect = '') { |
| 4927 | - if (!$champ) { |
|
| 4928 | - return $texte; |
|
| 4929 | - } |
|
| 4927 | + if (!$champ) { |
|
| 4928 | + return $texte; |
|
| 4929 | + } |
|
| 4930 | 4930 | |
| 4931 | - // On charge les définitions des traitements (inc/texte et fichiers de fonctions) |
|
| 4932 | - // car il ne faut pas partir du principe que c'est déjà chargé (form ajax, etc) |
|
| 4933 | - include_fichiers_fonctions(); |
|
| 4931 | + // On charge les définitions des traitements (inc/texte et fichiers de fonctions) |
|
| 4932 | + // car il ne faut pas partir du principe que c'est déjà chargé (form ajax, etc) |
|
| 4933 | + include_fichiers_fonctions(); |
|
| 4934 | 4934 | |
| 4935 | - $champ = strtoupper($champ); |
|
| 4936 | - $traitements = $GLOBALS['table_des_traitements'][$champ] ?? false; |
|
| 4937 | - if (!$traitements or !is_array($traitements)) { |
|
| 4938 | - return $texte; |
|
| 4939 | - } |
|
| 4935 | + $champ = strtoupper($champ); |
|
| 4936 | + $traitements = $GLOBALS['table_des_traitements'][$champ] ?? false; |
|
| 4937 | + if (!$traitements or !is_array($traitements)) { |
|
| 4938 | + return $texte; |
|
| 4939 | + } |
|
| 4940 | 4940 | |
| 4941 | - $traitement = ''; |
|
| 4942 | - if ($table_objet and (!isset($traitements[0]) or count($traitements) > 1)) { |
|
| 4943 | - // necessaire pour prendre en charge les vieux appels avec un table_objet_sql en 3e arg |
|
| 4944 | - $table_objet = table_objet($table_objet); |
|
| 4945 | - if (isset($traitements[$table_objet])) { |
|
| 4946 | - $traitement = $traitements[$table_objet]; |
|
| 4947 | - } |
|
| 4948 | - } |
|
| 4949 | - if (!$traitement and isset($traitements[0])) { |
|
| 4950 | - $traitement = $traitements[0]; |
|
| 4951 | - } |
|
| 4952 | - // (sinon prendre le premier de la liste par defaut ?) |
|
| 4941 | + $traitement = ''; |
|
| 4942 | + if ($table_objet and (!isset($traitements[0]) or count($traitements) > 1)) { |
|
| 4943 | + // necessaire pour prendre en charge les vieux appels avec un table_objet_sql en 3e arg |
|
| 4944 | + $table_objet = table_objet($table_objet); |
|
| 4945 | + if (isset($traitements[$table_objet])) { |
|
| 4946 | + $traitement = $traitements[$table_objet]; |
|
| 4947 | + } |
|
| 4948 | + } |
|
| 4949 | + if (!$traitement and isset($traitements[0])) { |
|
| 4950 | + $traitement = $traitements[0]; |
|
| 4951 | + } |
|
| 4952 | + // (sinon prendre le premier de la liste par defaut ?) |
|
| 4953 | 4953 | |
| 4954 | - if (!$traitement) { |
|
| 4955 | - return $texte; |
|
| 4956 | - } |
|
| 4954 | + if (!$traitement) { |
|
| 4955 | + return $texte; |
|
| 4956 | + } |
|
| 4957 | 4957 | |
| 4958 | - $traitement = str_replace('%s', "'" . texte_script($texte) . "'", $traitement); |
|
| 4958 | + $traitement = str_replace('%s', "'" . texte_script($texte) . "'", $traitement); |
|
| 4959 | 4959 | |
| 4960 | - // signaler qu'on est dans l'espace prive pour les filtres qui se servent de ce flag |
|
| 4961 | - if (test_espace_prive()) { |
|
| 4962 | - $env['espace_prive'] = 1; |
|
| 4963 | - } |
|
| 4960 | + // signaler qu'on est dans l'espace prive pour les filtres qui se servent de ce flag |
|
| 4961 | + if (test_espace_prive()) { |
|
| 4962 | + $env['espace_prive'] = 1; |
|
| 4963 | + } |
|
| 4964 | 4964 | |
| 4965 | - // Fournir $connect et $Pile[0] au traitement si besoin |
|
| 4966 | - $Pile = [0 => $env]; |
|
| 4967 | - eval("\$texte = $traitement;"); |
|
| 4965 | + // Fournir $connect et $Pile[0] au traitement si besoin |
|
| 4966 | + $Pile = [0 => $env]; |
|
| 4967 | + eval("\$texte = $traitement;"); |
|
| 4968 | 4968 | |
| 4969 | - return $texte; |
|
| 4969 | + return $texte; |
|
| 4970 | 4970 | } |
| 4971 | 4971 | |
| 4972 | 4972 | |
@@ -4980,21 +4980,21 @@ discard block |
||
| 4980 | 4980 | * @return string |
| 4981 | 4981 | */ |
| 4982 | 4982 | function generer_objet_lien(int $id_objet, string $objet, int $longueur = 80, string $connect = ''): string { |
| 4983 | - include_spip('inc/liens'); |
|
| 4984 | - $titre = traiter_raccourci_titre($id_objet, $objet, $connect); |
|
| 4985 | - // lorsque l'objet n'est plus declare (plugin desactive par exemple) |
|
| 4986 | - // le raccourcis n'est plus valide |
|
| 4987 | - $titre = typo($titre['titre']) ?? ''; |
|
| 4988 | - // on essaye avec generer_info_entite ? |
|
| 4989 | - if (!strlen($titre) and !$connect) { |
|
| 4990 | - $titre = generer_objet_info($id_objet, $objet, 'titre'); |
|
| 4991 | - } |
|
| 4992 | - if (!strlen($titre)) { |
|
| 4993 | - $titre = _T('info_sans_titre'); |
|
| 4994 | - } |
|
| 4995 | - $url = generer_objet_url($id_objet, $objet, '', '', null, '', $connect); |
|
| 4983 | + include_spip('inc/liens'); |
|
| 4984 | + $titre = traiter_raccourci_titre($id_objet, $objet, $connect); |
|
| 4985 | + // lorsque l'objet n'est plus declare (plugin desactive par exemple) |
|
| 4986 | + // le raccourcis n'est plus valide |
|
| 4987 | + $titre = typo($titre['titre']) ?? ''; |
|
| 4988 | + // on essaye avec generer_info_entite ? |
|
| 4989 | + if (!strlen($titre) and !$connect) { |
|
| 4990 | + $titre = generer_objet_info($id_objet, $objet, 'titre'); |
|
| 4991 | + } |
|
| 4992 | + if (!strlen($titre)) { |
|
| 4993 | + $titre = _T('info_sans_titre'); |
|
| 4994 | + } |
|
| 4995 | + $url = generer_objet_url($id_objet, $objet, '', '', null, '', $connect); |
|
| 4996 | 4996 | |
| 4997 | - return "<a href='$url' class='$objet'>" . couper($titre, $longueur) . '</a>'; |
|
| 4997 | + return "<a href='$url' class='$objet'>" . couper($titre, $longueur) . '</a>'; |
|
| 4998 | 4998 | } |
| 4999 | 4999 | |
| 5000 | 5000 | /** |
@@ -5002,7 +5002,7 @@ discard block |
||
| 5002 | 5002 | * @see generer_objet_lien |
| 5003 | 5003 | */ |
| 5004 | 5004 | function generer_lien_entite($id_objet, $objet, $longueur = 80, $connect = null) { |
| 5005 | - return generer_objet_lien(intval($id_objet), $objet, $longueur, $connect ?? ''); |
|
| 5005 | + return generer_objet_lien(intval($id_objet), $objet, $longueur, $connect ?? ''); |
|
| 5006 | 5006 | } |
| 5007 | 5007 | |
| 5008 | 5008 | /** |
@@ -5018,15 +5018,15 @@ discard block |
||
| 5018 | 5018 | * @return string |
| 5019 | 5019 | */ |
| 5020 | 5020 | function wrap($texte, $wrap) { |
| 5021 | - $balises = extraire_balises($wrap); |
|
| 5022 | - if (preg_match_all(",<([a-z]\w*)\b[^>]*>,UimsS", $wrap, $regs, PREG_PATTERN_ORDER)) { |
|
| 5023 | - $texte = $wrap . $texte; |
|
| 5024 | - $regs = array_reverse($regs[1]); |
|
| 5025 | - $wrap = '</' . implode('></', $regs) . '>'; |
|
| 5026 | - $texte = $texte . $wrap; |
|
| 5027 | - } |
|
| 5021 | + $balises = extraire_balises($wrap); |
|
| 5022 | + if (preg_match_all(",<([a-z]\w*)\b[^>]*>,UimsS", $wrap, $regs, PREG_PATTERN_ORDER)) { |
|
| 5023 | + $texte = $wrap . $texte; |
|
| 5024 | + $regs = array_reverse($regs[1]); |
|
| 5025 | + $wrap = '</' . implode('></', $regs) . '>'; |
|
| 5026 | + $texte = $texte . $wrap; |
|
| 5027 | + } |
|
| 5028 | 5028 | |
| 5029 | - return $texte; |
|
| 5029 | + return $texte; |
|
| 5030 | 5030 | } |
| 5031 | 5031 | |
| 5032 | 5032 | |
@@ -5046,44 +5046,44 @@ discard block |
||
| 5046 | 5046 | * @return array|mixed|string |
| 5047 | 5047 | */ |
| 5048 | 5048 | function filtre_print_dist($u, $join = '<br />', $indent = 0) { |
| 5049 | - if (is_string($u)) { |
|
| 5050 | - $u = typo($u); |
|
| 5049 | + if (is_string($u)) { |
|
| 5050 | + $u = typo($u); |
|
| 5051 | 5051 | |
| 5052 | - return $u; |
|
| 5053 | - } |
|
| 5052 | + return $u; |
|
| 5053 | + } |
|
| 5054 | 5054 | |
| 5055 | - // caster $u en array si besoin |
|
| 5056 | - if (is_object($u)) { |
|
| 5057 | - $u = (array)$u; |
|
| 5058 | - } |
|
| 5055 | + // caster $u en array si besoin |
|
| 5056 | + if (is_object($u)) { |
|
| 5057 | + $u = (array)$u; |
|
| 5058 | + } |
|
| 5059 | 5059 | |
| 5060 | - if (is_array($u)) { |
|
| 5061 | - $out = ''; |
|
| 5062 | - // toutes les cles sont numeriques ? |
|
| 5063 | - // et aucun enfant n'est un tableau |
|
| 5064 | - // liste simple separee par des virgules |
|
| 5065 | - $numeric_keys = array_map('is_numeric', array_keys($u)); |
|
| 5066 | - $array_values = array_map('is_array', $u); |
|
| 5067 | - $object_values = array_map('is_object', $u); |
|
| 5068 | - if ( |
|
| 5069 | - array_sum($numeric_keys) == count($numeric_keys) |
|
| 5070 | - and !array_sum($array_values) |
|
| 5071 | - and !array_sum($object_values) |
|
| 5072 | - ) { |
|
| 5073 | - return join(', ', array_map('filtre_print_dist', $u)); |
|
| 5074 | - } |
|
| 5060 | + if (is_array($u)) { |
|
| 5061 | + $out = ''; |
|
| 5062 | + // toutes les cles sont numeriques ? |
|
| 5063 | + // et aucun enfant n'est un tableau |
|
| 5064 | + // liste simple separee par des virgules |
|
| 5065 | + $numeric_keys = array_map('is_numeric', array_keys($u)); |
|
| 5066 | + $array_values = array_map('is_array', $u); |
|
| 5067 | + $object_values = array_map('is_object', $u); |
|
| 5068 | + if ( |
|
| 5069 | + array_sum($numeric_keys) == count($numeric_keys) |
|
| 5070 | + and !array_sum($array_values) |
|
| 5071 | + and !array_sum($object_values) |
|
| 5072 | + ) { |
|
| 5073 | + return join(', ', array_map('filtre_print_dist', $u)); |
|
| 5074 | + } |
|
| 5075 | 5075 | |
| 5076 | - // sinon on passe a la ligne et on indente |
|
| 5077 | - $i_str = str_pad('', $indent, ' '); |
|
| 5078 | - foreach ($u as $k => $v) { |
|
| 5079 | - $out .= $join . $i_str . "$k: " . filtre_print_dist($v, $join, $indent + 2); |
|
| 5080 | - } |
|
| 5076 | + // sinon on passe a la ligne et on indente |
|
| 5077 | + $i_str = str_pad('', $indent, ' '); |
|
| 5078 | + foreach ($u as $k => $v) { |
|
| 5079 | + $out .= $join . $i_str . "$k: " . filtre_print_dist($v, $join, $indent + 2); |
|
| 5080 | + } |
|
| 5081 | 5081 | |
| 5082 | - return $out; |
|
| 5083 | - } |
|
| 5082 | + return $out; |
|
| 5083 | + } |
|
| 5084 | 5084 | |
| 5085 | - // on sait pas quoi faire... |
|
| 5086 | - return $u; |
|
| 5085 | + // on sait pas quoi faire... |
|
| 5086 | + return $u; |
|
| 5087 | 5087 | } |
| 5088 | 5088 | |
| 5089 | 5089 | |
@@ -5096,10 +5096,10 @@ discard block |
||
| 5096 | 5096 | * @return string|array |
| 5097 | 5097 | */ |
| 5098 | 5098 | function objet_info($objet, $info) { |
| 5099 | - $table = table_objet_sql($objet); |
|
| 5100 | - $infos = lister_tables_objets_sql($table); |
|
| 5099 | + $table = table_objet_sql($objet); |
|
| 5100 | + $infos = lister_tables_objets_sql($table); |
|
| 5101 | 5101 | |
| 5102 | - return ($infos[$info] ?? ''); |
|
| 5102 | + return ($infos[$info] ?? ''); |
|
| 5103 | 5103 | } |
| 5104 | 5104 | |
| 5105 | 5105 | /** |
@@ -5114,11 +5114,11 @@ discard block |
||
| 5114 | 5114 | * Texte traduit du comptage, tel que '3 articles' |
| 5115 | 5115 | */ |
| 5116 | 5116 | function objet_afficher_nb($nb, $objet) { |
| 5117 | - if (!$nb) { |
|
| 5118 | - return _T(objet_info($objet, 'info_aucun_objet')); |
|
| 5119 | - } else { |
|
| 5120 | - return _T(objet_info($objet, $nb == 1 ? 'info_1_objet' : 'info_nb_objets'), ['nb' => $nb]); |
|
| 5121 | - } |
|
| 5117 | + if (!$nb) { |
|
| 5118 | + return _T(objet_info($objet, 'info_aucun_objet')); |
|
| 5119 | + } else { |
|
| 5120 | + return _T(objet_info($objet, $nb == 1 ? 'info_1_objet' : 'info_nb_objets'), ['nb' => $nb]); |
|
| 5121 | + } |
|
| 5122 | 5122 | } |
| 5123 | 5123 | |
| 5124 | 5124 | /** |
@@ -5130,11 +5130,11 @@ discard block |
||
| 5130 | 5130 | * @return string |
| 5131 | 5131 | */ |
| 5132 | 5132 | function objet_icone($objet, $taille = 24, $class = '') { |
| 5133 | - $icone = objet_info($objet, 'icone_objet') . '-' . $taille . '.png'; |
|
| 5134 | - $icone = chemin_image($icone); |
|
| 5135 | - $balise_img = charger_filtre('balise_img'); |
|
| 5133 | + $icone = objet_info($objet, 'icone_objet') . '-' . $taille . '.png'; |
|
| 5134 | + $icone = chemin_image($icone); |
|
| 5135 | + $balise_img = charger_filtre('balise_img'); |
|
| 5136 | 5136 | |
| 5137 | - return $icone ? $balise_img($icone, _T(objet_info($objet, 'texte_objet')), $class, $taille) : ''; |
|
| 5137 | + return $icone ? $balise_img($icone, _T(objet_info($objet, 'texte_objet')), $class, $taille) : ''; |
|
| 5138 | 5138 | } |
| 5139 | 5139 | |
| 5140 | 5140 | /** |
@@ -5155,12 +5155,12 @@ discard block |
||
| 5155 | 5155 | * @return string |
| 5156 | 5156 | */ |
| 5157 | 5157 | function objet_T($objet, $chaine, $args = [], $options = []) { |
| 5158 | - $chaine = explode(':', $chaine); |
|
| 5159 | - if ($t = _T($objet . ':' . end($chaine), $args, array_merge($options, ['force' => false]))) { |
|
| 5160 | - return $t; |
|
| 5161 | - } |
|
| 5162 | - $chaine = implode(':', $chaine); |
|
| 5163 | - return _T($chaine, $args, $options); |
|
| 5158 | + $chaine = explode(':', $chaine); |
|
| 5159 | + if ($t = _T($objet . ':' . end($chaine), $args, array_merge($options, ['force' => false]))) { |
|
| 5160 | + return $t; |
|
| 5161 | + } |
|
| 5162 | + $chaine = implode(':', $chaine); |
|
| 5163 | + return _T($chaine, $args, $options); |
|
| 5164 | 5164 | } |
| 5165 | 5165 | |
| 5166 | 5166 | /** |
@@ -5174,18 +5174,18 @@ discard block |
||
| 5174 | 5174 | * @return string Code HTML |
| 5175 | 5175 | */ |
| 5176 | 5176 | function insert_head_css_conditionnel($flux) { |
| 5177 | - if ( |
|
| 5178 | - strpos($flux, '<!-- insert_head_css -->') === false |
|
| 5179 | - and $p = strpos($flux, '<!-- insert_head -->') |
|
| 5180 | - ) { |
|
| 5181 | - // plutot avant le premier js externe (jquery) pour etre non bloquant |
|
| 5182 | - if ($p1 = stripos($flux, '<script src=') and $p1 < $p) { |
|
| 5183 | - $p = $p1; |
|
| 5184 | - } |
|
| 5185 | - $flux = substr_replace($flux, pipeline('insert_head_css', '<!-- insert_head_css -->'), $p, 0); |
|
| 5186 | - } |
|
| 5177 | + if ( |
|
| 5178 | + strpos($flux, '<!-- insert_head_css -->') === false |
|
| 5179 | + and $p = strpos($flux, '<!-- insert_head -->') |
|
| 5180 | + ) { |
|
| 5181 | + // plutot avant le premier js externe (jquery) pour etre non bloquant |
|
| 5182 | + if ($p1 = stripos($flux, '<script src=') and $p1 < $p) { |
|
| 5183 | + $p = $p1; |
|
| 5184 | + } |
|
| 5185 | + $flux = substr_replace($flux, pipeline('insert_head_css', '<!-- insert_head_css -->'), $p, 0); |
|
| 5186 | + } |
|
| 5187 | 5187 | |
| 5188 | - return $flux; |
|
| 5188 | + return $flux; |
|
| 5189 | 5189 | } |
| 5190 | 5190 | |
| 5191 | 5191 | /** |
@@ -5208,75 +5208,75 @@ discard block |
||
| 5208 | 5208 | * @return string |
| 5209 | 5209 | */ |
| 5210 | 5210 | function produire_fond_statique($fond, $contexte = [], $options = [], string $connect = '') { |
| 5211 | - if (isset($contexte['format'])) { |
|
| 5212 | - $extension = $contexte['format']; |
|
| 5213 | - unset($contexte['format']); |
|
| 5214 | - } else { |
|
| 5215 | - $extension = 'html'; |
|
| 5216 | - if (preg_match(',[.](css|js|json|xml|svg)$,', $fond, $m)) { |
|
| 5217 | - $extension = $m[1]; |
|
| 5218 | - } |
|
| 5219 | - } |
|
| 5220 | - // recuperer le contenu produit par le squelette |
|
| 5221 | - $options['raw'] = true; |
|
| 5222 | - $cache = recuperer_fond($fond, $contexte, $options, $connect); |
|
| 5223 | - |
|
| 5224 | - // calculer le nom de la css |
|
| 5225 | - $dir_var = sous_repertoire(_DIR_VAR, 'cache-' . $extension); |
|
| 5226 | - $nom_safe = preg_replace(',\W,', '_', str_replace('.', '_', $fond)); |
|
| 5227 | - $contexte_implicite = calculer_contexte_implicite(); |
|
| 5228 | - |
|
| 5229 | - // par defaut on hash selon les contextes qui sont a priori moins variables |
|
| 5230 | - // mais on peut hasher selon le contenu a la demande, si plusieurs contextes produisent un meme contenu |
|
| 5231 | - // reduit la variabilite du nom et donc le nombre de css concatenees possibles in fine |
|
| 5232 | - if (isset($options['hash_on_content']) and $options['hash_on_content']) { |
|
| 5233 | - $hash = md5($contexte_implicite['host'] . '::' . $cache); |
|
| 5234 | - } |
|
| 5235 | - else { |
|
| 5236 | - unset($contexte_implicite['notes']); // pas pertinent pour signaler un changeemnt de contenu pour des css/js |
|
| 5237 | - ksort($contexte); |
|
| 5238 | - $hash = md5($fond . json_encode($contexte_implicite, JSON_THROW_ON_ERROR) . json_encode($contexte, JSON_THROW_ON_ERROR) . $connect); |
|
| 5239 | - } |
|
| 5240 | - $filename = $dir_var . $extension . "dyn-$nom_safe-" . substr($hash, 0, 8) . ".$extension"; |
|
| 5241 | - |
|
| 5242 | - // mettre a jour le fichier si il n'existe pas |
|
| 5243 | - // ou trop ancien |
|
| 5244 | - // le dernier fichier produit est toujours suffixe par .last |
|
| 5245 | - // et recopie sur le fichier cible uniquement si il change |
|
| 5246 | - if ( |
|
| 5247 | - !file_exists($filename) |
|
| 5248 | - or !file_exists($filename . '.last') |
|
| 5249 | - or (isset($cache['lastmodified']) and $cache['lastmodified'] and filemtime($filename . '.last') < $cache['lastmodified']) |
|
| 5250 | - or (defined('_VAR_MODE') and _VAR_MODE == 'recalcul') |
|
| 5251 | - ) { |
|
| 5252 | - $contenu = $cache['texte']; |
|
| 5253 | - // passer les urls en absolu si c'est une css |
|
| 5254 | - if ($extension == 'css') { |
|
| 5255 | - $contenu = urls_absolues_css( |
|
| 5256 | - $contenu, |
|
| 5257 | - test_espace_prive() ? generer_url_ecrire('accueil') : generer_url_public($fond) |
|
| 5258 | - ); |
|
| 5259 | - } |
|
| 5260 | - |
|
| 5261 | - $comment = ''; |
|
| 5262 | - // ne pas insérer de commentaire sur certains formats |
|
| 5263 | - if (!in_array($extension, ['json', 'xml', 'svg'])) { |
|
| 5264 | - $comment = "/* #PRODUIRE{fond=$fond"; |
|
| 5265 | - foreach ($contexte as $k => $v) { |
|
| 5266 | - if (is_array($v)) { |
|
| 5267 | - $v = var_export($v, true); |
|
| 5268 | - } |
|
| 5269 | - $comment .= ",$k=$v"; |
|
| 5270 | - } |
|
| 5271 | - // pas de date dans le commentaire car sinon ca invalide le md5 et force la maj |
|
| 5272 | - // mais on peut mettre un md5 du contenu, ce qui donne un aperu rapide si la feuille a change ou non |
|
| 5273 | - $comment .= "}\n md5:" . md5($contenu) . " */\n"; |
|
| 5274 | - } |
|
| 5275 | - // et ecrire le fichier si il change |
|
| 5276 | - ecrire_fichier_calcule_si_modifie($filename, $comment . $contenu, false, true); |
|
| 5277 | - } |
|
| 5278 | - |
|
| 5279 | - return timestamp($filename); |
|
| 5211 | + if (isset($contexte['format'])) { |
|
| 5212 | + $extension = $contexte['format']; |
|
| 5213 | + unset($contexte['format']); |
|
| 5214 | + } else { |
|
| 5215 | + $extension = 'html'; |
|
| 5216 | + if (preg_match(',[.](css|js|json|xml|svg)$,', $fond, $m)) { |
|
| 5217 | + $extension = $m[1]; |
|
| 5218 | + } |
|
| 5219 | + } |
|
| 5220 | + // recuperer le contenu produit par le squelette |
|
| 5221 | + $options['raw'] = true; |
|
| 5222 | + $cache = recuperer_fond($fond, $contexte, $options, $connect); |
|
| 5223 | + |
|
| 5224 | + // calculer le nom de la css |
|
| 5225 | + $dir_var = sous_repertoire(_DIR_VAR, 'cache-' . $extension); |
|
| 5226 | + $nom_safe = preg_replace(',\W,', '_', str_replace('.', '_', $fond)); |
|
| 5227 | + $contexte_implicite = calculer_contexte_implicite(); |
|
| 5228 | + |
|
| 5229 | + // par defaut on hash selon les contextes qui sont a priori moins variables |
|
| 5230 | + // mais on peut hasher selon le contenu a la demande, si plusieurs contextes produisent un meme contenu |
|
| 5231 | + // reduit la variabilite du nom et donc le nombre de css concatenees possibles in fine |
|
| 5232 | + if (isset($options['hash_on_content']) and $options['hash_on_content']) { |
|
| 5233 | + $hash = md5($contexte_implicite['host'] . '::' . $cache); |
|
| 5234 | + } |
|
| 5235 | + else { |
|
| 5236 | + unset($contexte_implicite['notes']); // pas pertinent pour signaler un changeemnt de contenu pour des css/js |
|
| 5237 | + ksort($contexte); |
|
| 5238 | + $hash = md5($fond . json_encode($contexte_implicite, JSON_THROW_ON_ERROR) . json_encode($contexte, JSON_THROW_ON_ERROR) . $connect); |
|
| 5239 | + } |
|
| 5240 | + $filename = $dir_var . $extension . "dyn-$nom_safe-" . substr($hash, 0, 8) . ".$extension"; |
|
| 5241 | + |
|
| 5242 | + // mettre a jour le fichier si il n'existe pas |
|
| 5243 | + // ou trop ancien |
|
| 5244 | + // le dernier fichier produit est toujours suffixe par .last |
|
| 5245 | + // et recopie sur le fichier cible uniquement si il change |
|
| 5246 | + if ( |
|
| 5247 | + !file_exists($filename) |
|
| 5248 | + or !file_exists($filename . '.last') |
|
| 5249 | + or (isset($cache['lastmodified']) and $cache['lastmodified'] and filemtime($filename . '.last') < $cache['lastmodified']) |
|
| 5250 | + or (defined('_VAR_MODE') and _VAR_MODE == 'recalcul') |
|
| 5251 | + ) { |
|
| 5252 | + $contenu = $cache['texte']; |
|
| 5253 | + // passer les urls en absolu si c'est une css |
|
| 5254 | + if ($extension == 'css') { |
|
| 5255 | + $contenu = urls_absolues_css( |
|
| 5256 | + $contenu, |
|
| 5257 | + test_espace_prive() ? generer_url_ecrire('accueil') : generer_url_public($fond) |
|
| 5258 | + ); |
|
| 5259 | + } |
|
| 5260 | + |
|
| 5261 | + $comment = ''; |
|
| 5262 | + // ne pas insérer de commentaire sur certains formats |
|
| 5263 | + if (!in_array($extension, ['json', 'xml', 'svg'])) { |
|
| 5264 | + $comment = "/* #PRODUIRE{fond=$fond"; |
|
| 5265 | + foreach ($contexte as $k => $v) { |
|
| 5266 | + if (is_array($v)) { |
|
| 5267 | + $v = var_export($v, true); |
|
| 5268 | + } |
|
| 5269 | + $comment .= ",$k=$v"; |
|
| 5270 | + } |
|
| 5271 | + // pas de date dans le commentaire car sinon ca invalide le md5 et force la maj |
|
| 5272 | + // mais on peut mettre un md5 du contenu, ce qui donne un aperu rapide si la feuille a change ou non |
|
| 5273 | + $comment .= "}\n md5:" . md5($contenu) . " */\n"; |
|
| 5274 | + } |
|
| 5275 | + // et ecrire le fichier si il change |
|
| 5276 | + ecrire_fichier_calcule_si_modifie($filename, $comment . $contenu, false, true); |
|
| 5277 | + } |
|
| 5278 | + |
|
| 5279 | + return timestamp($filename); |
|
| 5280 | 5280 | } |
| 5281 | 5281 | |
| 5282 | 5282 | /** |
@@ -5289,15 +5289,15 @@ discard block |
||
| 5289 | 5289 | * $fichier auquel on a ajouté le timestamp |
| 5290 | 5290 | */ |
| 5291 | 5291 | function timestamp($fichier) { |
| 5292 | - if ( |
|
| 5293 | - !$fichier |
|
| 5294 | - or !file_exists($fichier) |
|
| 5295 | - or !$m = filemtime($fichier) |
|
| 5296 | - ) { |
|
| 5297 | - return $fichier; |
|
| 5298 | - } |
|
| 5292 | + if ( |
|
| 5293 | + !$fichier |
|
| 5294 | + or !file_exists($fichier) |
|
| 5295 | + or !$m = filemtime($fichier) |
|
| 5296 | + ) { |
|
| 5297 | + return $fichier; |
|
| 5298 | + } |
|
| 5299 | 5299 | |
| 5300 | - return "$fichier?$m"; |
|
| 5300 | + return "$fichier?$m"; |
|
| 5301 | 5301 | } |
| 5302 | 5302 | |
| 5303 | 5303 | /** |
@@ -5307,11 +5307,11 @@ discard block |
||
| 5307 | 5307 | * @return string |
| 5308 | 5308 | */ |
| 5309 | 5309 | function supprimer_timestamp($url) { |
| 5310 | - if (strpos($url, '?') === false) { |
|
| 5311 | - return $url; |
|
| 5312 | - } |
|
| 5310 | + if (strpos($url, '?') === false) { |
|
| 5311 | + return $url; |
|
| 5312 | + } |
|
| 5313 | 5313 | |
| 5314 | - return preg_replace(',\?[[:digit:]]+$,', '', $url); |
|
| 5314 | + return preg_replace(',\?[[:digit:]]+$,', '', $url); |
|
| 5315 | 5315 | } |
| 5316 | 5316 | |
| 5317 | 5317 | /** |
@@ -5326,15 +5326,15 @@ discard block |
||
| 5326 | 5326 | * @return string |
| 5327 | 5327 | */ |
| 5328 | 5328 | function filtre_nettoyer_titre_email_dist($titre) { |
| 5329 | - include_spip('inc/envoyer_mail'); |
|
| 5329 | + include_spip('inc/envoyer_mail'); |
|
| 5330 | 5330 | |
| 5331 | - $titre = nettoyer_titre_email($titre); |
|
| 5332 | - // on est dans un squelette : securiser le retour |
|
| 5333 | - if (strpos($titre, '<') !== false) { |
|
| 5334 | - $titre = interdire_scripts($titre); |
|
| 5335 | - } |
|
| 5331 | + $titre = nettoyer_titre_email($titre); |
|
| 5332 | + // on est dans un squelette : securiser le retour |
|
| 5333 | + if (strpos($titre, '<') !== false) { |
|
| 5334 | + $titre = interdire_scripts($titre); |
|
| 5335 | + } |
|
| 5336 | 5336 | |
| 5337 | - return $titre; |
|
| 5337 | + return $titre; |
|
| 5338 | 5338 | } |
| 5339 | 5339 | |
| 5340 | 5340 | /** |
@@ -5356,27 +5356,27 @@ discard block |
||
| 5356 | 5356 | * @return string |
| 5357 | 5357 | */ |
| 5358 | 5358 | function filtre_chercher_rubrique_dist( |
| 5359 | - $titre, |
|
| 5360 | - $id_objet, |
|
| 5361 | - $id_parent, |
|
| 5362 | - $objet, |
|
| 5363 | - $id_secteur, |
|
| 5364 | - $restreint, |
|
| 5365 | - $actionable = false, |
|
| 5366 | - $retour_sans_cadre = false |
|
| 5359 | + $titre, |
|
| 5360 | + $id_objet, |
|
| 5361 | + $id_parent, |
|
| 5362 | + $objet, |
|
| 5363 | + $id_secteur, |
|
| 5364 | + $restreint, |
|
| 5365 | + $actionable = false, |
|
| 5366 | + $retour_sans_cadre = false |
|
| 5367 | 5367 | ) { |
| 5368 | - include_spip('inc/filtres_ecrire'); |
|
| 5368 | + include_spip('inc/filtres_ecrire'); |
|
| 5369 | 5369 | |
| 5370 | - return chercher_rubrique( |
|
| 5371 | - $titre, |
|
| 5372 | - $id_objet, |
|
| 5373 | - $id_parent, |
|
| 5374 | - $objet, |
|
| 5375 | - $id_secteur, |
|
| 5376 | - $restreint, |
|
| 5377 | - $actionable, |
|
| 5378 | - $retour_sans_cadre |
|
| 5379 | - ); |
|
| 5370 | + return chercher_rubrique( |
|
| 5371 | + $titre, |
|
| 5372 | + $id_objet, |
|
| 5373 | + $id_parent, |
|
| 5374 | + $objet, |
|
| 5375 | + $id_secteur, |
|
| 5376 | + $restreint, |
|
| 5377 | + $actionable, |
|
| 5378 | + $retour_sans_cadre |
|
| 5379 | + ); |
|
| 5380 | 5380 | } |
| 5381 | 5381 | |
| 5382 | 5382 | /** |
@@ -5405,56 +5405,56 @@ discard block |
||
| 5405 | 5405 | * Chaîne vide si l'accès est autorisé |
| 5406 | 5406 | */ |
| 5407 | 5407 | function sinon_interdire_acces($ok = false, $url = '', $statut = 0, $message = null) { |
| 5408 | - if ($ok) { |
|
| 5409 | - return ''; |
|
| 5410 | - } |
|
| 5411 | - |
|
| 5412 | - // Vider tous les tampons |
|
| 5413 | - $level = @ob_get_level(); |
|
| 5414 | - while ($level--) { |
|
| 5415 | - @ob_end_clean(); |
|
| 5416 | - } |
|
| 5417 | - |
|
| 5418 | - include_spip('inc/headers'); |
|
| 5419 | - |
|
| 5420 | - // S'il y a une URL, on redirige (si pas de statut, la fonction mettra 302 par défaut) |
|
| 5421 | - if ($url) { |
|
| 5422 | - redirige_par_entete($url, '', $statut); |
|
| 5423 | - } |
|
| 5424 | - |
|
| 5425 | - // ecriture simplifiee avec message en 3eme argument (= statut 403) |
|
| 5426 | - if (!is_numeric($statut) and is_null($message)) { |
|
| 5427 | - $message = $statut; |
|
| 5428 | - $statut = 0; |
|
| 5429 | - } |
|
| 5430 | - if (!$message) { |
|
| 5431 | - $message = ''; |
|
| 5432 | - } |
|
| 5433 | - $statut = intval($statut); |
|
| 5434 | - |
|
| 5435 | - // Si on est dans l'espace privé, on génère du 403 Forbidden par defaut ou du 404 |
|
| 5436 | - if (test_espace_prive()) { |
|
| 5437 | - if (!$statut or !in_array($statut, [404, 403])) { |
|
| 5438 | - $statut = 403; |
|
| 5439 | - } |
|
| 5440 | - http_response_code(403); |
|
| 5441 | - $echec = charger_fonction('403', 'exec'); |
|
| 5442 | - $echec($message); |
|
| 5443 | - } else { |
|
| 5444 | - // Sinon dans l'espace public on redirige vers une 404 par défaut, car elle toujours présente normalement |
|
| 5445 | - if (!$statut) { |
|
| 5446 | - $statut = 404; |
|
| 5447 | - } |
|
| 5448 | - // Dans tous les cas on modifie l'entité avec ce qui est demandé |
|
| 5449 | - http_response_code($statut); |
|
| 5450 | - // Si le statut est une erreur et qu'il n'y a pas de redirection on va chercher le squelette du même nom |
|
| 5451 | - if ($statut >= 400) { |
|
| 5452 | - echo recuperer_fond("$statut", ['erreur' => $message]); |
|
| 5453 | - } |
|
| 5454 | - } |
|
| 5455 | - |
|
| 5456 | - |
|
| 5457 | - exit; |
|
| 5408 | + if ($ok) { |
|
| 5409 | + return ''; |
|
| 5410 | + } |
|
| 5411 | + |
|
| 5412 | + // Vider tous les tampons |
|
| 5413 | + $level = @ob_get_level(); |
|
| 5414 | + while ($level--) { |
|
| 5415 | + @ob_end_clean(); |
|
| 5416 | + } |
|
| 5417 | + |
|
| 5418 | + include_spip('inc/headers'); |
|
| 5419 | + |
|
| 5420 | + // S'il y a une URL, on redirige (si pas de statut, la fonction mettra 302 par défaut) |
|
| 5421 | + if ($url) { |
|
| 5422 | + redirige_par_entete($url, '', $statut); |
|
| 5423 | + } |
|
| 5424 | + |
|
| 5425 | + // ecriture simplifiee avec message en 3eme argument (= statut 403) |
|
| 5426 | + if (!is_numeric($statut) and is_null($message)) { |
|
| 5427 | + $message = $statut; |
|
| 5428 | + $statut = 0; |
|
| 5429 | + } |
|
| 5430 | + if (!$message) { |
|
| 5431 | + $message = ''; |
|
| 5432 | + } |
|
| 5433 | + $statut = intval($statut); |
|
| 5434 | + |
|
| 5435 | + // Si on est dans l'espace privé, on génère du 403 Forbidden par defaut ou du 404 |
|
| 5436 | + if (test_espace_prive()) { |
|
| 5437 | + if (!$statut or !in_array($statut, [404, 403])) { |
|
| 5438 | + $statut = 403; |
|
| 5439 | + } |
|
| 5440 | + http_response_code(403); |
|
| 5441 | + $echec = charger_fonction('403', 'exec'); |
|
| 5442 | + $echec($message); |
|
| 5443 | + } else { |
|
| 5444 | + // Sinon dans l'espace public on redirige vers une 404 par défaut, car elle toujours présente normalement |
|
| 5445 | + if (!$statut) { |
|
| 5446 | + $statut = 404; |
|
| 5447 | + } |
|
| 5448 | + // Dans tous les cas on modifie l'entité avec ce qui est demandé |
|
| 5449 | + http_response_code($statut); |
|
| 5450 | + // Si le statut est une erreur et qu'il n'y a pas de redirection on va chercher le squelette du même nom |
|
| 5451 | + if ($statut >= 400) { |
|
| 5452 | + echo recuperer_fond("$statut", ['erreur' => $message]); |
|
| 5453 | + } |
|
| 5454 | + } |
|
| 5455 | + |
|
| 5456 | + |
|
| 5457 | + exit; |
|
| 5458 | 5458 | } |
| 5459 | 5459 | |
| 5460 | 5460 | /** |
@@ -5465,11 +5465,11 @@ discard block |
||
| 5465 | 5465 | * @return string |
| 5466 | 5466 | */ |
| 5467 | 5467 | function filtre_compacte_dist($source, $format = null) { |
| 5468 | - if (function_exists('minifier')) { |
|
| 5469 | - return minifier($source, $format); |
|
| 5470 | - } |
|
| 5468 | + if (function_exists('minifier')) { |
|
| 5469 | + return minifier($source, $format); |
|
| 5470 | + } |
|
| 5471 | 5471 | |
| 5472 | - return $source; |
|
| 5472 | + return $source; |
|
| 5473 | 5473 | } |
| 5474 | 5474 | |
| 5475 | 5475 | |
@@ -5481,32 +5481,32 @@ discard block |
||
| 5481 | 5481 | * @return string |
| 5482 | 5482 | */ |
| 5483 | 5483 | function spip_affiche_mot_de_passe_masque(?string $passe, bool $afficher_partiellement = false, ?int $portion_pourcent = null): string { |
| 5484 | - $passe ??= ''; |
|
| 5485 | - $l = strlen($passe); |
|
| 5486 | - |
|
| 5487 | - if ($l <= 8 or !$afficher_partiellement) { |
|
| 5488 | - if (!$l) { |
|
| 5489 | - return ''; // montrer qu'il y a pas de mot de passe si il y en a pas |
|
| 5490 | - } |
|
| 5491 | - return str_pad('', $afficher_partiellement ? $l : 16, '*'); |
|
| 5492 | - } |
|
| 5493 | - |
|
| 5494 | - if (is_null($portion_pourcent)) { |
|
| 5495 | - if (!defined('_SPIP_AFFICHE_MOT_DE_PASSE_MASQUE_PERCENT')) { |
|
| 5496 | - define('_SPIP_AFFICHE_MOT_DE_PASSE_MASQUE_PERCENT', 20); // 20% |
|
| 5497 | - } |
|
| 5498 | - $portion_pourcent = _SPIP_AFFICHE_MOT_DE_PASSE_MASQUE_PERCENT; |
|
| 5499 | - } |
|
| 5500 | - if ($portion_pourcent >= 100) { |
|
| 5501 | - return $passe; |
|
| 5502 | - } |
|
| 5503 | - $e = intval(ceil($l * $portion_pourcent / 100 / 2)); |
|
| 5504 | - $e = max($e, 0); |
|
| 5505 | - $mid = str_pad('', $l - 2 * $e, '*'); |
|
| 5506 | - if ($e > 0 and strlen($mid) > 8) { |
|
| 5507 | - $mid = '***...***'; |
|
| 5508 | - } |
|
| 5509 | - return substr($passe, 0, $e) . $mid . ($e > 0 ? substr($passe, -$e) : ''); |
|
| 5484 | + $passe ??= ''; |
|
| 5485 | + $l = strlen($passe); |
|
| 5486 | + |
|
| 5487 | + if ($l <= 8 or !$afficher_partiellement) { |
|
| 5488 | + if (!$l) { |
|
| 5489 | + return ''; // montrer qu'il y a pas de mot de passe si il y en a pas |
|
| 5490 | + } |
|
| 5491 | + return str_pad('', $afficher_partiellement ? $l : 16, '*'); |
|
| 5492 | + } |
|
| 5493 | + |
|
| 5494 | + if (is_null($portion_pourcent)) { |
|
| 5495 | + if (!defined('_SPIP_AFFICHE_MOT_DE_PASSE_MASQUE_PERCENT')) { |
|
| 5496 | + define('_SPIP_AFFICHE_MOT_DE_PASSE_MASQUE_PERCENT', 20); // 20% |
|
| 5497 | + } |
|
| 5498 | + $portion_pourcent = _SPIP_AFFICHE_MOT_DE_PASSE_MASQUE_PERCENT; |
|
| 5499 | + } |
|
| 5500 | + if ($portion_pourcent >= 100) { |
|
| 5501 | + return $passe; |
|
| 5502 | + } |
|
| 5503 | + $e = intval(ceil($l * $portion_pourcent / 100 / 2)); |
|
| 5504 | + $e = max($e, 0); |
|
| 5505 | + $mid = str_pad('', $l - 2 * $e, '*'); |
|
| 5506 | + if ($e > 0 and strlen($mid) > 8) { |
|
| 5507 | + $mid = '***...***'; |
|
| 5508 | + } |
|
| 5509 | + return substr($passe, 0, $e) . $mid . ($e > 0 ? substr($passe, -$e) : ''); |
|
| 5510 | 5510 | } |
| 5511 | 5511 | |
| 5512 | 5512 | |
@@ -5527,64 +5527,64 @@ discard block |
||
| 5527 | 5527 | */ |
| 5528 | 5528 | function identifiant_slug($texte, $type = '', $options = []) { |
| 5529 | 5529 | |
| 5530 | - $original = $texte; |
|
| 5531 | - $separateur = ($options['separateur'] ?? '_'); |
|
| 5532 | - $longueur_maxi = ($options['longueur_maxi'] ?? 60); |
|
| 5533 | - $longueur_mini = ($options['longueur_mini'] ?? 0); |
|
| 5530 | + $original = $texte; |
|
| 5531 | + $separateur = ($options['separateur'] ?? '_'); |
|
| 5532 | + $longueur_maxi = ($options['longueur_maxi'] ?? 60); |
|
| 5533 | + $longueur_mini = ($options['longueur_mini'] ?? 0); |
|
| 5534 | 5534 | |
| 5535 | - if (!function_exists('translitteration')) { |
|
| 5536 | - include_spip('inc/charsets'); |
|
| 5537 | - } |
|
| 5535 | + if (!function_exists('translitteration')) { |
|
| 5536 | + include_spip('inc/charsets'); |
|
| 5537 | + } |
|
| 5538 | 5538 | |
| 5539 | - // pas de balise html |
|
| 5540 | - if (strpos($texte, '<') !== false) { |
|
| 5541 | - $texte = strip_tags($texte); |
|
| 5542 | - } |
|
| 5543 | - if (strpos($texte, '&') !== false) { |
|
| 5544 | - $texte = unicode2charset($texte); |
|
| 5545 | - } |
|
| 5546 | - // On enlève les espaces indésirables |
|
| 5547 | - $texte = trim($texte); |
|
| 5539 | + // pas de balise html |
|
| 5540 | + if (strpos($texte, '<') !== false) { |
|
| 5541 | + $texte = strip_tags($texte); |
|
| 5542 | + } |
|
| 5543 | + if (strpos($texte, '&') !== false) { |
|
| 5544 | + $texte = unicode2charset($texte); |
|
| 5545 | + } |
|
| 5546 | + // On enlève les espaces indésirables |
|
| 5547 | + $texte = trim($texte); |
|
| 5548 | 5548 | |
| 5549 | - // On enlève les accents et cie |
|
| 5550 | - $texte = translitteration($texte); |
|
| 5549 | + // On enlève les accents et cie |
|
| 5550 | + $texte = translitteration($texte); |
|
| 5551 | 5551 | |
| 5552 | - // On remplace tout ce qui n'est pas un mot par un séparateur |
|
| 5553 | - $texte = preg_replace(',[\W_]+,ms', $separateur, $texte); |
|
| 5552 | + // On remplace tout ce qui n'est pas un mot par un séparateur |
|
| 5553 | + $texte = preg_replace(',[\W_]+,ms', $separateur, $texte); |
|
| 5554 | 5554 | |
| 5555 | - // nettoyer les doubles occurences du separateur si besoin |
|
| 5556 | - while (strpos($texte, (string) "$separateur$separateur") !== false) { |
|
| 5557 | - $texte = str_replace("$separateur$separateur", $separateur, $texte); |
|
| 5558 | - } |
|
| 5555 | + // nettoyer les doubles occurences du separateur si besoin |
|
| 5556 | + while (strpos($texte, (string) "$separateur$separateur") !== false) { |
|
| 5557 | + $texte = str_replace("$separateur$separateur", $separateur, $texte); |
|
| 5558 | + } |
|
| 5559 | 5559 | |
| 5560 | - // pas de separateur au debut ni a la fin |
|
| 5561 | - $texte = trim($texte, $separateur); |
|
| 5560 | + // pas de separateur au debut ni a la fin |
|
| 5561 | + $texte = trim($texte, $separateur); |
|
| 5562 | 5562 | |
| 5563 | - // en minuscules |
|
| 5564 | - $texte = strtolower($texte); |
|
| 5563 | + // en minuscules |
|
| 5564 | + $texte = strtolower($texte); |
|
| 5565 | 5565 | |
| 5566 | - switch ($type) { |
|
| 5567 | - case 'class': |
|
| 5568 | - case 'id': |
|
| 5569 | - case 'anchor': |
|
| 5570 | - if (preg_match(',^\d,', $texte)) { |
|
| 5571 | - $texte = substr($type, 0, 1) . $texte; |
|
| 5572 | - } |
|
| 5573 | - } |
|
| 5566 | + switch ($type) { |
|
| 5567 | + case 'class': |
|
| 5568 | + case 'id': |
|
| 5569 | + case 'anchor': |
|
| 5570 | + if (preg_match(',^\d,', $texte)) { |
|
| 5571 | + $texte = substr($type, 0, 1) . $texte; |
|
| 5572 | + } |
|
| 5573 | + } |
|
| 5574 | 5574 | |
| 5575 | - if (strlen($texte) > $longueur_maxi) { |
|
| 5576 | - $texte = substr($texte, 0, $longueur_maxi); |
|
| 5577 | - } |
|
| 5575 | + if (strlen($texte) > $longueur_maxi) { |
|
| 5576 | + $texte = substr($texte, 0, $longueur_maxi); |
|
| 5577 | + } |
|
| 5578 | 5578 | |
| 5579 | - if (strlen($texte) < $longueur_mini and $longueur_mini < $longueur_maxi) { |
|
| 5580 | - if (preg_match(',^\d,', $texte)) { |
|
| 5581 | - $texte = ($type ? substr($type, 0, 1) : 's') . $texte; |
|
| 5582 | - } |
|
| 5583 | - $texte .= $separateur . md5($original); |
|
| 5584 | - $texte = substr($texte, 0, $longueur_mini); |
|
| 5585 | - } |
|
| 5579 | + if (strlen($texte) < $longueur_mini and $longueur_mini < $longueur_maxi) { |
|
| 5580 | + if (preg_match(',^\d,', $texte)) { |
|
| 5581 | + $texte = ($type ? substr($type, 0, 1) : 's') . $texte; |
|
| 5582 | + } |
|
| 5583 | + $texte .= $separateur . md5($original); |
|
| 5584 | + $texte = substr($texte, 0, $longueur_mini); |
|
| 5585 | + } |
|
| 5586 | 5586 | |
| 5587 | - return $texte; |
|
| 5587 | + return $texte; |
|
| 5588 | 5588 | } |
| 5589 | 5589 | |
| 5590 | 5590 | |
@@ -5605,11 +5605,11 @@ discard block |
||
| 5605 | 5605 | * @exemple `<:info_maximum|label_nettoyer:>` |
| 5606 | 5606 | */ |
| 5607 | 5607 | function label_nettoyer(string $text, bool $ucfirst = true): string { |
| 5608 | - $label = preg_replace('#([\s:]|\ )+$#u', '', $text); |
|
| 5609 | - if ($ucfirst) { |
|
| 5610 | - $label = spip_ucfirst($label); |
|
| 5611 | - } |
|
| 5612 | - return $label; |
|
| 5608 | + $label = preg_replace('#([\s:]|\ )+$#u', '', $text); |
|
| 5609 | + if ($ucfirst) { |
|
| 5610 | + $label = spip_ucfirst($label); |
|
| 5611 | + } |
|
| 5612 | + return $label; |
|
| 5613 | 5613 | } |
| 5614 | 5614 | |
| 5615 | 5615 | /** |
@@ -5622,8 +5622,8 @@ discard block |
||
| 5622 | 5622 | * @exemple `<:info_maximum|label_ponctuer:>` |
| 5623 | 5623 | */ |
| 5624 | 5624 | function label_ponctuer(string $text, bool $ucfirst = true): string { |
| 5625 | - $label = label_nettoyer($text, $ucfirst); |
|
| 5626 | - return _T('label_ponctuer', ['label' => $label]); |
|
| 5625 | + $label = label_nettoyer($text, $ucfirst); |
|
| 5626 | + return _T('label_ponctuer', ['label' => $label]); |
|
| 5627 | 5627 | } |
| 5628 | 5628 | |
| 5629 | 5629 | |
@@ -5636,19 +5636,19 @@ discard block |
||
| 5636 | 5636 | * @return array |
| 5637 | 5637 | */ |
| 5638 | 5638 | function helper_filtre_objet_lister_enfants_ou_parents($objet, $id_objet, $fonction) { |
| 5639 | - if (!in_array($fonction, ['objet_lister_parents', 'objet_lister_enfants', 'objet_lister_parents_par_type', 'objet_lister_enfants_par_type'])) { |
|
| 5640 | - return []; |
|
| 5641 | - } |
|
| 5639 | + if (!in_array($fonction, ['objet_lister_parents', 'objet_lister_enfants', 'objet_lister_parents_par_type', 'objet_lister_enfants_par_type'])) { |
|
| 5640 | + return []; |
|
| 5641 | + } |
|
| 5642 | 5642 | |
| 5643 | - // compatibilite signature inversee |
|
| 5644 | - if (is_numeric($objet) and !is_numeric($id_objet)) { |
|
| 5645 | - [$objet, $id_objet] = [$id_objet, $objet]; |
|
| 5646 | - } |
|
| 5643 | + // compatibilite signature inversee |
|
| 5644 | + if (is_numeric($objet) and !is_numeric($id_objet)) { |
|
| 5645 | + [$objet, $id_objet] = [$id_objet, $objet]; |
|
| 5646 | + } |
|
| 5647 | 5647 | |
| 5648 | - if (!function_exists($fonction)) { |
|
| 5649 | - include_spip('base/objets'); |
|
| 5650 | - } |
|
| 5651 | - return $fonction($objet, $id_objet); |
|
| 5648 | + if (!function_exists($fonction)) { |
|
| 5649 | + include_spip('base/objets'); |
|
| 5650 | + } |
|
| 5651 | + return $fonction($objet, $id_objet); |
|
| 5652 | 5652 | } |
| 5653 | 5653 | |
| 5654 | 5654 | |
@@ -5663,7 +5663,7 @@ discard block |
||
| 5663 | 5663 | * @return array |
| 5664 | 5664 | */ |
| 5665 | 5665 | function filtre_objet_lister_parents_dist($objet, $id_objet) { |
| 5666 | - return helper_filtre_objet_lister_enfants_ou_parents($objet, $id_objet, 'objet_lister_parents'); |
|
| 5666 | + return helper_filtre_objet_lister_enfants_ou_parents($objet, $id_objet, 'objet_lister_parents'); |
|
| 5667 | 5667 | } |
| 5668 | 5668 | |
| 5669 | 5669 | /** |
@@ -5677,7 +5677,7 @@ discard block |
||
| 5677 | 5677 | * @return array |
| 5678 | 5678 | */ |
| 5679 | 5679 | function filtre_objet_lister_parents_par_type_dist($objet, $id_objet) { |
| 5680 | - return helper_filtre_objet_lister_enfants_ou_parents($objet, $id_objet, 'objet_lister_parents_par_type'); |
|
| 5680 | + return helper_filtre_objet_lister_enfants_ou_parents($objet, $id_objet, 'objet_lister_parents_par_type'); |
|
| 5681 | 5681 | } |
| 5682 | 5682 | |
| 5683 | 5683 | /** |
@@ -5691,7 +5691,7 @@ discard block |
||
| 5691 | 5691 | * @return array |
| 5692 | 5692 | */ |
| 5693 | 5693 | function filtre_objet_lister_enfants_dist($objet, $id_objet) { |
| 5694 | - return helper_filtre_objet_lister_enfants_ou_parents($objet, $id_objet, 'objet_lister_enfants'); |
|
| 5694 | + return helper_filtre_objet_lister_enfants_ou_parents($objet, $id_objet, 'objet_lister_enfants'); |
|
| 5695 | 5695 | } |
| 5696 | 5696 | |
| 5697 | 5697 | /** |
@@ -5705,5 +5705,5 @@ discard block |
||
| 5705 | 5705 | * @return array |
| 5706 | 5706 | */ |
| 5707 | 5707 | function filtre_objet_lister_enfants_par_type_dist($objet, $id_objet) { |
| 5708 | - return helper_filtre_objet_lister_enfants_ou_parents($objet, $id_objet, 'objet_lister_enfants_par_type'); |
|
| 5708 | + return helper_filtre_objet_lister_enfants_ou_parents($objet, $id_objet, 'objet_lister_enfants_par_type'); |
|
| 5709 | 5709 | } |
@@ -96,7 +96,7 @@ discard block |
||
| 96 | 96 | } |
| 97 | 97 | |
| 98 | 98 | include_fichiers_fonctions(); |
| 99 | - foreach (['filtre_' . $fonc, 'filtre_' . $fonc . '_dist', $fonc] as $f) { |
|
| 99 | + foreach (['filtre_'.$fonc, 'filtre_'.$fonc.'_dist', $fonc] as $f) { |
|
| 100 | 100 | trouver_filtre_matrice($f); // charge des fichiers spécifiques éventuels |
| 101 | 101 | if (is_callable($f)) { |
| 102 | 102 | return $f; |
@@ -234,7 +234,7 @@ discard block |
||
| 234 | 234 | // affichage "GIT [master: abcdef]" |
| 235 | 235 | $commit = $desc['commit_short'] ?? $desc['commit']; |
| 236 | 236 | if ($desc['branch']) { |
| 237 | - $commit = $desc['branch'] . ': ' . $commit; |
|
| 237 | + $commit = $desc['branch'].': '.$commit; |
|
| 238 | 238 | } |
| 239 | 239 | return "{$desc['vcs']} [$commit]"; |
| 240 | 240 | } |
@@ -253,9 +253,9 @@ discard block |
||
| 253 | 253 | } |
| 254 | 254 | |
| 255 | 255 | // version installee par GIT |
| 256 | - if (lire_fichier($dir . '/.git/HEAD', $c)) { |
|
| 256 | + if (lire_fichier($dir.'/.git/HEAD', $c)) { |
|
| 257 | 257 | $currentHead = trim(substr($c, 4)); |
| 258 | - if (lire_fichier($dir . '/.git/' . $currentHead, $hash)) { |
|
| 258 | + if (lire_fichier($dir.'/.git/'.$currentHead, $hash)) { |
|
| 259 | 259 | return [ |
| 260 | 260 | 'vcs' => 'GIT', |
| 261 | 261 | 'branch' => basename($currentHead), |
@@ -282,8 +282,8 @@ discard block |
||
| 282 | 282 | $dir = '.'; |
| 283 | 283 | } |
| 284 | 284 | // version installee par SVN |
| 285 | - if (file_exists($dir . '/.svn/wc.db') && class_exists(\SQLite3::class)) { |
|
| 286 | - $db = new SQLite3($dir . '/.svn/wc.db'); |
|
| 285 | + if (file_exists($dir.'/.svn/wc.db') && class_exists(\SQLite3::class)) { |
|
| 286 | + $db = new SQLite3($dir.'/.svn/wc.db'); |
|
| 287 | 287 | $result = $db->query('SELECT changed_revision FROM nodes WHERE local_relpath = "" LIMIT 1'); |
| 288 | 288 | if ($result) { |
| 289 | 289 | $row = $result->fetchArray(); |
@@ -301,12 +301,12 @@ discard block |
||
| 301 | 301 | |
| 302 | 302 | // La matrice est necessaire pour ne filtrer _que_ des fonctions definies dans filtres_images |
| 303 | 303 | // et laisser passer les fonctions personnelles baptisees image_... |
| 304 | -$GLOBALS['spip_matrice']['image_graver'] = true;//'inc/filtres_images_mini.php'; |
|
| 305 | -$GLOBALS['spip_matrice']['image_select'] = true;//'inc/filtres_images_mini.php'; |
|
| 306 | -$GLOBALS['spip_matrice']['image_reduire'] = true;//'inc/filtres_images_mini.php'; |
|
| 307 | -$GLOBALS['spip_matrice']['image_reduire_par'] = true;//'inc/filtres_images_mini.php'; |
|
| 308 | -$GLOBALS['spip_matrice']['image_passe_partout'] = true;//'inc/filtres_images_mini.php'; |
|
| 309 | -$GLOBALS['spip_matrice']['image_recadre_avec_fallback'] = true;//'inc/filtres_images_mini.php'; |
|
| 304 | +$GLOBALS['spip_matrice']['image_graver'] = true; //'inc/filtres_images_mini.php'; |
|
| 305 | +$GLOBALS['spip_matrice']['image_select'] = true; //'inc/filtres_images_mini.php'; |
|
| 306 | +$GLOBALS['spip_matrice']['image_reduire'] = true; //'inc/filtres_images_mini.php'; |
|
| 307 | +$GLOBALS['spip_matrice']['image_reduire_par'] = true; //'inc/filtres_images_mini.php'; |
|
| 308 | +$GLOBALS['spip_matrice']['image_passe_partout'] = true; //'inc/filtres_images_mini.php'; |
|
| 309 | +$GLOBALS['spip_matrice']['image_recadre_avec_fallback'] = true; //'inc/filtres_images_mini.php'; |
|
| 310 | 310 | |
| 311 | 311 | $GLOBALS['spip_matrice']['couleur_html_to_hex'] = 'inc/filtres_images_mini.php'; |
| 312 | 312 | $GLOBALS['spip_matrice']['couleur_hex_to_hsl'] = 'inc/filtres_images_mini.php'; |
@@ -465,8 +465,8 @@ discard block |
||
| 465 | 465 | */ |
| 466 | 466 | function filtre_debug($val, $key = null) { |
| 467 | 467 | $debug = ( |
| 468 | - is_null($key) ? '' : (var_export($key, true) . ' = ') |
|
| 469 | - ) . var_export($val, true); |
|
| 468 | + is_null($key) ? '' : (var_export($key, true).' = ') |
|
| 469 | + ).var_export($val, true); |
|
| 470 | 470 | |
| 471 | 471 | include_spip('inc/autoriser'); |
| 472 | 472 | if (autoriser('webmestre')) { |
@@ -522,7 +522,7 @@ discard block |
||
| 522 | 522 | $is_file = false; |
| 523 | 523 | } |
| 524 | 524 | if ($is_file) { |
| 525 | - $is_local_file = function ($path) { |
|
| 525 | + $is_local_file = function($path) { |
|
| 526 | 526 | if (strpos($path, '?') !== false) { |
| 527 | 527 | $path = supprimer_timestamp($path); |
| 528 | 528 | // remove ?24px added by find_in_theme on .svg files |
@@ -571,7 +571,7 @@ discard block |
||
| 571 | 571 | if ($mouseover = extraire_attribut($reduit, 'onmouseover')) { |
| 572 | 572 | if (preg_match(",this[.]src=['\"]([^'\"]+)['\"],ims", $mouseover, $match)) { |
| 573 | 573 | $srcover = $match[1]; |
| 574 | - $srcover_filter = $filtre("<img src='" . $match[1] . "' />", ...$args); |
|
| 574 | + $srcover_filter = $filtre("<img src='".$match[1]."' />", ...$args); |
|
| 575 | 575 | $srcover_filter = extraire_attribut($srcover_filter, 'src'); |
| 576 | 576 | $reduit = str_replace($srcover, $srcover_filter, $reduit); |
| 577 | 577 | } |
@@ -972,7 +972,7 @@ discard block |
||
| 972 | 972 | // " -> " et tout ce genre de choses |
| 973 | 973 | $u = $GLOBALS['meta']['pcre_u']; |
| 974 | 974 | $texte = str_replace(' ', ' ', $texte); |
| 975 | - $texte = preg_replace('/\s{2,}/S' . $u, ' ', $texte); |
|
| 975 | + $texte = preg_replace('/\s{2,}/S'.$u, ' ', $texte); |
|
| 976 | 976 | // ne pas echapper les sinqle quotes car certains outils de syndication gerent mal |
| 977 | 977 | $texte = entites_html($texte, false, false); |
| 978 | 978 | // mais bien echapper les double quotes ! |
@@ -1032,7 +1032,7 @@ discard block |
||
| 1032 | 1032 | **/ |
| 1033 | 1033 | function supprimer_numero($texte) { |
| 1034 | 1034 | return preg_replace( |
| 1035 | - ',^[[:space:]]*([0-9]+)([.)]|' . chr(194) . '?' . chr(176) . ')[[:space:]]+,S', |
|
| 1035 | + ',^[[:space:]]*([0-9]+)([.)]|'.chr(194).'?'.chr(176).')[[:space:]]+,S', |
|
| 1036 | 1036 | '', |
| 1037 | 1037 | $texte |
| 1038 | 1038 | ); |
@@ -1060,7 +1060,7 @@ discard block |
||
| 1060 | 1060 | function recuperer_numero($texte) { |
| 1061 | 1061 | if ( |
| 1062 | 1062 | preg_match( |
| 1063 | - ',^[[:space:]]*([0-9]+)([.)]|' . chr(194) . '?' . chr(176) . ')[[:space:]]+,S', |
|
| 1063 | + ',^[[:space:]]*([0-9]+)([.)]|'.chr(194).'?'.chr(176).')[[:space:]]+,S', |
|
| 1064 | 1064 | $texte, |
| 1065 | 1065 | $regs |
| 1066 | 1066 | ) |
@@ -1151,8 +1151,8 @@ discard block |
||
| 1151 | 1151 | **/ |
| 1152 | 1152 | function textebrut($texte) { |
| 1153 | 1153 | $u = $GLOBALS['meta']['pcre_u']; |
| 1154 | - $texte = preg_replace('/\s+/S' . $u, ' ', $texte); |
|
| 1155 | - $texte = preg_replace('/<(p|br)( [^>]*)?' . '>/iS', "\n\n", $texte); |
|
| 1154 | + $texte = preg_replace('/\s+/S'.$u, ' ', $texte); |
|
| 1155 | + $texte = preg_replace('/<(p|br)( [^>]*)?'.'>/iS', "\n\n", $texte); |
|
| 1156 | 1156 | $texte = preg_replace("/^\n+/", '', $texte); |
| 1157 | 1157 | $texte = preg_replace("/\n+$/", '', $texte); |
| 1158 | 1158 | $texte = preg_replace("/\n +/", "\n", $texte); |
@@ -1186,7 +1186,7 @@ discard block |
||
| 1186 | 1186 | ) |
| 1187 | 1187 | ) { |
| 1188 | 1188 | foreach ($liens[0] as $a) { |
| 1189 | - $rel = 'noopener noreferrer ' . extraire_attribut($a, 'rel'); |
|
| 1189 | + $rel = 'noopener noreferrer '.extraire_attribut($a, 'rel'); |
|
| 1190 | 1190 | $ablank = inserer_attribut($a, 'rel', $rel); |
| 1191 | 1191 | $ablank = inserer_attribut($ablank, 'target', '_blank'); |
| 1192 | 1192 | $texte = str_replace($a, $ablank, $texte); |
@@ -1211,7 +1211,7 @@ discard block |
||
| 1211 | 1211 | foreach ($regs[0] as $a) { |
| 1212 | 1212 | $rel = extraire_attribut($a, 'rel') ?? ''; |
| 1213 | 1213 | if (strpos($rel, 'nofollow') === false) { |
| 1214 | - $rel = 'nofollow' . ($rel ? " $rel" : ''); |
|
| 1214 | + $rel = 'nofollow'.($rel ? " $rel" : ''); |
|
| 1215 | 1215 | $anofollow = inserer_attribut($a, 'rel', $rel); |
| 1216 | 1216 | $texte = str_replace($a, $anofollow, $texte); |
| 1217 | 1217 | } |
@@ -1240,7 +1240,7 @@ discard block |
||
| 1240 | 1240 | $u = $GLOBALS['meta']['pcre_u']; |
| 1241 | 1241 | $texte = preg_replace('@</p>@iS', "\n", $texte); |
| 1242 | 1242 | $texte = preg_replace("@<p\b.*>@UiS", '<br />', $texte); |
| 1243 | - $texte = preg_replace('@^\s*<br />@S' . $u, '', $texte); |
|
| 1243 | + $texte = preg_replace('@^\s*<br />@S'.$u, '', $texte); |
|
| 1244 | 1244 | |
| 1245 | 1245 | return $texte; |
| 1246 | 1246 | } |
@@ -1271,7 +1271,7 @@ discard block |
||
| 1271 | 1271 | return $texte; |
| 1272 | 1272 | } |
| 1273 | 1273 | include_spip('inc/texte'); |
| 1274 | - $tag = preg_match(',</?(' . _BALISES_BLOCS . ')[>[:space:]],iS', $texte) ? |
|
| 1274 | + $tag = preg_match(',</?('._BALISES_BLOCS.')[>[:space:]],iS', $texte) ? |
|
| 1275 | 1275 | 'div' : 'span'; |
| 1276 | 1276 | |
| 1277 | 1277 | return "<$tag style='word-wrap:break-word;'>$texte</$tag>"; |
@@ -1383,7 +1383,7 @@ discard block |
||
| 1383 | 1383 | } |
| 1384 | 1384 | $u = $GLOBALS['meta']['pcre_u']; |
| 1385 | 1385 | if ($textebrut) { |
| 1386 | - $texte = preg_replace([",\n,", ',\s(?=\s),msS' . $u], [' ', ''], textebrut($texte)); |
|
| 1386 | + $texte = preg_replace([",\n,", ',\s(?=\s),msS'.$u], [' ', ''], textebrut($texte)); |
|
| 1387 | 1387 | } |
| 1388 | 1388 | $texte = texte_backend($texte); |
| 1389 | 1389 | $texte = str_replace(["'", '"'], [''', '"'], $texte); |
@@ -1418,7 +1418,7 @@ discard block |
||
| 1418 | 1418 | # un message pour abs_url |
| 1419 | 1419 | $GLOBALS['mode_abs_url'] = 'url'; |
| 1420 | 1420 | $url = trim($url); |
| 1421 | - $r = ',^(?:' . _PROTOCOLES_STD . '):?/?/?$,iS'; |
|
| 1421 | + $r = ',^(?:'._PROTOCOLES_STD.'):?/?/?$,iS'; |
|
| 1422 | 1422 | |
| 1423 | 1423 | return preg_match($r, $url) ? '' : ($entites ? entites_html($url) : $url); |
| 1424 | 1424 | } |
@@ -1618,14 +1618,14 @@ discard block |
||
| 1618 | 1618 | if (strpos($texte, '<') !== false) { |
| 1619 | 1619 | include_spip('inc/lien'); |
| 1620 | 1620 | if (defined('_PREG_MODELE')) { |
| 1621 | - $preg_modeles = '@' . _PREG_MODELE . '@imsS'; |
|
| 1621 | + $preg_modeles = '@'._PREG_MODELE.'@imsS'; |
|
| 1622 | 1622 | $texte = echappe_html($texte, '', true, $preg_modeles); |
| 1623 | 1623 | } |
| 1624 | 1624 | } |
| 1625 | 1625 | |
| 1626 | 1626 | $debut = ''; |
| 1627 | 1627 | $suite = $texte; |
| 1628 | - while ($t = strpos('-' . $suite, "\n", 1)) { |
|
| 1628 | + while ($t = strpos('-'.$suite, "\n", 1)) { |
|
| 1629 | 1629 | $debut .= substr($suite, 0, $t - 1); |
| 1630 | 1630 | $suite = substr($suite, $t); |
| 1631 | 1631 | $car = substr($suite, 0, 1); |
@@ -1643,11 +1643,11 @@ discard block |
||
| 1643 | 1643 | $suite = substr($suite, strlen($regs[0])); |
| 1644 | 1644 | } |
| 1645 | 1645 | } |
| 1646 | - $texte = $debut . $suite; |
|
| 1646 | + $texte = $debut.$suite; |
|
| 1647 | 1647 | |
| 1648 | 1648 | $texte = echappe_retour($texte); |
| 1649 | 1649 | |
| 1650 | - return $texte . $fin; |
|
| 1650 | + return $texte.$fin; |
|
| 1651 | 1651 | } |
| 1652 | 1652 | |
| 1653 | 1653 | |
@@ -1709,7 +1709,7 @@ discard block |
||
| 1709 | 1709 | } |
| 1710 | 1710 | |
| 1711 | 1711 | foreach ($regs as $reg) { |
| 1712 | - $cle = ($reg[1] ? $reg[1] . ':' : '') . $reg[2]; |
|
| 1712 | + $cle = ($reg[1] ? $reg[1].':' : '').$reg[2]; |
|
| 1713 | 1713 | $desc = $traduire($cle, $lang, true); |
| 1714 | 1714 | $l = $desc->langue; |
| 1715 | 1715 | // si pas de traduction, on laissera l'écriture de l'idiome entier dans le texte. |
@@ -1823,9 +1823,9 @@ discard block |
||
| 1823 | 1823 | // il ne faut pas echapper en div si propre produit un seul paragraphe |
| 1824 | 1824 | include_spip('inc/texte'); |
| 1825 | 1825 | $trad_propre = preg_replace(',(^<p[^>]*>|</p>$),Uims', '', propre($trad)); |
| 1826 | - $mode = preg_match(',</?(' . _BALISES_BLOCS . ')[>[:space:]],iS', $trad_propre) ? 'div' : 'span'; |
|
| 1826 | + $mode = preg_match(',</?('._BALISES_BLOCS.')[>[:space:]],iS', $trad_propre) ? 'div' : 'span'; |
|
| 1827 | 1827 | if ($mode === 'div') { |
| 1828 | - $trad = rtrim($trad) . "\n\n"; |
|
| 1828 | + $trad = rtrim($trad)."\n\n"; |
|
| 1829 | 1829 | } |
| 1830 | 1830 | $trad = code_echappement($trad, 'multi', false, $mode); |
| 1831 | 1831 | $trad = str_replace("'", '"', inserer_attribut($trad, 'lang', $l)); |
@@ -2025,7 +2025,7 @@ discard block |
||
| 2025 | 2025 | if (is_array($balise)) { |
| 2026 | 2026 | array_walk( |
| 2027 | 2027 | $balise, |
| 2028 | - function (&$a, $key, $t) { |
|
| 2028 | + function(&$a, $key, $t) { |
|
| 2029 | 2029 | $a = extraire_attribut($a, $t); |
| 2030 | 2030 | }, |
| 2031 | 2031 | $attribut |
@@ -2122,14 +2122,14 @@ discard block |
||
| 2122 | 2122 | |
| 2123 | 2123 | if ($old !== null) { |
| 2124 | 2124 | // Remplacer l'ancien attribut du meme nom |
| 2125 | - $balise = $r[1] . $insert . $r[5]; |
|
| 2125 | + $balise = $r[1].$insert.$r[5]; |
|
| 2126 | 2126 | } else { |
| 2127 | 2127 | // preferer une balise " />" (comme <img />) |
| 2128 | 2128 | if (preg_match(',/>,', $balise)) { |
| 2129 | - $balise = preg_replace(',\s?/>,S', $insert . ' />', $balise, 1); |
|
| 2129 | + $balise = preg_replace(',\s?/>,S', $insert.' />', $balise, 1); |
|
| 2130 | 2130 | } // sinon une balise <a ...> ... </a> |
| 2131 | 2131 | else { |
| 2132 | - $balise = preg_replace(',\s?>,S', $insert . '>', $balise, 1); |
|
| 2132 | + $balise = preg_replace(',\s?>,S', $insert.'>', $balise, 1); |
|
| 2133 | 2133 | } |
| 2134 | 2134 | } |
| 2135 | 2135 | |
@@ -2184,7 +2184,7 @@ discard block |
||
| 2184 | 2184 | if ( |
| 2185 | 2185 | $class_courante |
| 2186 | 2186 | and strpos($class_courante, (string) $c) !== false |
| 2187 | - and preg_match('/(^|\s)' . preg_quote($c) . '($|\s)/', $class_courante) |
|
| 2187 | + and preg_match('/(^|\s)'.preg_quote($c).'($|\s)/', $class_courante) |
|
| 2188 | 2188 | ) { |
| 2189 | 2189 | $is_class_presente = true; |
| 2190 | 2190 | } |
@@ -2192,12 +2192,12 @@ discard block |
||
| 2192 | 2192 | in_array($operation, ['ajouter', 'commuter']) |
| 2193 | 2193 | and !$is_class_presente |
| 2194 | 2194 | ) { |
| 2195 | - $class_new = ltrim(rtrim($class_new ?? '') . ' ' . $c); |
|
| 2195 | + $class_new = ltrim(rtrim($class_new ?? '').' '.$c); |
|
| 2196 | 2196 | } elseif ( |
| 2197 | 2197 | in_array($operation, ['supprimer', 'commuter']) |
| 2198 | 2198 | and $is_class_presente |
| 2199 | 2199 | ) { |
| 2200 | - $class_new = trim(preg_replace('/(^|\s)' . preg_quote($c) . '($|\s)/', "\\1", $class_new)); |
|
| 2200 | + $class_new = trim(preg_replace('/(^|\s)'.preg_quote($c).'($|\s)/', "\\1", $class_new)); |
|
| 2201 | 2201 | } |
| 2202 | 2202 | } |
| 2203 | 2203 | |
@@ -2260,7 +2260,7 @@ discard block |
||
| 2260 | 2260 | // Quelques fonctions de calcul arithmetique |
| 2261 | 2261 | // |
| 2262 | 2262 | function floatstr($a) { |
| 2263 | - return str_replace(',', '.', (string)floatval($a)); |
|
| 2263 | + return str_replace(',', '.', (string) floatval($a)); |
|
| 2264 | 2264 | } |
| 2265 | 2265 | function strize($f, $a, $b) { |
| 2266 | 2266 | return floatstr($f(floatstr($a), floatstr($b))); |
@@ -2396,13 +2396,13 @@ discard block |
||
| 2396 | 2396 | if (!defined('_TAGS_NOM_AUTEUR')) { |
| 2397 | 2397 | define('_TAGS_NOM_AUTEUR', ''); |
| 2398 | 2398 | } |
| 2399 | - $tags_acceptes = array_unique(explode(',', 'multi,' . _TAGS_NOM_AUTEUR)); |
|
| 2399 | + $tags_acceptes = array_unique(explode(',', 'multi,'._TAGS_NOM_AUTEUR)); |
|
| 2400 | 2400 | foreach ($tags_acceptes as $tag) { |
| 2401 | 2401 | if (strlen($tag)) { |
| 2402 | - $remp1[] = '<' . trim($tag) . '>'; |
|
| 2403 | - $remp1[] = '</' . trim($tag) . '>'; |
|
| 2404 | - $remp2[] = '\x60' . trim($tag) . '\x61'; |
|
| 2405 | - $remp2[] = '\x60/' . trim($tag) . '\x61'; |
|
| 2402 | + $remp1[] = '<'.trim($tag).'>'; |
|
| 2403 | + $remp1[] = '</'.trim($tag).'>'; |
|
| 2404 | + $remp2[] = '\x60'.trim($tag).'\x61'; |
|
| 2405 | + $remp2[] = '\x60/'.trim($tag).'\x61'; |
|
| 2406 | 2406 | } |
| 2407 | 2407 | } |
| 2408 | 2408 | $v_nom = str_replace($remp2, $remp1, supprimer_tags(str_replace($remp1, $remp2, $nom))); |
@@ -2522,10 +2522,10 @@ discard block |
||
| 2522 | 2522 | $fichier = basename($url); |
| 2523 | 2523 | |
| 2524 | 2524 | return '<a rel="enclosure"' |
| 2525 | - . ($url ? ' href="' . spip_htmlspecialchars($url) . '"' : '') |
|
| 2526 | - . ($type ? ' type="' . spip_htmlspecialchars($type) . '"' : '') |
|
| 2527 | - . ($length ? ' title="' . spip_htmlspecialchars($length) . '"' : '') |
|
| 2528 | - . '>' . $fichier . '</a>'; |
|
| 2525 | + . ($url ? ' href="'.spip_htmlspecialchars($url).'"' : '') |
|
| 2526 | + . ($type ? ' type="'.spip_htmlspecialchars($type).'"' : '') |
|
| 2527 | + . ($length ? ' title="'.spip_htmlspecialchars($length).'"' : '') |
|
| 2528 | + . '>'.$fichier.'</a>'; |
|
| 2529 | 2529 | } |
| 2530 | 2530 | |
| 2531 | 2531 | /** |
@@ -2553,9 +2553,9 @@ discard block |
||
| 2553 | 2553 | } # vieux data |
| 2554 | 2554 | $fichier = basename($url); |
| 2555 | 2555 | $enclosures[] = '<enclosure' |
| 2556 | - . ($url ? ' url="' . spip_htmlspecialchars($url) . '"' : '') |
|
| 2557 | - . ($type ? ' type="' . spip_htmlspecialchars($type) . '"' : '') |
|
| 2558 | - . ($length ? ' length="' . $length . '"' : '') |
|
| 2556 | + . ($url ? ' url="'.spip_htmlspecialchars($url).'"' : '') |
|
| 2557 | + . ($type ? ' type="'.spip_htmlspecialchars($type).'"' : '') |
|
| 2558 | + . ($length ? ' length="'.$length.'"' : '') |
|
| 2559 | 2559 | . ' />'; |
| 2560 | 2560 | } |
| 2561 | 2561 | } |
@@ -2581,7 +2581,7 @@ discard block |
||
| 2581 | 2581 | if (extraire_attribut($e, 'rel') == 'tag') { |
| 2582 | 2582 | $subjects .= '<dc:subject>' |
| 2583 | 2583 | . texte_backend(textebrut($e)) |
| 2584 | - . '</dc:subject>' . "\n"; |
|
| 2584 | + . '</dc:subject>'."\n"; |
|
| 2585 | 2585 | } |
| 2586 | 2586 | } |
| 2587 | 2587 | |
@@ -2617,7 +2617,7 @@ discard block |
||
| 2617 | 2617 | if (is_array($texte)) { |
| 2618 | 2618 | array_walk( |
| 2619 | 2619 | $texte, |
| 2620 | - function (&$a, $key, $t) { |
|
| 2620 | + function(&$a, $key, $t) { |
|
| 2621 | 2621 | $a = extraire_balise($a, $t); |
| 2622 | 2622 | }, |
| 2623 | 2623 | $tag |
@@ -2665,7 +2665,7 @@ discard block |
||
| 2665 | 2665 | if (is_array($texte)) { |
| 2666 | 2666 | array_walk( |
| 2667 | 2667 | $texte, |
| 2668 | - function (&$a, $key, $t) { |
|
| 2668 | + function(&$a, $key, $t) { |
|
| 2669 | 2669 | $a = extraire_balises($a, $t); |
| 2670 | 2670 | }, |
| 2671 | 2671 | $tag |
@@ -2798,7 +2798,7 @@ discard block |
||
| 2798 | 2798 | if ($fond != '404') { |
| 2799 | 2799 | $contexte = array_shift($p); |
| 2800 | 2800 | $contexte['page'] = $fond; |
| 2801 | - $action = preg_replace('/([?]' . preg_quote($fond) . '[^&=]*[0-9]+)(&|$)/', '?&', $action); |
|
| 2801 | + $action = preg_replace('/([?]'.preg_quote($fond).'[^&=]*[0-9]+)(&|$)/', '?&', $action); |
|
| 2802 | 2802 | } |
| 2803 | 2803 | } |
| 2804 | 2804 | // defaire ce qu'a injecte urls_decoder_url : a revoir en modifiant la signature de urls_decoder_url |
@@ -2853,9 +2853,9 @@ discard block |
||
| 2853 | 2853 | . '"' |
| 2854 | 2854 | . (is_null($val) |
| 2855 | 2855 | ? '' |
| 2856 | - : ' value="' . entites_html($val) . '"' |
|
| 2856 | + : ' value="'.entites_html($val).'"' |
|
| 2857 | 2857 | ) |
| 2858 | - . ' type="hidden"' . "\n/>"; |
|
| 2858 | + . ' type="hidden"'."\n/>"; |
|
| 2859 | 2859 | } |
| 2860 | 2860 | |
| 2861 | 2861 | return join('', $hidden); |
@@ -2965,7 +2965,7 @@ discard block |
||
| 2965 | 2965 | |
| 2966 | 2966 | return preg_replace_callback( |
| 2967 | 2967 | ",url\s*\(\s*['\"]?([^'\"/#\s][^:]*)['\"]?\s*\),Uims", |
| 2968 | - fn($x) => "url('" . suivre_lien($path, $x[1]) . "')", |
|
| 2968 | + fn($x) => "url('".suivre_lien($path, $x[1])."')", |
|
| 2969 | 2969 | $contenu |
| 2970 | 2970 | ); |
| 2971 | 2971 | } |
@@ -3026,14 +3026,14 @@ discard block |
||
| 3026 | 3026 | ) { |
| 3027 | 3027 | $distant = true; |
| 3028 | 3028 | $cssf = parse_url($css); |
| 3029 | - $cssf = $cssf['path'] . ($cssf['query'] ? '?' . $cssf['query'] : ''); |
|
| 3029 | + $cssf = $cssf['path'].($cssf['query'] ? '?'.$cssf['query'] : ''); |
|
| 3030 | 3030 | $cssf = preg_replace(',[?:&=],', '_', $cssf); |
| 3031 | 3031 | } else { |
| 3032 | 3032 | $distant = false; |
| 3033 | 3033 | $cssf = $css; |
| 3034 | 3034 | // 1. regarder d'abord si un fichier avec la bonne direction n'est pas aussi |
| 3035 | 3035 | //propose (rien a faire dans ce cas) |
| 3036 | - $f = preg_replace(',(_rtl)?\.css$,i', '_' . $ndir . '.css', $css); |
|
| 3036 | + $f = preg_replace(',(_rtl)?\.css$,i', '_'.$ndir.'.css', $css); |
|
| 3037 | 3037 | if (@file_exists($f)) { |
| 3038 | 3038 | return $f; |
| 3039 | 3039 | } |
@@ -3043,7 +3043,7 @@ discard block |
||
| 3043 | 3043 | $dir_var = sous_repertoire(_DIR_VAR, 'cache-css'); |
| 3044 | 3044 | $f = $dir_var |
| 3045 | 3045 | . preg_replace(',.*/(.*?)(_rtl)?\.css,', '\1', $cssf) |
| 3046 | - . '.' . substr(md5($cssf), 0, 4) . '_' . $ndir . '.css'; |
|
| 3046 | + . '.'.substr(md5($cssf), 0, 4).'_'.$ndir.'.css'; |
|
| 3047 | 3047 | |
| 3048 | 3048 | // la css peut etre distante (url absolue !) |
| 3049 | 3049 | if ($distant) { |
@@ -3089,8 +3089,8 @@ discard block |
||
| 3089 | 3089 | } // si la css_direction commence par $dir_var on la fait passer pour une absolue |
| 3090 | 3090 | elseif (substr($css_direction, 0, strlen($dir_var)) == $dir_var) { |
| 3091 | 3091 | $css_direction = substr($css_direction, strlen($dir_var)); |
| 3092 | - $src_faux_abs['/@@@@@@/' . $css_direction] = $css_direction; |
|
| 3093 | - $css_direction = '/@@@@@@/' . $css_direction; |
|
| 3092 | + $src_faux_abs['/@@@@@@/'.$css_direction] = $css_direction; |
|
| 3093 | + $css_direction = '/@@@@@@/'.$css_direction; |
|
| 3094 | 3094 | } |
| 3095 | 3095 | $src[] = $regs[0][$k]; |
| 3096 | 3096 | $src_direction_css[] = str_replace($import_css, $css_direction, $regs[0][$k]); |
@@ -3139,7 +3139,7 @@ discard block |
||
| 3139 | 3139 | |
| 3140 | 3140 | $f = basename($css, '.css'); |
| 3141 | 3141 | $f = sous_repertoire(_DIR_VAR, 'cache-css') |
| 3142 | - . preg_replace(',(.*?)(_rtl|_ltr)?$,', "\\1-urlabs-" . substr(md5("$css-urlabs"), 0, 4) . "\\2", $f) |
|
| 3142 | + . preg_replace(',(.*?)(_rtl|_ltr)?$,', "\\1-urlabs-".substr(md5("$css-urlabs"), 0, 4)."\\2", $f) |
|
| 3143 | 3143 | . '.css'; |
| 3144 | 3144 | |
| 3145 | 3145 | if ((@filemtime($f) > @filemtime($css)) and (_VAR_MODE != 'recalcul')) { |
@@ -3149,7 +3149,7 @@ discard block |
||
| 3149 | 3149 | if ($url_absolue_css == $css) { |
| 3150 | 3150 | if ( |
| 3151 | 3151 | strncmp($GLOBALS['meta']['adresse_site'], $css, $l = strlen($GLOBALS['meta']['adresse_site'])) != 0 |
| 3152 | - or !lire_fichier(_DIR_RACINE . substr($css, $l), $contenu) |
|
| 3152 | + or !lire_fichier(_DIR_RACINE.substr($css, $l), $contenu) |
|
| 3153 | 3153 | ) { |
| 3154 | 3154 | include_spip('inc/distant'); |
| 3155 | 3155 | $contenu = recuperer_url($css); |
@@ -3261,7 +3261,7 @@ discard block |
||
| 3261 | 3261 | $expression = str_replace('\/', '/', $expression); |
| 3262 | 3262 | $expression = str_replace('/', '\/', $expression); |
| 3263 | 3263 | |
| 3264 | - if (preg_match('/' . $expression . '/' . $modif, $texte ?? '', $r)) { |
|
| 3264 | + if (preg_match('/'.$expression.'/'.$modif, $texte ?? '', $r)) { |
|
| 3265 | 3265 | if (isset($r[$capte])) { |
| 3266 | 3266 | return $r[$capte]; |
| 3267 | 3267 | } else { |
@@ -3299,7 +3299,7 @@ discard block |
||
| 3299 | 3299 | $expression = str_replace('\/', '/', $expression); |
| 3300 | 3300 | $expression = str_replace('/', '\/', $expression); |
| 3301 | 3301 | |
| 3302 | - return preg_replace('/' . $expression . '/' . $modif, $replace, $texte); |
|
| 3302 | + return preg_replace('/'.$expression.'/'.$modif, $replace, $texte); |
|
| 3303 | 3303 | } |
| 3304 | 3304 | |
| 3305 | 3305 | |
@@ -3318,7 +3318,7 @@ discard block |
||
| 3318 | 3318 | function traiter_doublons_documents(&$doublons, $letexte) { |
| 3319 | 3319 | |
| 3320 | 3320 | // Verifier dans le texte & les notes (pas beau, helas) |
| 3321 | - $t = $letexte . $GLOBALS['les_notes']; |
|
| 3321 | + $t = $letexte.$GLOBALS['les_notes']; |
|
| 3322 | 3322 | |
| 3323 | 3323 | if ( |
| 3324 | 3324 | strstr($t, 'spip_document_') // evite le preg_match_all si inutile |
@@ -3332,7 +3332,7 @@ discard block |
||
| 3332 | 3332 | if (!isset($doublons['documents'])) { |
| 3333 | 3333 | $doublons['documents'] = ''; |
| 3334 | 3334 | } |
| 3335 | - $doublons['documents'] .= ',' . join(',', $matches[1]); |
|
| 3335 | + $doublons['documents'] .= ','.join(',', $matches[1]); |
|
| 3336 | 3336 | } |
| 3337 | 3337 | |
| 3338 | 3338 | return $letexte; |
@@ -3389,7 +3389,7 @@ discard block |
||
| 3389 | 3389 | if ($env) { |
| 3390 | 3390 | foreach ($env as $i => $j) { |
| 3391 | 3391 | if (is_string($j) and !in_array($i, $ignore_params)) { |
| 3392 | - $texte .= "<param name='" . attribut_html($i) . "'\n\tvalue='" . attribut_html($j) . "' />"; |
|
| 3392 | + $texte .= "<param name='".attribut_html($i)."'\n\tvalue='".attribut_html($j)."' />"; |
|
| 3393 | 3393 | } |
| 3394 | 3394 | } |
| 3395 | 3395 | } |
@@ -3428,7 +3428,7 @@ discard block |
||
| 3428 | 3428 | if ($env) { |
| 3429 | 3429 | foreach ($env as $i => $j) { |
| 3430 | 3430 | if (is_string($j) and !in_array($i, $ignore_params)) { |
| 3431 | - $texte .= attribut_html($i) . "='" . attribut_html($j) . "' "; |
|
| 3431 | + $texte .= attribut_html($i)."='".attribut_html($j)."' "; |
|
| 3432 | 3432 | } |
| 3433 | 3433 | } |
| 3434 | 3434 | } |
@@ -3502,10 +3502,10 @@ discard block |
||
| 3502 | 3502 | // si il y a un .svg a la bonne taille (-16.svg) a cote, on l'utilise en remplacement du -16.png |
| 3503 | 3503 | if ( |
| 3504 | 3504 | preg_match(',-(\d+)[.](png|gif|svg)$,', $img_file, $m) |
| 3505 | - and $variante_svg_generique = substr($img_file, 0, -strlen($m[0])) . '-xx.svg' |
|
| 3505 | + and $variante_svg_generique = substr($img_file, 0, -strlen($m[0])).'-xx.svg' |
|
| 3506 | 3506 | and file_exists($variante_svg_generique) |
| 3507 | 3507 | ) { |
| 3508 | - if ($variante_svg_size = substr($variante_svg_generique, 0, -6) . $m[1] . '.svg' and file_exists($variante_svg_size)) { |
|
| 3508 | + if ($variante_svg_size = substr($variante_svg_generique, 0, -6).$m[1].'.svg' and file_exists($variante_svg_size)) { |
|
| 3509 | 3509 | $img_file = $variante_svg_size; |
| 3510 | 3510 | } |
| 3511 | 3511 | else { |
@@ -3563,7 +3563,7 @@ discard block |
||
| 3563 | 3563 | return ''; |
| 3564 | 3564 | } |
| 3565 | 3565 | } |
| 3566 | - $atts .= " width='" . $largeur . "' height='" . $hauteur . "'"; |
|
| 3566 | + $atts .= " width='".$largeur."' height='".$hauteur."'"; |
|
| 3567 | 3567 | } |
| 3568 | 3568 | |
| 3569 | 3569 | if (file_exists($img_file)) { |
@@ -3573,14 +3573,14 @@ discard block |
||
| 3573 | 3573 | $alt = ''; |
| 3574 | 3574 | } |
| 3575 | 3575 | elseif ($alt or $alt === '') { |
| 3576 | - $alt = " alt='" . attribut_html($alt) . "'"; |
|
| 3576 | + $alt = " alt='".attribut_html($alt)."'"; |
|
| 3577 | 3577 | } |
| 3578 | 3578 | else { |
| 3579 | - $alt = " alt='" . attribut_html($title) . "'"; |
|
| 3579 | + $alt = " alt='".attribut_html($title)."'"; |
|
| 3580 | 3580 | } |
| 3581 | 3581 | return "<img src='$img_file'$alt" |
| 3582 | - . ($title ? ' title="' . attribut_html($title) . '"' : '') |
|
| 3583 | - . ' ' . ltrim($atts) |
|
| 3582 | + . ($title ? ' title="'.attribut_html($title).'"' : '') |
|
| 3583 | + . ' '.ltrim($atts) |
|
| 3584 | 3584 | . ' />'; |
| 3585 | 3585 | } |
| 3586 | 3586 | |
@@ -3594,10 +3594,10 @@ discard block |
||
| 3594 | 3594 | */ |
| 3595 | 3595 | function http_style_background($img, $att = '', $size = null) { |
| 3596 | 3596 | if ($size and is_numeric($size)) { |
| 3597 | - $size = trim($size) . 'px'; |
|
| 3597 | + $size = trim($size).'px'; |
|
| 3598 | 3598 | } |
| 3599 | - return " style='background" . |
|
| 3600 | - ($att ? '' : '-image') . ': url("' . chemin_image($img) . '")' . ($att ? (' ' . $att) : '') . ';' |
|
| 3599 | + return " style='background". |
|
| 3600 | + ($att ? '' : '-image').': url("'.chemin_image($img).'")'.($att ? (' '.$att) : '').';' |
|
| 3601 | 3601 | . ($size ? "background-size:{$size};" : '') |
| 3602 | 3602 | . "'"; |
| 3603 | 3603 | } |
@@ -3712,7 +3712,7 @@ discard block |
||
| 3712 | 3712 | $img = http_img_pack( |
| 3713 | 3713 | $img, |
| 3714 | 3714 | $alt, |
| 3715 | - $class ? " class='" . attribut_html($class) . "'" : '', |
|
| 3715 | + $class ? " class='".attribut_html($class)."'" : '', |
|
| 3716 | 3716 | '', |
| 3717 | 3717 | ['chemin_image' => false, 'utiliser_suffixe_size' => false] |
| 3718 | 3718 | ); |
@@ -3797,7 +3797,7 @@ discard block |
||
| 3797 | 3797 | $balise_svg_source = $balise_svg; |
| 3798 | 3798 | |
| 3799 | 3799 | // entete XML à supprimer |
| 3800 | - $svg = preg_replace(',^\s*<\?xml[^>]*\?' . '>,', '', $svg); |
|
| 3800 | + $svg = preg_replace(',^\s*<\?xml[^>]*\?'.'>,', '', $svg); |
|
| 3801 | 3801 | |
| 3802 | 3802 | // IE est toujours mon ami |
| 3803 | 3803 | $balise_svg = inserer_attribut($balise_svg, 'focusable', 'false'); |
@@ -3815,9 +3815,9 @@ discard block |
||
| 3815 | 3815 | // regler le alt |
| 3816 | 3816 | if ($alt) { |
| 3817 | 3817 | $balise_svg = inserer_attribut($balise_svg, 'role', 'img'); |
| 3818 | - $id = 'img-svg-title-' . substr(md5("$img_file:$svg:$alt"), 0, 4); |
|
| 3818 | + $id = 'img-svg-title-'.substr(md5("$img_file:$svg:$alt"), 0, 4); |
|
| 3819 | 3819 | $balise_svg = inserer_attribut($balise_svg, 'aria-labelledby', $id); |
| 3820 | - $title = "<title id=\"$id\">" . entites_html($alt) . "</title>\n"; |
|
| 3820 | + $title = "<title id=\"$id\">".entites_html($alt)."</title>\n"; |
|
| 3821 | 3821 | $balise_svg .= $title; |
| 3822 | 3822 | } |
| 3823 | 3823 | else { |
@@ -3865,7 +3865,7 @@ discard block |
||
| 3865 | 3865 | if (is_array($tableau)) { |
| 3866 | 3866 | foreach ($tableau as $k => $v) { |
| 3867 | 3867 | $res = recuperer_fond( |
| 3868 | - 'modeles/' . $modele, |
|
| 3868 | + 'modeles/'.$modele, |
|
| 3869 | 3869 | array_merge(['cle' => $k], (is_array($v) ? $v : ['valeur' => $v])) |
| 3870 | 3870 | ); |
| 3871 | 3871 | $texte .= $res; |
@@ -4050,7 +4050,7 @@ discard block |
||
| 4050 | 4050 | } |
| 4051 | 4051 | |
| 4052 | 4052 | $c = serialize($c); |
| 4053 | - $cle = calculer_cle_action($form . $c); |
|
| 4053 | + $cle = calculer_cle_action($form.$c); |
|
| 4054 | 4054 | $c = "$cle:$c"; |
| 4055 | 4055 | |
| 4056 | 4056 | // on ne stocke pas les contextes dans des fichiers en cache |
@@ -4108,15 +4108,15 @@ discard block |
||
| 4108 | 4108 | } |
| 4109 | 4109 | // toujours encoder l'url source dans le bloc ajax |
| 4110 | 4110 | $r = self(); |
| 4111 | - $r = ' data-origin="' . $r . '"'; |
|
| 4111 | + $r = ' data-origin="'.$r.'"'; |
|
| 4112 | 4112 | $class = 'ajaxbloc'; |
| 4113 | 4113 | if ($ajaxid and is_string($ajaxid)) { |
| 4114 | 4114 | // ajaxid est normalement conforme a un nom de classe css |
| 4115 | 4115 | // on ne verifie pas la conformite, mais on passe entites_html par dessus par precaution |
| 4116 | - $class .= ' ajax-id-' . entites_html($ajaxid); |
|
| 4116 | + $class .= ' ajax-id-'.entites_html($ajaxid); |
|
| 4117 | 4117 | } |
| 4118 | 4118 | |
| 4119 | - return "<div class='$class' " . "data-ajax-env='$env'$r>\n$emboite</div><!--ajaxbloc-->\n"; |
|
| 4119 | + return "<div class='$class' "."data-ajax-env='$env'$r>\n$emboite</div><!--ajaxbloc-->\n"; |
|
| 4120 | 4120 | } |
| 4121 | 4121 | |
| 4122 | 4122 | /** |
@@ -4160,7 +4160,7 @@ discard block |
||
| 4160 | 4160 | $cle = substr($c, 0, $p); |
| 4161 | 4161 | $c = substr($c, $p + 1); |
| 4162 | 4162 | |
| 4163 | - if ($cle == calculer_cle_action($form . $c)) { |
|
| 4163 | + if ($cle == calculer_cle_action($form.$c)) { |
|
| 4164 | 4164 | $env = @unserialize($c); |
| 4165 | 4165 | return $env; |
| 4166 | 4166 | } |
@@ -4281,13 +4281,13 @@ discard block |
||
| 4281 | 4281 | } |
| 4282 | 4282 | } |
| 4283 | 4283 | } |
| 4284 | - $att .= 'class="' . ($class ? attribut_html($class) . ' ' : '') . (defined('_LIEN_OU_EXPOSE_CLASS_ON') ? _LIEN_OU_EXPOSE_CLASS_ON : 'on') . '"'; |
|
| 4284 | + $att .= 'class="'.($class ? attribut_html($class).' ' : '').(defined('_LIEN_OU_EXPOSE_CLASS_ON') ? _LIEN_OU_EXPOSE_CLASS_ON : 'on').'"'; |
|
| 4285 | 4285 | } else { |
| 4286 | 4286 | $bal = 'a'; |
| 4287 | 4287 | $att = "href='$url'" |
| 4288 | - . ($title ? " title='" . attribut_html($title) . "'" : '') |
|
| 4289 | - . ($class ? " class='" . attribut_html($class) . "'" : '') |
|
| 4290 | - . ($rel ? " rel='" . attribut_html($rel) . "'" : '') |
|
| 4288 | + . ($title ? " title='".attribut_html($title)."'" : '') |
|
| 4289 | + . ($class ? " class='".attribut_html($class)."'" : '') |
|
| 4290 | + . ($rel ? " rel='".attribut_html($rel)."'" : '') |
|
| 4291 | 4291 | . $evt; |
| 4292 | 4292 | } |
| 4293 | 4293 | if ($libelle === null) { |
@@ -4426,7 +4426,7 @@ discard block |
||
| 4426 | 4426 | |
| 4427 | 4427 | // Icône |
| 4428 | 4428 | $icone = http_img_pack($fond, $alt, "width='$size' height='$size'"); |
| 4429 | - $icone = '<span class="icone-image' . ($fonction ? " icone-fonction icone-fonction-$fonction" : '') . "\">$icone</span>"; |
|
| 4429 | + $icone = '<span class="icone-image'.($fonction ? " icone-fonction icone-fonction-$fonction" : '')."\">$icone</span>"; |
|
| 4430 | 4430 | |
| 4431 | 4431 | // Markup final |
| 4432 | 4432 | if ($type == 'lien') { |
@@ -4701,20 +4701,20 @@ discard block |
||
| 4701 | 4701 | $class_form = 'ajax'; |
| 4702 | 4702 | $class = str_replace('ajax', '', $class); |
| 4703 | 4703 | } |
| 4704 | - $class_btn = 'submit ' . trim($class); |
|
| 4704 | + $class_btn = 'submit '.trim($class); |
|
| 4705 | 4705 | |
| 4706 | 4706 | if ($confirm) { |
| 4707 | - $confirm = 'confirm("' . attribut_html($confirm) . '")'; |
|
| 4707 | + $confirm = 'confirm("'.attribut_html($confirm).'")'; |
|
| 4708 | 4708 | if ($callback) { |
| 4709 | 4709 | $callback = "$confirm?($callback):false"; |
| 4710 | 4710 | } else { |
| 4711 | 4711 | $callback = $confirm; |
| 4712 | 4712 | } |
| 4713 | 4713 | } |
| 4714 | - $onclick = $callback ? " onclick='return " . addcslashes($callback, "'") . "'" : ''; |
|
| 4714 | + $onclick = $callback ? " onclick='return ".addcslashes($callback, "'")."'" : ''; |
|
| 4715 | 4715 | $title = $title ? " title='$title'" : ''; |
| 4716 | 4716 | |
| 4717 | - return "<form class='bouton_action_post $class_form' method='post' action='$url'><div>" . form_hidden($url) |
|
| 4717 | + return "<form class='bouton_action_post $class_form' method='post' action='$url'><div>".form_hidden($url) |
|
| 4718 | 4718 | . "<button type='submit' class='$class_btn'$title$onclick>$libelle</button></div></form>"; |
| 4719 | 4719 | } |
| 4720 | 4720 | |
@@ -4779,14 +4779,14 @@ discard block |
||
| 4779 | 4779 | $champ_titre = ''; |
| 4780 | 4780 | if ($demande_titre) { |
| 4781 | 4781 | // si pas de titre declare mais champ titre, il sera peuple par le select * |
| 4782 | - $champ_titre = (!empty($desc['titre'])) ? ', ' . $desc['titre'] : ''; |
|
| 4782 | + $champ_titre = (!empty($desc['titre'])) ? ', '.$desc['titre'] : ''; |
|
| 4783 | 4783 | } |
| 4784 | 4784 | include_spip('base/abstract_sql'); |
| 4785 | 4785 | include_spip('base/connect_sql'); |
| 4786 | 4786 | $objets[$type_objet][$id_objet] = sql_fetsel( |
| 4787 | - '*' . $champ_titre, |
|
| 4787 | + '*'.$champ_titre, |
|
| 4788 | 4788 | $desc['table_sql'], |
| 4789 | - id_table_objet($type_objet) . ' = ' . intval($id_objet) |
|
| 4789 | + id_table_objet($type_objet).' = '.intval($id_objet) |
|
| 4790 | 4790 | ); |
| 4791 | 4791 | |
| 4792 | 4792 | // Toujours noter la longueur d'introduction, même si pas demandé cette fois-ci |
@@ -4879,8 +4879,7 @@ discard block |
||
| 4879 | 4879 | if (isset($ligne_sql['chapo'])) { |
| 4880 | 4880 | $chapo = $ligne_sql['chapo']; |
| 4881 | 4881 | $texte = strlen($descriptif) ? |
| 4882 | - '' : |
|
| 4883 | - "$chapo \n\n $texte"; |
|
| 4882 | + '' : "$chapo \n\n $texte"; |
|
| 4884 | 4883 | } |
| 4885 | 4884 | |
| 4886 | 4885 | // Longueur en paramètre, sinon celle renseignée dans la description de l'objet, sinon valeur en dur |
@@ -4955,7 +4954,7 @@ discard block |
||
| 4955 | 4954 | return $texte; |
| 4956 | 4955 | } |
| 4957 | 4956 | |
| 4958 | - $traitement = str_replace('%s', "'" . texte_script($texte) . "'", $traitement); |
|
| 4957 | + $traitement = str_replace('%s', "'".texte_script($texte)."'", $traitement); |
|
| 4959 | 4958 | |
| 4960 | 4959 | // signaler qu'on est dans l'espace prive pour les filtres qui se servent de ce flag |
| 4961 | 4960 | if (test_espace_prive()) { |
@@ -4994,7 +4993,7 @@ discard block |
||
| 4994 | 4993 | } |
| 4995 | 4994 | $url = generer_objet_url($id_objet, $objet, '', '', null, '', $connect); |
| 4996 | 4995 | |
| 4997 | - return "<a href='$url' class='$objet'>" . couper($titre, $longueur) . '</a>'; |
|
| 4996 | + return "<a href='$url' class='$objet'>".couper($titre, $longueur).'</a>'; |
|
| 4998 | 4997 | } |
| 4999 | 4998 | |
| 5000 | 4999 | /** |
@@ -5020,10 +5019,10 @@ discard block |
||
| 5020 | 5019 | function wrap($texte, $wrap) { |
| 5021 | 5020 | $balises = extraire_balises($wrap); |
| 5022 | 5021 | if (preg_match_all(",<([a-z]\w*)\b[^>]*>,UimsS", $wrap, $regs, PREG_PATTERN_ORDER)) { |
| 5023 | - $texte = $wrap . $texte; |
|
| 5022 | + $texte = $wrap.$texte; |
|
| 5024 | 5023 | $regs = array_reverse($regs[1]); |
| 5025 | - $wrap = '</' . implode('></', $regs) . '>'; |
|
| 5026 | - $texte = $texte . $wrap; |
|
| 5024 | + $wrap = '</'.implode('></', $regs).'>'; |
|
| 5025 | + $texte = $texte.$wrap; |
|
| 5027 | 5026 | } |
| 5028 | 5027 | |
| 5029 | 5028 | return $texte; |
@@ -5054,7 +5053,7 @@ discard block |
||
| 5054 | 5053 | |
| 5055 | 5054 | // caster $u en array si besoin |
| 5056 | 5055 | if (is_object($u)) { |
| 5057 | - $u = (array)$u; |
|
| 5056 | + $u = (array) $u; |
|
| 5058 | 5057 | } |
| 5059 | 5058 | |
| 5060 | 5059 | if (is_array($u)) { |
@@ -5076,7 +5075,7 @@ discard block |
||
| 5076 | 5075 | // sinon on passe a la ligne et on indente |
| 5077 | 5076 | $i_str = str_pad('', $indent, ' '); |
| 5078 | 5077 | foreach ($u as $k => $v) { |
| 5079 | - $out .= $join . $i_str . "$k: " . filtre_print_dist($v, $join, $indent + 2); |
|
| 5078 | + $out .= $join.$i_str."$k: ".filtre_print_dist($v, $join, $indent + 2); |
|
| 5080 | 5079 | } |
| 5081 | 5080 | |
| 5082 | 5081 | return $out; |
@@ -5130,7 +5129,7 @@ discard block |
||
| 5130 | 5129 | * @return string |
| 5131 | 5130 | */ |
| 5132 | 5131 | function objet_icone($objet, $taille = 24, $class = '') { |
| 5133 | - $icone = objet_info($objet, 'icone_objet') . '-' . $taille . '.png'; |
|
| 5132 | + $icone = objet_info($objet, 'icone_objet').'-'.$taille.'.png'; |
|
| 5134 | 5133 | $icone = chemin_image($icone); |
| 5135 | 5134 | $balise_img = charger_filtre('balise_img'); |
| 5136 | 5135 | |
@@ -5156,7 +5155,7 @@ discard block |
||
| 5156 | 5155 | */ |
| 5157 | 5156 | function objet_T($objet, $chaine, $args = [], $options = []) { |
| 5158 | 5157 | $chaine = explode(':', $chaine); |
| 5159 | - if ($t = _T($objet . ':' . end($chaine), $args, array_merge($options, ['force' => false]))) { |
|
| 5158 | + if ($t = _T($objet.':'.end($chaine), $args, array_merge($options, ['force' => false]))) { |
|
| 5160 | 5159 | return $t; |
| 5161 | 5160 | } |
| 5162 | 5161 | $chaine = implode(':', $chaine); |
@@ -5222,7 +5221,7 @@ discard block |
||
| 5222 | 5221 | $cache = recuperer_fond($fond, $contexte, $options, $connect); |
| 5223 | 5222 | |
| 5224 | 5223 | // calculer le nom de la css |
| 5225 | - $dir_var = sous_repertoire(_DIR_VAR, 'cache-' . $extension); |
|
| 5224 | + $dir_var = sous_repertoire(_DIR_VAR, 'cache-'.$extension); |
|
| 5226 | 5225 | $nom_safe = preg_replace(',\W,', '_', str_replace('.', '_', $fond)); |
| 5227 | 5226 | $contexte_implicite = calculer_contexte_implicite(); |
| 5228 | 5227 | |
@@ -5230,14 +5229,14 @@ discard block |
||
| 5230 | 5229 | // mais on peut hasher selon le contenu a la demande, si plusieurs contextes produisent un meme contenu |
| 5231 | 5230 | // reduit la variabilite du nom et donc le nombre de css concatenees possibles in fine |
| 5232 | 5231 | if (isset($options['hash_on_content']) and $options['hash_on_content']) { |
| 5233 | - $hash = md5($contexte_implicite['host'] . '::' . $cache); |
|
| 5232 | + $hash = md5($contexte_implicite['host'].'::'.$cache); |
|
| 5234 | 5233 | } |
| 5235 | 5234 | else { |
| 5236 | 5235 | unset($contexte_implicite['notes']); // pas pertinent pour signaler un changeemnt de contenu pour des css/js |
| 5237 | 5236 | ksort($contexte); |
| 5238 | - $hash = md5($fond . json_encode($contexte_implicite, JSON_THROW_ON_ERROR) . json_encode($contexte, JSON_THROW_ON_ERROR) . $connect); |
|
| 5237 | + $hash = md5($fond.json_encode($contexte_implicite, JSON_THROW_ON_ERROR).json_encode($contexte, JSON_THROW_ON_ERROR).$connect); |
|
| 5239 | 5238 | } |
| 5240 | - $filename = $dir_var . $extension . "dyn-$nom_safe-" . substr($hash, 0, 8) . ".$extension"; |
|
| 5239 | + $filename = $dir_var.$extension."dyn-$nom_safe-".substr($hash, 0, 8).".$extension"; |
|
| 5241 | 5240 | |
| 5242 | 5241 | // mettre a jour le fichier si il n'existe pas |
| 5243 | 5242 | // ou trop ancien |
@@ -5245,8 +5244,8 @@ discard block |
||
| 5245 | 5244 | // et recopie sur le fichier cible uniquement si il change |
| 5246 | 5245 | if ( |
| 5247 | 5246 | !file_exists($filename) |
| 5248 | - or !file_exists($filename . '.last') |
|
| 5249 | - or (isset($cache['lastmodified']) and $cache['lastmodified'] and filemtime($filename . '.last') < $cache['lastmodified']) |
|
| 5247 | + or !file_exists($filename.'.last') |
|
| 5248 | + or (isset($cache['lastmodified']) and $cache['lastmodified'] and filemtime($filename.'.last') < $cache['lastmodified']) |
|
| 5250 | 5249 | or (defined('_VAR_MODE') and _VAR_MODE == 'recalcul') |
| 5251 | 5250 | ) { |
| 5252 | 5251 | $contenu = $cache['texte']; |
@@ -5270,10 +5269,10 @@ discard block |
||
| 5270 | 5269 | } |
| 5271 | 5270 | // pas de date dans le commentaire car sinon ca invalide le md5 et force la maj |
| 5272 | 5271 | // mais on peut mettre un md5 du contenu, ce qui donne un aperu rapide si la feuille a change ou non |
| 5273 | - $comment .= "}\n md5:" . md5($contenu) . " */\n"; |
|
| 5272 | + $comment .= "}\n md5:".md5($contenu)." */\n"; |
|
| 5274 | 5273 | } |
| 5275 | 5274 | // et ecrire le fichier si il change |
| 5276 | - ecrire_fichier_calcule_si_modifie($filename, $comment . $contenu, false, true); |
|
| 5275 | + ecrire_fichier_calcule_si_modifie($filename, $comment.$contenu, false, true); |
|
| 5277 | 5276 | } |
| 5278 | 5277 | |
| 5279 | 5278 | return timestamp($filename); |
@@ -5506,7 +5505,7 @@ discard block |
||
| 5506 | 5505 | if ($e > 0 and strlen($mid) > 8) { |
| 5507 | 5506 | $mid = '***...***'; |
| 5508 | 5507 | } |
| 5509 | - return substr($passe, 0, $e) . $mid . ($e > 0 ? substr($passe, -$e) : ''); |
|
| 5508 | + return substr($passe, 0, $e).$mid.($e > 0 ? substr($passe, -$e) : ''); |
|
| 5510 | 5509 | } |
| 5511 | 5510 | |
| 5512 | 5511 | |
@@ -5568,7 +5567,7 @@ discard block |
||
| 5568 | 5567 | case 'id': |
| 5569 | 5568 | case 'anchor': |
| 5570 | 5569 | if (preg_match(',^\d,', $texte)) { |
| 5571 | - $texte = substr($type, 0, 1) . $texte; |
|
| 5570 | + $texte = substr($type, 0, 1).$texte; |
|
| 5572 | 5571 | } |
| 5573 | 5572 | } |
| 5574 | 5573 | |
@@ -5578,9 +5577,9 @@ discard block |
||
| 5578 | 5577 | |
| 5579 | 5578 | if (strlen($texte) < $longueur_mini and $longueur_mini < $longueur_maxi) { |
| 5580 | 5579 | if (preg_match(',^\d,', $texte)) { |
| 5581 | - $texte = ($type ? substr($type, 0, 1) : 's') . $texte; |
|
| 5580 | + $texte = ($type ? substr($type, 0, 1) : 's').$texte; |
|
| 5582 | 5581 | } |
| 5583 | - $texte .= $separateur . md5($original); |
|
| 5582 | + $texte .= $separateur.md5($original); |
|
| 5584 | 5583 | $texte = substr($texte, 0, $longueur_mini); |
| 5585 | 5584 | } |
| 5586 | 5585 | |
@@ -18,7 +18,7 @@ discard block |
||
| 18 | 18 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 19 | 19 | return; |
| 20 | 20 | } |
| 21 | -require_once _ROOT_RESTREINT . 'base/objets.php'; |
|
| 21 | +require_once _ROOT_RESTREINT.'base/objets.php'; |
|
| 22 | 22 | |
| 23 | 23 | |
| 24 | 24 | /** |
@@ -59,7 +59,7 @@ discard block |
||
| 59 | 59 | $f = (!preg_match('/^[\w\.]*$/', $serveur)) |
| 60 | 60 | ? '' // nom de serveur mal ecrit |
| 61 | 61 | : ($serveur ? |
| 62 | - (_DIR_CONNECT . $serveur . '.php') // serveur externe |
|
| 62 | + (_DIR_CONNECT.$serveur.'.php') // serveur externe |
|
| 63 | 63 | : (_FILE_CONNECT ?: ($install ? _FILE_CONNECT_TMP // init du serveur principal |
| 64 | 64 | : ''))); // installation pas faite |
| 65 | 65 | |
@@ -101,9 +101,9 @@ discard block |
||
| 101 | 101 | // chargement de la version du jeu de fonctions |
| 102 | 102 | // si pas dans le fichier par defaut |
| 103 | 103 | $type = $GLOBALS['db_ok']['type']; |
| 104 | - $jeu = 'spip_' . $type . '_functions_' . $version; |
|
| 104 | + $jeu = 'spip_'.$type.'_functions_'.$version; |
|
| 105 | 105 | if (!isset($GLOBALS[$jeu])) { |
| 106 | - if (!find_in_path($type . '_' . $version . '.php', 'req/', true)) { |
|
| 106 | + if (!find_in_path($type.'_'.$version.'.php', 'req/', true)) { |
|
| 107 | 107 | spip_log("spip_connect: serveur $index version '$version' non defini pour '$type'", _LOG_HS); |
| 108 | 108 | |
| 109 | 109 | // ne plus reessayer |
@@ -165,9 +165,9 @@ discard block |
||
| 165 | 165 | $connexion = spip_connect($serveur); |
| 166 | 166 | $e = sql_errno($serveur); |
| 167 | 167 | $t = ($connexion['type'] ?? 'sql'); |
| 168 | - $m = "Erreur $e de $t: " . sql_error($serveur) . "\nin " . sql_error_backtrace() . "\n" . trim($connexion['last']); |
|
| 169 | - $f = $t . $serveur; |
|
| 170 | - spip_log($m, $f . '.' . _LOG_ERREUR); |
|
| 168 | + $m = "Erreur $e de $t: ".sql_error($serveur)."\nin ".sql_error_backtrace()."\n".trim($connexion['last']); |
|
| 169 | + $f = $t.$serveur; |
|
| 170 | + spip_log($m, $f.'.'._LOG_ERREUR); |
|
| 171 | 171 | } |
| 172 | 172 | |
| 173 | 173 | /** |
@@ -253,7 +253,7 @@ discard block |
||
| 253 | 253 | // si en cours d'installation ou si db=@test@ on ne pose rien |
| 254 | 254 | // car c'est un test de connexion |
| 255 | 255 | if (!defined('_ECRIRE_INSTALL') and $db !== '@test@') { |
| 256 | - $f = _DIR_TMP . $type . '.' . substr(md5($host . $port . $db), 0, 8) . '.out'; |
|
| 256 | + $f = _DIR_TMP.$type.'.'.substr(md5($host.$port.$db), 0, 8).'.out'; |
|
| 257 | 257 | } elseif ($db == '@test@') { |
| 258 | 258 | $db = ''; |
| 259 | 259 | } |
@@ -292,7 +292,7 @@ discard block |
||
| 292 | 292 | // En cas d'indisponibilite du serveur, eviter de le bombarder |
| 293 | 293 | if ($f) { |
| 294 | 294 | @touch($f); |
| 295 | - spip_log("Echec connexion serveur $type : host[$host] port[$port] login[$login] base[$db]", $type . '.' . _LOG_HS); |
|
| 295 | + spip_log("Echec connexion serveur $type : host[$host] port[$port] login[$login] base[$db]", $type.'.'._LOG_HS); |
|
| 296 | 296 | } |
| 297 | 297 | return null; |
| 298 | 298 | } |
@@ -390,11 +390,11 @@ discard block |
||
| 390 | 390 | } elseif (is_array($a)) { |
| 391 | 391 | return join(',', array_map('_q', $a)); |
| 392 | 392 | } elseif (is_scalar($a)) { |
| 393 | - return ("'" . addslashes($a) . "'"); |
|
| 393 | + return ("'".addslashes($a)."'"); |
|
| 394 | 394 | } elseif ($a === null) { |
| 395 | 395 | return "''"; |
| 396 | 396 | } |
| 397 | - throw new \RuntimeException('Can’t use _q with ' . gettype($a)); |
|
| 397 | + throw new \RuntimeException('Can’t use _q with '.gettype($a)); |
|
| 398 | 398 | } |
| 399 | 399 | |
| 400 | 400 | /** |
@@ -445,7 +445,7 @@ discard block |
||
| 445 | 445 | $next = reset($textes); |
| 446 | 446 | if ( |
| 447 | 447 | strpos($next, "'") === 0 |
| 448 | - and strpos($query_echappees, $part . $next, $currentpos) === $nextpos |
|
| 448 | + and strpos($query_echappees, $part.$next, $currentpos) === $nextpos |
|
| 449 | 449 | ) { |
| 450 | 450 | $part .= array_shift($textes); |
| 451 | 451 | } |
@@ -457,7 +457,7 @@ discard block |
||
| 457 | 457 | $parts[$k] = [ |
| 458 | 458 | 'texte' => $part, |
| 459 | 459 | 'position' => $nextpos, |
| 460 | - 'placeholder' => '%' . $k . '$s', |
|
| 460 | + 'placeholder' => '%'.$k.'$s', |
|
| 461 | 461 | ]; |
| 462 | 462 | $currentpos = $nextpos + strlen($part); |
| 463 | 463 | } |
@@ -448,8 +448,7 @@ |
||
| 448 | 448 | and strpos($query_echappees, $part . $next, $currentpos) === $nextpos |
| 449 | 449 | ) { |
| 450 | 450 | $part .= array_shift($textes); |
| 451 | - } |
|
| 452 | - else { |
|
| 451 | + } else { |
|
| 453 | 452 | break; |
| 454 | 453 | } |
| 455 | 454 | } |
@@ -16,7 +16,7 @@ discard block |
||
| 16 | 16 | * @package SPIP\Core\SQL |
| 17 | 17 | **/ |
| 18 | 18 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 19 | - return; |
|
| 19 | + return; |
|
| 20 | 20 | } |
| 21 | 21 | require_once _ROOT_RESTREINT . 'base/objets.php'; |
| 22 | 22 | |
@@ -42,118 +42,118 @@ discard block |
||
| 42 | 42 | **/ |
| 43 | 43 | function spip_connect($serveur = '', $version = '') { |
| 44 | 44 | |
| 45 | - $serveur = !is_string($serveur) ? '' : strtolower($serveur); |
|
| 46 | - $index = $serveur ?: 0; |
|
| 47 | - if (!$version) { |
|
| 48 | - $version = $GLOBALS['spip_sql_version']; |
|
| 49 | - } |
|
| 50 | - if (isset($GLOBALS['connexions'][$index][$version])) { |
|
| 51 | - return $GLOBALS['connexions'][$index]; |
|
| 52 | - } |
|
| 53 | - |
|
| 54 | - include_spip('base/abstract_sql'); |
|
| 55 | - $install = (_request('exec') == 'install'); |
|
| 56 | - |
|
| 57 | - // Premiere connexion ? |
|
| 58 | - if (!($old = isset($GLOBALS['connexions'][$index]))) { |
|
| 59 | - $f = (!preg_match('/^[\w\.]*$/', $serveur)) |
|
| 60 | - ? '' // nom de serveur mal ecrit |
|
| 61 | - : ($serveur ? |
|
| 62 | - (_DIR_CONNECT . $serveur . '.php') // serveur externe |
|
| 63 | - : (_FILE_CONNECT ?: ($install ? _FILE_CONNECT_TMP // init du serveur principal |
|
| 64 | - : ''))); // installation pas faite |
|
| 65 | - |
|
| 66 | - unset($GLOBALS['db_ok']); |
|
| 67 | - unset($GLOBALS['spip_connect_version']); |
|
| 68 | - if ($f) { |
|
| 69 | - if (is_readable($f)) { |
|
| 70 | - include($f); |
|
| 71 | - } elseif ($serveur and !$install) { |
|
| 72 | - // chercher une declaration de serveur dans le path |
|
| 73 | - // qui pourra un jour servir a declarer des bases sqlite |
|
| 74 | - // par des plugins. Et sert aussi aux boucles POUR. |
|
| 75 | - find_in_path("$serveur.php", 'connect/', true); |
|
| 76 | - } |
|
| 77 | - } |
|
| 78 | - if (!isset($GLOBALS['db_ok'])) { |
|
| 79 | - // fera mieux la prochaine fois |
|
| 80 | - if ($install) { |
|
| 81 | - return false; |
|
| 82 | - } |
|
| 83 | - if ($f and is_readable($f)) { |
|
| 84 | - spip_log("spip_connect: fichier de connexion '$f' OK.", _LOG_INFO_IMPORTANTE); |
|
| 85 | - } else { |
|
| 86 | - spip_log("spip_connect: fichier de connexion '$f' non trouve", _LOG_INFO_IMPORTANTE); |
|
| 87 | - } |
|
| 88 | - spip_log("spip_connect: echec connexion ou serveur $index mal defini dans '$f'.", _LOG_HS); |
|
| 89 | - |
|
| 90 | - // ne plus reessayer si ce n'est pas l'install |
|
| 91 | - return $GLOBALS['connexions'][$index] = false; |
|
| 92 | - } |
|
| 93 | - $GLOBALS['connexions'][$index] = $GLOBALS['db_ok']; |
|
| 94 | - } |
|
| 95 | - // si la connexion a deja ete tentee mais a echoue, le dire! |
|
| 96 | - if (!$GLOBALS['connexions'][$index]) { |
|
| 97 | - return false; |
|
| 98 | - } |
|
| 99 | - |
|
| 100 | - // la connexion a reussi ou etait deja faite. |
|
| 101 | - // chargement de la version du jeu de fonctions |
|
| 102 | - // si pas dans le fichier par defaut |
|
| 103 | - $type = $GLOBALS['db_ok']['type']; |
|
| 104 | - $jeu = 'spip_' . $type . '_functions_' . $version; |
|
| 105 | - if (!isset($GLOBALS[$jeu])) { |
|
| 106 | - if (!find_in_path($type . '_' . $version . '.php', 'req/', true)) { |
|
| 107 | - spip_log("spip_connect: serveur $index version '$version' non defini pour '$type'", _LOG_HS); |
|
| 108 | - |
|
| 109 | - // ne plus reessayer |
|
| 110 | - return $GLOBALS['connexions'][$index][$version] = []; |
|
| 111 | - } |
|
| 112 | - } |
|
| 113 | - $GLOBALS['connexions'][$index][$version] = $GLOBALS[$jeu]; |
|
| 114 | - if ($old) { |
|
| 115 | - return $GLOBALS['connexions'][$index]; |
|
| 116 | - } |
|
| 117 | - |
|
| 118 | - $GLOBALS['connexions'][$index]['spip_connect_version'] = $GLOBALS['spip_connect_version'] ?? 0; |
|
| 119 | - |
|
| 120 | - // initialisation de l'alphabet utilise dans les connexions SQL |
|
| 121 | - // si l'installation l'a determine. |
|
| 122 | - // Celui du serveur principal l'impose aux serveurs secondaires |
|
| 123 | - // s'ils le connaissent |
|
| 124 | - |
|
| 125 | - if (!$serveur) { |
|
| 126 | - $charset = spip_connect_main($GLOBALS[$jeu], $GLOBALS['db_ok']['charset']); |
|
| 127 | - if (!$charset) { |
|
| 128 | - unset($GLOBALS['connexions'][$index]); |
|
| 129 | - spip_log('spip_connect: absence de charset', _LOG_AVERTISSEMENT); |
|
| 130 | - |
|
| 131 | - return false; |
|
| 132 | - } |
|
| 133 | - } else { |
|
| 134 | - if ($GLOBALS['db_ok']['charset']) { |
|
| 135 | - $charset = $GLOBALS['db_ok']['charset']; |
|
| 136 | - } |
|
| 137 | - // spip_meta n'existe pas toujours dans la base |
|
| 138 | - // C'est le cas d'un dump sqlite par exemple |
|
| 139 | - elseif ( |
|
| 140 | - $GLOBALS['connexions'][$index]['spip_connect_version'] |
|
| 141 | - and sql_showtable('spip_meta', true, $serveur) |
|
| 142 | - and $r = sql_getfetsel('valeur', 'spip_meta', "nom='charset_sql_connexion'", '', '', '', '', $serveur) |
|
| 143 | - ) { |
|
| 144 | - $charset = $r; |
|
| 145 | - } else { |
|
| 146 | - $charset = -1; |
|
| 147 | - } |
|
| 148 | - } |
|
| 149 | - if ($charset != -1) { |
|
| 150 | - $f = $GLOBALS[$jeu]['set_charset']; |
|
| 151 | - if (function_exists($f)) { |
|
| 152 | - $f($charset, $serveur); |
|
| 153 | - } |
|
| 154 | - } |
|
| 155 | - |
|
| 156 | - return $GLOBALS['connexions'][$index]; |
|
| 45 | + $serveur = !is_string($serveur) ? '' : strtolower($serveur); |
|
| 46 | + $index = $serveur ?: 0; |
|
| 47 | + if (!$version) { |
|
| 48 | + $version = $GLOBALS['spip_sql_version']; |
|
| 49 | + } |
|
| 50 | + if (isset($GLOBALS['connexions'][$index][$version])) { |
|
| 51 | + return $GLOBALS['connexions'][$index]; |
|
| 52 | + } |
|
| 53 | + |
|
| 54 | + include_spip('base/abstract_sql'); |
|
| 55 | + $install = (_request('exec') == 'install'); |
|
| 56 | + |
|
| 57 | + // Premiere connexion ? |
|
| 58 | + if (!($old = isset($GLOBALS['connexions'][$index]))) { |
|
| 59 | + $f = (!preg_match('/^[\w\.]*$/', $serveur)) |
|
| 60 | + ? '' // nom de serveur mal ecrit |
|
| 61 | + : ($serveur ? |
|
| 62 | + (_DIR_CONNECT . $serveur . '.php') // serveur externe |
|
| 63 | + : (_FILE_CONNECT ?: ($install ? _FILE_CONNECT_TMP // init du serveur principal |
|
| 64 | + : ''))); // installation pas faite |
|
| 65 | + |
|
| 66 | + unset($GLOBALS['db_ok']); |
|
| 67 | + unset($GLOBALS['spip_connect_version']); |
|
| 68 | + if ($f) { |
|
| 69 | + if (is_readable($f)) { |
|
| 70 | + include($f); |
|
| 71 | + } elseif ($serveur and !$install) { |
|
| 72 | + // chercher une declaration de serveur dans le path |
|
| 73 | + // qui pourra un jour servir a declarer des bases sqlite |
|
| 74 | + // par des plugins. Et sert aussi aux boucles POUR. |
|
| 75 | + find_in_path("$serveur.php", 'connect/', true); |
|
| 76 | + } |
|
| 77 | + } |
|
| 78 | + if (!isset($GLOBALS['db_ok'])) { |
|
| 79 | + // fera mieux la prochaine fois |
|
| 80 | + if ($install) { |
|
| 81 | + return false; |
|
| 82 | + } |
|
| 83 | + if ($f and is_readable($f)) { |
|
| 84 | + spip_log("spip_connect: fichier de connexion '$f' OK.", _LOG_INFO_IMPORTANTE); |
|
| 85 | + } else { |
|
| 86 | + spip_log("spip_connect: fichier de connexion '$f' non trouve", _LOG_INFO_IMPORTANTE); |
|
| 87 | + } |
|
| 88 | + spip_log("spip_connect: echec connexion ou serveur $index mal defini dans '$f'.", _LOG_HS); |
|
| 89 | + |
|
| 90 | + // ne plus reessayer si ce n'est pas l'install |
|
| 91 | + return $GLOBALS['connexions'][$index] = false; |
|
| 92 | + } |
|
| 93 | + $GLOBALS['connexions'][$index] = $GLOBALS['db_ok']; |
|
| 94 | + } |
|
| 95 | + // si la connexion a deja ete tentee mais a echoue, le dire! |
|
| 96 | + if (!$GLOBALS['connexions'][$index]) { |
|
| 97 | + return false; |
|
| 98 | + } |
|
| 99 | + |
|
| 100 | + // la connexion a reussi ou etait deja faite. |
|
| 101 | + // chargement de la version du jeu de fonctions |
|
| 102 | + // si pas dans le fichier par defaut |
|
| 103 | + $type = $GLOBALS['db_ok']['type']; |
|
| 104 | + $jeu = 'spip_' . $type . '_functions_' . $version; |
|
| 105 | + if (!isset($GLOBALS[$jeu])) { |
|
| 106 | + if (!find_in_path($type . '_' . $version . '.php', 'req/', true)) { |
|
| 107 | + spip_log("spip_connect: serveur $index version '$version' non defini pour '$type'", _LOG_HS); |
|
| 108 | + |
|
| 109 | + // ne plus reessayer |
|
| 110 | + return $GLOBALS['connexions'][$index][$version] = []; |
|
| 111 | + } |
|
| 112 | + } |
|
| 113 | + $GLOBALS['connexions'][$index][$version] = $GLOBALS[$jeu]; |
|
| 114 | + if ($old) { |
|
| 115 | + return $GLOBALS['connexions'][$index]; |
|
| 116 | + } |
|
| 117 | + |
|
| 118 | + $GLOBALS['connexions'][$index]['spip_connect_version'] = $GLOBALS['spip_connect_version'] ?? 0; |
|
| 119 | + |
|
| 120 | + // initialisation de l'alphabet utilise dans les connexions SQL |
|
| 121 | + // si l'installation l'a determine. |
|
| 122 | + // Celui du serveur principal l'impose aux serveurs secondaires |
|
| 123 | + // s'ils le connaissent |
|
| 124 | + |
|
| 125 | + if (!$serveur) { |
|
| 126 | + $charset = spip_connect_main($GLOBALS[$jeu], $GLOBALS['db_ok']['charset']); |
|
| 127 | + if (!$charset) { |
|
| 128 | + unset($GLOBALS['connexions'][$index]); |
|
| 129 | + spip_log('spip_connect: absence de charset', _LOG_AVERTISSEMENT); |
|
| 130 | + |
|
| 131 | + return false; |
|
| 132 | + } |
|
| 133 | + } else { |
|
| 134 | + if ($GLOBALS['db_ok']['charset']) { |
|
| 135 | + $charset = $GLOBALS['db_ok']['charset']; |
|
| 136 | + } |
|
| 137 | + // spip_meta n'existe pas toujours dans la base |
|
| 138 | + // C'est le cas d'un dump sqlite par exemple |
|
| 139 | + elseif ( |
|
| 140 | + $GLOBALS['connexions'][$index]['spip_connect_version'] |
|
| 141 | + and sql_showtable('spip_meta', true, $serveur) |
|
| 142 | + and $r = sql_getfetsel('valeur', 'spip_meta', "nom='charset_sql_connexion'", '', '', '', '', $serveur) |
|
| 143 | + ) { |
|
| 144 | + $charset = $r; |
|
| 145 | + } else { |
|
| 146 | + $charset = -1; |
|
| 147 | + } |
|
| 148 | + } |
|
| 149 | + if ($charset != -1) { |
|
| 150 | + $f = $GLOBALS[$jeu]['set_charset']; |
|
| 151 | + if (function_exists($f)) { |
|
| 152 | + $f($charset, $serveur); |
|
| 153 | + } |
|
| 154 | + } |
|
| 155 | + |
|
| 156 | + return $GLOBALS['connexions'][$index]; |
|
| 157 | 157 | } |
| 158 | 158 | |
| 159 | 159 | /** |
@@ -162,12 +162,12 @@ discard block |
||
| 162 | 162 | * @param string $serveur Nom du connecteur de bdd utilisé |
| 163 | 163 | **/ |
| 164 | 164 | function spip_sql_erreur($serveur = '') { |
| 165 | - $connexion = spip_connect($serveur); |
|
| 166 | - $e = sql_errno($serveur); |
|
| 167 | - $t = ($connexion['type'] ?? 'sql'); |
|
| 168 | - $m = "Erreur $e de $t: " . sql_error($serveur) . "\nin " . sql_error_backtrace() . "\n" . trim($connexion['last']); |
|
| 169 | - $f = $t . $serveur; |
|
| 170 | - spip_log($m, $f . '.' . _LOG_ERREUR); |
|
| 165 | + $connexion = spip_connect($serveur); |
|
| 166 | + $e = sql_errno($serveur); |
|
| 167 | + $t = ($connexion['type'] ?? 'sql'); |
|
| 168 | + $m = "Erreur $e de $t: " . sql_error($serveur) . "\nin " . sql_error_backtrace() . "\n" . trim($connexion['last']); |
|
| 169 | + $f = $t . $serveur; |
|
| 170 | + spip_log($m, $f . '.' . _LOG_ERREUR); |
|
| 171 | 171 | } |
| 172 | 172 | |
| 173 | 173 | /** |
@@ -189,23 +189,23 @@ discard block |
||
| 189 | 189 | * - array : description de la connexion, si l'instruction sql est indisponible pour cette connexion |
| 190 | 190 | **/ |
| 191 | 191 | function spip_connect_sql($version, $ins = '', $serveur = '', $continue = false) { |
| 192 | - $desc = spip_connect($serveur, $version); |
|
| 193 | - if ( |
|
| 194 | - $desc |
|
| 195 | - and $f = ($desc[$version][$ins] ?? '') |
|
| 196 | - and function_exists($f) |
|
| 197 | - ) { |
|
| 198 | - return $f; |
|
| 199 | - } |
|
| 200 | - if ($continue) { |
|
| 201 | - return $desc; |
|
| 202 | - } |
|
| 203 | - if ($ins) { |
|
| 204 | - spip_log("Le serveur '$serveur' version $version n'a pas '$ins'", _LOG_ERREUR); |
|
| 205 | - } |
|
| 206 | - include_spip('inc/minipres'); |
|
| 207 | - echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'), ['status' => 503]); |
|
| 208 | - exit; |
|
| 192 | + $desc = spip_connect($serveur, $version); |
|
| 193 | + if ( |
|
| 194 | + $desc |
|
| 195 | + and $f = ($desc[$version][$ins] ?? '') |
|
| 196 | + and function_exists($f) |
|
| 197 | + ) { |
|
| 198 | + return $f; |
|
| 199 | + } |
|
| 200 | + if ($continue) { |
|
| 201 | + return $desc; |
|
| 202 | + } |
|
| 203 | + if ($ins) { |
|
| 204 | + spip_log("Le serveur '$serveur' version $version n'a pas '$ins'", _LOG_ERREUR); |
|
| 205 | + } |
|
| 206 | + include_spip('inc/minipres'); |
|
| 207 | + echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'), ['status' => 503]); |
|
| 208 | + exit; |
|
| 209 | 209 | } |
| 210 | 210 | |
| 211 | 211 | /** |
@@ -231,70 +231,70 @@ discard block |
||
| 231 | 231 | * @return array|null Description de la connexion |
| 232 | 232 | */ |
| 233 | 233 | function spip_connect_db( |
| 234 | - $host, |
|
| 235 | - $port, |
|
| 236 | - $login, |
|
| 237 | - $pass, |
|
| 238 | - $db = '', |
|
| 239 | - $type = 'mysql', |
|
| 240 | - $prefixe = '', |
|
| 241 | - $auth = '', |
|
| 242 | - $charset = '' |
|
| 234 | + $host, |
|
| 235 | + $port, |
|
| 236 | + $login, |
|
| 237 | + $pass, |
|
| 238 | + $db = '', |
|
| 239 | + $type = 'mysql', |
|
| 240 | + $prefixe = '', |
|
| 241 | + $auth = '', |
|
| 242 | + $charset = '' |
|
| 243 | 243 | ) { |
| 244 | - // temps avant nouvelle tentative de connexion |
|
| 245 | - // suite a une connection echouee |
|
| 246 | - if (!defined('_CONNECT_RETRY_DELAY')) { |
|
| 247 | - define('_CONNECT_RETRY_DELAY', 30); |
|
| 248 | - } |
|
| 249 | - |
|
| 250 | - $f = ''; |
|
| 251 | - // un fichier de identifiant par combinaison (type,host,port,db) |
|
| 252 | - // pour ne pas declarer tout indisponible d'un coup |
|
| 253 | - // si en cours d'installation ou si db=@test@ on ne pose rien |
|
| 254 | - // car c'est un test de connexion |
|
| 255 | - if (!defined('_ECRIRE_INSTALL') and $db !== '@test@') { |
|
| 256 | - $f = _DIR_TMP . $type . '.' . substr(md5($host . $port . $db), 0, 8) . '.out'; |
|
| 257 | - } elseif ($db == '@test@') { |
|
| 258 | - $db = ''; |
|
| 259 | - } |
|
| 260 | - |
|
| 261 | - if ( |
|
| 262 | - $f |
|
| 263 | - and @file_exists($f) |
|
| 264 | - and (time() - @filemtime($f) < _CONNECT_RETRY_DELAY) |
|
| 265 | - ) { |
|
| 266 | - spip_log("Echec : $f recent. Pas de tentative de connexion", _LOG_HS); |
|
| 267 | - |
|
| 268 | - return null; |
|
| 269 | - } |
|
| 270 | - |
|
| 271 | - if (!$prefixe) { |
|
| 272 | - $prefixe = $GLOBALS['table_prefix'] ?? $db; |
|
| 273 | - } |
|
| 274 | - $h = charger_fonction($type, 'req', true); |
|
| 275 | - if (!$h) { |
|
| 276 | - spip_log("les requetes $type ne sont pas fournies", _LOG_HS); |
|
| 277 | - |
|
| 278 | - return null; |
|
| 279 | - } |
|
| 280 | - if ($g = $h($host, $port, $login, $pass, $db, $prefixe)) { |
|
| 281 | - if (!is_array($auth)) { |
|
| 282 | - // compatibilite version 0.7 initiale |
|
| 283 | - $g['ldap'] = $auth; |
|
| 284 | - $auth = ['ldap' => $auth]; |
|
| 285 | - } |
|
| 286 | - $g['authentification'] = $auth; |
|
| 287 | - $g['type'] = $type; |
|
| 288 | - $g['charset'] = $charset; |
|
| 289 | - |
|
| 290 | - return $GLOBALS['db_ok'] = $g; |
|
| 291 | - } |
|
| 292 | - // En cas d'indisponibilite du serveur, eviter de le bombarder |
|
| 293 | - if ($f) { |
|
| 294 | - @touch($f); |
|
| 295 | - spip_log("Echec connexion serveur $type : host[$host] port[$port] login[$login] base[$db]", $type . '.' . _LOG_HS); |
|
| 296 | - } |
|
| 297 | - return null; |
|
| 244 | + // temps avant nouvelle tentative de connexion |
|
| 245 | + // suite a une connection echouee |
|
| 246 | + if (!defined('_CONNECT_RETRY_DELAY')) { |
|
| 247 | + define('_CONNECT_RETRY_DELAY', 30); |
|
| 248 | + } |
|
| 249 | + |
|
| 250 | + $f = ''; |
|
| 251 | + // un fichier de identifiant par combinaison (type,host,port,db) |
|
| 252 | + // pour ne pas declarer tout indisponible d'un coup |
|
| 253 | + // si en cours d'installation ou si db=@test@ on ne pose rien |
|
| 254 | + // car c'est un test de connexion |
|
| 255 | + if (!defined('_ECRIRE_INSTALL') and $db !== '@test@') { |
|
| 256 | + $f = _DIR_TMP . $type . '.' . substr(md5($host . $port . $db), 0, 8) . '.out'; |
|
| 257 | + } elseif ($db == '@test@') { |
|
| 258 | + $db = ''; |
|
| 259 | + } |
|
| 260 | + |
|
| 261 | + if ( |
|
| 262 | + $f |
|
| 263 | + and @file_exists($f) |
|
| 264 | + and (time() - @filemtime($f) < _CONNECT_RETRY_DELAY) |
|
| 265 | + ) { |
|
| 266 | + spip_log("Echec : $f recent. Pas de tentative de connexion", _LOG_HS); |
|
| 267 | + |
|
| 268 | + return null; |
|
| 269 | + } |
|
| 270 | + |
|
| 271 | + if (!$prefixe) { |
|
| 272 | + $prefixe = $GLOBALS['table_prefix'] ?? $db; |
|
| 273 | + } |
|
| 274 | + $h = charger_fonction($type, 'req', true); |
|
| 275 | + if (!$h) { |
|
| 276 | + spip_log("les requetes $type ne sont pas fournies", _LOG_HS); |
|
| 277 | + |
|
| 278 | + return null; |
|
| 279 | + } |
|
| 280 | + if ($g = $h($host, $port, $login, $pass, $db, $prefixe)) { |
|
| 281 | + if (!is_array($auth)) { |
|
| 282 | + // compatibilite version 0.7 initiale |
|
| 283 | + $g['ldap'] = $auth; |
|
| 284 | + $auth = ['ldap' => $auth]; |
|
| 285 | + } |
|
| 286 | + $g['authentification'] = $auth; |
|
| 287 | + $g['type'] = $type; |
|
| 288 | + $g['charset'] = $charset; |
|
| 289 | + |
|
| 290 | + return $GLOBALS['db_ok'] = $g; |
|
| 291 | + } |
|
| 292 | + // En cas d'indisponibilite du serveur, eviter de le bombarder |
|
| 293 | + if ($f) { |
|
| 294 | + @touch($f); |
|
| 295 | + spip_log("Echec connexion serveur $type : host[$host] port[$port] login[$login] base[$db]", $type . '.' . _LOG_HS); |
|
| 296 | + } |
|
| 297 | + return null; |
|
| 298 | 298 | } |
| 299 | 299 | |
| 300 | 300 | |
@@ -326,32 +326,32 @@ discard block |
||
| 326 | 326 | * - nom du charset sinon |
| 327 | 327 | **/ |
| 328 | 328 | function spip_connect_main($connexion, $charset_sql_connexion = '') { |
| 329 | - if ($GLOBALS['spip_connect_version'] < 0.1 and _DIR_RESTREINT) { |
|
| 330 | - include_spip('inc/headers'); |
|
| 331 | - redirige_url_ecrire('upgrade', 'reinstall=oui'); |
|
| 332 | - } |
|
| 333 | - |
|
| 334 | - if (!($f = $connexion['select'])) { |
|
| 335 | - return false; |
|
| 336 | - } |
|
| 337 | - // si le charset est fourni, l'utiliser |
|
| 338 | - if ($charset_sql_connexion) { |
|
| 339 | - return $charset_sql_connexion; |
|
| 340 | - } |
|
| 341 | - // sinon on regarde la table spip_meta |
|
| 342 | - // en cas d'erreur select retourne la requette (is_string=true donc) |
|
| 343 | - if ( |
|
| 344 | - !$r = $f('valeur', 'spip_meta', "nom='charset_sql_connexion'") |
|
| 345 | - or is_string($r) |
|
| 346 | - ) { |
|
| 347 | - return false; |
|
| 348 | - } |
|
| 349 | - if (!($f = $connexion['fetch'])) { |
|
| 350 | - return false; |
|
| 351 | - } |
|
| 352 | - $r = $f($r); |
|
| 353 | - |
|
| 354 | - return (isset($r['valeur']) && $r['valeur']) ? $r['valeur'] : -1; |
|
| 329 | + if ($GLOBALS['spip_connect_version'] < 0.1 and _DIR_RESTREINT) { |
|
| 330 | + include_spip('inc/headers'); |
|
| 331 | + redirige_url_ecrire('upgrade', 'reinstall=oui'); |
|
| 332 | + } |
|
| 333 | + |
|
| 334 | + if (!($f = $connexion['select'])) { |
|
| 335 | + return false; |
|
| 336 | + } |
|
| 337 | + // si le charset est fourni, l'utiliser |
|
| 338 | + if ($charset_sql_connexion) { |
|
| 339 | + return $charset_sql_connexion; |
|
| 340 | + } |
|
| 341 | + // sinon on regarde la table spip_meta |
|
| 342 | + // en cas d'erreur select retourne la requette (is_string=true donc) |
|
| 343 | + if ( |
|
| 344 | + !$r = $f('valeur', 'spip_meta', "nom='charset_sql_connexion'") |
|
| 345 | + or is_string($r) |
|
| 346 | + ) { |
|
| 347 | + return false; |
|
| 348 | + } |
|
| 349 | + if (!($f = $connexion['fetch'])) { |
|
| 350 | + return false; |
|
| 351 | + } |
|
| 352 | + $r = $f($r); |
|
| 353 | + |
|
| 354 | + return (isset($r['valeur']) && $r['valeur']) ? $r['valeur'] : -1; |
|
| 355 | 355 | } |
| 356 | 356 | |
| 357 | 357 | /** |
@@ -367,8 +367,8 @@ discard block |
||
| 367 | 367 | * @return array |
| 368 | 368 | */ |
| 369 | 369 | function spip_connect_ldap($serveur = '') { |
| 370 | - include_spip('auth/ldap'); |
|
| 371 | - return auth_ldap_connect($serveur); |
|
| 370 | + include_spip('auth/ldap'); |
|
| 371 | + return auth_ldap_connect($serveur); |
|
| 372 | 372 | } |
| 373 | 373 | |
| 374 | 374 | /** |
@@ -384,16 +384,16 @@ discard block |
||
| 384 | 384 | * @return string Valeur échappée. |
| 385 | 385 | **/ |
| 386 | 386 | function _q($a): string { |
| 387 | - if (is_numeric($a)) { |
|
| 388 | - return strval($a); |
|
| 389 | - } elseif (is_array($a)) { |
|
| 390 | - return join(',', array_map('_q', $a)); |
|
| 391 | - } elseif (is_scalar($a)) { |
|
| 392 | - return ("'" . addslashes($a) . "'"); |
|
| 393 | - } elseif ($a === null) { |
|
| 394 | - return "''"; |
|
| 395 | - } |
|
| 396 | - throw new \RuntimeException('Can’t use _q with ' . gettype($a)); |
|
| 387 | + if (is_numeric($a)) { |
|
| 388 | + return strval($a); |
|
| 389 | + } elseif (is_array($a)) { |
|
| 390 | + return join(',', array_map('_q', $a)); |
|
| 391 | + } elseif (is_scalar($a)) { |
|
| 392 | + return ("'" . addslashes($a) . "'"); |
|
| 393 | + } elseif ($a === null) { |
|
| 394 | + return "''"; |
|
| 395 | + } |
|
| 396 | + throw new \RuntimeException('Can’t use _q with ' . gettype($a)); |
|
| 397 | 397 | } |
| 398 | 398 | |
| 399 | 399 | /** |
@@ -409,75 +409,75 @@ discard block |
||
| 409 | 409 | * @return array |
| 410 | 410 | */ |
| 411 | 411 | function query_echappe_textes($query, $uniqid = null) { |
| 412 | - static $codeEchappements = null; |
|
| 413 | - if (is_null($codeEchappements) or $uniqid) { |
|
| 414 | - if (is_null($uniqid)) { |
|
| 415 | - $uniqid = uniqid(); |
|
| 416 | - } |
|
| 417 | - $uniqid = substr(md5($uniqid), 0, 4); |
|
| 418 | - $codeEchappements = ['\\\\' => "\x1@#{$uniqid}#@\x1", "\\'" => "\x2@#{$uniqid}#@\x2", '\\"' => "\x3@#{$uniqid}#@\x3", '%' => "\x4@#{$uniqid}#@\x4"]; |
|
| 419 | - } |
|
| 420 | - if ($query === null) { |
|
| 421 | - return $codeEchappements; |
|
| 422 | - } |
|
| 423 | - |
|
| 424 | - // si la query contient deja des codes d'echappement on va s'emmeler les pinceaux et donc on ne touche a rien |
|
| 425 | - // ce n'est pas un cas legitime |
|
| 426 | - foreach ($codeEchappements as $codeEchappement) { |
|
| 427 | - if (strpos($query, (string) $codeEchappement) !== false) { |
|
| 428 | - return [$query, []]; |
|
| 429 | - } |
|
| 430 | - } |
|
| 431 | - |
|
| 432 | - $query_echappees = str_replace(array_keys($codeEchappements), array_values($codeEchappements), $query); |
|
| 433 | - if (preg_match_all("/('[^']*')|(\"[^\"]*\")/S", $query_echappees, $textes)) { |
|
| 434 | - $textes = reset($textes); |
|
| 435 | - |
|
| 436 | - $parts = []; |
|
| 437 | - $currentpos = 0; |
|
| 438 | - $k = 0; |
|
| 439 | - while (count($textes)) { |
|
| 440 | - $part = array_shift($textes); |
|
| 441 | - $nextpos = strpos($query_echappees, $part, $currentpos); |
|
| 442 | - // si besoin recoller ensemble les doubles '' de sqlite (echappement des ') |
|
| 443 | - while (count($textes) and substr($part, -1) === "'") { |
|
| 444 | - $next = reset($textes); |
|
| 445 | - if ( |
|
| 446 | - strpos($next, "'") === 0 |
|
| 447 | - and strpos($query_echappees, $part . $next, $currentpos) === $nextpos |
|
| 448 | - ) { |
|
| 449 | - $part .= array_shift($textes); |
|
| 450 | - } |
|
| 451 | - else { |
|
| 452 | - break; |
|
| 453 | - } |
|
| 454 | - } |
|
| 455 | - $k++; |
|
| 456 | - $parts[$k] = [ |
|
| 457 | - 'texte' => $part, |
|
| 458 | - 'position' => $nextpos, |
|
| 459 | - 'placeholder' => '%' . $k . '$s', |
|
| 460 | - ]; |
|
| 461 | - $currentpos = $nextpos + strlen($part); |
|
| 462 | - } |
|
| 463 | - |
|
| 464 | - // et on replace les parts une par une en commencant par la fin |
|
| 465 | - while ($k > 0) { |
|
| 466 | - $query_echappees = substr_replace($query_echappees, $parts[$k]['placeholder'], $parts[$k]['position'], strlen($parts[$k]['texte'])); |
|
| 467 | - $k--; |
|
| 468 | - } |
|
| 469 | - $textes = array_column($parts, 'texte'); |
|
| 470 | - } else { |
|
| 471 | - $textes = []; |
|
| 472 | - } |
|
| 473 | - |
|
| 474 | - // si il reste des quotes simples ou doubles, c'est qu'on s'est emmelle les pinceaux |
|
| 475 | - // dans le doute on ne touche a rien |
|
| 476 | - if (strpbrk($query_echappees, "'\"") !== false) { |
|
| 477 | - return [$query, []]; |
|
| 478 | - } |
|
| 479 | - |
|
| 480 | - return [$query_echappees, $textes]; |
|
| 412 | + static $codeEchappements = null; |
|
| 413 | + if (is_null($codeEchappements) or $uniqid) { |
|
| 414 | + if (is_null($uniqid)) { |
|
| 415 | + $uniqid = uniqid(); |
|
| 416 | + } |
|
| 417 | + $uniqid = substr(md5($uniqid), 0, 4); |
|
| 418 | + $codeEchappements = ['\\\\' => "\x1@#{$uniqid}#@\x1", "\\'" => "\x2@#{$uniqid}#@\x2", '\\"' => "\x3@#{$uniqid}#@\x3", '%' => "\x4@#{$uniqid}#@\x4"]; |
|
| 419 | + } |
|
| 420 | + if ($query === null) { |
|
| 421 | + return $codeEchappements; |
|
| 422 | + } |
|
| 423 | + |
|
| 424 | + // si la query contient deja des codes d'echappement on va s'emmeler les pinceaux et donc on ne touche a rien |
|
| 425 | + // ce n'est pas un cas legitime |
|
| 426 | + foreach ($codeEchappements as $codeEchappement) { |
|
| 427 | + if (strpos($query, (string) $codeEchappement) !== false) { |
|
| 428 | + return [$query, []]; |
|
| 429 | + } |
|
| 430 | + } |
|
| 431 | + |
|
| 432 | + $query_echappees = str_replace(array_keys($codeEchappements), array_values($codeEchappements), $query); |
|
| 433 | + if (preg_match_all("/('[^']*')|(\"[^\"]*\")/S", $query_echappees, $textes)) { |
|
| 434 | + $textes = reset($textes); |
|
| 435 | + |
|
| 436 | + $parts = []; |
|
| 437 | + $currentpos = 0; |
|
| 438 | + $k = 0; |
|
| 439 | + while (count($textes)) { |
|
| 440 | + $part = array_shift($textes); |
|
| 441 | + $nextpos = strpos($query_echappees, $part, $currentpos); |
|
| 442 | + // si besoin recoller ensemble les doubles '' de sqlite (echappement des ') |
|
| 443 | + while (count($textes) and substr($part, -1) === "'") { |
|
| 444 | + $next = reset($textes); |
|
| 445 | + if ( |
|
| 446 | + strpos($next, "'") === 0 |
|
| 447 | + and strpos($query_echappees, $part . $next, $currentpos) === $nextpos |
|
| 448 | + ) { |
|
| 449 | + $part .= array_shift($textes); |
|
| 450 | + } |
|
| 451 | + else { |
|
| 452 | + break; |
|
| 453 | + } |
|
| 454 | + } |
|
| 455 | + $k++; |
|
| 456 | + $parts[$k] = [ |
|
| 457 | + 'texte' => $part, |
|
| 458 | + 'position' => $nextpos, |
|
| 459 | + 'placeholder' => '%' . $k . '$s', |
|
| 460 | + ]; |
|
| 461 | + $currentpos = $nextpos + strlen($part); |
|
| 462 | + } |
|
| 463 | + |
|
| 464 | + // et on replace les parts une par une en commencant par la fin |
|
| 465 | + while ($k > 0) { |
|
| 466 | + $query_echappees = substr_replace($query_echappees, $parts[$k]['placeholder'], $parts[$k]['position'], strlen($parts[$k]['texte'])); |
|
| 467 | + $k--; |
|
| 468 | + } |
|
| 469 | + $textes = array_column($parts, 'texte'); |
|
| 470 | + } else { |
|
| 471 | + $textes = []; |
|
| 472 | + } |
|
| 473 | + |
|
| 474 | + // si il reste des quotes simples ou doubles, c'est qu'on s'est emmelle les pinceaux |
|
| 475 | + // dans le doute on ne touche a rien |
|
| 476 | + if (strpbrk($query_echappees, "'\"") !== false) { |
|
| 477 | + return [$query, []]; |
|
| 478 | + } |
|
| 479 | + |
|
| 480 | + return [$query_echappees, $textes]; |
|
| 481 | 481 | } |
| 482 | 482 | |
| 483 | 483 | /** |
@@ -491,16 +491,16 @@ discard block |
||
| 491 | 491 | * @return string |
| 492 | 492 | */ |
| 493 | 493 | function query_reinjecte_textes($query, $textes) { |
| 494 | - // recuperer les codes echappements |
|
| 495 | - $codeEchappements = query_echappe_textes(null); |
|
| 494 | + // recuperer les codes echappements |
|
| 495 | + $codeEchappements = query_echappe_textes(null); |
|
| 496 | 496 | |
| 497 | - if (!empty($textes)) { |
|
| 498 | - $query = sprintf($query, ...$textes); |
|
| 499 | - } |
|
| 497 | + if (!empty($textes)) { |
|
| 498 | + $query = sprintf($query, ...$textes); |
|
| 499 | + } |
|
| 500 | 500 | |
| 501 | - $query = str_replace(array_values($codeEchappements), array_keys($codeEchappements), $query); |
|
| 501 | + $query = str_replace(array_values($codeEchappements), array_keys($codeEchappements), $query); |
|
| 502 | 502 | |
| 503 | - return $query; |
|
| 503 | + return $query; |
|
| 504 | 504 | } |
| 505 | 505 | |
| 506 | 506 | |
@@ -519,7 +519,7 @@ discard block |
||
| 519 | 519 | **/ |
| 520 | 520 | function spip_query($query, $serveur = '') { |
| 521 | 521 | |
| 522 | - $f = spip_connect_sql($GLOBALS['spip_sql_version'], 'query', $serveur, true); |
|
| 522 | + $f = spip_connect_sql($GLOBALS['spip_sql_version'], 'query', $serveur, true); |
|
| 523 | 523 | |
| 524 | - return function_exists($f) ? $f($query, $serveur) : false; |
|
| 524 | + return function_exists($f) ? $f($query, $serveur) : false; |
|
| 525 | 525 | } |
@@ -4,248 +4,248 @@ discard block |
||
| 4 | 4 | // ** ne pas modifier le fichier ** |
| 5 | 5 | |
| 6 | 6 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 7 | - return; |
|
| 7 | + return; |
|
| 8 | 8 | } |
| 9 | 9 | |
| 10 | 10 | $GLOBALS[$GLOBALS['idx_lang']] = array( |
| 11 | 11 | |
| 12 | - // A |
|
| 13 | - 'access_interface_graphique' => 'Back to the full graphic interface', |
|
| 14 | - 'access_mode_texte' => 'Show the simplified text interface', |
|
| 15 | - 'admin_debug' => 'debug', |
|
| 16 | - 'admin_modifier_article' => 'Modify this article', |
|
| 17 | - 'admin_modifier_auteur' => 'Modify this author', |
|
| 18 | - 'admin_modifier_breve' => 'Modify this news item', |
|
| 19 | - 'admin_modifier_mot' => 'Modify this keyword', |
|
| 20 | - 'admin_modifier_rubrique' => 'Modify this section', |
|
| 21 | - 'admin_recalculer' => 'Re-process this page', |
|
| 22 | - 'afficher_calendrier' => 'Show the calendar', |
|
| 23 | - 'afficher_trad' => 'show translations', |
|
| 24 | - 'alerte_maj_impossible' => '<b>Warning!</b> Failed to update the SQL database to version @version@. This may be due to a permissions problem on the database. Please contact your ISP.', |
|
| 25 | - 'alerte_modif_info_concourante' => 'WARNING: This information has been modified elsewhere. The current value is :', |
|
| 26 | - 'analyse_xml' => 'XML parsing', |
|
| 27 | - 'annuler' => 'Cancel', |
|
| 28 | - 'antispam_champ_vide' => 'Please leave this field empty:', |
|
| 29 | - 'articles_recents' => 'Most recent articles', |
|
| 30 | - 'attention_champ_mini_nb_caractères' => 'Warning! At least @nb@ characters', |
|
| 31 | - 'avis_1_erreur_saisie' => 'Your entry contains an error, please check your information.', |
|
| 32 | - 'avis_archive_incorrect' => 'archive is not a valid SPIP file', |
|
| 33 | - 'avis_archive_invalide' => 'archive file is not valid', |
|
| 34 | - 'avis_attention' => 'CAUTION!', |
|
| 35 | - 'avis_champ_incorrect_type_objet' => 'Invalid field name @name@ for object of type @type@', |
|
| 36 | - 'avis_colonne_inexistante' => 'Column @col@ does not exist', |
|
| 37 | - 'avis_erreur' => 'Error: see below', |
|
| 38 | - 'avis_erreur_connexion' => 'Connection error', |
|
| 39 | - 'avis_erreur_cookie' => 'cookie problem', |
|
| 40 | - 'avis_erreur_fonction_contexte' => 'Programming error. This function cannot be called in this context.', |
|
| 41 | - 'avis_erreur_mysql' => 'SQL error', |
|
| 42 | - 'avis_erreur_sauvegarde' => 'Error in backup (@type@ @id_objet@)!', |
|
| 43 | - 'avis_erreur_visiteur' => 'Problem entering the private area', |
|
| 44 | - 'avis_nb_erreurs_saisie' => 'Your entry contains @nb@ errors, please check your information.', |
|
| 12 | + // A |
|
| 13 | + 'access_interface_graphique' => 'Back to the full graphic interface', |
|
| 14 | + 'access_mode_texte' => 'Show the simplified text interface', |
|
| 15 | + 'admin_debug' => 'debug', |
|
| 16 | + 'admin_modifier_article' => 'Modify this article', |
|
| 17 | + 'admin_modifier_auteur' => 'Modify this author', |
|
| 18 | + 'admin_modifier_breve' => 'Modify this news item', |
|
| 19 | + 'admin_modifier_mot' => 'Modify this keyword', |
|
| 20 | + 'admin_modifier_rubrique' => 'Modify this section', |
|
| 21 | + 'admin_recalculer' => 'Re-process this page', |
|
| 22 | + 'afficher_calendrier' => 'Show the calendar', |
|
| 23 | + 'afficher_trad' => 'show translations', |
|
| 24 | + 'alerte_maj_impossible' => '<b>Warning!</b> Failed to update the SQL database to version @version@. This may be due to a permissions problem on the database. Please contact your ISP.', |
|
| 25 | + 'alerte_modif_info_concourante' => 'WARNING: This information has been modified elsewhere. The current value is :', |
|
| 26 | + 'analyse_xml' => 'XML parsing', |
|
| 27 | + 'annuler' => 'Cancel', |
|
| 28 | + 'antispam_champ_vide' => 'Please leave this field empty:', |
|
| 29 | + 'articles_recents' => 'Most recent articles', |
|
| 30 | + 'attention_champ_mini_nb_caractères' => 'Warning! At least @nb@ characters', |
|
| 31 | + 'avis_1_erreur_saisie' => 'Your entry contains an error, please check your information.', |
|
| 32 | + 'avis_archive_incorrect' => 'archive is not a valid SPIP file', |
|
| 33 | + 'avis_archive_invalide' => 'archive file is not valid', |
|
| 34 | + 'avis_attention' => 'CAUTION!', |
|
| 35 | + 'avis_champ_incorrect_type_objet' => 'Invalid field name @name@ for object of type @type@', |
|
| 36 | + 'avis_colonne_inexistante' => 'Column @col@ does not exist', |
|
| 37 | + 'avis_erreur' => 'Error: see below', |
|
| 38 | + 'avis_erreur_connexion' => 'Connection error', |
|
| 39 | + 'avis_erreur_cookie' => 'cookie problem', |
|
| 40 | + 'avis_erreur_fonction_contexte' => 'Programming error. This function cannot be called in this context.', |
|
| 41 | + 'avis_erreur_mysql' => 'SQL error', |
|
| 42 | + 'avis_erreur_sauvegarde' => 'Error in backup (@type@ @id_objet@)!', |
|
| 43 | + 'avis_erreur_visiteur' => 'Problem entering the private area', |
|
| 44 | + 'avis_nb_erreurs_saisie' => 'Your entry contains @nb@ errors, please check your information.', |
|
| 45 | 45 | |
| 46 | - // B |
|
| 47 | - 'barre_a_accent_grave' => 'Insert a capital A with grave accent', |
|
| 48 | - 'barre_aide' => 'Use the typographic short cuts to refine your layout', |
|
| 49 | - 'barre_e_accent_aigu' => 'Insert a capital E with acute accent', |
|
| 50 | - 'barre_eo' => 'Insert an oe-ligature', |
|
| 51 | - 'barre_eo_maj' => 'Insert a capital EO-ligature', |
|
| 52 | - 'barre_euro' => 'Insert a € symbol', |
|
| 53 | - 'barre_gras' => 'Put in {{bold type}}', |
|
| 54 | - 'barre_guillemets' => 'Place between "double quotes"', |
|
| 55 | - 'barre_guillemets_simples' => 'Place between ‘single quotes’', |
|
| 56 | - 'barre_intertitre' => 'Turn into a {{{subheading}}}', |
|
| 57 | - 'barre_italic' => 'Put in {italics}', |
|
| 58 | - 'barre_lien' => 'Turn into a [hyperlink->http://...]', |
|
| 59 | - 'barre_lien_input' => 'Please enter the link address. You may use either an external URL (http://www.mysite.com) or reference another article on this site by simplying entering its number.', |
|
| 60 | - 'barre_note' => 'Turn into a [[Footnote]]', |
|
| 61 | - 'barre_paragraphe' => 'Create a paragraph', |
|
| 62 | - 'barre_quote' => '<quote>Quote a message</quote>', |
|
| 63 | - 'bouton_changer' => 'Change', |
|
| 64 | - 'bouton_chercher' => 'Search', |
|
| 65 | - 'bouton_choisir' => 'Select', |
|
| 66 | - 'bouton_deplacer' => 'Move', |
|
| 67 | - 'bouton_download' => 'Download', |
|
| 68 | - 'bouton_enregistrer' => 'Save', |
|
| 69 | - 'bouton_radio_desactiver_messagerie_interne' => 'Disable internal messaging', |
|
| 70 | - 'bouton_radio_envoi_annonces' => 'Send editorial announcements', |
|
| 71 | - 'bouton_radio_non_envoi_annonces' => 'Do not send any announcements', |
|
| 72 | - 'bouton_radio_non_envoi_liste_nouveautes' => 'Do not send latest news list', |
|
| 73 | - 'bouton_recharger_page' => 'reload this page', |
|
| 74 | - 'bouton_telecharger' => 'Upload', |
|
| 75 | - 'bouton_upload' => 'Upload', |
|
| 76 | - 'bouton_valider' => 'Submit', |
|
| 46 | + // B |
|
| 47 | + 'barre_a_accent_grave' => 'Insert a capital A with grave accent', |
|
| 48 | + 'barre_aide' => 'Use the typographic short cuts to refine your layout', |
|
| 49 | + 'barre_e_accent_aigu' => 'Insert a capital E with acute accent', |
|
| 50 | + 'barre_eo' => 'Insert an oe-ligature', |
|
| 51 | + 'barre_eo_maj' => 'Insert a capital EO-ligature', |
|
| 52 | + 'barre_euro' => 'Insert a € symbol', |
|
| 53 | + 'barre_gras' => 'Put in {{bold type}}', |
|
| 54 | + 'barre_guillemets' => 'Place between "double quotes"', |
|
| 55 | + 'barre_guillemets_simples' => 'Place between ‘single quotes’', |
|
| 56 | + 'barre_intertitre' => 'Turn into a {{{subheading}}}', |
|
| 57 | + 'barre_italic' => 'Put in {italics}', |
|
| 58 | + 'barre_lien' => 'Turn into a [hyperlink->http://...]', |
|
| 59 | + 'barre_lien_input' => 'Please enter the link address. You may use either an external URL (http://www.mysite.com) or reference another article on this site by simplying entering its number.', |
|
| 60 | + 'barre_note' => 'Turn into a [[Footnote]]', |
|
| 61 | + 'barre_paragraphe' => 'Create a paragraph', |
|
| 62 | + 'barre_quote' => '<quote>Quote a message</quote>', |
|
| 63 | + 'bouton_changer' => 'Change', |
|
| 64 | + 'bouton_chercher' => 'Search', |
|
| 65 | + 'bouton_choisir' => 'Select', |
|
| 66 | + 'bouton_deplacer' => 'Move', |
|
| 67 | + 'bouton_download' => 'Download', |
|
| 68 | + 'bouton_enregistrer' => 'Save', |
|
| 69 | + 'bouton_radio_desactiver_messagerie_interne' => 'Disable internal messaging', |
|
| 70 | + 'bouton_radio_envoi_annonces' => 'Send editorial announcements', |
|
| 71 | + 'bouton_radio_non_envoi_annonces' => 'Do not send any announcements', |
|
| 72 | + 'bouton_radio_non_envoi_liste_nouveautes' => 'Do not send latest news list', |
|
| 73 | + 'bouton_recharger_page' => 'reload this page', |
|
| 74 | + 'bouton_telecharger' => 'Upload', |
|
| 75 | + 'bouton_upload' => 'Upload', |
|
| 76 | + 'bouton_valider' => 'Submit', |
|
| 77 | 77 | |
| 78 | - // C |
|
| 79 | - 'cal_apresmidi' => 'afternoon (p.m.)', |
|
| 80 | - 'cal_jour_entier' => 'entire day', |
|
| 81 | - 'cal_matin' => 'morning (a.m.)', |
|
| 82 | - 'cal_par_jour' => 'daily calendar', |
|
| 83 | - 'cal_par_mois' => 'monthly calendar', |
|
| 84 | - 'cal_par_semaine' => 'weekly calendar', |
|
| 85 | - 'choix_couleur_interface' => 'colour', |
|
| 86 | - 'choix_interface' => 'choice of interface', |
|
| 87 | - 'colonne' => 'Column', |
|
| 88 | - 'confirm_changer_statut' => 'Warning: You are about to change this article’s status. Do you wish to continue?', |
|
| 89 | - 'correcte' => 'correct', |
|
| 78 | + // C |
|
| 79 | + 'cal_apresmidi' => 'afternoon (p.m.)', |
|
| 80 | + 'cal_jour_entier' => 'entire day', |
|
| 81 | + 'cal_matin' => 'morning (a.m.)', |
|
| 82 | + 'cal_par_jour' => 'daily calendar', |
|
| 83 | + 'cal_par_mois' => 'monthly calendar', |
|
| 84 | + 'cal_par_semaine' => 'weekly calendar', |
|
| 85 | + 'choix_couleur_interface' => 'colour', |
|
| 86 | + 'choix_interface' => 'choice of interface', |
|
| 87 | + 'colonne' => 'Column', |
|
| 88 | + 'confirm_changer_statut' => 'Warning: You are about to change this article’s status. Do you wish to continue?', |
|
| 89 | + 'correcte' => 'correct', |
|
| 90 | 90 | |
| 91 | - // D |
|
| 92 | - 'date_aujourdhui' => 'today', |
|
| 93 | - 'date_avant_jc' => 'B.C.', |
|
| 94 | - 'date_dans' => 'in @delai@', |
|
| 95 | - 'date_de_mois_1' => '@j@ @nommois@', |
|
| 96 | - 'date_de_mois_10' => '@j@ @nommois@', |
|
| 97 | - 'date_de_mois_11' => '@j@ @nommois@', |
|
| 98 | - 'date_de_mois_12' => '@j@ @nommois@', |
|
| 99 | - 'date_de_mois_2' => '@j@ @nommois@', |
|
| 100 | - 'date_de_mois_3' => '@j@ @nommois@', |
|
| 101 | - 'date_de_mois_4' => '@j@ @nommois@', |
|
| 102 | - 'date_de_mois_5' => '@j@ @nommois@', |
|
| 103 | - 'date_de_mois_6' => '@j@ @nommois@', |
|
| 104 | - 'date_de_mois_7' => '@j@ @nommois@', |
|
| 105 | - 'date_de_mois_8' => '@j@ @nommois@', |
|
| 106 | - 'date_de_mois_9' => '@j@ @nommois@', |
|
| 107 | - 'date_demain' => 'tomorrow', |
|
| 108 | - 'date_fmt_heures_minutes' => '@h@:@m@', |
|
| 109 | - 'date_fmt_heures_minutes_court' => '@h@:@m@', |
|
| 110 | - 'date_fmt_jour' => '@nomjour@ @jour@', |
|
| 111 | - 'date_fmt_jour_heure' => '@jour@ at @heure@', |
|
| 112 | - 'date_fmt_jour_heure_debut_fin' => '@jour@ from @heure_debut@ to @heure_fin@', |
|
| 113 | - 'date_fmt_jour_heure_debut_fin_abbr' => '@dtstart@@jour@ from @heure_debut@@dtabbr@ to @dtend@@heure_fin@@dtabbr@', |
|
| 114 | - 'date_fmt_jour_mois' => '@jourmois@', |
|
| 115 | - 'date_fmt_jour_mois_annee' => '@jourmois@ @annee@', |
|
| 116 | - 'date_fmt_mois_annee' => '@nommois@ @annee@', |
|
| 117 | - 'date_fmt_nomjour' => '@nomjour@ @date@', |
|
| 118 | - 'date_fmt_nomjour_date' => 'on @nomjour@ @date@', |
|
| 119 | - 'date_fmt_periode' => 'From @date_debut@ to @date_fin@', |
|
| 120 | - 'date_fmt_periode_abbr' => 'From @dtart@@date_debut@@dtabbr@ to @dtend@@date_fin@@dtabbr@', |
|
| 121 | - 'date_fmt_periode_from' => 'From', |
|
| 122 | - 'date_fmt_periode_to' => 'to', |
|
| 123 | - 'date_fmt_saison_annee' => '@saison@ @annee@', |
|
| 124 | - 'date_heures' => 'hours', |
|
| 125 | - 'date_hier' => 'yesterday', |
|
| 126 | - 'date_il_y_a' => '@delai@ ago', |
|
| 127 | - 'date_jnum1' => '1', |
|
| 128 | - 'date_jnum10' => '10', |
|
| 129 | - 'date_jnum11' => '11', |
|
| 130 | - 'date_jnum12' => '12', |
|
| 131 | - 'date_jnum13' => '13', |
|
| 132 | - 'date_jnum14' => '14', |
|
| 133 | - 'date_jnum15' => '15', |
|
| 134 | - 'date_jnum16' => '16', |
|
| 135 | - 'date_jnum17' => '17', |
|
| 136 | - 'date_jnum18' => '18', |
|
| 137 | - 'date_jnum19' => '19', |
|
| 138 | - 'date_jnum2' => '2', |
|
| 139 | - 'date_jnum20' => '20', |
|
| 140 | - 'date_jnum21' => '21', |
|
| 141 | - 'date_jnum22' => '22', |
|
| 142 | - 'date_jnum23' => '23', |
|
| 143 | - 'date_jnum24' => '24', |
|
| 144 | - 'date_jnum25' => '25', |
|
| 145 | - 'date_jnum26' => '26', |
|
| 146 | - 'date_jnum27' => '27', |
|
| 147 | - 'date_jnum28' => '28', |
|
| 148 | - 'date_jnum29' => '29', |
|
| 149 | - 'date_jnum3' => '3', |
|
| 150 | - 'date_jnum30' => '30', |
|
| 151 | - 'date_jnum31' => '31', |
|
| 152 | - 'date_jnum4' => '4', |
|
| 153 | - 'date_jnum5' => '5', |
|
| 154 | - 'date_jnum6' => '6', |
|
| 155 | - 'date_jnum7' => '7', |
|
| 156 | - 'date_jnum8' => '8', |
|
| 157 | - 'date_jnum9' => '9', |
|
| 158 | - 'date_jour_1' => 'Sunday', |
|
| 159 | - 'date_jour_1_abbr' => 'Sun.', |
|
| 160 | - 'date_jour_1_initiale' => 'S.', |
|
| 161 | - 'date_jour_2' => 'Monday', |
|
| 162 | - 'date_jour_2_abbr' => 'Mon.', |
|
| 163 | - 'date_jour_2_initiale' => 'M.', |
|
| 164 | - 'date_jour_3' => 'Tuesday', |
|
| 165 | - 'date_jour_3_abbr' => 'Tue.', |
|
| 166 | - 'date_jour_3_initiale' => 'T.', |
|
| 167 | - 'date_jour_4' => 'Wednesday', |
|
| 168 | - 'date_jour_4_abbr' => 'Wed.', |
|
| 169 | - 'date_jour_4_initiale' => 'W.', |
|
| 170 | - 'date_jour_5' => 'Thursday', |
|
| 171 | - 'date_jour_5_abbr' => 'Thu.', |
|
| 172 | - 'date_jour_5_initiale' => 'T.', |
|
| 173 | - 'date_jour_6' => 'Friday', |
|
| 174 | - 'date_jour_6_abbr' => 'Fri.', |
|
| 175 | - 'date_jour_6_initiale' => 'F.', |
|
| 176 | - 'date_jour_7' => 'Saturday', |
|
| 177 | - 'date_jour_7_abbr' => 'Sat.', |
|
| 178 | - 'date_jour_7_initiale' => 'S.', |
|
| 179 | - 'date_jours' => 'days', |
|
| 180 | - 'date_minutes' => 'minutes', |
|
| 181 | - 'date_mois' => 'months', |
|
| 182 | - 'date_mois_1' => 'January', |
|
| 183 | - 'date_mois_10' => 'October', |
|
| 184 | - 'date_mois_10_abbr' => 'Oct', |
|
| 185 | - 'date_mois_11' => 'November', |
|
| 186 | - 'date_mois_11_abbr' => 'Nov', |
|
| 187 | - 'date_mois_12' => 'December', |
|
| 188 | - 'date_mois_12_abbr' => 'Dec', |
|
| 189 | - 'date_mois_1_abbr' => 'Jan', |
|
| 190 | - 'date_mois_2' => 'February', |
|
| 191 | - 'date_mois_2_abbr' => 'Feb', |
|
| 192 | - 'date_mois_3' => 'March', |
|
| 193 | - 'date_mois_3_abbr' => 'Mar', |
|
| 194 | - 'date_mois_4' => 'April', |
|
| 195 | - 'date_mois_4_abbr' => 'Apr', |
|
| 196 | - 'date_mois_5' => 'May', |
|
| 197 | - 'date_mois_5_abbr' => 'May', |
|
| 198 | - 'date_mois_6' => 'June', |
|
| 199 | - 'date_mois_6_abbr' => 'Jun', |
|
| 200 | - 'date_mois_7' => 'July', |
|
| 201 | - 'date_mois_7_abbr' => 'Jul', |
|
| 202 | - 'date_mois_8' => 'August', |
|
| 203 | - 'date_mois_8_abbr' => 'Aug', |
|
| 204 | - 'date_mois_9' => 'September', |
|
| 205 | - 'date_mois_9_abbr' => 'Sep', |
|
| 206 | - 'date_saison_1' => 'winter', |
|
| 207 | - 'date_saison_2' => 'spring', |
|
| 208 | - 'date_saison_3' => 'summer', |
|
| 209 | - 'date_saison_4' => 'autumn', |
|
| 210 | - 'date_secondes' => 'seconds', |
|
| 211 | - 'date_semaines' => 'weeks', |
|
| 212 | - 'date_un_mois' => 'month', |
|
| 213 | - 'date_une_heure' => 'hour', |
|
| 214 | - 'date_une_minute' => 'minute', |
|
| 215 | - 'date_une_seconde' => 'second', |
|
| 216 | - 'date_une_semaine' => 'week', |
|
| 217 | - 'dirs_commencer' => ' in order to start installation for real', |
|
| 218 | - 'dirs_preliminaire' => 'Preliminary: <b>Setting up access permissions</b>', |
|
| 219 | - 'dirs_probleme_droits' => 'Problem with access permissions', |
|
| 220 | - 'dirs_repertoires_absents' => '<p><b>The following directories were not found: </b></p><ul>@bad_dirs@.</ul> |
|
| 91 | + // D |
|
| 92 | + 'date_aujourdhui' => 'today', |
|
| 93 | + 'date_avant_jc' => 'B.C.', |
|
| 94 | + 'date_dans' => 'in @delai@', |
|
| 95 | + 'date_de_mois_1' => '@j@ @nommois@', |
|
| 96 | + 'date_de_mois_10' => '@j@ @nommois@', |
|
| 97 | + 'date_de_mois_11' => '@j@ @nommois@', |
|
| 98 | + 'date_de_mois_12' => '@j@ @nommois@', |
|
| 99 | + 'date_de_mois_2' => '@j@ @nommois@', |
|
| 100 | + 'date_de_mois_3' => '@j@ @nommois@', |
|
| 101 | + 'date_de_mois_4' => '@j@ @nommois@', |
|
| 102 | + 'date_de_mois_5' => '@j@ @nommois@', |
|
| 103 | + 'date_de_mois_6' => '@j@ @nommois@', |
|
| 104 | + 'date_de_mois_7' => '@j@ @nommois@', |
|
| 105 | + 'date_de_mois_8' => '@j@ @nommois@', |
|
| 106 | + 'date_de_mois_9' => '@j@ @nommois@', |
|
| 107 | + 'date_demain' => 'tomorrow', |
|
| 108 | + 'date_fmt_heures_minutes' => '@h@:@m@', |
|
| 109 | + 'date_fmt_heures_minutes_court' => '@h@:@m@', |
|
| 110 | + 'date_fmt_jour' => '@nomjour@ @jour@', |
|
| 111 | + 'date_fmt_jour_heure' => '@jour@ at @heure@', |
|
| 112 | + 'date_fmt_jour_heure_debut_fin' => '@jour@ from @heure_debut@ to @heure_fin@', |
|
| 113 | + 'date_fmt_jour_heure_debut_fin_abbr' => '@dtstart@@jour@ from @heure_debut@@dtabbr@ to @dtend@@heure_fin@@dtabbr@', |
|
| 114 | + 'date_fmt_jour_mois' => '@jourmois@', |
|
| 115 | + 'date_fmt_jour_mois_annee' => '@jourmois@ @annee@', |
|
| 116 | + 'date_fmt_mois_annee' => '@nommois@ @annee@', |
|
| 117 | + 'date_fmt_nomjour' => '@nomjour@ @date@', |
|
| 118 | + 'date_fmt_nomjour_date' => 'on @nomjour@ @date@', |
|
| 119 | + 'date_fmt_periode' => 'From @date_debut@ to @date_fin@', |
|
| 120 | + 'date_fmt_periode_abbr' => 'From @dtart@@date_debut@@dtabbr@ to @dtend@@date_fin@@dtabbr@', |
|
| 121 | + 'date_fmt_periode_from' => 'From', |
|
| 122 | + 'date_fmt_periode_to' => 'to', |
|
| 123 | + 'date_fmt_saison_annee' => '@saison@ @annee@', |
|
| 124 | + 'date_heures' => 'hours', |
|
| 125 | + 'date_hier' => 'yesterday', |
|
| 126 | + 'date_il_y_a' => '@delai@ ago', |
|
| 127 | + 'date_jnum1' => '1', |
|
| 128 | + 'date_jnum10' => '10', |
|
| 129 | + 'date_jnum11' => '11', |
|
| 130 | + 'date_jnum12' => '12', |
|
| 131 | + 'date_jnum13' => '13', |
|
| 132 | + 'date_jnum14' => '14', |
|
| 133 | + 'date_jnum15' => '15', |
|
| 134 | + 'date_jnum16' => '16', |
|
| 135 | + 'date_jnum17' => '17', |
|
| 136 | + 'date_jnum18' => '18', |
|
| 137 | + 'date_jnum19' => '19', |
|
| 138 | + 'date_jnum2' => '2', |
|
| 139 | + 'date_jnum20' => '20', |
|
| 140 | + 'date_jnum21' => '21', |
|
| 141 | + 'date_jnum22' => '22', |
|
| 142 | + 'date_jnum23' => '23', |
|
| 143 | + 'date_jnum24' => '24', |
|
| 144 | + 'date_jnum25' => '25', |
|
| 145 | + 'date_jnum26' => '26', |
|
| 146 | + 'date_jnum27' => '27', |
|
| 147 | + 'date_jnum28' => '28', |
|
| 148 | + 'date_jnum29' => '29', |
|
| 149 | + 'date_jnum3' => '3', |
|
| 150 | + 'date_jnum30' => '30', |
|
| 151 | + 'date_jnum31' => '31', |
|
| 152 | + 'date_jnum4' => '4', |
|
| 153 | + 'date_jnum5' => '5', |
|
| 154 | + 'date_jnum6' => '6', |
|
| 155 | + 'date_jnum7' => '7', |
|
| 156 | + 'date_jnum8' => '8', |
|
| 157 | + 'date_jnum9' => '9', |
|
| 158 | + 'date_jour_1' => 'Sunday', |
|
| 159 | + 'date_jour_1_abbr' => 'Sun.', |
|
| 160 | + 'date_jour_1_initiale' => 'S.', |
|
| 161 | + 'date_jour_2' => 'Monday', |
|
| 162 | + 'date_jour_2_abbr' => 'Mon.', |
|
| 163 | + 'date_jour_2_initiale' => 'M.', |
|
| 164 | + 'date_jour_3' => 'Tuesday', |
|
| 165 | + 'date_jour_3_abbr' => 'Tue.', |
|
| 166 | + 'date_jour_3_initiale' => 'T.', |
|
| 167 | + 'date_jour_4' => 'Wednesday', |
|
| 168 | + 'date_jour_4_abbr' => 'Wed.', |
|
| 169 | + 'date_jour_4_initiale' => 'W.', |
|
| 170 | + 'date_jour_5' => 'Thursday', |
|
| 171 | + 'date_jour_5_abbr' => 'Thu.', |
|
| 172 | + 'date_jour_5_initiale' => 'T.', |
|
| 173 | + 'date_jour_6' => 'Friday', |
|
| 174 | + 'date_jour_6_abbr' => 'Fri.', |
|
| 175 | + 'date_jour_6_initiale' => 'F.', |
|
| 176 | + 'date_jour_7' => 'Saturday', |
|
| 177 | + 'date_jour_7_abbr' => 'Sat.', |
|
| 178 | + 'date_jour_7_initiale' => 'S.', |
|
| 179 | + 'date_jours' => 'days', |
|
| 180 | + 'date_minutes' => 'minutes', |
|
| 181 | + 'date_mois' => 'months', |
|
| 182 | + 'date_mois_1' => 'January', |
|
| 183 | + 'date_mois_10' => 'October', |
|
| 184 | + 'date_mois_10_abbr' => 'Oct', |
|
| 185 | + 'date_mois_11' => 'November', |
|
| 186 | + 'date_mois_11_abbr' => 'Nov', |
|
| 187 | + 'date_mois_12' => 'December', |
|
| 188 | + 'date_mois_12_abbr' => 'Dec', |
|
| 189 | + 'date_mois_1_abbr' => 'Jan', |
|
| 190 | + 'date_mois_2' => 'February', |
|
| 191 | + 'date_mois_2_abbr' => 'Feb', |
|
| 192 | + 'date_mois_3' => 'March', |
|
| 193 | + 'date_mois_3_abbr' => 'Mar', |
|
| 194 | + 'date_mois_4' => 'April', |
|
| 195 | + 'date_mois_4_abbr' => 'Apr', |
|
| 196 | + 'date_mois_5' => 'May', |
|
| 197 | + 'date_mois_5_abbr' => 'May', |
|
| 198 | + 'date_mois_6' => 'June', |
|
| 199 | + 'date_mois_6_abbr' => 'Jun', |
|
| 200 | + 'date_mois_7' => 'July', |
|
| 201 | + 'date_mois_7_abbr' => 'Jul', |
|
| 202 | + 'date_mois_8' => 'August', |
|
| 203 | + 'date_mois_8_abbr' => 'Aug', |
|
| 204 | + 'date_mois_9' => 'September', |
|
| 205 | + 'date_mois_9_abbr' => 'Sep', |
|
| 206 | + 'date_saison_1' => 'winter', |
|
| 207 | + 'date_saison_2' => 'spring', |
|
| 208 | + 'date_saison_3' => 'summer', |
|
| 209 | + 'date_saison_4' => 'autumn', |
|
| 210 | + 'date_secondes' => 'seconds', |
|
| 211 | + 'date_semaines' => 'weeks', |
|
| 212 | + 'date_un_mois' => 'month', |
|
| 213 | + 'date_une_heure' => 'hour', |
|
| 214 | + 'date_une_minute' => 'minute', |
|
| 215 | + 'date_une_seconde' => 'second', |
|
| 216 | + 'date_une_semaine' => 'week', |
|
| 217 | + 'dirs_commencer' => ' in order to start installation for real', |
|
| 218 | + 'dirs_preliminaire' => 'Preliminary: <b>Setting up access permissions</b>', |
|
| 219 | + 'dirs_probleme_droits' => 'Problem with access permissions', |
|
| 220 | + 'dirs_repertoires_absents' => '<p><b>The following directories were not found: </b></p><ul>@bad_dirs@.</ul> |
|
| 221 | 221 | <p>It is possible that this is due to inappropriate lower or upper case letters in directory names. |
| 222 | 222 | Please check that the case of the letters in the names of these directories match what is displayed |
| 223 | 223 | above. If they don’t, correct the directory names using your FTP client.</p> |
| 224 | 224 | <p>Once this is done, you can', |
| 225 | - 'dirs_repertoires_suivants' => '<p><b>The following directories do not have write permission: </b></p><ul>@bad_dirs@</ul> |
|
| 225 | + 'dirs_repertoires_suivants' => '<p><b>The following directories do not have write permission: </b></p><ul>@bad_dirs@</ul> |
|
| 226 | 226 | <p>To change this, use your FTP client to set access permissions for each |
| 227 | 227 | of these directories. The procedure is detailed in the installation guide.</p> |
| 228 | 228 | <p>Once you have done this, you can ', |
| 229 | - 'double_occurrence' => 'Two instances of @balise@', |
|
| 229 | + 'double_occurrence' => 'Two instances of @balise@', |
|
| 230 | 230 | |
| 231 | - // E |
|
| 232 | - 'en_cours' => 'processing', |
|
| 233 | - 'envoi_via_le_site' => 'Sent via the site', |
|
| 234 | - 'erreur' => 'Error', |
|
| 235 | - 'erreur_balise_non_fermee' => 'last tag not closed:', |
|
| 236 | - 'erreur_technique_ajaxform' => 'Ooops. An unexpected error prevented to submit the form. You can try again.', |
|
| 237 | - 'erreur_technique_enregistrement_champs' => 'A technical error prevented the right registration of the field @champs@.', |
|
| 238 | - 'erreur_technique_enregistrement_impossible' => 'A technical error prevented the registration.', |
|
| 239 | - 'erreur_texte' => 'error(s)', |
|
| 240 | - 'etape' => 'Step', |
|
| 231 | + // E |
|
| 232 | + 'en_cours' => 'processing', |
|
| 233 | + 'envoi_via_le_site' => 'Sent via the site', |
|
| 234 | + 'erreur' => 'Error', |
|
| 235 | + 'erreur_balise_non_fermee' => 'last tag not closed:', |
|
| 236 | + 'erreur_technique_ajaxform' => 'Ooops. An unexpected error prevented to submit the form. You can try again.', |
|
| 237 | + 'erreur_technique_enregistrement_champs' => 'A technical error prevented the right registration of the field @champs@.', |
|
| 238 | + 'erreur_technique_enregistrement_impossible' => 'A technical error prevented the registration.', |
|
| 239 | + 'erreur_texte' => 'error(s)', |
|
| 240 | + 'etape' => 'Step', |
|
| 241 | 241 | |
| 242 | - // F |
|
| 243 | - 'fichier_introuvable' => 'File not found: @fichier@', |
|
| 244 | - 'fonction_introuvable' => 'Function @fonction@() not found.', |
|
| 245 | - 'form_auteur_confirmation' => 'Please confirm your email address', |
|
| 246 | - 'form_auteur_email_modifie' => 'Your email address has been changed.', |
|
| 247 | - 'form_auteur_envoi_mail_confirmation' => 'A confirmation email has been sent to @email@. You must visit the URL mentioned in the message to validate your email address.', |
|
| 248 | - 'form_auteur_mail_confirmation' => 'Hello, |
|
| 242 | + // F |
|
| 243 | + 'fichier_introuvable' => 'File not found: @fichier@', |
|
| 244 | + 'fonction_introuvable' => 'Function @fonction@() not found.', |
|
| 245 | + 'form_auteur_confirmation' => 'Please confirm your email address', |
|
| 246 | + 'form_auteur_email_modifie' => 'Your email address has been changed.', |
|
| 247 | + 'form_auteur_envoi_mail_confirmation' => 'A confirmation email has been sent to @email@. You must visit the URL mentioned in the message to validate your email address.', |
|
| 248 | + 'form_auteur_mail_confirmation' => 'Hello, |
|
| 249 | 249 | |
| 250 | 250 | You have asked to change your email address. |
| 251 | 251 | To confirm your new address, you need to connect to |
@@ -253,347 +253,347 @@ discard block |
||
| 253 | 253 | |
| 254 | 254 | @url@ |
| 255 | 255 | ', |
| 256 | - 'form_deja_inscrit' => 'You are already registered.', |
|
| 257 | - 'form_email_non_valide' => 'Your email address is not valid.', |
|
| 258 | - 'form_forum_access_refuse' => 'You no longer have access to this site.', |
|
| 259 | - 'form_forum_bonjour' => 'Hello @nom@,', |
|
| 260 | - 'form_forum_confirmer_email' => 'To confirm your email address, follow this link: @url_confirm@', |
|
| 261 | - 'form_forum_email_deja_enregistre' => 'This email address is already registered. Enter your usual password.', |
|
| 262 | - 'form_forum_identifiant_mail' => 'Your new identifier has just been emailed to you.', |
|
| 263 | - 'form_forum_identifiants' => 'Personal identifiers', |
|
| 264 | - 'form_forum_indiquer_nom_email' => 'Enter your name and email address here. You will receive your personal identifier shortly by email.', |
|
| 265 | - 'form_forum_login' => 'login:', |
|
| 266 | - 'form_forum_message_auto' => '(this is an automated message)', |
|
| 267 | - 'form_forum_pass' => 'password:', |
|
| 268 | - 'form_forum_probleme_mail' => 'Mail problem: the identifier could not be sent.', |
|
| 269 | - 'form_forum_voici1' => 'Here are your identifiers. You may now participate on the site |
|
| 256 | + 'form_deja_inscrit' => 'You are already registered.', |
|
| 257 | + 'form_email_non_valide' => 'Your email address is not valid.', |
|
| 258 | + 'form_forum_access_refuse' => 'You no longer have access to this site.', |
|
| 259 | + 'form_forum_bonjour' => 'Hello @nom@,', |
|
| 260 | + 'form_forum_confirmer_email' => 'To confirm your email address, follow this link: @url_confirm@', |
|
| 261 | + 'form_forum_email_deja_enregistre' => 'This email address is already registered. Enter your usual password.', |
|
| 262 | + 'form_forum_identifiant_mail' => 'Your new identifier has just been emailed to you.', |
|
| 263 | + 'form_forum_identifiants' => 'Personal identifiers', |
|
| 264 | + 'form_forum_indiquer_nom_email' => 'Enter your name and email address here. You will receive your personal identifier shortly by email.', |
|
| 265 | + 'form_forum_login' => 'login:', |
|
| 266 | + 'form_forum_message_auto' => '(this is an automated message)', |
|
| 267 | + 'form_forum_pass' => 'password:', |
|
| 268 | + 'form_forum_probleme_mail' => 'Mail problem: the identifier could not be sent.', |
|
| 269 | + 'form_forum_voici1' => 'Here are your identifiers. You may now participate on the site |
|
| 270 | 270 | "@nom_site_spip@" (@adresse_site@):', |
| 271 | - 'form_forum_voici2' => 'Here are your identifiers for submitting articles to |
|
| 271 | + 'form_forum_voici2' => 'Here are your identifiers for submitting articles to |
|
| 272 | 272 | the site "@nom_site_spip@" (@adresse_login@):', |
| 273 | - 'form_indiquer_email' => 'Please enter your email address.', |
|
| 274 | - 'form_indiquer_nom' => 'Please enter your name.', |
|
| 275 | - 'form_indiquer_nom_site' => 'Please enter the name of your site.', |
|
| 276 | - 'form_pet_deja_enregistre' => 'This site is already registered', |
|
| 277 | - 'form_pet_signature_pasprise' => 'Your signature has been ignored.', |
|
| 278 | - 'form_prop_confirmer_envoi' => 'Confirm send', |
|
| 279 | - 'form_prop_description' => 'Description/comment', |
|
| 280 | - 'form_prop_enregistre' => 'Your suggestion has been recorded. It will appear online after being validated by the administrators of this site.', |
|
| 281 | - 'form_prop_envoyer' => 'Send a message', |
|
| 282 | - 'form_prop_indiquer_email' => 'Please enter a valid email address', |
|
| 283 | - 'form_prop_indiquer_nom_site' => 'Please enter the site’s name.', |
|
| 284 | - 'form_prop_indiquer_sujet' => 'Please enter a subject', |
|
| 285 | - 'form_prop_message_envoye' => 'Message sent', |
|
| 286 | - 'form_prop_non_enregistre' => 'Your suggestion has not been recorded.', |
|
| 287 | - 'form_prop_sujet' => 'Subject', |
|
| 288 | - 'form_prop_url_site' => 'Site URL', |
|
| 289 | - 'format_date_attendu' => 'Enter a date in jj/mm/aaaa format.', |
|
| 290 | - 'format_date_incorrecte' => 'The date or its format is incorrect.', |
|
| 291 | - 'format_heure_attendu' => 'Enter a time in hh:mm format.', |
|
| 292 | - 'format_heure_incorrecte' => 'The hour or its format is incorrect.', |
|
| 293 | - 'forum_non_inscrit' => 'Either you are not registered, or the address or password are wrong.', |
|
| 294 | - 'forum_par_auteur' => 'by @auteur@', |
|
| 295 | - 'forum_titre_erreur' => 'Error...', |
|
| 273 | + 'form_indiquer_email' => 'Please enter your email address.', |
|
| 274 | + 'form_indiquer_nom' => 'Please enter your name.', |
|
| 275 | + 'form_indiquer_nom_site' => 'Please enter the name of your site.', |
|
| 276 | + 'form_pet_deja_enregistre' => 'This site is already registered', |
|
| 277 | + 'form_pet_signature_pasprise' => 'Your signature has been ignored.', |
|
| 278 | + 'form_prop_confirmer_envoi' => 'Confirm send', |
|
| 279 | + 'form_prop_description' => 'Description/comment', |
|
| 280 | + 'form_prop_enregistre' => 'Your suggestion has been recorded. It will appear online after being validated by the administrators of this site.', |
|
| 281 | + 'form_prop_envoyer' => 'Send a message', |
|
| 282 | + 'form_prop_indiquer_email' => 'Please enter a valid email address', |
|
| 283 | + 'form_prop_indiquer_nom_site' => 'Please enter the site’s name.', |
|
| 284 | + 'form_prop_indiquer_sujet' => 'Please enter a subject', |
|
| 285 | + 'form_prop_message_envoye' => 'Message sent', |
|
| 286 | + 'form_prop_non_enregistre' => 'Your suggestion has not been recorded.', |
|
| 287 | + 'form_prop_sujet' => 'Subject', |
|
| 288 | + 'form_prop_url_site' => 'Site URL', |
|
| 289 | + 'format_date_attendu' => 'Enter a date in jj/mm/aaaa format.', |
|
| 290 | + 'format_date_incorrecte' => 'The date or its format is incorrect.', |
|
| 291 | + 'format_heure_attendu' => 'Enter a time in hh:mm format.', |
|
| 292 | + 'format_heure_incorrecte' => 'The hour or its format is incorrect.', |
|
| 293 | + 'forum_non_inscrit' => 'Either you are not registered, or the address or password are wrong.', |
|
| 294 | + 'forum_par_auteur' => 'by @auteur@', |
|
| 295 | + 'forum_titre_erreur' => 'Error...', |
|
| 296 | 296 | |
| 297 | - // I |
|
| 298 | - 'ical_texte_rss_articles' => 'The site’s backend file for articles is:', |
|
| 299 | - 'ical_texte_rss_articles2' => 'You can also get backend files for individual sections on the site:', |
|
| 300 | - 'ical_texte_rss_breves' => 'Furthermore, there is a file containing the site’s news items. By selecting a section number, you can choose to get news items in that section only.', |
|
| 301 | - 'icone_a_suivre' => 'Launch pad', |
|
| 302 | - 'icone_admin_site' => 'Site administration', |
|
| 303 | - 'icone_agenda' => 'Calendar', |
|
| 304 | - 'icone_aide_ligne' => 'Help', |
|
| 305 | - 'icone_articles' => 'Articles', |
|
| 306 | - 'icone_auteurs' => 'Authors', |
|
| 307 | - 'icone_brouteur' => 'Quick browsing', |
|
| 308 | - 'icone_configuration_site' => 'Configuration', |
|
| 309 | - 'icone_configurer_site' => 'Configure your site', |
|
| 310 | - 'icone_creer_nouvel_auteur' => 'Create a new author', |
|
| 311 | - 'icone_creer_rubrique' => 'Create a section', |
|
| 312 | - 'icone_creer_sous_rubrique' => 'Create a subsection', |
|
| 313 | - 'icone_deconnecter' => 'Log out', |
|
| 314 | - 'icone_discussions' => 'Discussions', |
|
| 315 | - 'icone_doc_rubrique' => 'Documents attached', |
|
| 316 | - 'icone_ecrire_article' => 'Write a new article', |
|
| 317 | - 'icone_edition_site' => 'Edit site', |
|
| 318 | - 'icone_gestion_langues' => 'Language options', |
|
| 319 | - 'icone_informations_personnelles' => 'Personal information', |
|
| 320 | - 'icone_interface_complet' => 'full interface', |
|
| 321 | - 'icone_interface_simple' => 'Simplified interface', |
|
| 322 | - 'icone_maintenance_site' => 'Site maintenance', |
|
| 323 | - 'icone_messagerie_personnelle' => 'Private messages', |
|
| 324 | - 'icone_repartition_debut' => 'Show distribution from the start', |
|
| 325 | - 'icone_rubriques' => 'Sections', |
|
| 326 | - 'icone_sauver_site' => 'Site backup', |
|
| 327 | - 'icone_site_entier' => 'The entire site', |
|
| 328 | - 'icone_sites_references' => 'Referenced sites', |
|
| 329 | - 'icone_statistiques' => 'Site statistics', |
|
| 330 | - 'icone_suivi_activite' => 'Follow site activity', |
|
| 331 | - 'icone_suivi_actualite' => 'Site statistics', |
|
| 332 | - 'icone_suivi_pettions' => 'Manage petitions', |
|
| 333 | - 'icone_suivi_revisions' => 'Article revisions', |
|
| 334 | - 'icone_supprimer_document' => 'Delete this document', |
|
| 335 | - 'icone_supprimer_image' => 'Delete this image', |
|
| 336 | - 'icone_tous_articles' => 'All your articles', |
|
| 337 | - 'icone_tous_auteur' => 'All authors', |
|
| 338 | - 'icone_tous_visiteur' => 'All visitors', |
|
| 339 | - 'icone_visiter_site' => 'View the public site', |
|
| 340 | - 'icone_voir_en_ligne' => 'View online', |
|
| 341 | - 'img_indisponible' => 'image unavailable', |
|
| 342 | - 'impossible' => 'impossible', |
|
| 343 | - 'info_a_suivre' => 'LAUNCH PAD»', |
|
| 344 | - 'info_acces_interdit' => 'Access forbidden', |
|
| 345 | - 'info_acces_refuse' => 'Access denied', |
|
| 346 | - 'info_action' => 'Action: @action@', |
|
| 347 | - 'info_administrer_rubriques' => 'You can manage this section and any subsections', |
|
| 348 | - 'info_adresse_non_indiquee' => 'You did not specify an address to test!', |
|
| 349 | - 'info_aide' => 'HELP:', |
|
| 350 | - 'info_ajouter_mot' => 'Add keyword', |
|
| 351 | - 'info_annonce' => 'ANNOUNCEMENT', |
|
| 352 | - 'info_annonces_generales' => 'General announcements:', |
|
| 353 | - 'info_article_propose' => 'Article submitted', |
|
| 354 | - 'info_article_publie' => 'Article published', |
|
| 355 | - 'info_article_redaction' => 'Article in progress', |
|
| 356 | - 'info_article_refuse' => 'Article rejected', |
|
| 357 | - 'info_article_supprime' => 'Article deleted', |
|
| 358 | - 'info_articles' => 'Articles', |
|
| 359 | - 'info_articles_a_valider' => 'Articles awaiting validation', |
|
| 360 | - 'info_articles_nb' => '@nb@ articles', |
|
| 361 | - 'info_articles_proposes' => 'Articles submitted', |
|
| 362 | - 'info_articles_un' => '1 article', |
|
| 363 | - 'info_auteurs_nombre' => 'author(s):', |
|
| 364 | - 'info_authentification_ftp' => 'Authentication (by FTP).', |
|
| 365 | - 'info_breves_2' => 'news', |
|
| 366 | - 'info_breves_nb' => '@nb@ news items', |
|
| 367 | - 'info_breves_un' => '1 news item', |
|
| 368 | - 'info_connexion_refusee' => 'Connection denied', |
|
| 369 | - 'info_contact_developpeur' => 'Please contact a developer.', |
|
| 370 | - 'info_contenance' => 'This site contains:', |
|
| 371 | - 'info_contribution' => 'contributions', |
|
| 372 | - 'info_copyright' => '@spip@ is free software distributed @lien_gpl@.', |
|
| 373 | - 'info_copyright_doc' => 'For more visit <a href="@spipnet@">@spipnet_affiche@</a>.', |
|
| 374 | - 'info_copyright_gpl' => 'under the GPL license', |
|
| 375 | - 'info_cours_edition' => 'In progress', |
|
| 376 | - 'info_creer_repertoire' => 'Please create a file or a directory called:', |
|
| 377 | - 'info_creer_repertoire_2' => 'inside the sub-directory <b>@repertoire@</b>, then', |
|
| 378 | - 'info_creer_vignette' => 'automatic thumbnail creation', |
|
| 379 | - 'info_creerdansrubrique_non_autorise' => 'You don’t have sufficient rights to create content in this section', |
|
| 380 | - 'info_deplier' => 'Unfold', |
|
| 381 | - 'info_descriptif_nombre' => 'description(s):', |
|
| 382 | - 'info_description' => 'Description:', |
|
| 383 | - 'info_description_2' => 'Description:', |
|
| 384 | - 'info_dimension' => 'Size:', |
|
| 385 | - 'info_documents_nb' => '@nb@ documents', |
|
| 386 | - 'info_documents_un' => '1 document', |
|
| 387 | - 'info_ecire_message_prive' => 'Write a private message', |
|
| 388 | - 'info_email_invalide' => 'Invalid email address.', |
|
| 389 | - 'info_en_cours_validation' => 'Your articles in progress', |
|
| 390 | - 'info_en_ligne' => 'Online now:', |
|
| 391 | - 'info_envoyer_message_prive' => 'Send a private message to this author', |
|
| 392 | - 'info_erreur_requete' => 'Error in query:', |
|
| 393 | - 'info_erreur_squelette2' => 'No <b>@fichier@</b> template available ...', |
|
| 394 | - 'info_erreur_systeme' => 'System error (errno @errsys@)', |
|
| 395 | - 'info_erreur_systeme2' => 'The hard disk may be full or the database damaged. <br /> |
|
| 297 | + // I |
|
| 298 | + 'ical_texte_rss_articles' => 'The site’s backend file for articles is:', |
|
| 299 | + 'ical_texte_rss_articles2' => 'You can also get backend files for individual sections on the site:', |
|
| 300 | + 'ical_texte_rss_breves' => 'Furthermore, there is a file containing the site’s news items. By selecting a section number, you can choose to get news items in that section only.', |
|
| 301 | + 'icone_a_suivre' => 'Launch pad', |
|
| 302 | + 'icone_admin_site' => 'Site administration', |
|
| 303 | + 'icone_agenda' => 'Calendar', |
|
| 304 | + 'icone_aide_ligne' => 'Help', |
|
| 305 | + 'icone_articles' => 'Articles', |
|
| 306 | + 'icone_auteurs' => 'Authors', |
|
| 307 | + 'icone_brouteur' => 'Quick browsing', |
|
| 308 | + 'icone_configuration_site' => 'Configuration', |
|
| 309 | + 'icone_configurer_site' => 'Configure your site', |
|
| 310 | + 'icone_creer_nouvel_auteur' => 'Create a new author', |
|
| 311 | + 'icone_creer_rubrique' => 'Create a section', |
|
| 312 | + 'icone_creer_sous_rubrique' => 'Create a subsection', |
|
| 313 | + 'icone_deconnecter' => 'Log out', |
|
| 314 | + 'icone_discussions' => 'Discussions', |
|
| 315 | + 'icone_doc_rubrique' => 'Documents attached', |
|
| 316 | + 'icone_ecrire_article' => 'Write a new article', |
|
| 317 | + 'icone_edition_site' => 'Edit site', |
|
| 318 | + 'icone_gestion_langues' => 'Language options', |
|
| 319 | + 'icone_informations_personnelles' => 'Personal information', |
|
| 320 | + 'icone_interface_complet' => 'full interface', |
|
| 321 | + 'icone_interface_simple' => 'Simplified interface', |
|
| 322 | + 'icone_maintenance_site' => 'Site maintenance', |
|
| 323 | + 'icone_messagerie_personnelle' => 'Private messages', |
|
| 324 | + 'icone_repartition_debut' => 'Show distribution from the start', |
|
| 325 | + 'icone_rubriques' => 'Sections', |
|
| 326 | + 'icone_sauver_site' => 'Site backup', |
|
| 327 | + 'icone_site_entier' => 'The entire site', |
|
| 328 | + 'icone_sites_references' => 'Referenced sites', |
|
| 329 | + 'icone_statistiques' => 'Site statistics', |
|
| 330 | + 'icone_suivi_activite' => 'Follow site activity', |
|
| 331 | + 'icone_suivi_actualite' => 'Site statistics', |
|
| 332 | + 'icone_suivi_pettions' => 'Manage petitions', |
|
| 333 | + 'icone_suivi_revisions' => 'Article revisions', |
|
| 334 | + 'icone_supprimer_document' => 'Delete this document', |
|
| 335 | + 'icone_supprimer_image' => 'Delete this image', |
|
| 336 | + 'icone_tous_articles' => 'All your articles', |
|
| 337 | + 'icone_tous_auteur' => 'All authors', |
|
| 338 | + 'icone_tous_visiteur' => 'All visitors', |
|
| 339 | + 'icone_visiter_site' => 'View the public site', |
|
| 340 | + 'icone_voir_en_ligne' => 'View online', |
|
| 341 | + 'img_indisponible' => 'image unavailable', |
|
| 342 | + 'impossible' => 'impossible', |
|
| 343 | + 'info_a_suivre' => 'LAUNCH PAD»', |
|
| 344 | + 'info_acces_interdit' => 'Access forbidden', |
|
| 345 | + 'info_acces_refuse' => 'Access denied', |
|
| 346 | + 'info_action' => 'Action: @action@', |
|
| 347 | + 'info_administrer_rubriques' => 'You can manage this section and any subsections', |
|
| 348 | + 'info_adresse_non_indiquee' => 'You did not specify an address to test!', |
|
| 349 | + 'info_aide' => 'HELP:', |
|
| 350 | + 'info_ajouter_mot' => 'Add keyword', |
|
| 351 | + 'info_annonce' => 'ANNOUNCEMENT', |
|
| 352 | + 'info_annonces_generales' => 'General announcements:', |
|
| 353 | + 'info_article_propose' => 'Article submitted', |
|
| 354 | + 'info_article_publie' => 'Article published', |
|
| 355 | + 'info_article_redaction' => 'Article in progress', |
|
| 356 | + 'info_article_refuse' => 'Article rejected', |
|
| 357 | + 'info_article_supprime' => 'Article deleted', |
|
| 358 | + 'info_articles' => 'Articles', |
|
| 359 | + 'info_articles_a_valider' => 'Articles awaiting validation', |
|
| 360 | + 'info_articles_nb' => '@nb@ articles', |
|
| 361 | + 'info_articles_proposes' => 'Articles submitted', |
|
| 362 | + 'info_articles_un' => '1 article', |
|
| 363 | + 'info_auteurs_nombre' => 'author(s):', |
|
| 364 | + 'info_authentification_ftp' => 'Authentication (by FTP).', |
|
| 365 | + 'info_breves_2' => 'news', |
|
| 366 | + 'info_breves_nb' => '@nb@ news items', |
|
| 367 | + 'info_breves_un' => '1 news item', |
|
| 368 | + 'info_connexion_refusee' => 'Connection denied', |
|
| 369 | + 'info_contact_developpeur' => 'Please contact a developer.', |
|
| 370 | + 'info_contenance' => 'This site contains:', |
|
| 371 | + 'info_contribution' => 'contributions', |
|
| 372 | + 'info_copyright' => '@spip@ is free software distributed @lien_gpl@.', |
|
| 373 | + 'info_copyright_doc' => 'For more visit <a href="@spipnet@">@spipnet_affiche@</a>.', |
|
| 374 | + 'info_copyright_gpl' => 'under the GPL license', |
|
| 375 | + 'info_cours_edition' => 'In progress', |
|
| 376 | + 'info_creer_repertoire' => 'Please create a file or a directory called:', |
|
| 377 | + 'info_creer_repertoire_2' => 'inside the sub-directory <b>@repertoire@</b>, then', |
|
| 378 | + 'info_creer_vignette' => 'automatic thumbnail creation', |
|
| 379 | + 'info_creerdansrubrique_non_autorise' => 'You don’t have sufficient rights to create content in this section', |
|
| 380 | + 'info_deplier' => 'Unfold', |
|
| 381 | + 'info_descriptif_nombre' => 'description(s):', |
|
| 382 | + 'info_description' => 'Description:', |
|
| 383 | + 'info_description_2' => 'Description:', |
|
| 384 | + 'info_dimension' => 'Size:', |
|
| 385 | + 'info_documents_nb' => '@nb@ documents', |
|
| 386 | + 'info_documents_un' => '1 document', |
|
| 387 | + 'info_ecire_message_prive' => 'Write a private message', |
|
| 388 | + 'info_email_invalide' => 'Invalid email address.', |
|
| 389 | + 'info_en_cours_validation' => 'Your articles in progress', |
|
| 390 | + 'info_en_ligne' => 'Online now:', |
|
| 391 | + 'info_envoyer_message_prive' => 'Send a private message to this author', |
|
| 392 | + 'info_erreur_requete' => 'Error in query:', |
|
| 393 | + 'info_erreur_squelette2' => 'No <b>@fichier@</b> template available ...', |
|
| 394 | + 'info_erreur_systeme' => 'System error (errno @errsys@)', |
|
| 395 | + 'info_erreur_systeme2' => 'The hard disk may be full or the database damaged. <br /> |
|
| 396 | 396 | <span style="color:red;">Try <a href=\'@script@\'>repairing the database</a>, or contact your service provider.</span>', |
| 397 | - 'info_fini' => 'Done!', |
|
| 398 | - 'info_format_image' => 'Image format to be used for vignettes: @gd_formats@.', |
|
| 399 | - 'info_format_non_defini' => 'undefined format', |
|
| 400 | - 'info_grand_ecran' => 'Large display', |
|
| 401 | - 'info_image_aide' => 'HELP', |
|
| 402 | - 'info_image_process_titre' => 'How to create thumbnails', |
|
| 403 | - 'info_impossible_lire_page' => '<b>Error!</b> The page <tt><html>@test_proxy@</html></tt> cannot be viewed through the proxy', |
|
| 404 | - 'info_installation_systeme_publication' => 'Installing publication system...', |
|
| 405 | - 'info_installer_documents' => 'You can automatically install all documents in the folder @upload@.', |
|
| 406 | - 'info_installer_ftp' => 'As an administrator, you can install files via FTP to the folder @upload@ in order to select them directly from here.', |
|
| 407 | - 'info_installer_images' => 'You can install images in the formats JPEG, GIF, and PNG.', |
|
| 408 | - 'info_installer_images_dossier' => 'Install images in folder @upload@ if you want to select them here.', |
|
| 409 | - 'info_interface_complete' => 'full interface', |
|
| 410 | - 'info_interface_simple' => 'Simplified interface', |
|
| 411 | - 'info_joindre_document_article' => 'You can attach the following types of document to your article', |
|
| 412 | - 'info_joindre_document_rubrique' => 'You can add documents of the following types to this section ', |
|
| 413 | - 'info_joindre_documents_article' => 'You can attach documents of the following types to your article:', |
|
| 414 | - 'info_l_article' => 'the article', |
|
| 415 | - 'info_la_breve' => 'the news item', |
|
| 416 | - 'info_la_rubrique' => 'the section', |
|
| 417 | - 'info_langue_principale' => 'Main language for site', |
|
| 418 | - 'info_largeur_vignette' => '@largeur_vignette@ × @hauteur_vignette@ pixels', |
|
| 419 | - 'info_les_auteurs_1' => 'by @les_auteurs@', |
|
| 420 | - 'info_logo_format_interdit' => 'Only logos in these formats @formats@ are allowed.', |
|
| 421 | - 'info_logo_max_poids' => 'Logos must be less than @maxi@ (this file is @actuel@).', |
|
| 422 | - 'info_mail_fournisseur' => '[email protected]', |
|
| 423 | - 'info_message_2' => 'MESSAGE', |
|
| 424 | - 'info_message_supprime' => 'MESSAGE DELETED', |
|
| 425 | - 'info_messages_nb' => '@nb@ messages', |
|
| 426 | - 'info_messages_un' => '1 message', |
|
| 427 | - 'info_mise_en_ligne' => 'Published on:', |
|
| 428 | - 'info_modification_parametres_securite' => 'modifying security parameters', |
|
| 429 | - 'info_mois_courant' => 'During the month:', |
|
| 430 | - 'info_mot_cle_ajoute' => 'The following keyword was added to', |
|
| 431 | - 'info_multi_herit' => 'Default language', |
|
| 432 | - 'info_multi_langues_soulignees' => 'The <u>languages underlined</u> provide partial or total translations for all the interface texts. If you select these languages, many elements of the public site (dates, forms) will be translated automatically. As for the languages that are not underlined, those elements will be displayed using the site’s default language.', |
|
| 433 | - 'info_multilinguisme' => 'Multilingual', |
|
| 434 | - 'info_nom_non_utilisateurs_connectes' => 'Your name does not appear in the list of users online.', |
|
| 435 | - 'info_nom_utilisateurs_connectes' => 'Your name appears in the list of users online.', |
|
| 436 | - 'info_nombre_en_ligne' => 'Online now:', |
|
| 437 | - 'info_non_resultat' => 'No results for "@cherche_mot@"', |
|
| 438 | - 'info_non_utilisation_messagerie' => 'You are not using private messaging on this site.', |
|
| 439 | - 'info_nouveau_message' => 'YOU HAVE A NEW MESSAGE', |
|
| 440 | - 'info_nouveaux_messages' => 'YOU HAVE @total_messages@ NEW MESSAGES', |
|
| 441 | - 'info_numero_abbreviation' => 'No', |
|
| 442 | - 'info_obligatoire' => 'This information is required', |
|
| 443 | - 'info_page_actuelle' => 'Actual page', |
|
| 444 | - 'info_pense_bete' => 'MEMO', |
|
| 445 | - 'info_petit_ecran' => 'Small display', |
|
| 446 | - 'info_petition_close' => 'Petition closed', |
|
| 447 | - 'info_pixels' => 'pixels', |
|
| 448 | - 'info_plusieurs_mots_trouves' => 'Several keywords were found for "@cherche_mot@":', |
|
| 449 | - 'info_portfolio_automatique' => 'Automated portfolio:', |
|
| 450 | - 'info_premier_resultat' => '[First @debut_limit@ results out of @total@]', |
|
| 451 | - 'info_premier_resultat_sur' => '[First @debut_limit@ results out of @total@]', |
|
| 452 | - 'info_propose_1' => '[@nom_site_spip@] Submitted: @titre@', |
|
| 453 | - 'info_propose_2' => 'Article submitted |
|
| 397 | + 'info_fini' => 'Done!', |
|
| 398 | + 'info_format_image' => 'Image format to be used for vignettes: @gd_formats@.', |
|
| 399 | + 'info_format_non_defini' => 'undefined format', |
|
| 400 | + 'info_grand_ecran' => 'Large display', |
|
| 401 | + 'info_image_aide' => 'HELP', |
|
| 402 | + 'info_image_process_titre' => 'How to create thumbnails', |
|
| 403 | + 'info_impossible_lire_page' => '<b>Error!</b> The page <tt><html>@test_proxy@</html></tt> cannot be viewed through the proxy', |
|
| 404 | + 'info_installation_systeme_publication' => 'Installing publication system...', |
|
| 405 | + 'info_installer_documents' => 'You can automatically install all documents in the folder @upload@.', |
|
| 406 | + 'info_installer_ftp' => 'As an administrator, you can install files via FTP to the folder @upload@ in order to select them directly from here.', |
|
| 407 | + 'info_installer_images' => 'You can install images in the formats JPEG, GIF, and PNG.', |
|
| 408 | + 'info_installer_images_dossier' => 'Install images in folder @upload@ if you want to select them here.', |
|
| 409 | + 'info_interface_complete' => 'full interface', |
|
| 410 | + 'info_interface_simple' => 'Simplified interface', |
|
| 411 | + 'info_joindre_document_article' => 'You can attach the following types of document to your article', |
|
| 412 | + 'info_joindre_document_rubrique' => 'You can add documents of the following types to this section ', |
|
| 413 | + 'info_joindre_documents_article' => 'You can attach documents of the following types to your article:', |
|
| 414 | + 'info_l_article' => 'the article', |
|
| 415 | + 'info_la_breve' => 'the news item', |
|
| 416 | + 'info_la_rubrique' => 'the section', |
|
| 417 | + 'info_langue_principale' => 'Main language for site', |
|
| 418 | + 'info_largeur_vignette' => '@largeur_vignette@ × @hauteur_vignette@ pixels', |
|
| 419 | + 'info_les_auteurs_1' => 'by @les_auteurs@', |
|
| 420 | + 'info_logo_format_interdit' => 'Only logos in these formats @formats@ are allowed.', |
|
| 421 | + 'info_logo_max_poids' => 'Logos must be less than @maxi@ (this file is @actuel@).', |
|
| 422 | + 'info_mail_fournisseur' => '[email protected]', |
|
| 423 | + 'info_message_2' => 'MESSAGE', |
|
| 424 | + 'info_message_supprime' => 'MESSAGE DELETED', |
|
| 425 | + 'info_messages_nb' => '@nb@ messages', |
|
| 426 | + 'info_messages_un' => '1 message', |
|
| 427 | + 'info_mise_en_ligne' => 'Published on:', |
|
| 428 | + 'info_modification_parametres_securite' => 'modifying security parameters', |
|
| 429 | + 'info_mois_courant' => 'During the month:', |
|
| 430 | + 'info_mot_cle_ajoute' => 'The following keyword was added to', |
|
| 431 | + 'info_multi_herit' => 'Default language', |
|
| 432 | + 'info_multi_langues_soulignees' => 'The <u>languages underlined</u> provide partial or total translations for all the interface texts. If you select these languages, many elements of the public site (dates, forms) will be translated automatically. As for the languages that are not underlined, those elements will be displayed using the site’s default language.', |
|
| 433 | + 'info_multilinguisme' => 'Multilingual', |
|
| 434 | + 'info_nom_non_utilisateurs_connectes' => 'Your name does not appear in the list of users online.', |
|
| 435 | + 'info_nom_utilisateurs_connectes' => 'Your name appears in the list of users online.', |
|
| 436 | + 'info_nombre_en_ligne' => 'Online now:', |
|
| 437 | + 'info_non_resultat' => 'No results for "@cherche_mot@"', |
|
| 438 | + 'info_non_utilisation_messagerie' => 'You are not using private messaging on this site.', |
|
| 439 | + 'info_nouveau_message' => 'YOU HAVE A NEW MESSAGE', |
|
| 440 | + 'info_nouveaux_messages' => 'YOU HAVE @total_messages@ NEW MESSAGES', |
|
| 441 | + 'info_numero_abbreviation' => 'No', |
|
| 442 | + 'info_obligatoire' => 'This information is required', |
|
| 443 | + 'info_page_actuelle' => 'Actual page', |
|
| 444 | + 'info_pense_bete' => 'MEMO', |
|
| 445 | + 'info_petit_ecran' => 'Small display', |
|
| 446 | + 'info_petition_close' => 'Petition closed', |
|
| 447 | + 'info_pixels' => 'pixels', |
|
| 448 | + 'info_plusieurs_mots_trouves' => 'Several keywords were found for "@cherche_mot@":', |
|
| 449 | + 'info_portfolio_automatique' => 'Automated portfolio:', |
|
| 450 | + 'info_premier_resultat' => '[First @debut_limit@ results out of @total@]', |
|
| 451 | + 'info_premier_resultat_sur' => '[First @debut_limit@ results out of @total@]', |
|
| 452 | + 'info_propose_1' => '[@nom_site_spip@] Submitted: @titre@', |
|
| 453 | + 'info_propose_2' => 'Article submitted |
|
| 454 | 454 | -----------------', |
| 455 | - 'info_propose_3' => 'The article "@titre@" has been submitted for publication.', |
|
| 456 | - 'info_propose_4' => 'You are invited to review it and give your opinion', |
|
| 457 | - 'info_propose_5' => 'in the associated forum. It is available here:', |
|
| 458 | - 'info_publie_01' => 'The article "@titre@" was validated by @connect_nom@.', |
|
| 459 | - 'info_publie_1' => '[@nom_site_spip@] PUBLISHED: @titre@', |
|
| 460 | - 'info_publie_2' => 'Article published |
|
| 455 | + 'info_propose_3' => 'The article "@titre@" has been submitted for publication.', |
|
| 456 | + 'info_propose_4' => 'You are invited to review it and give your opinion', |
|
| 457 | + 'info_propose_5' => 'in the associated forum. It is available here:', |
|
| 458 | + 'info_publie_01' => 'The article "@titre@" was validated by @connect_nom@.', |
|
| 459 | + 'info_publie_1' => '[@nom_site_spip@] PUBLISHED: @titre@', |
|
| 460 | + 'info_publie_2' => 'Article published |
|
| 461 | 461 | -----------------', |
| 462 | - 'info_rechercher' => 'Search', |
|
| 463 | - 'info_rechercher_02' => 'Search:', |
|
| 464 | - 'info_remplacer_vignette' => 'Replace the default vignette by a customised logo:', |
|
| 465 | - 'info_rubriques_nb' => '@nb@ sections', |
|
| 466 | - 'info_rubriques_un' => '1 section', |
|
| 467 | - 'info_sans_titre_2' => 'untitled', |
|
| 468 | - 'info_selectionner_fichier' => 'You can select a file from the folder @upload@', |
|
| 469 | - 'info_selectionner_fichier_2' => 'Select a file:', |
|
| 470 | - 'info_sites_nb' => '@nb@ sites', |
|
| 471 | - 'info_sites_un' => '1 site', |
|
| 472 | - 'info_supprimer_vignette' => 'delete the vignette', |
|
| 473 | - 'info_symbole_bleu' => 'A <b>blue</b> symbol indicates a <b>memo</b>: i.e. a message for your personal use.', |
|
| 474 | - 'info_symbole_jaune' => 'A <b>yellow</b> symbol indicates an <b>announcement to all editors</b>: it can be edited by all administrators, and is visible to all editors.', |
|
| 475 | - 'info_symbole_vert' => 'A <b>green</b> symbol indicates the <b>messages exchanged with other users</b> of the site.', |
|
| 476 | - 'info_telecharger_nouveau_logo' => 'Upload a new logo:', |
|
| 477 | - 'info_telecharger_ordinateur' => 'Upload from your computer:', |
|
| 478 | - 'info_tous_resultats_enregistres' => '[all the results are recorded]', |
|
| 479 | - 'info_tout_afficher' => 'Show all', |
|
| 480 | - 'info_travaux_texte' => 'This site is not yet set up. Please come back later...', |
|
| 481 | - 'info_travaux_titre' => 'Site under construction', |
|
| 482 | - 'info_trop_resultat' => 'Too many results for "@cherche_mot@"; please refine the search.', |
|
| 483 | - 'info_utilisation_messagerie_interne' => 'You are using the internal message system of this site.', |
|
| 484 | - 'info_valider_lien' => 'validate this link', |
|
| 485 | - 'info_verifier_image' => ', please make sure your images have been transferred correctly.', |
|
| 486 | - 'info_vignette_defaut' => 'Default vignette', |
|
| 487 | - 'info_vignette_personnalisee' => 'Custom vignette', |
|
| 488 | - 'info_visite' => 'visit:', |
|
| 489 | - 'info_vos_rendez_vous' => 'Your future appointments', |
|
| 490 | - 'infos_vos_pense_bete' => 'Your memos', |
|
| 462 | + 'info_rechercher' => 'Search', |
|
| 463 | + 'info_rechercher_02' => 'Search:', |
|
| 464 | + 'info_remplacer_vignette' => 'Replace the default vignette by a customised logo:', |
|
| 465 | + 'info_rubriques_nb' => '@nb@ sections', |
|
| 466 | + 'info_rubriques_un' => '1 section', |
|
| 467 | + 'info_sans_titre_2' => 'untitled', |
|
| 468 | + 'info_selectionner_fichier' => 'You can select a file from the folder @upload@', |
|
| 469 | + 'info_selectionner_fichier_2' => 'Select a file:', |
|
| 470 | + 'info_sites_nb' => '@nb@ sites', |
|
| 471 | + 'info_sites_un' => '1 site', |
|
| 472 | + 'info_supprimer_vignette' => 'delete the vignette', |
|
| 473 | + 'info_symbole_bleu' => 'A <b>blue</b> symbol indicates a <b>memo</b>: i.e. a message for your personal use.', |
|
| 474 | + 'info_symbole_jaune' => 'A <b>yellow</b> symbol indicates an <b>announcement to all editors</b>: it can be edited by all administrators, and is visible to all editors.', |
|
| 475 | + 'info_symbole_vert' => 'A <b>green</b> symbol indicates the <b>messages exchanged with other users</b> of the site.', |
|
| 476 | + 'info_telecharger_nouveau_logo' => 'Upload a new logo:', |
|
| 477 | + 'info_telecharger_ordinateur' => 'Upload from your computer:', |
|
| 478 | + 'info_tous_resultats_enregistres' => '[all the results are recorded]', |
|
| 479 | + 'info_tout_afficher' => 'Show all', |
|
| 480 | + 'info_travaux_texte' => 'This site is not yet set up. Please come back later...', |
|
| 481 | + 'info_travaux_titre' => 'Site under construction', |
|
| 482 | + 'info_trop_resultat' => 'Too many results for "@cherche_mot@"; please refine the search.', |
|
| 483 | + 'info_utilisation_messagerie_interne' => 'You are using the internal message system of this site.', |
|
| 484 | + 'info_valider_lien' => 'validate this link', |
|
| 485 | + 'info_verifier_image' => ', please make sure your images have been transferred correctly.', |
|
| 486 | + 'info_vignette_defaut' => 'Default vignette', |
|
| 487 | + 'info_vignette_personnalisee' => 'Custom vignette', |
|
| 488 | + 'info_visite' => 'visit:', |
|
| 489 | + 'info_vos_rendez_vous' => 'Your future appointments', |
|
| 490 | + 'infos_vos_pense_bete' => 'Your memos', |
|
| 491 | 491 | |
| 492 | - // L |
|
| 493 | - 'label_ajout_id_rapide' => 'Quick addition', |
|
| 494 | - 'label_poids_fichier' => 'Size', |
|
| 495 | - 'label_ponctuer' => '@label@:', |
|
| 496 | - 'lien_afficher_icones_seuls' => 'Show only icons', |
|
| 497 | - 'lien_afficher_texte_icones' => 'Show icons and text', |
|
| 498 | - 'lien_afficher_texte_seul' => 'Show only text', |
|
| 499 | - 'lien_aller_a_la_derniere_page' => 'Go to the last page', |
|
| 500 | - 'lien_aller_a_la_page_nb' => 'Go to page @nb@', |
|
| 501 | - 'lien_aller_a_la_page_precedente' => 'Go to the previous page', |
|
| 502 | - 'lien_aller_a_la_page_suivante' => 'Go to the next page', |
|
| 503 | - 'lien_aller_a_la_premiere_page' => 'Go to the first page', |
|
| 504 | - 'lien_liberer' => 'release', |
|
| 505 | - 'lien_liberer_tous' => 'Release all', |
|
| 506 | - 'lien_nouvea_pense_bete' => 'NEW MEMO', |
|
| 507 | - 'lien_nouveau_message' => 'NEW MESSAGE', |
|
| 508 | - 'lien_nouvelle_annonce' => 'NEW ANNOUNCEMENT', |
|
| 509 | - 'lien_petitions' => 'PETITION', |
|
| 510 | - 'lien_popularite' => 'popularity: @popularite@%', |
|
| 511 | - 'lien_racine_site' => 'SITE ROOT', |
|
| 512 | - 'lien_reessayer' => 'try again', |
|
| 513 | - 'lien_repondre_message' => 'Reply to this message', |
|
| 514 | - 'lien_supprimer' => 'delete', |
|
| 515 | - 'lien_tout_afficher' => 'Show all', |
|
| 516 | - 'lien_visite_site' => 'visit this site', |
|
| 517 | - 'lien_visites' => '@visites@ visits', |
|
| 518 | - 'lien_voir_auteur' => 'Check this author', |
|
| 519 | - 'ligne' => 'Line', |
|
| 520 | - 'login' => 'Connection', |
|
| 521 | - 'login_acces_prive' => 'access to the private area', |
|
| 522 | - 'login_autre_identifiant' => 'use a different ID', |
|
| 523 | - 'login_cookie_accepte' => 'Please configure your browser to accept them for this site.', |
|
| 524 | - 'login_cookie_oblige' => 'For secure identification, your browser must accept cookies.', |
|
| 525 | - 'login_deconnexion_ok' => 'Logged out.', |
|
| 526 | - 'login_erreur_pass' => 'Wrong password.', |
|
| 527 | - 'login_espace_prive' => 'private area', |
|
| 528 | - 'login_identifiant_inconnu' => 'The identifier "@login@" is unknown.', |
|
| 529 | - 'login_login' => 'Login:', |
|
| 530 | - 'login_login2' => 'Login or e-mail address:', |
|
| 531 | - 'login_login_pass_incorrect' => '(Wrong login or password).', |
|
| 532 | - 'login_motpasseoublie' => 'password forgotten?', |
|
| 533 | - 'login_non_securise' => 'Caution, this form is not secure. |
|
| 492 | + // L |
|
| 493 | + 'label_ajout_id_rapide' => 'Quick addition', |
|
| 494 | + 'label_poids_fichier' => 'Size', |
|
| 495 | + 'label_ponctuer' => '@label@:', |
|
| 496 | + 'lien_afficher_icones_seuls' => 'Show only icons', |
|
| 497 | + 'lien_afficher_texte_icones' => 'Show icons and text', |
|
| 498 | + 'lien_afficher_texte_seul' => 'Show only text', |
|
| 499 | + 'lien_aller_a_la_derniere_page' => 'Go to the last page', |
|
| 500 | + 'lien_aller_a_la_page_nb' => 'Go to page @nb@', |
|
| 501 | + 'lien_aller_a_la_page_precedente' => 'Go to the previous page', |
|
| 502 | + 'lien_aller_a_la_page_suivante' => 'Go to the next page', |
|
| 503 | + 'lien_aller_a_la_premiere_page' => 'Go to the first page', |
|
| 504 | + 'lien_liberer' => 'release', |
|
| 505 | + 'lien_liberer_tous' => 'Release all', |
|
| 506 | + 'lien_nouvea_pense_bete' => 'NEW MEMO', |
|
| 507 | + 'lien_nouveau_message' => 'NEW MESSAGE', |
|
| 508 | + 'lien_nouvelle_annonce' => 'NEW ANNOUNCEMENT', |
|
| 509 | + 'lien_petitions' => 'PETITION', |
|
| 510 | + 'lien_popularite' => 'popularity: @popularite@%', |
|
| 511 | + 'lien_racine_site' => 'SITE ROOT', |
|
| 512 | + 'lien_reessayer' => 'try again', |
|
| 513 | + 'lien_repondre_message' => 'Reply to this message', |
|
| 514 | + 'lien_supprimer' => 'delete', |
|
| 515 | + 'lien_tout_afficher' => 'Show all', |
|
| 516 | + 'lien_visite_site' => 'visit this site', |
|
| 517 | + 'lien_visites' => '@visites@ visits', |
|
| 518 | + 'lien_voir_auteur' => 'Check this author', |
|
| 519 | + 'ligne' => 'Line', |
|
| 520 | + 'login' => 'Connection', |
|
| 521 | + 'login_acces_prive' => 'access to the private area', |
|
| 522 | + 'login_autre_identifiant' => 'use a different ID', |
|
| 523 | + 'login_cookie_accepte' => 'Please configure your browser to accept them for this site.', |
|
| 524 | + 'login_cookie_oblige' => 'For secure identification, your browser must accept cookies.', |
|
| 525 | + 'login_deconnexion_ok' => 'Logged out.', |
|
| 526 | + 'login_erreur_pass' => 'Wrong password.', |
|
| 527 | + 'login_espace_prive' => 'private area', |
|
| 528 | + 'login_identifiant_inconnu' => 'The identifier "@login@" is unknown.', |
|
| 529 | + 'login_login' => 'Login:', |
|
| 530 | + 'login_login2' => 'Login or e-mail address:', |
|
| 531 | + 'login_login_pass_incorrect' => '(Wrong login or password).', |
|
| 532 | + 'login_motpasseoublie' => 'password forgotten?', |
|
| 533 | + 'login_non_securise' => 'Caution, this form is not secure. |
|
| 534 | 534 | If you do not want your password to be open to |
| 535 | 535 | interception on the network, please activate Javascript |
| 536 | 536 | in your browser and', |
| 537 | - 'login_nouvelle_tentative' => 'New attempt', |
|
| 538 | - 'login_par_ici' => 'You are registered... this way...', |
|
| 539 | - 'login_pass2' => 'Password:', |
|
| 540 | - 'login_preferez_refuser' => '<b>If you prefer to refuse cookies</b>, there is another, less secure, method of connection available:', |
|
| 541 | - 'login_recharger' => 'reload this page', |
|
| 542 | - 'login_rester_identifie' => 'Remember me', |
|
| 543 | - 'login_retour_public' => 'Back to the public site', |
|
| 544 | - 'login_retour_site' => 'Back to the public site', |
|
| 545 | - 'login_retoursitepublic' => 'back to the public site', |
|
| 546 | - 'login_sans_cookie' => 'Identification without cookie', |
|
| 547 | - 'login_securise' => 'Secure login', |
|
| 548 | - 'login_sinscrire' => 'register', |
|
| 549 | - 'login_test_navigateur' => 'testing browser/reconnection', |
|
| 550 | - 'login_verifiez_navigateur' => '(However, check that your browser did not memorise your password...)', |
|
| 537 | + 'login_nouvelle_tentative' => 'New attempt', |
|
| 538 | + 'login_par_ici' => 'You are registered... this way...', |
|
| 539 | + 'login_pass2' => 'Password:', |
|
| 540 | + 'login_preferez_refuser' => '<b>If you prefer to refuse cookies</b>, there is another, less secure, method of connection available:', |
|
| 541 | + 'login_recharger' => 'reload this page', |
|
| 542 | + 'login_rester_identifie' => 'Remember me', |
|
| 543 | + 'login_retour_public' => 'Back to the public site', |
|
| 544 | + 'login_retour_site' => 'Back to the public site', |
|
| 545 | + 'login_retoursitepublic' => 'back to the public site', |
|
| 546 | + 'login_sans_cookie' => 'Identification without cookie', |
|
| 547 | + 'login_securise' => 'Secure login', |
|
| 548 | + 'login_sinscrire' => 'register', |
|
| 549 | + 'login_test_navigateur' => 'testing browser/reconnection', |
|
| 550 | + 'login_verifiez_navigateur' => '(However, check that your browser did not memorise your password...)', |
|
| 551 | 551 | |
| 552 | - // M |
|
| 553 | - 'masquer_colonne' => 'Hide this column', |
|
| 554 | - 'masquer_trad' => 'hide translations', |
|
| 555 | - 'message_nouveaux_identifiants_echec' => 'New identifiers could not be created.', |
|
| 556 | - 'message_nouveaux_identifiants_echec_envoi' => 'The new connection identifiers could not be sent.', |
|
| 557 | - 'message_nouveaux_identifiants_ok' => 'The new connection identifiers were sent to @email@.', |
|
| 558 | - 'module_fichiers_langues' => 'Language files', |
|
| 552 | + // M |
|
| 553 | + 'masquer_colonne' => 'Hide this column', |
|
| 554 | + 'masquer_trad' => 'hide translations', |
|
| 555 | + 'message_nouveaux_identifiants_echec' => 'New identifiers could not be created.', |
|
| 556 | + 'message_nouveaux_identifiants_echec_envoi' => 'The new connection identifiers could not be sent.', |
|
| 557 | + 'message_nouveaux_identifiants_ok' => 'The new connection identifiers were sent to @email@.', |
|
| 558 | + 'module_fichiers_langues' => 'Language files', |
|
| 559 | 559 | |
| 560 | - // N |
|
| 561 | - 'navigateur_pas_redirige' => 'If you are not automatically redirected, click here to continue.', |
|
| 562 | - 'numero' => 'Number', |
|
| 560 | + // N |
|
| 561 | + 'navigateur_pas_redirige' => 'If you are not automatically redirected, click here to continue.', |
|
| 562 | + 'numero' => 'Number', |
|
| 563 | 563 | |
| 564 | - // O |
|
| 565 | - 'occurence' => 'Instance', |
|
| 566 | - 'onglet_affacer_base' => 'Delete the database', |
|
| 567 | - 'onglet_auteur' => 'The author', |
|
| 568 | - 'onglet_contenu_site' => 'Site content', |
|
| 569 | - 'onglet_evolution_visite_mod' => 'Trend in visits', |
|
| 570 | - 'onglet_fonctions_avances' => 'Advanced functions', |
|
| 571 | - 'onglet_informations_personnelles' => 'Personal Information', |
|
| 572 | - 'onglet_interactivite' => 'Interactivity', |
|
| 573 | - 'onglet_messagerie' => 'Messaging', |
|
| 574 | - 'onglet_repartition_rubrique' => 'Distribution by section', |
|
| 575 | - 'onglet_save_restaur_base' => 'Backup/restore the database', |
|
| 576 | - 'onglet_vider_cache' => 'Empty the cache', |
|
| 564 | + // O |
|
| 565 | + 'occurence' => 'Instance', |
|
| 566 | + 'onglet_affacer_base' => 'Delete the database', |
|
| 567 | + 'onglet_auteur' => 'The author', |
|
| 568 | + 'onglet_contenu_site' => 'Site content', |
|
| 569 | + 'onglet_evolution_visite_mod' => 'Trend in visits', |
|
| 570 | + 'onglet_fonctions_avances' => 'Advanced functions', |
|
| 571 | + 'onglet_informations_personnelles' => 'Personal Information', |
|
| 572 | + 'onglet_interactivite' => 'Interactivity', |
|
| 573 | + 'onglet_messagerie' => 'Messaging', |
|
| 574 | + 'onglet_repartition_rubrique' => 'Distribution by section', |
|
| 575 | + 'onglet_save_restaur_base' => 'Backup/restore the database', |
|
| 576 | + 'onglet_vider_cache' => 'Empty the cache', |
|
| 577 | 577 | |
| 578 | - // P |
|
| 579 | - 'pass_choix_pass' => 'Please choose a new password:', |
|
| 580 | - 'pass_erreur' => 'Error', |
|
| 581 | - 'pass_erreur_acces_refuse' => '<b>Error:</b> you no longer have access to this site.', |
|
| 582 | - 'pass_erreur_code_inconnu' => '<b>Error:</b> this code does not match any visitors with access permission to this site.', |
|
| 583 | - 'pass_erreur_non_enregistre' => '<b>Error :</b> the address <tt>@email_oubli@</tt> is not registered on this site.', |
|
| 584 | - 'pass_erreur_non_valide' => '<b>Error :</b> the e-mail <tt>@email_oubli@</tt> is not valid!', |
|
| 585 | - 'pass_erreur_probleme_technique' => '<b>Error :</b> this e-mail could not be sent due to a technical problem.', |
|
| 586 | - 'pass_espace_prive_bla' => 'The private area of this site is open to |
|
| 578 | + // P |
|
| 579 | + 'pass_choix_pass' => 'Please choose a new password:', |
|
| 580 | + 'pass_erreur' => 'Error', |
|
| 581 | + 'pass_erreur_acces_refuse' => '<b>Error:</b> you no longer have access to this site.', |
|
| 582 | + 'pass_erreur_code_inconnu' => '<b>Error:</b> this code does not match any visitors with access permission to this site.', |
|
| 583 | + 'pass_erreur_non_enregistre' => '<b>Error :</b> the address <tt>@email_oubli@</tt> is not registered on this site.', |
|
| 584 | + 'pass_erreur_non_valide' => '<b>Error :</b> the e-mail <tt>@email_oubli@</tt> is not valid!', |
|
| 585 | + 'pass_erreur_probleme_technique' => '<b>Error :</b> this e-mail could not be sent due to a technical problem.', |
|
| 586 | + 'pass_espace_prive_bla' => 'The private area of this site is open to |
|
| 587 | 587 | visitors after registration. Once you have registered, |
| 588 | 588 | you can review the articles in progress, |
| 589 | 589 | submit articles and participate in forums.', |
| 590 | - 'pass_forum_bla' => 'You have requested to take part in a forum |
|
| 590 | + 'pass_forum_bla' => 'You have requested to take part in a forum |
|
| 591 | 591 | reserved for registered visitors.', |
| 592 | - 'pass_indiquez_cidessous' => 'Enter the email address with which you |
|
| 592 | + 'pass_indiquez_cidessous' => 'Enter the email address with which you |
|
| 593 | 593 | registered. You |
| 594 | 594 | will receive an email explaining how you |
| 595 | 595 | can retrieve your password.', |
| 596 | - 'pass_mail_passcookie' => '(this is an automated message) |
|
| 596 | + 'pass_mail_passcookie' => '(this is an automated message) |
|
| 597 | 597 | |
| 598 | 598 | To recover your access to the site |
| 599 | 599 | @nom_site_spip@ (@adresse_site@) |
@@ -604,146 +604,146 @@ discard block |
||
| 604 | 604 | You can then enter a new password |
| 605 | 605 | and log in to the site. |
| 606 | 606 | ', |
| 607 | - 'pass_mot_oublie' => 'Password forgotten', |
|
| 608 | - 'pass_nouveau_enregistre' => 'Your new password has been recorded.', |
|
| 609 | - 'pass_nouveau_pass' => 'New password', |
|
| 610 | - 'pass_ok' => 'OK', |
|
| 611 | - 'pass_oubli_mot' => 'Forgotten password', |
|
| 612 | - 'pass_procedure_changer' => 'In order to change your password, we have to check your identity first. Please enter the e-mail address associated with this account.', |
|
| 613 | - 'pass_quitter_fenetre' => 'Close this window', |
|
| 614 | - 'pass_rappel_login' => 'Reminder: your identifier (login) is "@login@".', |
|
| 615 | - 'pass_recevoir_mail' => 'A link to reset your password has been sent to your email address (if it is valid).', |
|
| 616 | - 'pass_retour_public' => 'Back to the public site', |
|
| 617 | - 'pass_rien_a_faire_ici' => 'Nothing to do here.', |
|
| 618 | - 'pass_vousinscrire' => 'Registering with the site', |
|
| 619 | - 'precedent' => 'previous', |
|
| 620 | - 'previsualisation' => 'Preview', |
|
| 621 | - 'previsualiser' => 'Show preview', |
|
| 607 | + 'pass_mot_oublie' => 'Password forgotten', |
|
| 608 | + 'pass_nouveau_enregistre' => 'Your new password has been recorded.', |
|
| 609 | + 'pass_nouveau_pass' => 'New password', |
|
| 610 | + 'pass_ok' => 'OK', |
|
| 611 | + 'pass_oubli_mot' => 'Forgotten password', |
|
| 612 | + 'pass_procedure_changer' => 'In order to change your password, we have to check your identity first. Please enter the e-mail address associated with this account.', |
|
| 613 | + 'pass_quitter_fenetre' => 'Close this window', |
|
| 614 | + 'pass_rappel_login' => 'Reminder: your identifier (login) is "@login@".', |
|
| 615 | + 'pass_recevoir_mail' => 'A link to reset your password has been sent to your email address (if it is valid).', |
|
| 616 | + 'pass_retour_public' => 'Back to the public site', |
|
| 617 | + 'pass_rien_a_faire_ici' => 'Nothing to do here.', |
|
| 618 | + 'pass_vousinscrire' => 'Registering with the site', |
|
| 619 | + 'precedent' => 'previous', |
|
| 620 | + 'previsualisation' => 'Preview', |
|
| 621 | + 'previsualiser' => 'Show preview', |
|
| 622 | 622 | |
| 623 | - // R |
|
| 624 | - 'retour' => 'Back', |
|
| 623 | + // R |
|
| 624 | + 'retour' => 'Back', |
|
| 625 | 625 | |
| 626 | - // S |
|
| 627 | - 'spip_conforme_dtd' => 'SPIP finds this page to be in compliance with its DOCTYPE:', |
|
| 628 | - 'squelette' => 'template', |
|
| 629 | - 'squelette_inclus_ligne' => 'included template, line', |
|
| 630 | - 'squelette_ligne' => 'template, line', |
|
| 631 | - 'stats_visites_et_popularite' => '@visites@ visits; popularity: @popularite@', |
|
| 632 | - 'suivant' => 'next', |
|
| 626 | + // S |
|
| 627 | + 'spip_conforme_dtd' => 'SPIP finds this page to be in compliance with its DOCTYPE:', |
|
| 628 | + 'squelette' => 'template', |
|
| 629 | + 'squelette_inclus_ligne' => 'included template, line', |
|
| 630 | + 'squelette_ligne' => 'template, line', |
|
| 631 | + 'stats_visites_et_popularite' => '@visites@ visits; popularity: @popularite@', |
|
| 632 | + 'suivant' => 'next', |
|
| 633 | 633 | |
| 634 | - // T |
|
| 635 | - 'taille_go' => '@taille@ Gb', |
|
| 636 | - 'taille_ko' => '@taille@ kb', |
|
| 637 | - 'taille_mo' => '@taille@ Mb', |
|
| 638 | - 'taille_octets' => '@taille@ bytes', |
|
| 639 | - 'texte_actualite_site_1' => 'When you are more familiar with the interface, click on "', |
|
| 640 | - 'texte_actualite_site_2' => 'full interface', |
|
| 641 | - 'texte_actualite_site_3' => '" to make more features available.', |
|
| 642 | - 'texte_creation_automatique_vignette' => 'Automatic creation of preview vignettes is enabled. If you use this form to install, images in the format(s) @gd_formats@, they will be coupled with a vignette whose maximum size is @taille_preview@ pixels.', |
|
| 643 | - 'texte_documents_associes' => 'The following documents are associated with the article,, |
|
| 634 | + // T |
|
| 635 | + 'taille_go' => '@taille@ Gb', |
|
| 636 | + 'taille_ko' => '@taille@ kb', |
|
| 637 | + 'taille_mo' => '@taille@ Mb', |
|
| 638 | + 'taille_octets' => '@taille@ bytes', |
|
| 639 | + 'texte_actualite_site_1' => 'When you are more familiar with the interface, click on "', |
|
| 640 | + 'texte_actualite_site_2' => 'full interface', |
|
| 641 | + 'texte_actualite_site_3' => '" to make more features available.', |
|
| 642 | + 'texte_creation_automatique_vignette' => 'Automatic creation of preview vignettes is enabled. If you use this form to install, images in the format(s) @gd_formats@, they will be coupled with a vignette whose maximum size is @taille_preview@ pixels.', |
|
| 643 | + 'texte_documents_associes' => 'The following documents are associated with the article,, |
|
| 644 | 644 | but they were not directly |
| 645 | 645 | inserted. Depending on the layout of the public site, |
| 646 | 646 | they may appear as attached documents.', |
| 647 | - 'texte_erreur_mise_niveau_base' => 'Database error during the upgrade. |
|
| 647 | + 'texte_erreur_mise_niveau_base' => 'Database error during the upgrade. |
|
| 648 | 648 | The image <b>@fichier@</b> did not pass (article @id_article@).<p> |
| 649 | 649 | Note this reference carefully, try the upgrade procedure again, |
| 650 | 650 | and check afterwards that the images still appear |
| 651 | 651 | in the articles.', |
| 652 | - 'texte_erreur_visiteur' => 'You have tried to enter the private area using an unauthorised login.', |
|
| 653 | - 'texte_inc_auth_1' => 'You used the login |
|
| 652 | + 'texte_erreur_visiteur' => 'You have tried to enter the private area using an unauthorised login.', |
|
| 653 | + 'texte_inc_auth_1' => 'You used the login |
|
| 654 | 654 | <b>@auth_login@</b>, but it does not exist in the database. |
| 655 | 655 | Try to', |
| 656 | - 'texte_inc_auth_2' => 'reconnect', |
|
| 657 | - 'texte_inc_auth_3' => ', having quit and |
|
| 656 | + 'texte_inc_auth_2' => 'reconnect', |
|
| 657 | + 'texte_inc_auth_3' => ', having quit and |
|
| 658 | 658 | restarted your browser if necessary.', |
| 659 | - 'texte_inc_config' => 'Changes made to the options on these pages have a great effect on |
|
| 659 | + 'texte_inc_config' => 'Changes made to the options on these pages have a great effect on |
|
| 660 | 660 | the functioning of the site. You are advised not to make any changes unless you are |
| 661 | 661 | familiar with how SPIP works. <br /><br /><b>In |
| 662 | 662 | general, you are strongly advised |
| 663 | 663 | to let the main webmaster of the site deal with these pages.</b>', |
| 664 | - 'texte_inc_meta_1' => 'The system encountered an error when trying to write the file <code>@fichier@</code>. As a site administrator, please', |
|
| 665 | - 'texte_inc_meta_2' => 'verify write permissions', |
|
| 666 | - 'texte_inc_meta_3' => 'of the directory <code>@repertoire@</code>.', |
|
| 667 | - 'texte_statut_en_cours_redaction' => 'editing in progress', |
|
| 668 | - 'texte_statut_poubelle' => 'to the dustbin', |
|
| 669 | - 'texte_statut_propose_evaluation' => 'submitted for evaluation', |
|
| 670 | - 'texte_statut_publie' => 'published online', |
|
| 671 | - 'texte_statut_refuse' => 'rejected', |
|
| 672 | - 'titre_ajouter_mot_cle' => 'ADD A KEYWORD:', |
|
| 673 | - 'titre_cadre_raccourcis' => 'SHORTCUTS:', |
|
| 674 | - 'titre_changer_couleur_interface' => 'Changing interface colour', |
|
| 675 | - 'titre_image_admin_article' => 'You can administrate this article', |
|
| 676 | - 'titre_image_administrateur' => 'Administrator', |
|
| 677 | - 'titre_image_aide' => 'Help on this item', |
|
| 678 | - 'titre_image_auteur_supprime' => 'Author deleted', |
|
| 679 | - 'titre_image_redacteur' => 'Editor without access', |
|
| 680 | - 'titre_image_redacteur_02' => 'Editor', |
|
| 681 | - 'titre_image_selecteur' => 'Display list', |
|
| 682 | - 'titre_image_visiteur' => 'Visitor', |
|
| 683 | - 'titre_joindre_document' => 'ATTACH A DOCUMENT', |
|
| 684 | - 'titre_mots_cles' => 'KEYWORDS', |
|
| 685 | - 'titre_probleme_technique' => 'Warning: a technical problem (SQL server) is preventing access to this part of the site. Thank you for your patience.', |
|
| 686 | - 'titre_publier_document' => 'PUBLISH A DOCUMENT IN THIS SECTION', |
|
| 687 | - 'titre_signatures_attente' => 'Signatures awaiting validation', |
|
| 688 | - 'titre_signatures_confirmees' => 'Signatures confirmed', |
|
| 689 | - 'titre_statistiques' => 'Site statistics', |
|
| 690 | - 'titre_titre_document' => 'Document title:', |
|
| 691 | - 'todo' => 'to come', |
|
| 692 | - 'trad_definir_reference' => 'Choose "@titre@" as a reference for translations', |
|
| 693 | - 'trad_reference' => '(reference for translations)', |
|
| 664 | + 'texte_inc_meta_1' => 'The system encountered an error when trying to write the file <code>@fichier@</code>. As a site administrator, please', |
|
| 665 | + 'texte_inc_meta_2' => 'verify write permissions', |
|
| 666 | + 'texte_inc_meta_3' => 'of the directory <code>@repertoire@</code>.', |
|
| 667 | + 'texte_statut_en_cours_redaction' => 'editing in progress', |
|
| 668 | + 'texte_statut_poubelle' => 'to the dustbin', |
|
| 669 | + 'texte_statut_propose_evaluation' => 'submitted for evaluation', |
|
| 670 | + 'texte_statut_publie' => 'published online', |
|
| 671 | + 'texte_statut_refuse' => 'rejected', |
|
| 672 | + 'titre_ajouter_mot_cle' => 'ADD A KEYWORD:', |
|
| 673 | + 'titre_cadre_raccourcis' => 'SHORTCUTS:', |
|
| 674 | + 'titre_changer_couleur_interface' => 'Changing interface colour', |
|
| 675 | + 'titre_image_admin_article' => 'You can administrate this article', |
|
| 676 | + 'titre_image_administrateur' => 'Administrator', |
|
| 677 | + 'titre_image_aide' => 'Help on this item', |
|
| 678 | + 'titre_image_auteur_supprime' => 'Author deleted', |
|
| 679 | + 'titre_image_redacteur' => 'Editor without access', |
|
| 680 | + 'titre_image_redacteur_02' => 'Editor', |
|
| 681 | + 'titre_image_selecteur' => 'Display list', |
|
| 682 | + 'titre_image_visiteur' => 'Visitor', |
|
| 683 | + 'titre_joindre_document' => 'ATTACH A DOCUMENT', |
|
| 684 | + 'titre_mots_cles' => 'KEYWORDS', |
|
| 685 | + 'titre_probleme_technique' => 'Warning: a technical problem (SQL server) is preventing access to this part of the site. Thank you for your patience.', |
|
| 686 | + 'titre_publier_document' => 'PUBLISH A DOCUMENT IN THIS SECTION', |
|
| 687 | + 'titre_signatures_attente' => 'Signatures awaiting validation', |
|
| 688 | + 'titre_signatures_confirmees' => 'Signatures confirmed', |
|
| 689 | + 'titre_statistiques' => 'Site statistics', |
|
| 690 | + 'titre_titre_document' => 'Document title:', |
|
| 691 | + 'todo' => 'to come', |
|
| 692 | + 'trad_definir_reference' => 'Choose "@titre@" as a reference for translations', |
|
| 693 | + 'trad_reference' => '(reference for translations)', |
|
| 694 | 694 | |
| 695 | - // U |
|
| 696 | - 'upload_limit' => 'This file is too big for the server: the maximum size allowed for <i>upload</i> is @max@.', |
|
| 695 | + // U |
|
| 696 | + 'upload_limit' => 'This file is too big for the server: the maximum size allowed for <i>upload</i> is @max@.', |
|
| 697 | 697 | |
| 698 | - // Z |
|
| 699 | - 'zbug_balise_b_aval' => ': B tag too late in loop', |
|
| 700 | - 'zbug_balise_inexistante' => 'Tag @balise@ wrongly declared for @from@', |
|
| 701 | - 'zbug_balise_sans_argument' => 'Missing argument in the @balise@ tag', |
|
| 702 | - 'zbug_boucle' => 'loop', |
|
| 703 | - 'zbug_boucle_recursive_undef' => 'undefined recursive loop: @nom@', |
|
| 704 | - 'zbug_calcul' => 'calculation', |
|
| 705 | - 'zbug_champ_hors_boucle' => 'Field @champ@ outside loop', |
|
| 706 | - 'zbug_champ_hors_critere' => 'Field @champ@ outside criterion @critere@', |
|
| 707 | - 'zbug_champ_hors_motif' => 'Field @champ@ outside context @motif@', |
|
| 708 | - 'zbug_code' => 'code', |
|
| 709 | - 'zbug_critere_inconnu' => 'Unknown criterion @critere@', |
|
| 710 | - 'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} on a table without atomic primary key', |
|
| 711 | - 'zbug_distant_interdit' => 'External data forbidden', |
|
| 712 | - 'zbug_doublon_table_sans_cle_primaire' => 'Duplicate entries on a table which does not have a simple primary key', |
|
| 713 | - 'zbug_doublon_table_sans_index' => 'Duplicate entries on a table without an index', |
|
| 714 | - 'zbug_erreur_boucle_double' => 'Loop @id@: double definition', |
|
| 715 | - 'zbug_erreur_boucle_fermant' => 'Loop @id@: missing closing tag', |
|
| 716 | - 'zbug_erreur_boucle_syntaxe' => 'Syntax error in loop (BOUCLE)', |
|
| 717 | - 'zbug_erreur_compilation' => 'Compilation error', |
|
| 718 | - 'zbug_erreur_execution_page' => 'Execution error', |
|
| 719 | - 'zbug_erreur_filtre' => 'Undefined filter @filtre@', |
|
| 720 | - 'zbug_erreur_filtre_nbarg_min' => '@filtre@ filter: @nb@ argument(s) missing', |
|
| 721 | - 'zbug_erreur_meme_parent' => '{meme_parent} only applies to loops (FORUMS) and (RUBRIQUES)', |
|
| 722 | - 'zbug_erreur_squelette' => 'Error(s) in template', |
|
| 723 | - 'zbug_hors_compilation' => 'Uncompiled', |
|
| 724 | - 'zbug_info_erreur_squelette' => 'Error in the site', |
|
| 725 | - 'zbug_inversion_ordre_inexistant' => 'Reversion of non-existent order', |
|
| 726 | - 'zbug_pagination_sans_critere' => '#PAGINATION tag without {pagination} criterion, or used in a recursive loop', |
|
| 727 | - 'zbug_parametres_inclus_incorrects' => 'Wrong inclusion parameter: @param@', |
|
| 728 | - 'zbug_profile' => 'Calculation time: @time@', |
|
| 729 | - 'zbug_resultat' => 'result', |
|
| 730 | - 'zbug_serveur_indefini' => 'Undefined SQL server', |
|
| 731 | - 'zbug_statistiques' => 'SQL query statistics in order of duration', |
|
| 732 | - 'zbug_table_inconnue' => 'Unknown SQL table "@table@"', |
|
| 733 | - 'zxml_connus_attributs' => 'known attributes', |
|
| 734 | - 'zxml_de' => 'from', |
|
| 735 | - 'zxml_inconnu_attribut' => 'unknown attribute', |
|
| 736 | - 'zxml_inconnu_balise' => 'unknown tag', |
|
| 737 | - 'zxml_inconnu_entite' => 'unknown entity', |
|
| 738 | - 'zxml_inconnu_id' => 'unknown ID', |
|
| 739 | - 'zxml_mais_de' => 'but from', |
|
| 740 | - 'zxml_non_conforme' => 'not true to the principle', |
|
| 741 | - 'zxml_non_fils' => 'is not a child of', |
|
| 742 | - 'zxml_nonvide_balise' => 'tag not empty', |
|
| 743 | - 'zxml_obligatoire_attribut' => 'required attribute absent in', |
|
| 744 | - 'zxml_succession_fils_incorrecte' => 'incorrect child inheritance', |
|
| 745 | - 'zxml_survoler' => 'to see the correct ones, hover with the cursor', |
|
| 746 | - 'zxml_valeur_attribut' => 'attribute value', |
|
| 747 | - 'zxml_vide_balise' => 'empty tag', |
|
| 748 | - 'zxml_vu' => 'seen before' |
|
| 698 | + // Z |
|
| 699 | + 'zbug_balise_b_aval' => ': B tag too late in loop', |
|
| 700 | + 'zbug_balise_inexistante' => 'Tag @balise@ wrongly declared for @from@', |
|
| 701 | + 'zbug_balise_sans_argument' => 'Missing argument in the @balise@ tag', |
|
| 702 | + 'zbug_boucle' => 'loop', |
|
| 703 | + 'zbug_boucle_recursive_undef' => 'undefined recursive loop: @nom@', |
|
| 704 | + 'zbug_calcul' => 'calculation', |
|
| 705 | + 'zbug_champ_hors_boucle' => 'Field @champ@ outside loop', |
|
| 706 | + 'zbug_champ_hors_critere' => 'Field @champ@ outside criterion @critere@', |
|
| 707 | + 'zbug_champ_hors_motif' => 'Field @champ@ outside context @motif@', |
|
| 708 | + 'zbug_code' => 'code', |
|
| 709 | + 'zbug_critere_inconnu' => 'Unknown criterion @critere@', |
|
| 710 | + 'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} on a table without atomic primary key', |
|
| 711 | + 'zbug_distant_interdit' => 'External data forbidden', |
|
| 712 | + 'zbug_doublon_table_sans_cle_primaire' => 'Duplicate entries on a table which does not have a simple primary key', |
|
| 713 | + 'zbug_doublon_table_sans_index' => 'Duplicate entries on a table without an index', |
|
| 714 | + 'zbug_erreur_boucle_double' => 'Loop @id@: double definition', |
|
| 715 | + 'zbug_erreur_boucle_fermant' => 'Loop @id@: missing closing tag', |
|
| 716 | + 'zbug_erreur_boucle_syntaxe' => 'Syntax error in loop (BOUCLE)', |
|
| 717 | + 'zbug_erreur_compilation' => 'Compilation error', |
|
| 718 | + 'zbug_erreur_execution_page' => 'Execution error', |
|
| 719 | + 'zbug_erreur_filtre' => 'Undefined filter @filtre@', |
|
| 720 | + 'zbug_erreur_filtre_nbarg_min' => '@filtre@ filter: @nb@ argument(s) missing', |
|
| 721 | + 'zbug_erreur_meme_parent' => '{meme_parent} only applies to loops (FORUMS) and (RUBRIQUES)', |
|
| 722 | + 'zbug_erreur_squelette' => 'Error(s) in template', |
|
| 723 | + 'zbug_hors_compilation' => 'Uncompiled', |
|
| 724 | + 'zbug_info_erreur_squelette' => 'Error in the site', |
|
| 725 | + 'zbug_inversion_ordre_inexistant' => 'Reversion of non-existent order', |
|
| 726 | + 'zbug_pagination_sans_critere' => '#PAGINATION tag without {pagination} criterion, or used in a recursive loop', |
|
| 727 | + 'zbug_parametres_inclus_incorrects' => 'Wrong inclusion parameter: @param@', |
|
| 728 | + 'zbug_profile' => 'Calculation time: @time@', |
|
| 729 | + 'zbug_resultat' => 'result', |
|
| 730 | + 'zbug_serveur_indefini' => 'Undefined SQL server', |
|
| 731 | + 'zbug_statistiques' => 'SQL query statistics in order of duration', |
|
| 732 | + 'zbug_table_inconnue' => 'Unknown SQL table "@table@"', |
|
| 733 | + 'zxml_connus_attributs' => 'known attributes', |
|
| 734 | + 'zxml_de' => 'from', |
|
| 735 | + 'zxml_inconnu_attribut' => 'unknown attribute', |
|
| 736 | + 'zxml_inconnu_balise' => 'unknown tag', |
|
| 737 | + 'zxml_inconnu_entite' => 'unknown entity', |
|
| 738 | + 'zxml_inconnu_id' => 'unknown ID', |
|
| 739 | + 'zxml_mais_de' => 'but from', |
|
| 740 | + 'zxml_non_conforme' => 'not true to the principle', |
|
| 741 | + 'zxml_non_fils' => 'is not a child of', |
|
| 742 | + 'zxml_nonvide_balise' => 'tag not empty', |
|
| 743 | + 'zxml_obligatoire_attribut' => 'required attribute absent in', |
|
| 744 | + 'zxml_succession_fils_incorrecte' => 'incorrect child inheritance', |
|
| 745 | + 'zxml_survoler' => 'to see the correct ones, hover with the cursor', |
|
| 746 | + 'zxml_valeur_attribut' => 'attribute value', |
|
| 747 | + 'zxml_vide_balise' => 'empty tag', |
|
| 748 | + 'zxml_vu' => 'seen before' |
|
| 749 | 749 | ); |