Completed
Push — master ( 4fa0dc...b74578 )
by cam
01:19
created
ecrire/lang/ecrire_de.php 1 patch
Indentation   +839 added lines, -839 removed lines patch added patch discarded remove patch
@@ -4,886 +4,886 @@
 block discarded – undo
4 4
 // ** ne pas modifier le fichier **
5 5
 
6 6
 if (!defined('_ECRIRE_INC_VERSION')) {
7
-	return;
7
+    return;
8 8
 }
9 9
 
10 10
 $GLOBALS[$GLOBALS['idx_lang']] = array(
11 11
 
12
-	// A
13
-	'activer_plugin' => 'Plugin aktivieren',
14
-	'affichage' => 'Anzeigen',
15
-	'aide_non_disponible' => 'Dieser Teil der Online-Hilfe ist in dieser Sprache noch nicht verfügbar.',
16
-	'annuler_recherche' => 'Sucheingabe löschen',
17
-	'auteur' => 'Autor:',
18
-	'avis_acces_interdit' => 'Zugang gesperrt.',
19
-	'avis_acces_interdit_prive' => 'Sie haben nicht die Berechtigung zum Öffnen der Seite<b>@exec@</b>.',
20
-	'avis_article_modifie' => 'Achtung, @nom_auteur_modif@ hat vor @date_diff@ Minute(n) an diesem Artikel gearbeitet.',
21
-	'avis_aucun_resultat' => 'Kein Ergebnis.',
22
-	'avis_base_inaccessible' => 'Keine Verbindung mit Datenbank @base@ möglich.',
23
-	'avis_chemin_invalide_1' => 'Der von ihnen gewählte Pfad',
24
-	'avis_chemin_invalide_2' => 'scheint nicht zu stimmen. Bitte kehren Sie zur vorigen Seite zurück und überprüfen sie die Angaben.',
25
-	'avis_connexion_echec_1' => 'Die Verbindung zur Datenbank ist fehlgeschlagen.',
26
-	'avis_connexion_echec_2' => 'Kehren Sie zur vorigen Seite zurück und überprüfen sie ihre Eingaben.',
27
-	'avis_connexion_echec_3' => '<b>N.B.</b> Bei vielen Servern müssen Sie Ihre Datenbank ausdrücklich <b>freischalten lassen</b> um sie nutzen zu können. Falls die Verbindung wieder fehlschlägt, stellen Sie bitte sicher, dass Ihre Datenbank freigeschaltet wurde.',
28
-	'avis_connexion_erreur_creer_base' => 'Die Datenbank konnte nicht erstellt werden.',
29
-	'avis_connexion_erreur_fichier_cle_manquant_1' => 'Die Installation muss von einem Webmaster mit einem Backup der Schlüssel und seinem Passwort durchgeführt werden',
30
-	'avis_connexion_erreur_fichier_cle_manquant_2' => 'Die Installation muss von einem Webmaster mit einem Backup der Schlüssel durchgeführt werden',
31
-	'avis_connexion_erreur_nom_base' => 'Der Datenbankname darf nur Buchstaben, Ziffern und Bindestriche "-" enthalten.',
32
-	'avis_connexion_ldap_echec_1' => 'Die Verbindung zum LDAP-Server ist fehlgeschlagen.',
33
-	'avis_connexion_ldap_echec_2' => 'Kehren Sie zur vorigen Seite zurück und überprüfen sie ihre Eingaben.',
34
-	'avis_connexion_ldap_echec_3' => 'Sie können Benutzer auch ohne LDAP-Support importieren.',
35
-	'avis_deplacement_rubrique' => 'Achtung! diese Rubrik enthält @contient_breves@ Meldungen@scb@: wenn Sie Rubrik verschieben wollen, markieren Sie bitte zur Bestätigung dieses Kästchen.',
36
-	'avis_erreur_connexion_mysql' => 'SQL-Verbindungsfehler',
37
-	'avis_erreur_creation_compte' => 'Konto konnte nicht initialisiert werden',
38
-	'avis_espace_interdit' => '<b>Gesperrter Bereich</b> <div>SPIP ist bereits installiert.</div>',
39
-	'avis_lecture_noms_bases_1' => 'Das Installationsprogramm konnte die Namen der vorhandenen Datenbanken nicht lesen.',
40
-	'avis_lecture_noms_bases_2' => 'Entweder ist keine Datenbank vorhanden oder die Funktion zum Auflisten der Datenbanken ist aus Sicherheitsgründen abgeschaltet
12
+    // A
13
+    'activer_plugin' => 'Plugin aktivieren',
14
+    'affichage' => 'Anzeigen',
15
+    'aide_non_disponible' => 'Dieser Teil der Online-Hilfe ist in dieser Sprache noch nicht verfügbar.',
16
+    'annuler_recherche' => 'Sucheingabe löschen',
17
+    'auteur' => 'Autor:',
18
+    'avis_acces_interdit' => 'Zugang gesperrt.',
19
+    'avis_acces_interdit_prive' => 'Sie haben nicht die Berechtigung zum Öffnen der Seite<b>@exec@</b>.',
20
+    'avis_article_modifie' => 'Achtung, @nom_auteur_modif@ hat vor @date_diff@ Minute(n) an diesem Artikel gearbeitet.',
21
+    'avis_aucun_resultat' => 'Kein Ergebnis.',
22
+    'avis_base_inaccessible' => 'Keine Verbindung mit Datenbank @base@ möglich.',
23
+    'avis_chemin_invalide_1' => 'Der von ihnen gewählte Pfad',
24
+    'avis_chemin_invalide_2' => 'scheint nicht zu stimmen. Bitte kehren Sie zur vorigen Seite zurück und überprüfen sie die Angaben.',
25
+    'avis_connexion_echec_1' => 'Die Verbindung zur Datenbank ist fehlgeschlagen.',
26
+    'avis_connexion_echec_2' => 'Kehren Sie zur vorigen Seite zurück und überprüfen sie ihre Eingaben.',
27
+    'avis_connexion_echec_3' => '<b>N.B.</b> Bei vielen Servern müssen Sie Ihre Datenbank ausdrücklich <b>freischalten lassen</b> um sie nutzen zu können. Falls die Verbindung wieder fehlschlägt, stellen Sie bitte sicher, dass Ihre Datenbank freigeschaltet wurde.',
28
+    'avis_connexion_erreur_creer_base' => 'Die Datenbank konnte nicht erstellt werden.',
29
+    'avis_connexion_erreur_fichier_cle_manquant_1' => 'Die Installation muss von einem Webmaster mit einem Backup der Schlüssel und seinem Passwort durchgeführt werden',
30
+    'avis_connexion_erreur_fichier_cle_manquant_2' => 'Die Installation muss von einem Webmaster mit einem Backup der Schlüssel durchgeführt werden',
31
+    'avis_connexion_erreur_nom_base' => 'Der Datenbankname darf nur Buchstaben, Ziffern und Bindestriche "-" enthalten.',
32
+    'avis_connexion_ldap_echec_1' => 'Die Verbindung zum LDAP-Server ist fehlgeschlagen.',
33
+    'avis_connexion_ldap_echec_2' => 'Kehren Sie zur vorigen Seite zurück und überprüfen sie ihre Eingaben.',
34
+    'avis_connexion_ldap_echec_3' => 'Sie können Benutzer auch ohne LDAP-Support importieren.',
35
+    'avis_deplacement_rubrique' => 'Achtung! diese Rubrik enthält @contient_breves@ Meldungen@scb@: wenn Sie Rubrik verschieben wollen, markieren Sie bitte zur Bestätigung dieses Kästchen.',
36
+    'avis_erreur_connexion_mysql' => 'SQL-Verbindungsfehler',
37
+    'avis_erreur_creation_compte' => 'Konto konnte nicht initialisiert werden',
38
+    'avis_espace_interdit' => '<b>Gesperrter Bereich</b> <div>SPIP ist bereits installiert.</div>',
39
+    'avis_lecture_noms_bases_1' => 'Das Installationsprogramm konnte die Namen der vorhandenen Datenbanken nicht lesen.',
40
+    'avis_lecture_noms_bases_2' => 'Entweder ist keine Datenbank vorhanden oder die Funktion zum Auflisten der Datenbanken ist aus Sicherheitsgründen abgeschaltet
41 41
 (Das ist bei vielen Webhostern der Fall).',
42
-	'avis_lecture_noms_bases_3' => 'Im zweiten Fall ist wahrscheinlich eine Datenbank vorhanden, die Ihren Anmeldenamen trägt:',
43
-	'avis_non_acces_page' => 'Sie haben keinen Zugriff auf diese Seite.',
44
-	'avis_operation_echec' => 'Aktion fehlgeschlagen.',
45
-	'avis_operation_impossible' => 'Aktion nicht möglich',
46
-	'avis_suppression_base' => 'ACHTUNG, Daten werden unwiderruflich gelöscht.',
42
+    'avis_lecture_noms_bases_3' => 'Im zweiten Fall ist wahrscheinlich eine Datenbank vorhanden, die Ihren Anmeldenamen trägt:',
43
+    'avis_non_acces_page' => 'Sie haben keinen Zugriff auf diese Seite.',
44
+    'avis_operation_echec' => 'Aktion fehlgeschlagen.',
45
+    'avis_operation_impossible' => 'Aktion nicht möglich',
46
+    'avis_suppression_base' => 'ACHTUNG, Daten werden unwiderruflich gelöscht.',
47 47
 
48
-	// B
49
-	'bouton_acces_ldap' => 'LDAP Zugang hinzufügen',
50
-	'bouton_ajouter' => 'Hinzufügen',
51
-	'bouton_annuler' => 'Abbrechen',
52
-	'bouton_cache_activer' => 'Cache aktivieren',
53
-	'bouton_cache_desactiver' => 'Cache vorübergehend abschalten',
54
-	'bouton_demande_publication' => 'Artikel zur Veröffentlichung vorschlagen',
55
-	'bouton_desactive_tout' => 'Alles deaktivieren',
56
-	'bouton_desinstaller' => 'Deinstallieren',
57
-	'bouton_effacer_tout' => 'ALLES löschen',
58
-	'bouton_envoyer_message' => 'Nachricht fertig: Senden',
59
-	'bouton_fermer' => 'Schließen',
60
-	'bouton_mettre_a_jour_base' => 'Datenbank updaten',
61
-	'bouton_modifier' => 'Ändern',
62
-	'bouton_radio_afficher' => 'Anzeigen',
63
-	'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Auf der Liste angemeldeter Redakteure anzeigen',
64
-	'bouton_radio_envoi_annonces_adresse' => 'Editorische Ankündigungen an diese Adresse senden:',
65
-	'bouton_radio_envoi_liste_nouveautes' => 'Liste der neuesten Veröffentlichungen verschicken',
66
-	'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Ich will nicht auf dieser Liste zu sehen sein.',
67
-	'bouton_radio_non_envoi_annonces_editoriales' => 'Keine editorischen Ankündigungen verschicken',
68
-	'bouton_redirection' => 'UMLEITUNG',
69
-	'bouton_reinitialiser_aux_valeurs_par_defaut' => 'Mit Standardwerten neu initialisieren',
70
-	'bouton_relancer_inscription' => 'Anmeldung neu starten',
71
-	'bouton_relancer_inscriptions' => 'Anmeldungen neu starten',
72
-	'bouton_relancer_installation' => 'Installation wiederholen',
73
-	'bouton_reset_password' => 'Neues Passwort erzeugen und per Mail zusenden',
74
-	'bouton_suivant' => 'weiter',
75
-	'bouton_tenter_recuperation' => 'Reparatur versuchen',
76
-	'bouton_test_proxy' => 'Proxy testen',
77
-	'bouton_vider_cache' => 'Cache leeren',
48
+    // B
49
+    'bouton_acces_ldap' => 'LDAP Zugang hinzufügen',
50
+    'bouton_ajouter' => 'Hinzufügen',
51
+    'bouton_annuler' => 'Abbrechen',
52
+    'bouton_cache_activer' => 'Cache aktivieren',
53
+    'bouton_cache_desactiver' => 'Cache vorübergehend abschalten',
54
+    'bouton_demande_publication' => 'Artikel zur Veröffentlichung vorschlagen',
55
+    'bouton_desactive_tout' => 'Alles deaktivieren',
56
+    'bouton_desinstaller' => 'Deinstallieren',
57
+    'bouton_effacer_tout' => 'ALLES löschen',
58
+    'bouton_envoyer_message' => 'Nachricht fertig: Senden',
59
+    'bouton_fermer' => 'Schließen',
60
+    'bouton_mettre_a_jour_base' => 'Datenbank updaten',
61
+    'bouton_modifier' => 'Ändern',
62
+    'bouton_radio_afficher' => 'Anzeigen',
63
+    'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Auf der Liste angemeldeter Redakteure anzeigen',
64
+    'bouton_radio_envoi_annonces_adresse' => 'Editorische Ankündigungen an diese Adresse senden:',
65
+    'bouton_radio_envoi_liste_nouveautes' => 'Liste der neuesten Veröffentlichungen verschicken',
66
+    'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Ich will nicht auf dieser Liste zu sehen sein.',
67
+    'bouton_radio_non_envoi_annonces_editoriales' => 'Keine editorischen Ankündigungen verschicken',
68
+    'bouton_redirection' => 'UMLEITUNG',
69
+    'bouton_reinitialiser_aux_valeurs_par_defaut' => 'Mit Standardwerten neu initialisieren',
70
+    'bouton_relancer_inscription' => 'Anmeldung neu starten',
71
+    'bouton_relancer_inscriptions' => 'Anmeldungen neu starten',
72
+    'bouton_relancer_installation' => 'Installation wiederholen',
73
+    'bouton_reset_password' => 'Neues Passwort erzeugen und per Mail zusenden',
74
+    'bouton_suivant' => 'weiter',
75
+    'bouton_tenter_recuperation' => 'Reparatur versuchen',
76
+    'bouton_test_proxy' => 'Proxy testen',
77
+    'bouton_vider_cache' => 'Cache leeren',
78 78
 
79
-	// C
80
-	'cache_modifiable_webmestre' => 'Dieser Parameter kann vom Webmaster eingestellt werden.',
81
-	'calendrier_synchro' => 'Wenn Sie eine mit <b>iCal</b> kompatibles PIM-Programm verwenden, könne Sie es mit den Einträgen dieser Website synchronisieren.',
82
-	'config_activer_champs' => 'Aktivieren Sie folgende Felder',
83
-	'config_choix_base_sup' => 'Eine Datenbank auf diesem Server angeben',
84
-	'config_erreur_base_sup' => 'SPIP kann nicht auf die Liste der verfügbaren Datenbanken zugreifen.',
85
-	'config_info_base_sup' => 'Wenn Sie andere Datenbanken auf dem selben Server oder auf einem anderen mit SPIP abfragen möchten, können Sie sie mit dem Formular weiter unten deklarieren. Wenn Sie Felder leer lassen, werden die Verbindungsdaten der Hauptdatenbank verwendet.',
86
-	'config_info_base_sup_disponibles' => 'Bereits abfragbare Datenbanken:',
87
-	'config_info_enregistree' => 'Neue Einstellungen wurden gespeichert',
88
-	'config_info_logos' => 'Jedes Element der Website kann ein Logo und ein «mouseover-Logo» erhalten.',
89
-	'config_info_logos_utiliser' => 'Logos verwenden',
90
-	'config_info_logos_utiliser_non' => 'Logos nicht verwenden',
91
-	'config_info_logos_utiliser_survol' => 'Mouseover-Logos verwenden',
92
-	'config_info_logos_utiliser_survol_non' => 'Mouseover-Logos nicht verwenden',
93
-	'config_info_redirection' => 'Mit dieser Option können Sie virtuelle Artikel anlegen, die als Weiterleitung zu Artikeln anderer Websites oder ausserhalb von SPIP funktionieren.',
94
-	'config_redirection' => 'Virtuelle Artikel',
95
-	'config_titre_base_sup' => 'Deklaration einer zusätzlichen Datenbank',
96
-	'config_titre_base_sup_choix' => 'Wählen Sie eine zusätzliche Datenbank',
97
-	'connexion_ldap' => 'Verbindung:',
98
-	'creer_et_associer_un_auteur' => 'Autor anlegen und zuordnen',
79
+    // C
80
+    'cache_modifiable_webmestre' => 'Dieser Parameter kann vom Webmaster eingestellt werden.',
81
+    'calendrier_synchro' => 'Wenn Sie eine mit <b>iCal</b> kompatibles PIM-Programm verwenden, könne Sie es mit den Einträgen dieser Website synchronisieren.',
82
+    'config_activer_champs' => 'Aktivieren Sie folgende Felder',
83
+    'config_choix_base_sup' => 'Eine Datenbank auf diesem Server angeben',
84
+    'config_erreur_base_sup' => 'SPIP kann nicht auf die Liste der verfügbaren Datenbanken zugreifen.',
85
+    'config_info_base_sup' => 'Wenn Sie andere Datenbanken auf dem selben Server oder auf einem anderen mit SPIP abfragen möchten, können Sie sie mit dem Formular weiter unten deklarieren. Wenn Sie Felder leer lassen, werden die Verbindungsdaten der Hauptdatenbank verwendet.',
86
+    'config_info_base_sup_disponibles' => 'Bereits abfragbare Datenbanken:',
87
+    'config_info_enregistree' => 'Neue Einstellungen wurden gespeichert',
88
+    'config_info_logos' => 'Jedes Element der Website kann ein Logo und ein «mouseover-Logo» erhalten.',
89
+    'config_info_logos_utiliser' => 'Logos verwenden',
90
+    'config_info_logos_utiliser_non' => 'Logos nicht verwenden',
91
+    'config_info_logos_utiliser_survol' => 'Mouseover-Logos verwenden',
92
+    'config_info_logos_utiliser_survol_non' => 'Mouseover-Logos nicht verwenden',
93
+    'config_info_redirection' => 'Mit dieser Option können Sie virtuelle Artikel anlegen, die als Weiterleitung zu Artikeln anderer Websites oder ausserhalb von SPIP funktionieren.',
94
+    'config_redirection' => 'Virtuelle Artikel',
95
+    'config_titre_base_sup' => 'Deklaration einer zusätzlichen Datenbank',
96
+    'config_titre_base_sup_choix' => 'Wählen Sie eine zusätzliche Datenbank',
97
+    'connexion_ldap' => 'Verbindung:',
98
+    'creer_et_associer_un_auteur' => 'Autor anlegen und zuordnen',
99 99
 
100
-	// D
101
-	'date_mot_heures' => 'Stunden',
100
+    // D
101
+    'date_mot_heures' => 'Stunden',
102 102
 
103
-	// E
104
-	'ecran_connexion_couleur_principale' => 'Grundfarbe',
105
-	'ecran_connexion_image_fond' => 'Hintergrundbild',
106
-	'ecran_connexion_image_fond_explication' => 'Ein Bild verwenden (fFormat JPEG, 1920x1080 Pixel)',
107
-	'ecran_connexion_image_revenir_couleur_defaut' => 'Standardfarbe verwenden',
108
-	'ecran_connexion_titre' => 'Anmeldebildschirm',
109
-	'ecran_securite' => ' + Sicherheitsschirm @version@',
110
-	'email' => 'E-Mail',
111
-	'email_2' => 'E-Mail:',
112
-	'en_savoir_plus' => 'Weitere Informationen',
113
-	'entree_adresse_annuaire' => 'Adresse des Verzeichnisses',
114
-	'entree_adresse_email' => 'Ihre E-Mail Adresse',
115
-	'entree_adresse_email_2' => 'Mailadresse',
116
-	'entree_base_donnee_1' => 'Adresse des Datenbankservers',
117
-	'entree_base_donnee_2' => '(Oftmals entspricht diese Adresse der Ihrer Website, sie kann auch einfach „localhost“ lauten und gelegentlich darf das Feld leer bleiben.)',
118
-	'entree_biographie' => 'Ganz kurze Vorstellung / Lebenslauf',
119
-	'entree_chemin_acces' => 'Bitte den <b>Pfad angeben</b>:',
120
-	'entree_cle_pgp' => 'Ihr öffentlicher PGP-Schlüssel',
121
-	'entree_cle_pgp_2' => 'PGP-Schlüssel',
122
-	'entree_contenu_rubrique' => '(Inhalt der Rubrik)',
123
-	'entree_identifiants_connexion' => 'Ihre Verbindungsdaten ...',
124
-	'entree_identifiants_connexion_2' => 'Logindaten',
125
-	'entree_informations_connexion_ldap' => 'Bitte tragen Sie in dieses Formular die Zugangsdaten zu Ihrem LDAP-Verzeichnis ein. Sie erhalten diese Informationen von Ihrem System- oder Netzwerkadministrator.',
126
-	'entree_infos_perso' => 'Wer sind Sie?',
127
-	'entree_infos_perso_2' => 'Wer ist der Autor?',
128
-	'entree_interieur_rubrique' => 'In der Rubrik:',
129
-	'entree_liens_sites' => '<b>Hyperlink</b> (Quelle, Website zum Thema ...)',
130
-	'entree_login' => 'Ihr Login',
131
-	'entree_login_connexion_1' => 'Login für die Verbindung',
132
-	'entree_login_connexion_2' => '(Dieser entspricht häufig Ihrem FTP-Login, bleibt in manchen Fällen leer)',
133
-	'entree_mot_passe' => 'Ihr Passwort',
134
-	'entree_mot_passe_1' => 'Passwort für die Verbindung',
135
-	'entree_mot_passe_2' => '(Entspricht häufig Ihrem FTP-Login, bleibt in manchen Fällen leer)',
136
-	'entree_nom_fichier' => 'Bitte geben Sie den Namen der Datei @texte_compresse@ an:',
137
-	'entree_nom_pseudo' => 'Ihr Name oder Pseudonym',
138
-	'entree_nom_pseudo_1' => '(Ihr Name oder Nickname)',
139
-	'entree_nom_pseudo_2' => 'Name oder Pseudonym',
140
-	'entree_nom_site' => 'Der Titel Ihrer Website',
141
-	'entree_nom_site_2' => 'Name der Website des Autors',
142
-	'entree_nouveau_passe' => 'Neues Passwort',
143
-	'entree_passe_ldap' => 'Passwort',
144
-	'entree_port_annuaire' => 'Port (Nummer) des Verzeichnisses',
145
-	'entree_signature' => 'Unterschrift',
146
-	'entree_titre_obligatoire' => '<b>Titel</b> [Pflichtfeld]<br />',
147
-	'entree_url' => 'Adresse (URL) Ihrer Website',
148
-	'entree_url_2' => 'Adresse (URL) der Website',
149
-	'erreur_connect_deja_existant' => 'Ein Server mit diesem Namen existiert bereits.',
150
-	'erreur_contenu_suspect' => 'Text mit Escape-Zeichen',
151
-	'erreur_email_deja_existant' => 'Diese Adresse ist bereits gespeichert.',
152
-	'erreur_nom_connect_incorrect' => 'Dieser Servername ist nicht zulässig.',
153
-	'erreur_plugin_attribut_balise_manquant' => 'Attribut @attribut@ fehlt im Tag @balise@.',
154
-	'erreur_plugin_desinstalation_echouee' => 'Das Deinstallieren des Plugins ist fehlgeschlagen. Sie können es jedoch deaktivieren.',
155
-	'erreur_plugin_fichier_absent' => 'Datei nicht vorhanden',
156
-	'erreur_plugin_fichier_def_absent' => 'Definitionsdatei nicht vorhanden',
157
-	'erreur_plugin_nom_fonction_interdit' => 'Unzulässiger Funktionsname',
158
-	'erreur_plugin_nom_manquant' => 'Name des Plugin fehlt',
159
-	'erreur_plugin_prefix_manquant' => 'Namespace des Plugin nicht definiert',
160
-	'erreur_plugin_tag_plugin_absent' => '&lt;plugin&gt; fehlt in der Definitionsdatei',
161
-	'erreur_plugin_version_manquant' => 'Version des Plugin fehlt',
162
-	'erreur_type_fichier' => 'Falsches Dateiformat',
103
+    // E
104
+    'ecran_connexion_couleur_principale' => 'Grundfarbe',
105
+    'ecran_connexion_image_fond' => 'Hintergrundbild',
106
+    'ecran_connexion_image_fond_explication' => 'Ein Bild verwenden (fFormat JPEG, 1920x1080 Pixel)',
107
+    'ecran_connexion_image_revenir_couleur_defaut' => 'Standardfarbe verwenden',
108
+    'ecran_connexion_titre' => 'Anmeldebildschirm',
109
+    'ecran_securite' => ' + Sicherheitsschirm @version@',
110
+    'email' => 'E-Mail',
111
+    'email_2' => 'E-Mail:',
112
+    'en_savoir_plus' => 'Weitere Informationen',
113
+    'entree_adresse_annuaire' => 'Adresse des Verzeichnisses',
114
+    'entree_adresse_email' => 'Ihre E-Mail Adresse',
115
+    'entree_adresse_email_2' => 'Mailadresse',
116
+    'entree_base_donnee_1' => 'Adresse des Datenbankservers',
117
+    'entree_base_donnee_2' => '(Oftmals entspricht diese Adresse der Ihrer Website, sie kann auch einfach „localhost“ lauten und gelegentlich darf das Feld leer bleiben.)',
118
+    'entree_biographie' => 'Ganz kurze Vorstellung / Lebenslauf',
119
+    'entree_chemin_acces' => 'Bitte den <b>Pfad angeben</b>:',
120
+    'entree_cle_pgp' => 'Ihr öffentlicher PGP-Schlüssel',
121
+    'entree_cle_pgp_2' => 'PGP-Schlüssel',
122
+    'entree_contenu_rubrique' => '(Inhalt der Rubrik)',
123
+    'entree_identifiants_connexion' => 'Ihre Verbindungsdaten ...',
124
+    'entree_identifiants_connexion_2' => 'Logindaten',
125
+    'entree_informations_connexion_ldap' => 'Bitte tragen Sie in dieses Formular die Zugangsdaten zu Ihrem LDAP-Verzeichnis ein. Sie erhalten diese Informationen von Ihrem System- oder Netzwerkadministrator.',
126
+    'entree_infos_perso' => 'Wer sind Sie?',
127
+    'entree_infos_perso_2' => 'Wer ist der Autor?',
128
+    'entree_interieur_rubrique' => 'In der Rubrik:',
129
+    'entree_liens_sites' => '<b>Hyperlink</b> (Quelle, Website zum Thema ...)',
130
+    'entree_login' => 'Ihr Login',
131
+    'entree_login_connexion_1' => 'Login für die Verbindung',
132
+    'entree_login_connexion_2' => '(Dieser entspricht häufig Ihrem FTP-Login, bleibt in manchen Fällen leer)',
133
+    'entree_mot_passe' => 'Ihr Passwort',
134
+    'entree_mot_passe_1' => 'Passwort für die Verbindung',
135
+    'entree_mot_passe_2' => '(Entspricht häufig Ihrem FTP-Login, bleibt in manchen Fällen leer)',
136
+    'entree_nom_fichier' => 'Bitte geben Sie den Namen der Datei @texte_compresse@ an:',
137
+    'entree_nom_pseudo' => 'Ihr Name oder Pseudonym',
138
+    'entree_nom_pseudo_1' => '(Ihr Name oder Nickname)',
139
+    'entree_nom_pseudo_2' => 'Name oder Pseudonym',
140
+    'entree_nom_site' => 'Der Titel Ihrer Website',
141
+    'entree_nom_site_2' => 'Name der Website des Autors',
142
+    'entree_nouveau_passe' => 'Neues Passwort',
143
+    'entree_passe_ldap' => 'Passwort',
144
+    'entree_port_annuaire' => 'Port (Nummer) des Verzeichnisses',
145
+    'entree_signature' => 'Unterschrift',
146
+    'entree_titre_obligatoire' => '<b>Titel</b> [Pflichtfeld]<br />',
147
+    'entree_url' => 'Adresse (URL) Ihrer Website',
148
+    'entree_url_2' => 'Adresse (URL) der Website',
149
+    'erreur_connect_deja_existant' => 'Ein Server mit diesem Namen existiert bereits.',
150
+    'erreur_contenu_suspect' => 'Text mit Escape-Zeichen',
151
+    'erreur_email_deja_existant' => 'Diese Adresse ist bereits gespeichert.',
152
+    'erreur_nom_connect_incorrect' => 'Dieser Servername ist nicht zulässig.',
153
+    'erreur_plugin_attribut_balise_manquant' => 'Attribut @attribut@ fehlt im Tag @balise@.',
154
+    'erreur_plugin_desinstalation_echouee' => 'Das Deinstallieren des Plugins ist fehlgeschlagen. Sie können es jedoch deaktivieren.',
155
+    'erreur_plugin_fichier_absent' => 'Datei nicht vorhanden',
156
+    'erreur_plugin_fichier_def_absent' => 'Definitionsdatei nicht vorhanden',
157
+    'erreur_plugin_nom_fonction_interdit' => 'Unzulässiger Funktionsname',
158
+    'erreur_plugin_nom_manquant' => 'Name des Plugin fehlt',
159
+    'erreur_plugin_prefix_manquant' => 'Namespace des Plugin nicht definiert',
160
+    'erreur_plugin_tag_plugin_absent' => '&lt;plugin&gt; fehlt in der Definitionsdatei',
161
+    'erreur_plugin_version_manquant' => 'Version des Plugin fehlt',
162
+    'erreur_type_fichier' => 'Falsches Dateiformat',
163 163
 
164
-	// H
165
-	'htaccess_a_simuler' => 'Achtung: Ihr HTTP-Server ist so konfiguriert, daß er @htaccess@ Dateien ignoriert. Eine sichere Konfiguration des Servers erzielen sie, indem sie diese Einstellung ändern, oder indem sie die Konstanten  @constantes@ in der Datei mes_options.php so setzen, daß die Verzeichnisse außerhalb des @document_root@ liegen.',
166
-	'htaccess_inoperant' => 'htaccess unwirksam',
164
+    // H
165
+    'htaccess_a_simuler' => 'Achtung: Ihr HTTP-Server ist so konfiguriert, daß er @htaccess@ Dateien ignoriert. Eine sichere Konfiguration des Servers erzielen sie, indem sie diese Einstellung ändern, oder indem sie die Konstanten  @constantes@ in der Datei mes_options.php so setzen, daß die Verzeichnisse außerhalb des @document_root@ liegen.',
166
+    'htaccess_inoperant' => 'htaccess unwirksam',
167 167
 
168
-	// I
169
-	'ical_info1' => 'Diese Seite ermöglicht auf mehrere Arten an der Entwicklung der Website teilzunehmen.',
170
-	'ical_info2' => 'Um mehr über diese Techniken zu erfahren, lesen Sie bitte die <a href="@spipnet@">SPIP Dokumentation</a>.',
171
-	'ical_info_calendrier' => 'Sie verfügen über zwei Kalender. Einer gibt Ihnen eine Übersicht über die Website und alle dort veröffentlichten Artikel. Der zweite enthält editorische Ankündigungen und Ihre persönlichen Nachrichten. Sie allein haben Zugriff auf ihn indem Sie Ihr Passwort eingeben. Sie könne es ändern, indem Sie Ihr Zugangspasswort für diese Website ändern.',
172
-	'ical_methode_http' => 'Download',
173
-	'ical_methode_webcal' => 'Synchronisierung (webcal://)',
174
-	'ical_texte_prive' => 'Dieser nur für Sie selbst zugängliche Kalender hält Sie auf dem Laufenden über die internen redaktionellen Vorgänge dieser Website (Aufgaben und persönliche Termine, vorgeschlagene Artikel und Meldungen ...).',
175
-	'ical_texte_public' => 'Dieser Kalender gibt Ihnen einen Überblick über die Ereignisse im öffentlichen Bereich der Website.',
176
-	'ical_texte_rss' => 'Sie können die Neuheiten dieser Website mit einem beliebigen Programm anzeigen, dass das Format XML/RSS (Rich Site Summary) beherrscht. SPIP nutz dieses Protokoll auch, um neue Einträge aus anderen Websites zu übernehmen (sog. syndizierte Websites).',
177
-	'ical_titre_js' => 'Javascript',
178
-	'ical_titre_mailing' => 'Mailing-List',
179
-	'ical_titre_rss' => '"Backend" Datei',
180
-	'icone_accueil' => 'Start',
181
-	'icone_activer_cookie' => 'Verwaltungs-Cookie setzen',
182
-	'icone_activite' => 'Aktivität',
183
-	'icone_admin_plugin' => 'Plugin-Verwaltung',
184
-	'icone_administration' => 'Wartung',
185
-	'icone_afficher_auteurs' => 'Autoren anzeigen',
186
-	'icone_afficher_visiteurs' => 'Besucher anzeigen',
187
-	'icone_arret_discussion' => 'Aus dieser Diskussion aussteigen',
188
-	'icone_calendrier' => 'Kalender',
189
-	'icone_configuration' => 'Konfiguration',
190
-	'icone_creer_auteur' => 'Neuen Autor anlegen und diesem Artikel zuordnen',
191
-	'icone_creer_mot_cle' => 'Neues Schlagwort anlegen und mit diesem Artikel verknüpfen',
192
-	'icone_creer_rubrique_2' => 'Neue Rubrik anlegen',
193
-	'icone_developpement' => 'Entwicklung',
194
-	'icone_edition' => 'Redaktion',
195
-	'icone_ma_langue' => 'Meine Sprache',
196
-	'icone_mes_infos' => 'Meine Informationen',
197
-	'icone_mes_preferences' => 'Meine Einstellungen',
198
-	'icone_modifier_article' => 'Artikel bearbeiten',
199
-	'icone_modifier_rubrique' => 'Rubrik bearbeiten',
200
-	'icone_publication' => 'Veröffentlichen',
201
-	'icone_relancer_signataire' => 'Unterzeichner erneut benachrichtigen',
202
-	'icone_retour' => 'Zurück',
203
-	'icone_retour_article' => 'Zurück zum Artikel',
204
-	'icone_squelette' => 'Skelette',
205
-	'icone_suivi_publication' => 'Verlauf der Veröffentlichungen',
206
-	'icone_supprimer_cookie' => 'Verwaltungs-Cookie löschen',
207
-	'icone_supprimer_rubrique' => 'Rubrik löschen',
208
-	'icone_supprimer_signature' => 'Unterschrift löschen',
209
-	'icone_valider_signature' => 'Unterschrift bestätigen',
210
-	'image_administrer_rubrique' => 'Sie können diese Rubrik verwalten',
211
-	'impossible_modifier_login_auteur' => 'Login-ID kann nicht geändert werden.',
212
-	'impossible_modifier_pass_auteur' => 'Passwort kann nicht geändert werden.',
213
-	'info_1_article' => '1 Artikel',
214
-	'info_1_auteur' => '1 Autor',
215
-	'info_1_message' => '1 Nachricht',
216
-	'info_1_mot_cle' => '1 Schlagwort',
217
-	'info_1_rubrique' => '1 Rubrik',
218
-	'info_1_visiteur' => '1 Besucher',
219
-	'info_activer_cookie' => 'Sie können ein <b>Verwaltungs-Cookie</b> setzen. Es erlaubt Ihnen, Artikel und Rubriken direkt aus der Website zu bearbeiten.',
220
-	'info_activer_menu_developpement' => 'Entwicklermenü anzeigen',
221
-	'info_admin_etre_webmestre' => 'Mir Webmaster-Rechte geben',
222
-	'info_admin_je_suis_webmestre' => 'Ich bin <b>Webmaster</b>',
223
-	'info_admin_statuer_webmestre' => 'Diesem Administrator Webmaster-Rechte geben',
224
-	'info_admin_webmestre' => 'Dieser Administrator ist <b>Webmaster</b>',
225
-	'info_administrateur' => 'Administrator',
226
-	'info_administrateur_1' => 'Administrator',
227
-	'info_administrateur_2' => 'der Website (<i>vorsichtig einsetzen</i>)',
228
-	'info_administrateur_site_01' => 'Wenn Sie Administrator der Website sind, bitte',
229
-	'info_administrateur_site_02' => 'auf diesen Link klicken.',
230
-	'info_administrateurs' => 'Administratoren',
231
-	'info_administrer_rubrique' => 'Sie können diese Rubrik verwalten',
232
-	'info_adresse' => 'an Adresse:',
233
-	'info_adresse_desinscription' => 'Adresse für die Abmeldung:',
234
-	'info_adresse_url' => 'Adresse (URL) der öffentlichen Website',
235
-	'info_afficher_par_nb' => 'Anzeigen nach',
236
-	'info_aide_en_ligne' => 'SPIP Online-Hilfe',
237
-	'info_ajout_image' => 'Wenn Sie Bilder als Dokumente anlegen, die einem Artikel zugeordnet sind, kann SPIP automatisch (Miniatur-)Vorschaubilder dazu erstellen. Sie können so eine automatische Galerie oder Bildermappe einrichten.',
238
-	'info_ajouter_rubrique' => 'Eine weitere zu verwaltende Rubrik hinzufügen:',
239
-	'info_annonce_nouveautes' => 'Ankündigung der Neuigkeiten',
240
-	'info_article' => 'Artikel',
241
-	'info_article_2' => 'Artikel',
242
-	'info_article_a_paraitre' => 'Vordatierte Artikel, die noch nicht erschienen sind.',
243
-	'info_articles_02' => 'Artikel',
244
-	'info_articles_2' => 'Artikel',
245
-	'info_articles_auteur' => 'Alle Artikel dieses Autors',
246
-	'info_articles_miens' => 'Meine Artikel',
247
-	'info_articles_tous' => 'Alle Artikel',
248
-	'info_articles_trouves' => 'Gefundene Artikel',
249
-	'info_attente_validation' => 'Ihre zur Veröffentlichung vorgeschlagenen Artikel',
250
-	'info_aucun_article' => 'Kein Artikel',
251
-	'info_aucun_auteur' => 'Kein Autor',
252
-	'info_aucun_message' => 'Keine Nachricht',
253
-	'info_aucun_rubrique' => 'Keine Rubrik',
254
-	'info_aujourdhui' => 'heute: ',
255
-	'info_auteur_gere_rubriques' => 'Dieser Autor verwaltet folgende Rubriken :',
256
-	'info_auteur_gere_toutes_rubriques' => 'Dieser Autor verwaltet <b>alle Rubriken</b>.',
257
-	'info_auteur_gere_toutes_rubriques_2' => 'Ich verwalte <b>alle Rubriken</b>.',
258
-	'info_auteurs' => 'Autoren',
259
-	'info_auteurs_par_tri' => 'Autoren@partri@',
260
-	'info_auteurs_trouves' => 'Gefundene Autoren',
261
-	'info_authentification_externe' => 'Externe Authentifizierung',
262
-	'info_avertissement' => 'Warnung',
263
-	'info_barre_outils' => 'mit Symbolleiste?',
264
-	'info_base_installee' => 'Die Struktur Ihrer Datenbank wurde angelegt.',
265
-	'info_bio' => 'Biographie',
266
-	'info_cache_desactive' => 'Der Cache ist vorübergehend deaktiviert.',
267
-	'info_chapeau' => 'Kopf',
268
-	'info_chapeau_2' => 'Kopf:',
269
-	'info_chemin_acces_1' => 'Optionen: <b>Pfad im Verzeichnis</b>',
270
-	'info_chemin_acces_2' => 'Sie müssen jetzt den Pfad zu den Informationen im Verzeichnis angeben. Diese Information ist unbedingt erforderlich, um die Benutzerprofile im Verzeichnis lesen zu können.',
271
-	'info_chemin_acces_annuaire' => 'Optionen: <b>Pfad im Verzeichnis</b>',
272
-	'info_choix_base' => 'Schritt 3: ',
273
-	'info_classement_1' => ' von @liste@',
274
-	'info_classement_2' => 'von @liste@',
275
-	'info_code_acces' => 'Vergessen Sie ihre Zugangsdaten nicht!',
276
-	'info_config_suivi' => 'Wenn es sich bei dieser Adresse um eine Mailing-Liste handelt, können Sie unten die Adresse angeben, unter der sich Teilnehmer der Website anmelden können. Es kann sich um den URL einer Webseite handeln (die ein Anmeldeformular enthält) oder um eine E-Mail Adresse mit angehängtem Parameter (z.B. <tt>@adresse_suivi@?subject=subscribe</tt>):',
277
-	'info_config_suivi_explication' => 'Sie können die Mailing-Liste dieser Website abonnieren. Sie werden dann per E-Mail über neu zur Veröffentlichung vorgeschlagene Artikel informiert.',
278
-	'info_confirmer_passe' => 'Neues Passwort bestätigen:',
279
-	'info_conflit_edition_avis_non_sauvegarde' => 'Achtung, die folgenden Felder wurden von anderen geändert. Ihre Änderungen in diesen Feldern wurden deshalb nicht gespeichert.',
280
-	'info_conflit_edition_differences' => 'Unterschiede:',
281
-	'info_conflit_edition_version_enregistree' => 'Die gespeicherte Fassung:',
282
-	'info_conflit_edition_votre_version' => 'Ihre Fassung:',
283
-	'info_connexion_base' => 'Test der Verbindung zur Datenbank',
284
-	'info_connexion_base_donnee' => 'Verbindung mit Ihrer Datenbank',
285
-	'info_connexion_ldap_ok' => 'Die LDAP-Verbindung wurde hergestellt.</b><p> Sie können mit dem nächsten Schritt fortfahren.</p>',
286
-	'info_connexion_mysql' => 'Verbindung zur SQL-Datenbank',
287
-	'info_connexion_ok' => 'Die Verbindung wurde hergestellt.',
288
-	'info_contact' => 'Kontakt',
289
-	'info_contenu_articles' => 'Inhalt der Artikel',
290
-	'info_contributions' => 'Beiträge',
291
-	'info_creation_paragraphe' => 'Um einen Absatz einzufügen, lassen Sie einfach eine Zeile frei.',
292
-	'info_creation_rubrique' => 'Bevor Sie Artikel schreiben können,<br /> müssen Sie eine Rubrik anlegen.<br />',
293
-	'info_creation_tables' => 'Anlegen der Datentabellen',
294
-	'info_creer_base' => 'Neue Datenbank <b>anlegen</b>:',
295
-	'info_dans_rubrique' => 'In der Rubrik:',
296
-	'info_date_publication_anterieure' => 'Datum einer früheren Bearbeitung:',
297
-	'info_date_referencement' => 'DATUM DER VERLINKUNG DIESER WEBSITE:',
298
-	'info_derniere_etape' => 'Fertig!',
299
-	'info_descriptif' => 'Beschreibung:',
300
-	'info_desinstaller_plugin' => 'löscht die Daten und desktiviert das Plugin',
301
-	'info_discussion_cours' => 'Aktuelle Diskussionen',
302
-	'info_ecrire_article' => 'Bevor Sie Artikel schreiben könnnen, müssen Sie mindestens eine Rubrik anlegen.',
303
-	'info_email_envoi' => 'Absenderadresse (freiwillige Angabe)',
304
-	'info_email_envoi_txt' => 'Geben Sie hier die Absenderadresse der E-Mails an (ohne diese Angabe wird die Empfängeradresse als Absender eingetragen). ',
305
-	'info_email_webmestre' => 'E-Mail des Webmasters',
306
-	'info_envoi_email_automatique' => 'Automatischer Mailversand',
307
-	'info_envoyer_maintenant' => 'Jetzt schicken',
308
-	'info_etape_suivante' => 'Weiter',
309
-	'info_etape_suivante_1' => 'Sie können den nächsten Schritt ausführen.',
310
-	'info_etape_suivante_2' => 'Sie können den nächsten Schritt ausführen.',
311
-	'info_exceptions_proxy' => 'Ausnahmen für den Proxy',
312
-	'info_exportation_base' => 'Export der Datenbank nach @archive@',
313
-	'info_facilite_suivi_activite' => 'Um die editorische Arbeit zu erleichtern kann SPIP Veröffentlichungsvorschläge und Freischaltungen z.B. an eine Mailing-Liste der Redakteure schicken. Geben Sie eine oder mehrere Adressen an, die durch Kommata getrennt sind. ',
314
-	'info_fichiers_authent' => '“.htpasswd” Dateien',
315
-	'info_forums_abo_invites' => 'Ihre Website hat Foren für eingetragene Teilnehmer. Ihre Leser werden aus diesem Gund aufgefordert, sich bei Ihrer Website anzumelden.',
316
-	'info_gauche_admin_tech' => '<b>Diese Seite ist nur für den Verantwortlichen der Website zugänglich.</b><p>Sie erlaubt bestimmte technische Wartungsvorgänge auszulösen. Für manche Funktionen ist die Authentifizierung per FTP Voraussetzung.',
317
-	'info_gauche_admin_vider' => '<b>Diese Seite ist nur für den Verantwortlichen der Website zugänglich.</b><p>Sie erlaubt bestimmte technische Wartungsvorgänge auszulösen. Für manche Funktionen ist die Authentifizierung per FTP Voraussetzung.',
318
-	'info_gauche_auteurs' => 'Hier sehen Sie alle Autoren der Website.
168
+    // I
169
+    'ical_info1' => 'Diese Seite ermöglicht auf mehrere Arten an der Entwicklung der Website teilzunehmen.',
170
+    'ical_info2' => 'Um mehr über diese Techniken zu erfahren, lesen Sie bitte die <a href="@spipnet@">SPIP Dokumentation</a>.',
171
+    'ical_info_calendrier' => 'Sie verfügen über zwei Kalender. Einer gibt Ihnen eine Übersicht über die Website und alle dort veröffentlichten Artikel. Der zweite enthält editorische Ankündigungen und Ihre persönlichen Nachrichten. Sie allein haben Zugriff auf ihn indem Sie Ihr Passwort eingeben. Sie könne es ändern, indem Sie Ihr Zugangspasswort für diese Website ändern.',
172
+    'ical_methode_http' => 'Download',
173
+    'ical_methode_webcal' => 'Synchronisierung (webcal://)',
174
+    'ical_texte_prive' => 'Dieser nur für Sie selbst zugängliche Kalender hält Sie auf dem Laufenden über die internen redaktionellen Vorgänge dieser Website (Aufgaben und persönliche Termine, vorgeschlagene Artikel und Meldungen ...).',
175
+    'ical_texte_public' => 'Dieser Kalender gibt Ihnen einen Überblick über die Ereignisse im öffentlichen Bereich der Website.',
176
+    'ical_texte_rss' => 'Sie können die Neuheiten dieser Website mit einem beliebigen Programm anzeigen, dass das Format XML/RSS (Rich Site Summary) beherrscht. SPIP nutz dieses Protokoll auch, um neue Einträge aus anderen Websites zu übernehmen (sog. syndizierte Websites).',
177
+    'ical_titre_js' => 'Javascript',
178
+    'ical_titre_mailing' => 'Mailing-List',
179
+    'ical_titre_rss' => '"Backend" Datei',
180
+    'icone_accueil' => 'Start',
181
+    'icone_activer_cookie' => 'Verwaltungs-Cookie setzen',
182
+    'icone_activite' => 'Aktivität',
183
+    'icone_admin_plugin' => 'Plugin-Verwaltung',
184
+    'icone_administration' => 'Wartung',
185
+    'icone_afficher_auteurs' => 'Autoren anzeigen',
186
+    'icone_afficher_visiteurs' => 'Besucher anzeigen',
187
+    'icone_arret_discussion' => 'Aus dieser Diskussion aussteigen',
188
+    'icone_calendrier' => 'Kalender',
189
+    'icone_configuration' => 'Konfiguration',
190
+    'icone_creer_auteur' => 'Neuen Autor anlegen und diesem Artikel zuordnen',
191
+    'icone_creer_mot_cle' => 'Neues Schlagwort anlegen und mit diesem Artikel verknüpfen',
192
+    'icone_creer_rubrique_2' => 'Neue Rubrik anlegen',
193
+    'icone_developpement' => 'Entwicklung',
194
+    'icone_edition' => 'Redaktion',
195
+    'icone_ma_langue' => 'Meine Sprache',
196
+    'icone_mes_infos' => 'Meine Informationen',
197
+    'icone_mes_preferences' => 'Meine Einstellungen',
198
+    'icone_modifier_article' => 'Artikel bearbeiten',
199
+    'icone_modifier_rubrique' => 'Rubrik bearbeiten',
200
+    'icone_publication' => 'Veröffentlichen',
201
+    'icone_relancer_signataire' => 'Unterzeichner erneut benachrichtigen',
202
+    'icone_retour' => 'Zurück',
203
+    'icone_retour_article' => 'Zurück zum Artikel',
204
+    'icone_squelette' => 'Skelette',
205
+    'icone_suivi_publication' => 'Verlauf der Veröffentlichungen',
206
+    'icone_supprimer_cookie' => 'Verwaltungs-Cookie löschen',
207
+    'icone_supprimer_rubrique' => 'Rubrik löschen',
208
+    'icone_supprimer_signature' => 'Unterschrift löschen',
209
+    'icone_valider_signature' => 'Unterschrift bestätigen',
210
+    'image_administrer_rubrique' => 'Sie können diese Rubrik verwalten',
211
+    'impossible_modifier_login_auteur' => 'Login-ID kann nicht geändert werden.',
212
+    'impossible_modifier_pass_auteur' => 'Passwort kann nicht geändert werden.',
213
+    'info_1_article' => '1 Artikel',
214
+    'info_1_auteur' => '1 Autor',
215
+    'info_1_message' => '1 Nachricht',
216
+    'info_1_mot_cle' => '1 Schlagwort',
217
+    'info_1_rubrique' => '1 Rubrik',
218
+    'info_1_visiteur' => '1 Besucher',
219
+    'info_activer_cookie' => 'Sie können ein <b>Verwaltungs-Cookie</b> setzen. Es erlaubt Ihnen, Artikel und Rubriken direkt aus der Website zu bearbeiten.',
220
+    'info_activer_menu_developpement' => 'Entwicklermenü anzeigen',
221
+    'info_admin_etre_webmestre' => 'Mir Webmaster-Rechte geben',
222
+    'info_admin_je_suis_webmestre' => 'Ich bin <b>Webmaster</b>',
223
+    'info_admin_statuer_webmestre' => 'Diesem Administrator Webmaster-Rechte geben',
224
+    'info_admin_webmestre' => 'Dieser Administrator ist <b>Webmaster</b>',
225
+    'info_administrateur' => 'Administrator',
226
+    'info_administrateur_1' => 'Administrator',
227
+    'info_administrateur_2' => 'der Website (<i>vorsichtig einsetzen</i>)',
228
+    'info_administrateur_site_01' => 'Wenn Sie Administrator der Website sind, bitte',
229
+    'info_administrateur_site_02' => 'auf diesen Link klicken.',
230
+    'info_administrateurs' => 'Administratoren',
231
+    'info_administrer_rubrique' => 'Sie können diese Rubrik verwalten',
232
+    'info_adresse' => 'an Adresse:',
233
+    'info_adresse_desinscription' => 'Adresse für die Abmeldung:',
234
+    'info_adresse_url' => 'Adresse (URL) der öffentlichen Website',
235
+    'info_afficher_par_nb' => 'Anzeigen nach',
236
+    'info_aide_en_ligne' => 'SPIP Online-Hilfe',
237
+    'info_ajout_image' => 'Wenn Sie Bilder als Dokumente anlegen, die einem Artikel zugeordnet sind, kann SPIP automatisch (Miniatur-)Vorschaubilder dazu erstellen. Sie können so eine automatische Galerie oder Bildermappe einrichten.',
238
+    'info_ajouter_rubrique' => 'Eine weitere zu verwaltende Rubrik hinzufügen:',
239
+    'info_annonce_nouveautes' => 'Ankündigung der Neuigkeiten',
240
+    'info_article' => 'Artikel',
241
+    'info_article_2' => 'Artikel',
242
+    'info_article_a_paraitre' => 'Vordatierte Artikel, die noch nicht erschienen sind.',
243
+    'info_articles_02' => 'Artikel',
244
+    'info_articles_2' => 'Artikel',
245
+    'info_articles_auteur' => 'Alle Artikel dieses Autors',
246
+    'info_articles_miens' => 'Meine Artikel',
247
+    'info_articles_tous' => 'Alle Artikel',
248
+    'info_articles_trouves' => 'Gefundene Artikel',
249
+    'info_attente_validation' => 'Ihre zur Veröffentlichung vorgeschlagenen Artikel',
250
+    'info_aucun_article' => 'Kein Artikel',
251
+    'info_aucun_auteur' => 'Kein Autor',
252
+    'info_aucun_message' => 'Keine Nachricht',
253
+    'info_aucun_rubrique' => 'Keine Rubrik',
254
+    'info_aujourdhui' => 'heute: ',
255
+    'info_auteur_gere_rubriques' => 'Dieser Autor verwaltet folgende Rubriken :',
256
+    'info_auteur_gere_toutes_rubriques' => 'Dieser Autor verwaltet <b>alle Rubriken</b>.',
257
+    'info_auteur_gere_toutes_rubriques_2' => 'Ich verwalte <b>alle Rubriken</b>.',
258
+    'info_auteurs' => 'Autoren',
259
+    'info_auteurs_par_tri' => 'Autoren@partri@',
260
+    'info_auteurs_trouves' => 'Gefundene Autoren',
261
+    'info_authentification_externe' => 'Externe Authentifizierung',
262
+    'info_avertissement' => 'Warnung',
263
+    'info_barre_outils' => 'mit Symbolleiste?',
264
+    'info_base_installee' => 'Die Struktur Ihrer Datenbank wurde angelegt.',
265
+    'info_bio' => 'Biographie',
266
+    'info_cache_desactive' => 'Der Cache ist vorübergehend deaktiviert.',
267
+    'info_chapeau' => 'Kopf',
268
+    'info_chapeau_2' => 'Kopf:',
269
+    'info_chemin_acces_1' => 'Optionen: <b>Pfad im Verzeichnis</b>',
270
+    'info_chemin_acces_2' => 'Sie müssen jetzt den Pfad zu den Informationen im Verzeichnis angeben. Diese Information ist unbedingt erforderlich, um die Benutzerprofile im Verzeichnis lesen zu können.',
271
+    'info_chemin_acces_annuaire' => 'Optionen: <b>Pfad im Verzeichnis</b>',
272
+    'info_choix_base' => 'Schritt 3: ',
273
+    'info_classement_1' => ' von @liste@',
274
+    'info_classement_2' => 'von @liste@',
275
+    'info_code_acces' => 'Vergessen Sie ihre Zugangsdaten nicht!',
276
+    'info_config_suivi' => 'Wenn es sich bei dieser Adresse um eine Mailing-Liste handelt, können Sie unten die Adresse angeben, unter der sich Teilnehmer der Website anmelden können. Es kann sich um den URL einer Webseite handeln (die ein Anmeldeformular enthält) oder um eine E-Mail Adresse mit angehängtem Parameter (z.B. <tt>@adresse_suivi@?subject=subscribe</tt>):',
277
+    'info_config_suivi_explication' => 'Sie können die Mailing-Liste dieser Website abonnieren. Sie werden dann per E-Mail über neu zur Veröffentlichung vorgeschlagene Artikel informiert.',
278
+    'info_confirmer_passe' => 'Neues Passwort bestätigen:',
279
+    'info_conflit_edition_avis_non_sauvegarde' => 'Achtung, die folgenden Felder wurden von anderen geändert. Ihre Änderungen in diesen Feldern wurden deshalb nicht gespeichert.',
280
+    'info_conflit_edition_differences' => 'Unterschiede:',
281
+    'info_conflit_edition_version_enregistree' => 'Die gespeicherte Fassung:',
282
+    'info_conflit_edition_votre_version' => 'Ihre Fassung:',
283
+    'info_connexion_base' => 'Test der Verbindung zur Datenbank',
284
+    'info_connexion_base_donnee' => 'Verbindung mit Ihrer Datenbank',
285
+    'info_connexion_ldap_ok' => 'Die LDAP-Verbindung wurde hergestellt.</b><p> Sie können mit dem nächsten Schritt fortfahren.</p>',
286
+    'info_connexion_mysql' => 'Verbindung zur SQL-Datenbank',
287
+    'info_connexion_ok' => 'Die Verbindung wurde hergestellt.',
288
+    'info_contact' => 'Kontakt',
289
+    'info_contenu_articles' => 'Inhalt der Artikel',
290
+    'info_contributions' => 'Beiträge',
291
+    'info_creation_paragraphe' => 'Um einen Absatz einzufügen, lassen Sie einfach eine Zeile frei.',
292
+    'info_creation_rubrique' => 'Bevor Sie Artikel schreiben können,<br /> müssen Sie eine Rubrik anlegen.<br />',
293
+    'info_creation_tables' => 'Anlegen der Datentabellen',
294
+    'info_creer_base' => 'Neue Datenbank <b>anlegen</b>:',
295
+    'info_dans_rubrique' => 'In der Rubrik:',
296
+    'info_date_publication_anterieure' => 'Datum einer früheren Bearbeitung:',
297
+    'info_date_referencement' => 'DATUM DER VERLINKUNG DIESER WEBSITE:',
298
+    'info_derniere_etape' => 'Fertig!',
299
+    'info_descriptif' => 'Beschreibung:',
300
+    'info_desinstaller_plugin' => 'löscht die Daten und desktiviert das Plugin',
301
+    'info_discussion_cours' => 'Aktuelle Diskussionen',
302
+    'info_ecrire_article' => 'Bevor Sie Artikel schreiben könnnen, müssen Sie mindestens eine Rubrik anlegen.',
303
+    'info_email_envoi' => 'Absenderadresse (freiwillige Angabe)',
304
+    'info_email_envoi_txt' => 'Geben Sie hier die Absenderadresse der E-Mails an (ohne diese Angabe wird die Empfängeradresse als Absender eingetragen). ',
305
+    'info_email_webmestre' => 'E-Mail des Webmasters',
306
+    'info_envoi_email_automatique' => 'Automatischer Mailversand',
307
+    'info_envoyer_maintenant' => 'Jetzt schicken',
308
+    'info_etape_suivante' => 'Weiter',
309
+    'info_etape_suivante_1' => 'Sie können den nächsten Schritt ausführen.',
310
+    'info_etape_suivante_2' => 'Sie können den nächsten Schritt ausführen.',
311
+    'info_exceptions_proxy' => 'Ausnahmen für den Proxy',
312
+    'info_exportation_base' => 'Export der Datenbank nach @archive@',
313
+    'info_facilite_suivi_activite' => 'Um die editorische Arbeit zu erleichtern kann SPIP Veröffentlichungsvorschläge und Freischaltungen z.B. an eine Mailing-Liste der Redakteure schicken. Geben Sie eine oder mehrere Adressen an, die durch Kommata getrennt sind. ',
314
+    'info_fichiers_authent' => '“.htpasswd” Dateien',
315
+    'info_forums_abo_invites' => 'Ihre Website hat Foren für eingetragene Teilnehmer. Ihre Leser werden aus diesem Gund aufgefordert, sich bei Ihrer Website anzumelden.',
316
+    'info_gauche_admin_tech' => '<b>Diese Seite ist nur für den Verantwortlichen der Website zugänglich.</b><p>Sie erlaubt bestimmte technische Wartungsvorgänge auszulösen. Für manche Funktionen ist die Authentifizierung per FTP Voraussetzung.',
317
+    'info_gauche_admin_vider' => '<b>Diese Seite ist nur für den Verantwortlichen der Website zugänglich.</b><p>Sie erlaubt bestimmte technische Wartungsvorgänge auszulösen. Für manche Funktionen ist die Authentifizierung per FTP Voraussetzung.',
318
+    'info_gauche_auteurs' => 'Hier sehen Sie alle Autoren der Website.
319 319
 Ihr Status wird durch die Farbe ihres Symbols angezeigt (Redakteur = gelb; Administrator = grün). ',
320
-	'info_gauche_auteurs_exterieurs' => 'Externe Autoren ohne Zugang zum Redaktionssystem werden mit einem blauen Symbol gekennzeichnet, gelöschte Autoren haben eine Mülltonne als Symbol.',
321
-	'info_gauche_messagerie' => 'Nachrichtensystem: SPIP ermöglicht den Austausch von Nachrichten zwischen Redakteuren, persönliche Merkzettel und Ankündigungen im privaten Arbeitsbereich der Redakteure (nur Administratoren können diese verschicken).',
322
-	'info_gauche_statistiques_referers' => 'Diese Seite zeigt Ihnen <i>REFERER</i>, d.h. Webadressen mit Links zu Ihrer Website. Angezeigt werden nur Links von gestern und heute, diese Liste wird alle 24 Stunden auf Null gesetzt.',
323
-	'info_gauche_visiteurs_enregistres' => 'Hier sehen Sie die im öffentlichen Bereich der Website angemeldeten Besucher (Teilnahme an Foren nur mit gültiger E-Mail Adresse).',
324
-	'info_generation_miniatures_images' => 'Anlegen der Vorschaubilder',
325
-	'info_gerer_trad_objets' => '@objets@: Übersetzungslinks verwalten',
326
-	'info_hebergeur_desactiver_envoi_email' => 'Manche ISPs verhindern den Versand von Mails mit PHP. Die Mailfunktionen von SPIP funktionieren dann nicht.',
327
-	'info_hier' => 'Gestern:',
328
-	'info_identification_publique' => 'Ihre öffentliche Identität ...',
329
-	'info_image_process' => 'Bitte wählen Sie das beste Verfahren zum Generieren der Miniaturbilder, indem Sie auf ein Bild klicken.',
330
-	'info_image_process2' => 'Wenn kein Bild angezeigt wird, ist der Server ihrer Website nicht für die Verwendung solcher Werkzeuge eingerichtet. Wenn Sie diese Funktionen nutzen möchten, wenden Sie sich bitte an den verantwortlichen Techniker und bitten ihn, die Erweiterungen «GD» oder «Imagick» einzurichten.',
331
-	'info_images_auto' => 'automatisch berechnete Bilder',
332
-	'info_informations_personnelles' => 'Persönliche Informationen',
333
-	'info_inscription' => 'Angemeldet am',
334
-	'info_inscription_automatique' => 'Automatische Anmeldung neuer Redakteure',
335
-	'info_jeu_caractere' => 'Zeichensatz der Website',
336
-	'info_jours' => 'Tage',
337
-	'info_laisser_champs_vides' => 'diese Felder frei lassen)',
338
-	'info_langues' => 'Sprachen der Website',
339
-	'info_ldap_ok' => 'Die LDAP-Authentifizierung ist installiert.',
340
-	'info_lien_hypertexte' => 'Hyperlink:',
341
-	'info_liste_nouveautes_envoyee' => 'Die Liste der Neuerscheinungen wurde versand.',
342
-	'info_liste_redacteurs_connectes' => 'Liste der zur Zeit angemeldeten Redakteure',
343
-	'info_login_existant' => 'Dieses Login ist bereits vergeben.',
344
-	'info_login_trop_court' => 'Login zu kurz.',
345
-	'info_login_trop_court_car_pluriel' => 'Ihr Login muss mindestens @nb@ Zeichen haben.',
346
-	'info_logos' => 'Die Logos',
347
-	'info_maximum' => 'Maximum:',
348
-	'info_meme_rubrique' => 'In der gleichen Rubrik',
349
-	'info_message_en_redaction' => 'IHRE NACHRICHTEN IN BEARBEITUNG',
350
-	'info_message_technique' => 'Technische Nachricht:',
351
-	'info_messagerie_interne' => 'Interne Nachrichten',
352
-	'info_mise_a_niveau_base' => 'Update Ihrer SQL-Datenbank',
353
-	'info_mise_a_niveau_base_2' => '{{ACHTUNG!}} Sie haben eine {ältere} Version der SPIP-Dateien installiert als sich vorher auf Ihrem Server befand. Ihre Datenbank wird möglicherweise zerstört und Ihre Website wird nict mehr funktionieren.<br />{{Installieren Sie SPIP noch einmal.}}',
354
-	'info_modification_enregistree' => 'Ihre Änderung wurde gespeichert.',
355
-	'info_modifier_auteur' => 'Autor bearbeiten:',
356
-	'info_modifier_rubrique' => 'Rubrik bearbeiten:',
357
-	'info_modifier_titre' => 'Bearbeiten: @titre@',
358
-	'info_mon_site_spip' => 'Meine SPIP-Site',
359
-	'info_moyenne' => 'Durchschnitt: ',
360
-	'info_multi_cet_article' => 'Dieser Artikel ist auf: ',
361
-	'info_multi_langues_choisies' => 'Bitte wählen Sie hier die Sprachen aus, die den Redakteuren Ihrer Website zur Verfügung stehen sollen. Die Sprachen, welche bereits in Ihrer Website verwendet werden (oben auf der Liste), können nicht abgeschaltet werden.',
362
-	'info_multi_objets' => '@objets@: Sprachauswahlmenü aktivieren',
363
-	'info_multi_secteurs' => '... nur für Rubriken der obersten Ebene?',
364
-	'info_nb_articles' => '@nb@ Artikel',
365
-	'info_nb_auteurs' => '@nb@ Autoren',
366
-	'info_nb_messages' => '@nb@ Nachrichten',
367
-	'info_nb_mots_cles' => '@nb@ Schlagworte',
368
-	'info_nb_rubriques' => '@nb@ Rubriken',
369
-	'info_nb_visiteurs' => '@nb@ Besucher',
370
-	'info_nom' => 'Name',
371
-	'info_nom_destinataire' => 'Name des Empfängers',
372
-	'info_nom_pas_conforme' => 'HTNL-Tags sind nicht zugelassen.',
373
-	'info_nom_site' => 'Name Ihrer Website',
374
-	'info_nombre_articles' => '@nb_articles@ Artikel,',
375
-	'info_nombre_rubriques' => '@nb_rubriques@ Rubriken, ',
376
-	'info_nombre_sites' => '@nb_sites@ Websites, ',
377
-	'info_non_deplacer' => 'Bitte nicht verschieben...',
378
-	'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP kann regelmäßig die letzten Neuigkeiten der Website verschicken. (vor Kurzem erschienene Artikel und Meldungen).',
379
-	'info_non_envoi_liste_nouveautes' => 'Keine Liste der Neuigkeiten verschicken.',
380
-	'info_non_modifiable' => 'kann nicht geändert werden.',
381
-	'info_non_suppression_mot_cle' => 'ich möchte dieses Schlagwort nicht löschen.',
382
-	'info_notes' => 'Anmerkungen', # Fußnoten bzw. #NOTES werden besser als "Anmerkungen" denn als "Notizen" bezeichnet.
383
-	'info_nouvel_article' => 'Neuer Artikel',
384
-	'info_nouvelle_traduction' => 'Neue Übersetzung:',
385
-	'info_numero_article' => 'ARTIKEL NUMMER:',
386
-	'info_obligatoire_02' => ' (erforderlich)',
387
-	'info_option_accepter_visiteurs' => 'Besucher dürfen sich als Leser der Website anmelden.',
388
-	'info_option_ne_pas_accepter_visiteurs' => 'Anmeldung von Lesern verhindern',
389
-	'info_options_avancees' => 'SPEZIALFUNKTIONEN',
390
-	'info_ou' => 'oder ... ',
391
-	'info_page_interdite' => 'Seite gesperrt',
392
-	'info_par_nom' => 'nach Namen',
393
-	'info_par_nombre_article' => 'nach Anzahl der Artikel',
394
-	'info_par_statut' => 'nach Status',
395
-	'info_par_tri' => '’(nach @tri@)’',
396
-	'info_passe_trop_court' => 'Passwort zu kurz.',
397
-	'info_passe_trop_court_car_pluriel' => 'Das Passwort muss mindestens @nb@ Zeichen haben.',
398
-	'info_passes_identiques' => 'Die zwei Passworte stimmen nicht überein.',
399
-	'info_plus_cinq_car' => 'mehr als 5 Zeichen',
400
-	'info_plus_cinq_car_2' => '(mehr als 5 Zeichen)',
401
-	'info_plus_trois_car' => '(mehr als 3 Zeichen)',
402
-	'info_popularite' => 'Beliebtheit: @popularite@ ; Besuche: @visites@',
403
-	'info_post_scriptum' => 'Post-Scriptum',
404
-	'info_post_scriptum_2' => 'Post-scriptum:',
405
-	'info_pour' => 'für',
406
-	'info_preview_texte' => 'Man kann sich alle Elemente der Website so anzeigen lassen, als ob sie veröffentlicht wären, vorausgesetzt sie haben mindestens den Status « vorgeschlagen » oder man ist ihr Autor . Wem soll diese Möglichkeit zur Verfügung stehen (Adminsitratoren, Redakteure, niemand)?',
407
-	'info_procedez_par_etape' => 'gehen Sie Schritt für Schritt vor',
408
-	'info_procedure_maj_version' => 'Sie müssen die Update-Funktion starten, um Ihre Datenbank an die neue Version von SPIP anzupassen.',
409
-	'info_proxy_ok' => 'Proxytest erfolgreich.',
410
-	'info_ps' => 'P.S.',
411
-	'info_publier' => 'veröffentlichen',
412
-	'info_publies' => 'Ihre veröffentlichten Artikel',
413
-	'info_question_accepter_visiteurs' => 'Bitte aktivieren Sie die folgende Option, wenn sich Besucher Ihrer Website als <i>Leser ohne Zugang zum Redaktionssystem</i> anmelden können.',
414
-	'info_question_inscription_nouveaux_redacteurs' => 'Möchten Sie, dass sich neue Redakteure vom öffentlichen Bereich
320
+    'info_gauche_auteurs_exterieurs' => 'Externe Autoren ohne Zugang zum Redaktionssystem werden mit einem blauen Symbol gekennzeichnet, gelöschte Autoren haben eine Mülltonne als Symbol.',
321
+    'info_gauche_messagerie' => 'Nachrichtensystem: SPIP ermöglicht den Austausch von Nachrichten zwischen Redakteuren, persönliche Merkzettel und Ankündigungen im privaten Arbeitsbereich der Redakteure (nur Administratoren können diese verschicken).',
322
+    'info_gauche_statistiques_referers' => 'Diese Seite zeigt Ihnen <i>REFERER</i>, d.h. Webadressen mit Links zu Ihrer Website. Angezeigt werden nur Links von gestern und heute, diese Liste wird alle 24 Stunden auf Null gesetzt.',
323
+    'info_gauche_visiteurs_enregistres' => 'Hier sehen Sie die im öffentlichen Bereich der Website angemeldeten Besucher (Teilnahme an Foren nur mit gültiger E-Mail Adresse).',
324
+    'info_generation_miniatures_images' => 'Anlegen der Vorschaubilder',
325
+    'info_gerer_trad_objets' => '@objets@: Übersetzungslinks verwalten',
326
+    'info_hebergeur_desactiver_envoi_email' => 'Manche ISPs verhindern den Versand von Mails mit PHP. Die Mailfunktionen von SPIP funktionieren dann nicht.',
327
+    'info_hier' => 'Gestern:',
328
+    'info_identification_publique' => 'Ihre öffentliche Identität ...',
329
+    'info_image_process' => 'Bitte wählen Sie das beste Verfahren zum Generieren der Miniaturbilder, indem Sie auf ein Bild klicken.',
330
+    'info_image_process2' => 'Wenn kein Bild angezeigt wird, ist der Server ihrer Website nicht für die Verwendung solcher Werkzeuge eingerichtet. Wenn Sie diese Funktionen nutzen möchten, wenden Sie sich bitte an den verantwortlichen Techniker und bitten ihn, die Erweiterungen «GD» oder «Imagick» einzurichten.',
331
+    'info_images_auto' => 'automatisch berechnete Bilder',
332
+    'info_informations_personnelles' => 'Persönliche Informationen',
333
+    'info_inscription' => 'Angemeldet am',
334
+    'info_inscription_automatique' => 'Automatische Anmeldung neuer Redakteure',
335
+    'info_jeu_caractere' => 'Zeichensatz der Website',
336
+    'info_jours' => 'Tage',
337
+    'info_laisser_champs_vides' => 'diese Felder frei lassen)',
338
+    'info_langues' => 'Sprachen der Website',
339
+    'info_ldap_ok' => 'Die LDAP-Authentifizierung ist installiert.',
340
+    'info_lien_hypertexte' => 'Hyperlink:',
341
+    'info_liste_nouveautes_envoyee' => 'Die Liste der Neuerscheinungen wurde versand.',
342
+    'info_liste_redacteurs_connectes' => 'Liste der zur Zeit angemeldeten Redakteure',
343
+    'info_login_existant' => 'Dieses Login ist bereits vergeben.',
344
+    'info_login_trop_court' => 'Login zu kurz.',
345
+    'info_login_trop_court_car_pluriel' => 'Ihr Login muss mindestens @nb@ Zeichen haben.',
346
+    'info_logos' => 'Die Logos',
347
+    'info_maximum' => 'Maximum:',
348
+    'info_meme_rubrique' => 'In der gleichen Rubrik',
349
+    'info_message_en_redaction' => 'IHRE NACHRICHTEN IN BEARBEITUNG',
350
+    'info_message_technique' => 'Technische Nachricht:',
351
+    'info_messagerie_interne' => 'Interne Nachrichten',
352
+    'info_mise_a_niveau_base' => 'Update Ihrer SQL-Datenbank',
353
+    'info_mise_a_niveau_base_2' => '{{ACHTUNG!}} Sie haben eine {ältere} Version der SPIP-Dateien installiert als sich vorher auf Ihrem Server befand. Ihre Datenbank wird möglicherweise zerstört und Ihre Website wird nict mehr funktionieren.<br />{{Installieren Sie SPIP noch einmal.}}',
354
+    'info_modification_enregistree' => 'Ihre Änderung wurde gespeichert.',
355
+    'info_modifier_auteur' => 'Autor bearbeiten:',
356
+    'info_modifier_rubrique' => 'Rubrik bearbeiten:',
357
+    'info_modifier_titre' => 'Bearbeiten: @titre@',
358
+    'info_mon_site_spip' => 'Meine SPIP-Site',
359
+    'info_moyenne' => 'Durchschnitt: ',
360
+    'info_multi_cet_article' => 'Dieser Artikel ist auf: ',
361
+    'info_multi_langues_choisies' => 'Bitte wählen Sie hier die Sprachen aus, die den Redakteuren Ihrer Website zur Verfügung stehen sollen. Die Sprachen, welche bereits in Ihrer Website verwendet werden (oben auf der Liste), können nicht abgeschaltet werden.',
362
+    'info_multi_objets' => '@objets@: Sprachauswahlmenü aktivieren',
363
+    'info_multi_secteurs' => '... nur für Rubriken der obersten Ebene?',
364
+    'info_nb_articles' => '@nb@ Artikel',
365
+    'info_nb_auteurs' => '@nb@ Autoren',
366
+    'info_nb_messages' => '@nb@ Nachrichten',
367
+    'info_nb_mots_cles' => '@nb@ Schlagworte',
368
+    'info_nb_rubriques' => '@nb@ Rubriken',
369
+    'info_nb_visiteurs' => '@nb@ Besucher',
370
+    'info_nom' => 'Name',
371
+    'info_nom_destinataire' => 'Name des Empfängers',
372
+    'info_nom_pas_conforme' => 'HTNL-Tags sind nicht zugelassen.',
373
+    'info_nom_site' => 'Name Ihrer Website',
374
+    'info_nombre_articles' => '@nb_articles@ Artikel,',
375
+    'info_nombre_rubriques' => '@nb_rubriques@ Rubriken, ',
376
+    'info_nombre_sites' => '@nb_sites@ Websites, ',
377
+    'info_non_deplacer' => 'Bitte nicht verschieben...',
378
+    'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP kann regelmäßig die letzten Neuigkeiten der Website verschicken. (vor Kurzem erschienene Artikel und Meldungen).',
379
+    'info_non_envoi_liste_nouveautes' => 'Keine Liste der Neuigkeiten verschicken.',
380
+    'info_non_modifiable' => 'kann nicht geändert werden.',
381
+    'info_non_suppression_mot_cle' => 'ich möchte dieses Schlagwort nicht löschen.',
382
+    'info_notes' => 'Anmerkungen', # Fußnoten bzw. #NOTES werden besser als "Anmerkungen" denn als "Notizen" bezeichnet.
383
+    'info_nouvel_article' => 'Neuer Artikel',
384
+    'info_nouvelle_traduction' => 'Neue Übersetzung:',
385
+    'info_numero_article' => 'ARTIKEL NUMMER:',
386
+    'info_obligatoire_02' => ' (erforderlich)',
387
+    'info_option_accepter_visiteurs' => 'Besucher dürfen sich als Leser der Website anmelden.',
388
+    'info_option_ne_pas_accepter_visiteurs' => 'Anmeldung von Lesern verhindern',
389
+    'info_options_avancees' => 'SPEZIALFUNKTIONEN',
390
+    'info_ou' => 'oder ... ',
391
+    'info_page_interdite' => 'Seite gesperrt',
392
+    'info_par_nom' => 'nach Namen',
393
+    'info_par_nombre_article' => 'nach Anzahl der Artikel',
394
+    'info_par_statut' => 'nach Status',
395
+    'info_par_tri' => '’(nach @tri@)’',
396
+    'info_passe_trop_court' => 'Passwort zu kurz.',
397
+    'info_passe_trop_court_car_pluriel' => 'Das Passwort muss mindestens @nb@ Zeichen haben.',
398
+    'info_passes_identiques' => 'Die zwei Passworte stimmen nicht überein.',
399
+    'info_plus_cinq_car' => 'mehr als 5 Zeichen',
400
+    'info_plus_cinq_car_2' => '(mehr als 5 Zeichen)',
401
+    'info_plus_trois_car' => '(mehr als 3 Zeichen)',
402
+    'info_popularite' => 'Beliebtheit: @popularite@ ; Besuche: @visites@',
403
+    'info_post_scriptum' => 'Post-Scriptum',
404
+    'info_post_scriptum_2' => 'Post-scriptum:',
405
+    'info_pour' => 'für',
406
+    'info_preview_texte' => 'Man kann sich alle Elemente der Website so anzeigen lassen, als ob sie veröffentlicht wären, vorausgesetzt sie haben mindestens den Status « vorgeschlagen » oder man ist ihr Autor . Wem soll diese Möglichkeit zur Verfügung stehen (Adminsitratoren, Redakteure, niemand)?',
407
+    'info_procedez_par_etape' => 'gehen Sie Schritt für Schritt vor',
408
+    'info_procedure_maj_version' => 'Sie müssen die Update-Funktion starten, um Ihre Datenbank an die neue Version von SPIP anzupassen.',
409
+    'info_proxy_ok' => 'Proxytest erfolgreich.',
410
+    'info_ps' => 'P.S.',
411
+    'info_publier' => 'veröffentlichen',
412
+    'info_publies' => 'Ihre veröffentlichten Artikel',
413
+    'info_question_accepter_visiteurs' => 'Bitte aktivieren Sie die folgende Option, wenn sich Besucher Ihrer Website als <i>Leser ohne Zugang zum Redaktionssystem</i> anmelden können.',
414
+    'info_question_inscription_nouveaux_redacteurs' => 'Möchten Sie, dass sich neue Redakteure vom öffentlichen Bereich
415 415
  aus anmelden können? Wenn Sie es wollen, können sich Besucher über ein automatisch
416 416
  erstelltes Formular anmelden und Artikel vorschlagen.
417 417
  <div class="notice">Nach der Anmeldung erhalten die neuen Redakteure automatisch
418 418
  eine E-Mail mit ihren Zugangsdaten. Manche Webhoster unterbinden den Mailversand
419 419
  von ihren Webservern aus.
420 420
  In diesem Fall funktioniert die automatische Anmeldung nicht.</div>',
421
-	'info_qui_edite' => '@nom_auteur_modif@ hat vor  @date_diff@ Minuten an diesem Objekt gearbeitet.',
422
-	'info_racine_site' => 'OBERSTE EBENE DER WEBSITE',
423
-	'info_recharger_page' => 'Bitte laden Sie diese Seite in ein paar Augenblicken erneut.',
424
-	'info_recherche_auteur_zero' => 'Kein Ergebnis zu “@cherche_auteur@” gefunden.',
425
-	'info_recommencer' => 'Bitte wiederholen.',
426
-	'info_redacteur_1' => 'Redakteur',
427
-	'info_redacteur_2' => 'mit Zugang zum Redaktionssystem (<i>empfohlen</i>)',
428
-	'info_redacteurs' => 'Redakteure',
429
-	'info_redaction_en_cours' => 'IN BEARBEITUNG',
430
-	'info_redirection' => 'Umleitung',
431
-	'info_redirection_activee' => 'Die Weiterleitung ist aktiviert.',
432
-	'info_redirection_boucle' => 'Sie versuchen, den Artikel mit sich selber zu verlinken.',
433
-	'info_redirection_desactivee' => 'Die Weiterleitung wurde abgeschaltet.',
434
-	'info_refuses' => 'Ihre abgelehnten Artikel',
435
-	'info_reglage_ldap' => 'Optionen: <b>LDAP-Import Einstellungen</b>',
436
-	'info_renvoi_article' => '<b>Umleitung.</b> Dieser Artikel zeigt auf die Seite: ',
437
-	'info_reserve_admin' => 'Nur Administratoren können diese Seite ändern.',
438
-	'info_restreindre_rubrique' => 'Administrationsrechte auf diese Rubrik beschränken:',
439
-	'info_resultat_recherche' => 'Suchergebnisse:',
440
-	'info_rubriques' => 'Rubriken',
441
-	'info_rubriques_02' => 'Rubriken',
442
-	'info_rubriques_trouvees' => 'Rubriken gefunden',
443
-	'info_sans_titre' => 'Ohne Titel',
444
-	'info_selection_chemin_acces' => '<b>Wählen Sie</b> hier den Pfad zu Ihrem Verzeichnis:',
445
-	'info_signatures' => 'Unterschriften',
446
-	'info_site' => 'Website',
447
-	'info_site_2' => 'Website: ',
448
-	'info_site_min' => 'Website',
449
-	'info_site_reference_2' => 'Verlinkte Website',
450
-	'info_site_web' => 'Website:',
451
-	'info_sites' => 'Websites',
452
-	'info_sites_lies_mot' => 'Mit dieser Website verknüpfte Schlagworte',
453
-	'info_sites_proxy' => 'HTTP-Proxy verwenden',
454
-	'info_sites_trouves' => 'Gefundene Websites',
455
-	'info_sous_titre' => 'Untertitel:',
456
-	'info_statut_administrateur' => 'Administrator',
457
-	'info_statut_auteur' => 'Status des Autors:',
458
-	'info_statut_auteur_2' => 'Ich bin',
459
-	'info_statut_auteur_a_confirmer' => 'Anmeldung bestätigen',
460
-	'info_statut_auteur_autre' => 'Anderer Status:',
461
-	'info_statut_redacteur' => 'Redakteur',
462
-	'info_statut_utilisateurs_1' => 'Vorgegebener Status der importierten Benutzer',
463
-	'info_statut_utilisateurs_2' => 'Wählen Sie den Status, der Personen im LDAP-Verzeichnis zugeordnet wird, wenn sie sich zum ersten Mal anmelden. Sie können diesen Wert später für jeden Autor individuell einstellen.',
464
-	'info_suivi_activite' => 'Unterstützung der Redaktionsabläufe',
465
-	'info_surtitre' => 'Einleitender Titel:',
466
-	'info_syndication_integrale_1' => 'Ihre Website biete Backend-Dateien zur Syndikation an (siehe « <a href="@url@">@titre@</a> »).',
467
-	'info_syndication_integrale_2' => 'Möchten sie den gesamten Text der Artikel überragen oder nur eine Zusammenfassung von ein paar hundert Zeichen?',
468
-	'info_table_prefix' => 'Sie können den ersten Teil (das Prefix) der Datentabellen ändern. Das ist unerlässlich, wenn sie mehrere Websites in der selben Datenbank speichern möchten. Das Prefix besteht aus kleinen Buchstaben ohne Akzente, Sonder- oder Leerzeichen',
469
-	'info_taille_maximale_images' => 'SPIP wird die maximale Größe der Bilder (in Millionen Pixel) testen, die es bearbeiten kann.<br /> Größere Bilder werden nicht verkleinert.',
470
-	'info_taille_maximale_vignette' => 'Maximale Grösse der Icons des Systems:',
471
-	'info_terminer_installation' => 'Sie können jetzt die Standardinstallation abschliessen.',
472
-	'info_texte' => 'Text',
473
-	'info_texte_explicatif' => 'Beschreibung',
474
-	'info_texte_long' => '(Das ist ein langer Text. Er wird in mehreren Teilen angezeigt, die nach der Veröffentlichung zusammen gefügt werden.)',
475
-	'info_texte_message' => 'Text Ihrer Nachricht',
476
-	'info_texte_message_02' => 'Text Ihrer Nachricht',
477
-	'info_titre' => 'Titel:',
478
-	'info_total' => 'Gesamt: ',
479
-	'info_tous_articles_en_redaction' => 'Alle Artikel in Bearbeitung',
480
-	'info_tous_articles_presents' => 'Alle veröffentlichten Artikel dieser Rubrik',
481
-	'info_tous_articles_refuses' => 'Alle abgelehnten Artikel',
482
-	'info_tous_les' => 'alle',
483
-	'info_tout_site' => 'Ganze Website',
484
-	'info_tout_site2' => 'Der Artikel wurde nicht in diese Sprache übersetzt.',
485
-	'info_tout_site3' => 'Der Artikel wurde in diese Sprache übersetzt, aber der Originalartikel wurde erneut verändert. Die Übersetzung muss überarbeitet werden.',
486
-	'info_tout_site4' => 'Der Artikel wurde in diese Sprache übersetzt und die Übersetzung ist aktuel.',
487
-	'info_tout_site5' => 'Originalartikel.',
488
-	'info_tout_site6' => '<b>Achtung:</b> Nur die Originalartikel werden aufgelistet..
421
+    'info_qui_edite' => '@nom_auteur_modif@ hat vor  @date_diff@ Minuten an diesem Objekt gearbeitet.',
422
+    'info_racine_site' => 'OBERSTE EBENE DER WEBSITE',
423
+    'info_recharger_page' => 'Bitte laden Sie diese Seite in ein paar Augenblicken erneut.',
424
+    'info_recherche_auteur_zero' => 'Kein Ergebnis zu “@cherche_auteur@” gefunden.',
425
+    'info_recommencer' => 'Bitte wiederholen.',
426
+    'info_redacteur_1' => 'Redakteur',
427
+    'info_redacteur_2' => 'mit Zugang zum Redaktionssystem (<i>empfohlen</i>)',
428
+    'info_redacteurs' => 'Redakteure',
429
+    'info_redaction_en_cours' => 'IN BEARBEITUNG',
430
+    'info_redirection' => 'Umleitung',
431
+    'info_redirection_activee' => 'Die Weiterleitung ist aktiviert.',
432
+    'info_redirection_boucle' => 'Sie versuchen, den Artikel mit sich selber zu verlinken.',
433
+    'info_redirection_desactivee' => 'Die Weiterleitung wurde abgeschaltet.',
434
+    'info_refuses' => 'Ihre abgelehnten Artikel',
435
+    'info_reglage_ldap' => 'Optionen: <b>LDAP-Import Einstellungen</b>',
436
+    'info_renvoi_article' => '<b>Umleitung.</b> Dieser Artikel zeigt auf die Seite: ',
437
+    'info_reserve_admin' => 'Nur Administratoren können diese Seite ändern.',
438
+    'info_restreindre_rubrique' => 'Administrationsrechte auf diese Rubrik beschränken:',
439
+    'info_resultat_recherche' => 'Suchergebnisse:',
440
+    'info_rubriques' => 'Rubriken',
441
+    'info_rubriques_02' => 'Rubriken',
442
+    'info_rubriques_trouvees' => 'Rubriken gefunden',
443
+    'info_sans_titre' => 'Ohne Titel',
444
+    'info_selection_chemin_acces' => '<b>Wählen Sie</b> hier den Pfad zu Ihrem Verzeichnis:',
445
+    'info_signatures' => 'Unterschriften',
446
+    'info_site' => 'Website',
447
+    'info_site_2' => 'Website: ',
448
+    'info_site_min' => 'Website',
449
+    'info_site_reference_2' => 'Verlinkte Website',
450
+    'info_site_web' => 'Website:',
451
+    'info_sites' => 'Websites',
452
+    'info_sites_lies_mot' => 'Mit dieser Website verknüpfte Schlagworte',
453
+    'info_sites_proxy' => 'HTTP-Proxy verwenden',
454
+    'info_sites_trouves' => 'Gefundene Websites',
455
+    'info_sous_titre' => 'Untertitel:',
456
+    'info_statut_administrateur' => 'Administrator',
457
+    'info_statut_auteur' => 'Status des Autors:',
458
+    'info_statut_auteur_2' => 'Ich bin',
459
+    'info_statut_auteur_a_confirmer' => 'Anmeldung bestätigen',
460
+    'info_statut_auteur_autre' => 'Anderer Status:',
461
+    'info_statut_redacteur' => 'Redakteur',
462
+    'info_statut_utilisateurs_1' => 'Vorgegebener Status der importierten Benutzer',
463
+    'info_statut_utilisateurs_2' => 'Wählen Sie den Status, der Personen im LDAP-Verzeichnis zugeordnet wird, wenn sie sich zum ersten Mal anmelden. Sie können diesen Wert später für jeden Autor individuell einstellen.',
464
+    'info_suivi_activite' => 'Unterstützung der Redaktionsabläufe',
465
+    'info_surtitre' => 'Einleitender Titel:',
466
+    'info_syndication_integrale_1' => 'Ihre Website biete Backend-Dateien zur Syndikation an (siehe « <a href="@url@">@titre@</a> »).',
467
+    'info_syndication_integrale_2' => 'Möchten sie den gesamten Text der Artikel überragen oder nur eine Zusammenfassung von ein paar hundert Zeichen?',
468
+    'info_table_prefix' => 'Sie können den ersten Teil (das Prefix) der Datentabellen ändern. Das ist unerlässlich, wenn sie mehrere Websites in der selben Datenbank speichern möchten. Das Prefix besteht aus kleinen Buchstaben ohne Akzente, Sonder- oder Leerzeichen',
469
+    'info_taille_maximale_images' => 'SPIP wird die maximale Größe der Bilder (in Millionen Pixel) testen, die es bearbeiten kann.<br /> Größere Bilder werden nicht verkleinert.',
470
+    'info_taille_maximale_vignette' => 'Maximale Grösse der Icons des Systems:',
471
+    'info_terminer_installation' => 'Sie können jetzt die Standardinstallation abschliessen.',
472
+    'info_texte' => 'Text',
473
+    'info_texte_explicatif' => 'Beschreibung',
474
+    'info_texte_long' => '(Das ist ein langer Text. Er wird in mehreren Teilen angezeigt, die nach der Veröffentlichung zusammen gefügt werden.)',
475
+    'info_texte_message' => 'Text Ihrer Nachricht',
476
+    'info_texte_message_02' => 'Text Ihrer Nachricht',
477
+    'info_titre' => 'Titel:',
478
+    'info_total' => 'Gesamt: ',
479
+    'info_tous_articles_en_redaction' => 'Alle Artikel in Bearbeitung',
480
+    'info_tous_articles_presents' => 'Alle veröffentlichten Artikel dieser Rubrik',
481
+    'info_tous_articles_refuses' => 'Alle abgelehnten Artikel',
482
+    'info_tous_les' => 'alle',
483
+    'info_tout_site' => 'Ganze Website',
484
+    'info_tout_site2' => 'Der Artikel wurde nicht in diese Sprache übersetzt.',
485
+    'info_tout_site3' => 'Der Artikel wurde in diese Sprache übersetzt, aber der Originalartikel wurde erneut verändert. Die Übersetzung muss überarbeitet werden.',
486
+    'info_tout_site4' => 'Der Artikel wurde in diese Sprache übersetzt und die Übersetzung ist aktuel.',
487
+    'info_tout_site5' => 'Originalartikel.',
488
+    'info_tout_site6' => '<b>Achtung:</b> Nur die Originalartikel werden aufgelistet..
489 489
 Die Übersetzungen entsprechen dem Original,
490 490
 in einer Farbe, die den Status anzeigt :',
491
-	'info_traductions' => 'Übersetzungen',
492
-	'info_travail_colaboratif' => 'Gemeinsame Arbeit an den Artikeln',
493
-	'info_un_article' => ' ein Artikel, ',
494
-	'info_un_site' => ' eine Website, ',
495
-	'info_une_rubrique' => ' eine Rubrik, ',
496
-	'info_une_rubrique_02' => '1 Rubrik',
497
-	'info_url' => 'URL:',
498
-	'info_url_proxy' => 'URL des Proxy',
499
-	'info_url_proxy_pas_conforme' => 'ungültige Proxy-URL',
500
-	'info_url_site_pas_conforme' => 'Ungültiger Website-URL',
501
-	'info_url_test_proxy' => 'Test-URL',
502
-	'info_urlref' => 'Hyperlink:',
503
-	'info_utilisation_spip' => 'Sie können SPIP jetzt verwenden ...',
504
-	'info_visites_par_mois' => 'Anzeige pro Monat:',
505
-	'info_visiteur_1' => 'Besucher',
506
-	'info_visiteur_2' => 'des öffentlichen Bereichs',
507
-	'info_visiteurs' => 'Besucher',
508
-	'info_visiteurs_02' => 'Besucher des öffentlichen Bereichs',
509
-	'info_webmestre_forces' => 'Die Webmaster sind in der Datei <tt>@file_options@</tt> konfiguriert.',
510
-	'install_adresse_base_hebergeur' => 'Adresse der vom Provider zugewiesenen Datenbank',
511
-	'install_connect_ok' => 'Die neue Datenbank wurde unter dem Namen @connect@ deklariert.',
512
-	'install_echec_annonce' => 'Die Installation wird wahrscheinlich fehlschlagen oder eine nicht funktionierende Site ergeben.',
513
-	'install_extension_mbstring' => 'SPIP funktioniert nicht mit:',
514
-	'install_extension_php_obligatoire' => 'SPIP benötigt die Dateierweiterung php:',
515
-	'install_login_base_hebergeur' => 'Vom Provider zugeteiltes Login',
516
-	'install_nom_base_hebergeur' => 'Name der vom Provider zugewiesenen Datenbank:',
517
-	'install_pas_table' => 'Datenbank zur Zeit ohne Tabellen',
518
-	'install_pass_base_hebergeur' => 'Vom Provider zugeteiltes Passwort',
519
-	'install_php_extension' => 'Folgende Erweiterungen fehlen: @extensions@',
520
-	'install_php_version' => 'Die PHP-Version @version@ ist zu alt. (Mindestens erforderlich = @minimum@)',
521
-	'install_php_version_max' => 'PHP Version @version@ zu neu (maximum = @maximum@)',
522
-	'install_select_langue' => 'Wählen Sie eine Sprache aus und klicken Sie auf «Weiter», um die Installation zu starten.',
523
-	'install_select_type_db' => 'Geben Sie den Typ der Datenbank an:',
524
-	'install_select_type_mysql' => 'MySQL',
525
-	'install_select_type_pg' => 'PostgreSQL',
526
-	'install_select_type_sqlite2' => 'SQLite 2',
527
-	'install_select_type_sqlite3' => 'SQLite 3',
528
-	'install_serveur_hebergeur' => 'Vom Provider bereitgestellter Datenbankserver',
529
-	'install_table_prefix_hebergeur' => 'Prefix der vom Provider zugeteilten Tabelle',
530
-	'install_tables_base' => 'Tabellen der Datenbank',
531
-	'install_types_db_connus' => 'SPIP beherrscht <b>MySQL</b> (am weitesten verbreitet) und  <b>SQLite</b>.', # Geht PostGreSQL jetzt nicht mehr?
532
-	'install_types_db_connus_avertissement' => '<b>PostgreSQL</b> wird testweise unterstützt.',
533
-	'instituer_erreur_statut_a_change' => 'Der Status wurde bereits geändert.',
534
-	'instituer_erreur_statut_non_autorise' => 'Sie dürfen diesen Status nicht auswählen.',
535
-	'intem_redacteur' => 'Redakteur',
536
-	'intitule_licence' => 'Lizenz',
537
-	'item_accepter_inscriptions' => 'Anmeldungen erlauben',
538
-	'item_activer_messages_avertissement' => 'Aktuelle Benachrichtigungen einschalten',
539
-	'item_administrateur_2' => 'Administrator',
540
-	'item_afficher_calendrier' => 'Im Kalender anzeigen',
541
-	'item_autoriser_syndication_integrale' => 'Vollständige Artikel im Feed übertragen',
542
-	'item_choix_administrateurs' => 'Administratoren',
543
-	'item_choix_generation_miniature' => 'Vorschaubilder automatisch generieren.',
544
-	'item_choix_non_generation_miniature' => 'Keine Vorschaubilder generieren.',
545
-	'item_choix_redacteurs' => 'Redakteure',
546
-	'item_choix_visiteurs' => 'Besucher im öffentlichen Bereich',
547
-	'item_creer_fichiers_authent' => '.htpasswd-Dateien anlegen',
548
-	'item_login' => 'Login',
549
-	'item_messagerie_agenda' => 'Nachrichtenfunktion des Kalenders aktivieren',
550
-	'item_mots_cles_association_articles' => 'Artikeln zuordnen',
551
-	'item_mots_cles_association_rubriques' => 'Rubriken zuordnen',
552
-	'item_mots_cles_association_sites' => 'syndizierten Websites zuordnen.',
553
-	'item_non' => 'Nein',
554
-	'item_non_accepter_inscriptions' => 'Anmeldungen verhindern',
555
-	'item_non_activer_messages_avertissement' => 'Keine aktuellen Benachrichtigungen',
556
-	'item_non_afficher_calendrier' => 'Nicht im Kalender anzeigen',
557
-	'item_non_autoriser_syndication_integrale' => 'Nur Zusammenfassung übertragen',
558
-	'item_non_creer_fichiers_authent' => 'Diese Dateien nicht anlegen',
559
-	'item_non_messagerie_agenda' => 'Nachrichtenfunktion des Kalenders abschalten',
560
-	'item_non_publier_articles' => 'Artikel nicht vor dem eingestellten Datum veröffentlichen.',
561
-	'item_nouvel_auteur' => 'Neuer Autor',
562
-	'item_nouvelle_rubrique' => 'Neue Rubrik',
563
-	'item_oui' => 'Ja',
564
-	'item_publier_articles' => 'Sofort veröffentlichen, egal welches Datum ein Artikel trägt. ',
565
-	'item_reponse_article' => 'Antwort auf Artikel',
566
-	'item_visiteur' => 'Besucher',
491
+    'info_traductions' => 'Übersetzungen',
492
+    'info_travail_colaboratif' => 'Gemeinsame Arbeit an den Artikeln',
493
+    'info_un_article' => ' ein Artikel, ',
494
+    'info_un_site' => ' eine Website, ',
495
+    'info_une_rubrique' => ' eine Rubrik, ',
496
+    'info_une_rubrique_02' => '1 Rubrik',
497
+    'info_url' => 'URL:',
498
+    'info_url_proxy' => 'URL des Proxy',
499
+    'info_url_proxy_pas_conforme' => 'ungültige Proxy-URL',
500
+    'info_url_site_pas_conforme' => 'Ungültiger Website-URL',
501
+    'info_url_test_proxy' => 'Test-URL',
502
+    'info_urlref' => 'Hyperlink:',
503
+    'info_utilisation_spip' => 'Sie können SPIP jetzt verwenden ...',
504
+    'info_visites_par_mois' => 'Anzeige pro Monat:',
505
+    'info_visiteur_1' => 'Besucher',
506
+    'info_visiteur_2' => 'des öffentlichen Bereichs',
507
+    'info_visiteurs' => 'Besucher',
508
+    'info_visiteurs_02' => 'Besucher des öffentlichen Bereichs',
509
+    'info_webmestre_forces' => 'Die Webmaster sind in der Datei <tt>@file_options@</tt> konfiguriert.',
510
+    'install_adresse_base_hebergeur' => 'Adresse der vom Provider zugewiesenen Datenbank',
511
+    'install_connect_ok' => 'Die neue Datenbank wurde unter dem Namen @connect@ deklariert.',
512
+    'install_echec_annonce' => 'Die Installation wird wahrscheinlich fehlschlagen oder eine nicht funktionierende Site ergeben.',
513
+    'install_extension_mbstring' => 'SPIP funktioniert nicht mit:',
514
+    'install_extension_php_obligatoire' => 'SPIP benötigt die Dateierweiterung php:',
515
+    'install_login_base_hebergeur' => 'Vom Provider zugeteiltes Login',
516
+    'install_nom_base_hebergeur' => 'Name der vom Provider zugewiesenen Datenbank:',
517
+    'install_pas_table' => 'Datenbank zur Zeit ohne Tabellen',
518
+    'install_pass_base_hebergeur' => 'Vom Provider zugeteiltes Passwort',
519
+    'install_php_extension' => 'Folgende Erweiterungen fehlen: @extensions@',
520
+    'install_php_version' => 'Die PHP-Version @version@ ist zu alt. (Mindestens erforderlich = @minimum@)',
521
+    'install_php_version_max' => 'PHP Version @version@ zu neu (maximum = @maximum@)',
522
+    'install_select_langue' => 'Wählen Sie eine Sprache aus und klicken Sie auf «Weiter», um die Installation zu starten.',
523
+    'install_select_type_db' => 'Geben Sie den Typ der Datenbank an:',
524
+    'install_select_type_mysql' => 'MySQL',
525
+    'install_select_type_pg' => 'PostgreSQL',
526
+    'install_select_type_sqlite2' => 'SQLite 2',
527
+    'install_select_type_sqlite3' => 'SQLite 3',
528
+    'install_serveur_hebergeur' => 'Vom Provider bereitgestellter Datenbankserver',
529
+    'install_table_prefix_hebergeur' => 'Prefix der vom Provider zugeteilten Tabelle',
530
+    'install_tables_base' => 'Tabellen der Datenbank',
531
+    'install_types_db_connus' => 'SPIP beherrscht <b>MySQL</b> (am weitesten verbreitet) und  <b>SQLite</b>.', # Geht PostGreSQL jetzt nicht mehr?
532
+    'install_types_db_connus_avertissement' => '<b>PostgreSQL</b> wird testweise unterstützt.',
533
+    'instituer_erreur_statut_a_change' => 'Der Status wurde bereits geändert.',
534
+    'instituer_erreur_statut_non_autorise' => 'Sie dürfen diesen Status nicht auswählen.',
535
+    'intem_redacteur' => 'Redakteur',
536
+    'intitule_licence' => 'Lizenz',
537
+    'item_accepter_inscriptions' => 'Anmeldungen erlauben',
538
+    'item_activer_messages_avertissement' => 'Aktuelle Benachrichtigungen einschalten',
539
+    'item_administrateur_2' => 'Administrator',
540
+    'item_afficher_calendrier' => 'Im Kalender anzeigen',
541
+    'item_autoriser_syndication_integrale' => 'Vollständige Artikel im Feed übertragen',
542
+    'item_choix_administrateurs' => 'Administratoren',
543
+    'item_choix_generation_miniature' => 'Vorschaubilder automatisch generieren.',
544
+    'item_choix_non_generation_miniature' => 'Keine Vorschaubilder generieren.',
545
+    'item_choix_redacteurs' => 'Redakteure',
546
+    'item_choix_visiteurs' => 'Besucher im öffentlichen Bereich',
547
+    'item_creer_fichiers_authent' => '.htpasswd-Dateien anlegen',
548
+    'item_login' => 'Login',
549
+    'item_messagerie_agenda' => 'Nachrichtenfunktion des Kalenders aktivieren',
550
+    'item_mots_cles_association_articles' => 'Artikeln zuordnen',
551
+    'item_mots_cles_association_rubriques' => 'Rubriken zuordnen',
552
+    'item_mots_cles_association_sites' => 'syndizierten Websites zuordnen.',
553
+    'item_non' => 'Nein',
554
+    'item_non_accepter_inscriptions' => 'Anmeldungen verhindern',
555
+    'item_non_activer_messages_avertissement' => 'Keine aktuellen Benachrichtigungen',
556
+    'item_non_afficher_calendrier' => 'Nicht im Kalender anzeigen',
557
+    'item_non_autoriser_syndication_integrale' => 'Nur Zusammenfassung übertragen',
558
+    'item_non_creer_fichiers_authent' => 'Diese Dateien nicht anlegen',
559
+    'item_non_messagerie_agenda' => 'Nachrichtenfunktion des Kalenders abschalten',
560
+    'item_non_publier_articles' => 'Artikel nicht vor dem eingestellten Datum veröffentlichen.',
561
+    'item_nouvel_auteur' => 'Neuer Autor',
562
+    'item_nouvelle_rubrique' => 'Neue Rubrik',
563
+    'item_oui' => 'Ja',
564
+    'item_publier_articles' => 'Sofort veröffentlichen, egal welches Datum ein Artikel trägt. ',
565
+    'item_reponse_article' => 'Antwort auf Artikel',
566
+    'item_visiteur' => 'Besucher',
567 567
 
568
-	// J
569
-	'jour_non_connu_nc' => 'unbekannt',
568
+    // J
569
+    'jour_non_connu_nc' => 'unbekannt',
570 570
 
571
-	// L
572
-	'label_bando_outils' => 'Werkzeugleiste',
573
-	'label_bando_outils_afficher' => 'Werkzeuge anzeigen',
574
-	'label_bando_outils_masquer' => 'Werkzeuge ausblenden',
575
-	'label_choix_langue' => 'Ihre Sprache wählen',
576
-	'label_langue' => 'Sprache',
577
-	'label_nom_fichier_connect' => 'Geben Sie den für diesen Server verwendeten Namen an.',
578
-	'label_slogan_site' => 'Slogan der Website',
579
-	'label_taille_ecran' => 'Bildschirmbreite',
580
-	'label_texte_et_icones_navigation' => 'Navigationsmenü',
581
-	'label_texte_et_icones_page' => 'Auf der Seite anzeigen',
582
-	'ldap_correspondance' => 'Vererbung von Feld @champ@',
583
-	'ldap_correspondance_1' => 'Vererbung des LDAP Felds',
584
-	'ldap_correspondance_2' => 'Geben sie bitte für jedes der folgenden SPIP-Felder das entsprechende LDAP-Feld an. Leere Felder werden nicht genutzt, LDAP-Felder mit Leerzeichen oder Kommata trennen, um mehrere zu probieren. ',
585
-	'lien_ajouter_auteur' => 'Autor hinzufügen',
586
-	'lien_ajouter_une_rubrique' => 'Diese Rubrik hinzufügen',
587
-	'lien_email' => 'E-Mail',
588
-	'lien_nom_site' => 'NAME DER WEBSITE:',
589
-	'lien_rapide_contenu' => 'zum Inhalt',
590
-	'lien_rapide_navigation' => 'zur Navigation',
591
-	'lien_rapide_recherche' => 'zur Suche',
592
-	'lien_retirer_auteur' => 'Autor entfernen',
593
-	'lien_retirer_rubrique' => 'Rubrik entfernen',
594
-	'lien_retirer_tous_auteurs' => 'Alle Autoren entfernen',
595
-	'lien_retirer_toutes_rubriques' => 'Alle Rubriken entfernen ',
596
-	'lien_site' => 'Website',
597
-	'lien_tout_decocher' => 'Alles abwählen',
598
-	'lien_tout_deplier' => 'Alle anzeigen',
599
-	'lien_tout_replier' => 'Alle ausblenden',
600
-	'lien_tout_supprimer' => 'Alles löschen',
601
-	'lien_trier_nom' => 'Nach Namen sortieren',
602
-	'lien_trier_nombre_articles' => 'Nach Zahl der Artikel sortieren',
603
-	'lien_trier_statut' => 'Nach Status sortieren',
604
-	'lien_voir_en_ligne' => 'ONLINE ANZEIGEN:',
605
-	'logo_article' => 'Artikel-Logo',
606
-	'logo_auteur' => 'Autoren-Logo',
607
-	'logo_rubrique' => 'Rubrik-Logo',
608
-	'logo_site' => 'Website-Logo',
609
-	'logo_standard_rubrique' => 'Standardlogo für Rubriken',
610
-	'logo_survol' => 'Mouseover-Logo',
571
+    // L
572
+    'label_bando_outils' => 'Werkzeugleiste',
573
+    'label_bando_outils_afficher' => 'Werkzeuge anzeigen',
574
+    'label_bando_outils_masquer' => 'Werkzeuge ausblenden',
575
+    'label_choix_langue' => 'Ihre Sprache wählen',
576
+    'label_langue' => 'Sprache',
577
+    'label_nom_fichier_connect' => 'Geben Sie den für diesen Server verwendeten Namen an.',
578
+    'label_slogan_site' => 'Slogan der Website',
579
+    'label_taille_ecran' => 'Bildschirmbreite',
580
+    'label_texte_et_icones_navigation' => 'Navigationsmenü',
581
+    'label_texte_et_icones_page' => 'Auf der Seite anzeigen',
582
+    'ldap_correspondance' => 'Vererbung von Feld @champ@',
583
+    'ldap_correspondance_1' => 'Vererbung des LDAP Felds',
584
+    'ldap_correspondance_2' => 'Geben sie bitte für jedes der folgenden SPIP-Felder das entsprechende LDAP-Feld an. Leere Felder werden nicht genutzt, LDAP-Felder mit Leerzeichen oder Kommata trennen, um mehrere zu probieren. ',
585
+    'lien_ajouter_auteur' => 'Autor hinzufügen',
586
+    'lien_ajouter_une_rubrique' => 'Diese Rubrik hinzufügen',
587
+    'lien_email' => 'E-Mail',
588
+    'lien_nom_site' => 'NAME DER WEBSITE:',
589
+    'lien_rapide_contenu' => 'zum Inhalt',
590
+    'lien_rapide_navigation' => 'zur Navigation',
591
+    'lien_rapide_recherche' => 'zur Suche',
592
+    'lien_retirer_auteur' => 'Autor entfernen',
593
+    'lien_retirer_rubrique' => 'Rubrik entfernen',
594
+    'lien_retirer_tous_auteurs' => 'Alle Autoren entfernen',
595
+    'lien_retirer_toutes_rubriques' => 'Alle Rubriken entfernen ',
596
+    'lien_site' => 'Website',
597
+    'lien_tout_decocher' => 'Alles abwählen',
598
+    'lien_tout_deplier' => 'Alle anzeigen',
599
+    'lien_tout_replier' => 'Alle ausblenden',
600
+    'lien_tout_supprimer' => 'Alles löschen',
601
+    'lien_trier_nom' => 'Nach Namen sortieren',
602
+    'lien_trier_nombre_articles' => 'Nach Zahl der Artikel sortieren',
603
+    'lien_trier_statut' => 'Nach Status sortieren',
604
+    'lien_voir_en_ligne' => 'ONLINE ANZEIGEN:',
605
+    'logo_article' => 'Artikel-Logo',
606
+    'logo_auteur' => 'Autoren-Logo',
607
+    'logo_rubrique' => 'Rubrik-Logo',
608
+    'logo_site' => 'Website-Logo',
609
+    'logo_standard_rubrique' => 'Standardlogo für Rubriken',
610
+    'logo_survol' => 'Mouseover-Logo',
611 611
 
612
-	// M
613
-	'menu_aide_installation_choix_base' => 'Datenbank auswählen',
614
-	'module_fichier_langue' => 'Sprachdatei',
615
-	'module_raccourci' => 'Abkürzung',
616
-	'module_texte_affiche' => 'angezeigter Text',
617
-	'module_texte_explicatif' => 'Sie können die folgenden Abkürzungen in den HTML-Vorlagen Ihrer Website verwenden. Sie werden automatisch in den Sprachen angezeigt, für die eine Sprachdatei existiert.',
618
-	'module_texte_traduction' => 'Die Sprachdatei für « @module@ » liegt vor auf ',
619
-	'mois_non_connu' => 'unbekannt',
612
+    // M
613
+    'menu_aide_installation_choix_base' => 'Datenbank auswählen',
614
+    'module_fichier_langue' => 'Sprachdatei',
615
+    'module_raccourci' => 'Abkürzung',
616
+    'module_texte_affiche' => 'angezeigter Text',
617
+    'module_texte_explicatif' => 'Sie können die folgenden Abkürzungen in den HTML-Vorlagen Ihrer Website verwenden. Sie werden automatisch in den Sprachen angezeigt, für die eine Sprachdatei existiert.',
618
+    'module_texte_traduction' => 'Die Sprachdatei für « @module@ » liegt vor auf ',
619
+    'mois_non_connu' => 'unbekannt',
620 620
 
621
-	// N
622
-	'nouvelle_version_spip' => 'SPIP Version @version@ ist verfügbar.',
623
-	'nouvelle_version_spip_majeure' => 'Eine neue SPIP Version @version@ steht zur Verfügung.',
621
+    // N
622
+    'nouvelle_version_spip' => 'SPIP Version @version@ ist verfügbar.',
623
+    'nouvelle_version_spip_majeure' => 'Eine neue SPIP Version @version@ steht zur Verfügung.',
624 624
 
625
-	// O
626
-	'onglet_contenu' => 'Inhalt',
627
-	'onglet_declarer_une_autre_base' => 'Weitere Datenbank deklarieren',
628
-	'onglet_discuter' => 'Diskussionen',
629
-	'onglet_interactivite' => 'Interaktivität',
630
-	'onglet_proprietes' => 'Eigenschaften',
631
-	'onglet_repartition_actuelle' => 'zur Zeit',
632
-	'onglet_sous_rubriques' => 'Unterrubriken',
625
+    // O
626
+    'onglet_contenu' => 'Inhalt',
627
+    'onglet_declarer_une_autre_base' => 'Weitere Datenbank deklarieren',
628
+    'onglet_discuter' => 'Diskussionen',
629
+    'onglet_interactivite' => 'Interaktivität',
630
+    'onglet_proprietes' => 'Eigenschaften',
631
+    'onglet_repartition_actuelle' => 'zur Zeit',
632
+    'onglet_sous_rubriques' => 'Unterrubriken',
633 633
 
634
-	// P
635
-	'page_pas_proxy' => 'Diese Seite darf nicht durch den Proxy übertragen werden.',
636
-	'pas_de_proxy_pour' => 'Falls erforderlich, könne Sie die Rechner und Domainen angeben, die nicht über den Proxy angesprochen werden (z.B. @exemple@)',
637
-	'phpinfo' => 'PHP-Konfiguration',
638
-	'plugin_charge_paquet' => 'Paket @name@ wird geladen',
639
-	'plugin_charger' => 'Übertragen',
640
-	'plugin_erreur_charger' => 'Fehler: @zip@ kann nicht geladen werden',
641
-	'plugin_erreur_droit1' => 'In das Verzeichnis <code>@dest@</code> kann nicht geschrieben werden.',
642
-	'plugin_erreur_droit2' => 'Bitte überprüfen Sie die Schreibrechte für dieses Verzeichnis oder legen Sie es an, falls es noch nicht existiert, oder installieren Sie die Dateien per FTP.',
643
-	'plugin_erreur_zip' => 'Pclzip fehlgeschlagen: Fehler @status@',
644
-	'plugin_etat_developpement' => 'In Entwicklung',
645
-	'plugin_etat_experimental' => 'Experimentell',
646
-	'plugin_etat_stable' => 'Stabil',
647
-	'plugin_etat_test' => 'Im Test',
648
-	'plugin_impossible_activer' => 'Das Plugin @plugin@ kann nicht aktiviert werden.',
649
-	'plugin_info_automatique1' => 'Wenn Sie die automatische Installation von Plugins nutzen möchten, führen Sie bitte folgende Schritte aus:',
650
-	'plugin_info_automatique1_lib' => 'Wenn diese Bibliothek automatisch installiert werden soll, führen sie bitte diese Schritte aus:',
651
-	'plugin_info_automatique2' => 'Anlegen des Verzeichnis <code>@rep@</code> ;',
652
-	'plugin_info_automatique3' => 'überprüfen, ob der Server in das Verzeichnis schreiben kann.',
653
-	'plugin_info_automatique_creer' => 'im Wurzelverzeichnis der Website.',
654
-	'plugin_info_automatique_exemples' => 'Beispiele:',
655
-	'plugin_info_automatique_ftp' => 'Sie können Plugins per FTP in dem Vezeichnis <tt>@rep@</tt> installieren',
656
-	'plugin_info_automatique_lib' => 'Manche Plugins benötigen das Verzeichnis <code>lib/</code>, um Dateien downloaden zu können, das im Wurzelverzeichnis der Website angelegt werden muss.',
657
-	'plugin_info_automatique_liste' => 'Ihre Plugin-Listen:',
658
-	'plugin_info_automatique_liste_officielle' => 'Die offiziellen Plugins',
659
-	'plugin_info_automatique_liste_update' => 'Listen aktualisieren',
660
-	'plugin_info_automatique_ou' => 'oder...',
661
-	'plugin_info_automatique_select' => 'Wählen Sie ein Plugin aus. SPIP wird es herunterladen und im Verzeichnis <code>@rep@</code> installieren. Falls das Plugin bereits installiert ist, wird es auf den neuesten Stand gebracht.',
662
-	'plugin_info_credit' => 'Beteiligte',
663
-	'plugin_info_erreur_xml' => 'Die Deklaration dieses Plugins ist nicht korrekt.',
664
-	'plugin_info_install_ok' => 'Installation war erfolgreich.',
665
-	'plugin_info_necessite' => 'Erfordert:',
666
-	'plugin_info_non_compatible_spip' => 'Dieses Plugin ist nicht mit SPIP kompatibel.',
667
-	'plugin_info_plugins_dist_1' => 'Diese Erweiterungen liegen im Verzeichnis @plugins_dist@ und werden dort aktiviert.',
668
-	'plugin_info_plugins_dist_2' => 'Man kann sie nicht deaktivieren.',
669
-	'plugin_info_telecharger' => 'herunterladen von @url@ und in @rep@ installieren',
670
-	'plugin_info_upgrade_ok' => 'Upgrade erfolgreich',
671
-	'plugin_librairies_installees' => 'Installierte Bibliotheken',
672
-	'plugin_necessite_extension_php' => 'benötigt die PHP-Erweiterung @plugin@ Version @version@.',
673
-	'plugin_necessite_extension_php_sans_version' => 'benötigt die PHP-Erweiterung @plugin@',
674
-	'plugin_necessite_lib' => 'Dieses Plugin benötigt die Bibliothek @lib@',
675
-	'plugin_necessite_php' => 'benötigt @plugin@ Version @version@.',
676
-	'plugin_necessite_plugin' => 'Benötigt Version @version@ des Plugin @plugin@.',
677
-	'plugin_necessite_plugin_sans_version' => 'Benötigt das Plugin @plugin@',
678
-	'plugin_necessite_spip' => 'Benötigt mindestens Version @version@ von SPIP.',
679
-	'plugin_source' => 'Quelle: ',
680
-	'plugin_titre_automatique' => 'Automatische Installation',
681
-	'plugin_titre_automatique_ajouter' => 'Plugins hinzufügen',
682
-	'plugin_titre_installation' => 'Installation des Plugins @plugin@',
683
-	'plugin_titre_modifier' => 'Meine Plugins',
684
-	'plugin_utilise_extension_php' => 'PHP-Erweiterung @plugin@ muss Version @version@ sein.',
685
-	'plugin_utilise_php' => '@plugin@ muss Version @version@ sein.',
686
-	'plugin_utilise_plugin' => 'Das Plugin @plugin@ muss Version @version@ sein.',
687
-	'plugin_zip_active' => 'Weiter zum Aktivieren',
688
-	'plugin_zip_adresse' => 'Geben Sie hier die Adresse einer ZIP-Datei, die das Plugin enthält, oder die Adresse einer Plugin-Liste an.',
689
-	'plugin_zip_adresse_champ' => 'Adresse des Plugins oder der Liste ',
690
-	'plugin_zip_content' => 'Enthält die folgenden Dateien (@taille@),<br />die im Verzeichnis <code>@rep@</code> installiert werden können.',
691
-	'plugin_zip_installe_finie' => 'Die Datei @zip@ wurde entpackt und installiert.',
692
-	'plugin_zip_installe_rep_finie' => 'Die Datei @zip@ wurde entpackt und in das Verzeichnis @rep@ installiert.',
693
-	'plugin_zip_installer' => 'Sie können es jetzt installieren.',
694
-	'plugin_zip_telecharge' => 'Die Datei @zip@ wurde heruntergeladen',
695
-	'plugins_actif_aucun' => 'Kein aktives Plugin.',
696
-	'plugins_actif_un' => 'Ein aktives Plugin.',
697
-	'plugins_actifs' => '@count@ aktive Plugins.',
698
-	'plugins_actifs_liste' => 'Aktiv',
699
-	'plugins_compte' => '@count@ Plugins',
700
-	'plugins_disponible_un' => 'Ein Plugin verfügbar.',
701
-	'plugins_disponibles' => '@count@ verfügbare Plugins.',
702
-	'plugins_erreur' => 'Fehler in den Plugins: @plugins@',
703
-	'plugins_liste' => 'Installierte Plugins',
704
-	'plugins_liste_dist' => 'Gesicherte Plugins', # Das hat jetzt aber mit plugins_liste_dist nichts mehr zu tun.
705
-	'plugins_recents' => 'Neueste Plugins.',
706
-	'plugins_tous_liste' => 'Alle',
707
-	'plugins_vue_hierarchie' => 'Hierarchie',
708
-	'plugins_vue_liste' => 'Liste',
709
-	'protocole_ldap' => 'Version des Protokolls:',
634
+    // P
635
+    'page_pas_proxy' => 'Diese Seite darf nicht durch den Proxy übertragen werden.',
636
+    'pas_de_proxy_pour' => 'Falls erforderlich, könne Sie die Rechner und Domainen angeben, die nicht über den Proxy angesprochen werden (z.B. @exemple@)',
637
+    'phpinfo' => 'PHP-Konfiguration',
638
+    'plugin_charge_paquet' => 'Paket @name@ wird geladen',
639
+    'plugin_charger' => 'Übertragen',
640
+    'plugin_erreur_charger' => 'Fehler: @zip@ kann nicht geladen werden',
641
+    'plugin_erreur_droit1' => 'In das Verzeichnis <code>@dest@</code> kann nicht geschrieben werden.',
642
+    'plugin_erreur_droit2' => 'Bitte überprüfen Sie die Schreibrechte für dieses Verzeichnis oder legen Sie es an, falls es noch nicht existiert, oder installieren Sie die Dateien per FTP.',
643
+    'plugin_erreur_zip' => 'Pclzip fehlgeschlagen: Fehler @status@',
644
+    'plugin_etat_developpement' => 'In Entwicklung',
645
+    'plugin_etat_experimental' => 'Experimentell',
646
+    'plugin_etat_stable' => 'Stabil',
647
+    'plugin_etat_test' => 'Im Test',
648
+    'plugin_impossible_activer' => 'Das Plugin @plugin@ kann nicht aktiviert werden.',
649
+    'plugin_info_automatique1' => 'Wenn Sie die automatische Installation von Plugins nutzen möchten, führen Sie bitte folgende Schritte aus:',
650
+    'plugin_info_automatique1_lib' => 'Wenn diese Bibliothek automatisch installiert werden soll, führen sie bitte diese Schritte aus:',
651
+    'plugin_info_automatique2' => 'Anlegen des Verzeichnis <code>@rep@</code> ;',
652
+    'plugin_info_automatique3' => 'überprüfen, ob der Server in das Verzeichnis schreiben kann.',
653
+    'plugin_info_automatique_creer' => 'im Wurzelverzeichnis der Website.',
654
+    'plugin_info_automatique_exemples' => 'Beispiele:',
655
+    'plugin_info_automatique_ftp' => 'Sie können Plugins per FTP in dem Vezeichnis <tt>@rep@</tt> installieren',
656
+    'plugin_info_automatique_lib' => 'Manche Plugins benötigen das Verzeichnis <code>lib/</code>, um Dateien downloaden zu können, das im Wurzelverzeichnis der Website angelegt werden muss.',
657
+    'plugin_info_automatique_liste' => 'Ihre Plugin-Listen:',
658
+    'plugin_info_automatique_liste_officielle' => 'Die offiziellen Plugins',
659
+    'plugin_info_automatique_liste_update' => 'Listen aktualisieren',
660
+    'plugin_info_automatique_ou' => 'oder...',
661
+    'plugin_info_automatique_select' => 'Wählen Sie ein Plugin aus. SPIP wird es herunterladen und im Verzeichnis <code>@rep@</code> installieren. Falls das Plugin bereits installiert ist, wird es auf den neuesten Stand gebracht.',
662
+    'plugin_info_credit' => 'Beteiligte',
663
+    'plugin_info_erreur_xml' => 'Die Deklaration dieses Plugins ist nicht korrekt.',
664
+    'plugin_info_install_ok' => 'Installation war erfolgreich.',
665
+    'plugin_info_necessite' => 'Erfordert:',
666
+    'plugin_info_non_compatible_spip' => 'Dieses Plugin ist nicht mit SPIP kompatibel.',
667
+    'plugin_info_plugins_dist_1' => 'Diese Erweiterungen liegen im Verzeichnis @plugins_dist@ und werden dort aktiviert.',
668
+    'plugin_info_plugins_dist_2' => 'Man kann sie nicht deaktivieren.',
669
+    'plugin_info_telecharger' => 'herunterladen von @url@ und in @rep@ installieren',
670
+    'plugin_info_upgrade_ok' => 'Upgrade erfolgreich',
671
+    'plugin_librairies_installees' => 'Installierte Bibliotheken',
672
+    'plugin_necessite_extension_php' => 'benötigt die PHP-Erweiterung @plugin@ Version @version@.',
673
+    'plugin_necessite_extension_php_sans_version' => 'benötigt die PHP-Erweiterung @plugin@',
674
+    'plugin_necessite_lib' => 'Dieses Plugin benötigt die Bibliothek @lib@',
675
+    'plugin_necessite_php' => 'benötigt @plugin@ Version @version@.',
676
+    'plugin_necessite_plugin' => 'Benötigt Version @version@ des Plugin @plugin@.',
677
+    'plugin_necessite_plugin_sans_version' => 'Benötigt das Plugin @plugin@',
678
+    'plugin_necessite_spip' => 'Benötigt mindestens Version @version@ von SPIP.',
679
+    'plugin_source' => 'Quelle: ',
680
+    'plugin_titre_automatique' => 'Automatische Installation',
681
+    'plugin_titre_automatique_ajouter' => 'Plugins hinzufügen',
682
+    'plugin_titre_installation' => 'Installation des Plugins @plugin@',
683
+    'plugin_titre_modifier' => 'Meine Plugins',
684
+    'plugin_utilise_extension_php' => 'PHP-Erweiterung @plugin@ muss Version @version@ sein.',
685
+    'plugin_utilise_php' => '@plugin@ muss Version @version@ sein.',
686
+    'plugin_utilise_plugin' => 'Das Plugin @plugin@ muss Version @version@ sein.',
687
+    'plugin_zip_active' => 'Weiter zum Aktivieren',
688
+    'plugin_zip_adresse' => 'Geben Sie hier die Adresse einer ZIP-Datei, die das Plugin enthält, oder die Adresse einer Plugin-Liste an.',
689
+    'plugin_zip_adresse_champ' => 'Adresse des Plugins oder der Liste ',
690
+    'plugin_zip_content' => 'Enthält die folgenden Dateien (@taille@),<br />die im Verzeichnis <code>@rep@</code> installiert werden können.',
691
+    'plugin_zip_installe_finie' => 'Die Datei @zip@ wurde entpackt und installiert.',
692
+    'plugin_zip_installe_rep_finie' => 'Die Datei @zip@ wurde entpackt und in das Verzeichnis @rep@ installiert.',
693
+    'plugin_zip_installer' => 'Sie können es jetzt installieren.',
694
+    'plugin_zip_telecharge' => 'Die Datei @zip@ wurde heruntergeladen',
695
+    'plugins_actif_aucun' => 'Kein aktives Plugin.',
696
+    'plugins_actif_un' => 'Ein aktives Plugin.',
697
+    'plugins_actifs' => '@count@ aktive Plugins.',
698
+    'plugins_actifs_liste' => 'Aktiv',
699
+    'plugins_compte' => '@count@ Plugins',
700
+    'plugins_disponible_un' => 'Ein Plugin verfügbar.',
701
+    'plugins_disponibles' => '@count@ verfügbare Plugins.',
702
+    'plugins_erreur' => 'Fehler in den Plugins: @plugins@',
703
+    'plugins_liste' => 'Installierte Plugins',
704
+    'plugins_liste_dist' => 'Gesicherte Plugins', # Das hat jetzt aber mit plugins_liste_dist nichts mehr zu tun.
705
+    'plugins_recents' => 'Neueste Plugins.',
706
+    'plugins_tous_liste' => 'Alle',
707
+    'plugins_vue_hierarchie' => 'Hierarchie',
708
+    'plugins_vue_liste' => 'Liste',
709
+    'protocole_ldap' => 'Version des Protokolls:',
710 710
 
711
-	// Q
712
-	'queue_executer_maintenant' => 'Jetzt ausführen',
713
-	'queue_info_purger' => 'Sie können alle anstehenden Aufgaben löschen und so die Liste der regelmäßigen Aufgaben neu einlesen.',
714
-	'queue_nb_jobs_in_queue' => '@nb@ Aufgaben in der Warteschlange',
715
-	'queue_next_job_in_nb_sec' => 'Nächste Aufgabe in @nb@ s',
716
-	'queue_no_job_in_queue' => 'Keine Aufgaben in der Warteschlange',
717
-	'queue_one_job_in_queue' => '1 Aufgabe in der Warteschlange',
718
-	'queue_priorite_tache' => 'Rangfolge',
719
-	'queue_purger_queue' => 'Aufgabenliste löschen',
720
-	'queue_titre' => 'Hintergrundprozesse',
711
+    // Q
712
+    'queue_executer_maintenant' => 'Jetzt ausführen',
713
+    'queue_info_purger' => 'Sie können alle anstehenden Aufgaben löschen und so die Liste der regelmäßigen Aufgaben neu einlesen.',
714
+    'queue_nb_jobs_in_queue' => '@nb@ Aufgaben in der Warteschlange',
715
+    'queue_next_job_in_nb_sec' => 'Nächste Aufgabe in @nb@ s',
716
+    'queue_no_job_in_queue' => 'Keine Aufgaben in der Warteschlange',
717
+    'queue_one_job_in_queue' => '1 Aufgabe in der Warteschlange',
718
+    'queue_priorite_tache' => 'Rangfolge',
719
+    'queue_purger_queue' => 'Aufgabenliste löschen',
720
+    'queue_titre' => 'Hintergrundprozesse',
721 721
 
722
-	// R
723
-	'repertoire_plugins' => 'Verzeichnis:',
724
-	'required' => ' (erforderlich)',
722
+    // R
723
+    'repertoire_plugins' => 'Verzeichnis:',
724
+    'required' => ' (erforderlich)',
725 725
 
726
-	// S
727
-	'sans_heure' => 'Ohne Zeit',
728
-	'statut_admin_restreint' => 'Rubrik-Admin',
729
-	'statut_webmestre' => 'Webmaster',
726
+    // S
727
+    'sans_heure' => 'Ohne Zeit',
728
+    'statut_admin_restreint' => 'Rubrik-Admin',
729
+    'statut_webmestre' => 'Webmaster',
730 730
 
731
-	// T
732
-	'tache_cron_asap' => 'Cronjob @function@ (unverzüglich)',
733
-	'tache_cron_secondes' => 'Cronjob @function@ (alle @nb@ Sekunden)',
734
-	'taille_cache_image' => 'Die von SPIP automatisch berechneten Grafiken (Icons für Dokumente, als Grafiken gespeicherte Titel, mathematische Ausdrücke im Format TeX...) belegen insgesamt @taille@ im Verzeichnis @dir@.',
735
-	'taille_cache_moins_de' => 'Die Größe des Caches beträgt mindestens  @octets@.',
736
-	'taille_cache_octets' => 'Aktuelle Grösse des Cache: @octets@ Byte',
737
-	'taille_cache_vide' => 'Der Cache ist leer.',
738
-	'taille_repertoire_cache' => 'Grösse des Cache-Verzeichnis',
739
-	'text_article_propose_publication' => 'Dieser Artikel ist zur Veröffentlichung vorgeschlagen.',
740
-	'texte_acces_ldap_anonyme_1' => 'Manche LDAP-Server erlauben keinen anonymen Zugriff. In diesem Fall muss man Zugangsdaten für die erste Anmeldung eingeben, um Informationen im Verzeichnis suchen zu können. Meistens kann man hingegen die folgenden Felder frei lassen.',
741
-	'texte_admin_effacer_01' => 'Dieser Befehl löscht den <i>gesamten</i> Inhalt der Datenbank mit <i>allen</i> Redakteuren und Administratoren. Nach der Ausführung dieses Befehls müssen Sie SPIP neu installieren und einen ersten Administrator anlegen.',
742
-	'texte_adresse_annuaire_1' => '(Wenn Ihr Verzeichnis auf dem selben Rechner installiert ist wie diese Website, müssen Sie wahrscheinlich „localhost“ angeben.)',
743
-	'texte_ajout_auteur' => 'Folgender Autor ist diesem Artikel zugeordnet worden:',
744
-	'texte_annuaire_ldap_1' => 'Wenn Sie Zugang zu einem LDAP-Verzeichnis haben, können Sie es verwenden, um Benutzer automatisch nach SPIP zu importieren.',
745
-	'texte_article_statut' => 'Dieser Artikel ist:',
746
-	'texte_article_virtuel' => 'Virtueller Artikel',
747
-	'texte_article_virtuel_reference' => '<b>Virtueller Artikel:</b> Dieser Artikel ist Teil Ihrer Website, leitet Besucher aber zu einer anderen URL um. Sie können die Umleitung abschalten, indem Sie den URL oben löschen.',
748
-	'texte_aucun_resultat_auteur' => 'Kein Ergebnis für “@cherche_auteur@”',
749
-	'texte_auteur_messagerie' => 'Die Website kann Ihnen eine Liste aktuell eingelogter Redakteure anzeigen, so dass Sie sofort miteinander in Kontakt treten können (Wenn das Nachrichtensystem abgeschaltet ist, gibt es auch keine Liste angemeldeter Redakteure). Sie haben die Möglichkeit, nicht in diese Liste aufgenommen zu werden (damit sind Sie für andere Benutzer "unsichtbar").',
750
-	'texte_auteurs' => 'AUTOREN',
751
-	'texte_choix_base_1' => 'Wählen Sie die Datenbank:',
752
-	'texte_choix_base_2' => 'Der SQL-Server enthält mehrere Datenbanken.',
753
-	'texte_choix_base_3' => '<b>Wählen</b> Sie die von Ihrem Webhoster für Sie angelegte aus:',
754
-	'texte_choix_table_prefix' => 'Prefix der Tabellen:',
755
-	'texte_compte_element' => '@count@ Element',
756
-	'texte_compte_elements' => '@count@ Elemente',
757
-	'texte_conflit_edition_correction' => 'Bitte überprüfen sie hier die Unterschiede zwischen zwei Versionen des Textes. Sie können Ihre Änderungen kopieren und neu eingeben.',
758
-	'texte_connexion_mysql' => 'Sie erhalten die erforderlichen SQL-Zugangsdaten von Ihrem Provider: Name des Datenbankservers und persönliche Zugangsdaten.',
759
-	'texte_contenu_article' => '(Zusammenfassung des Artikels in wenigen Worten.)',
760
-	'texte_contenu_articles' => 'Ja nach Vorlage, die Sie für Ihre Website verwenden, können Sie Elemente von Artikeln aktivieren oder abschalten. Bitte bestimmen Sie mit dieser Liste, welche Elemente verfügbar sein sollen.',
761
-	'texte_crash_base' => 'Wenn Ihre Datenbank abgestürzt ist, können Sie eine automatische Reparatur versuchen.',
762
-	'texte_creer_rubrique' => 'Bevor Sie Artikel schreiben können,<br /> müssen Sie eine Rubrik anlegen.',
763
-	'texte_date_creation_article' => 'ARTIKEL ANGELEGT AM:',
764
-	'texte_date_creation_objet' => 'Erstellungsdatum:', # on ajoute le &quot;:&quot;
765
-	'texte_date_publication_anterieure' => 'DATUM EINER FRÜHEREN BEARBEITUNG',
766
-	'texte_date_publication_anterieure_nonaffichee' => 'Kein Datum einer früheren Bearbeitung anzeigen.',
767
-	'texte_date_publication_article' => 'ONLINE VERÖFFENTLICHT AM:',
768
-	'texte_date_publication_objet' => 'Veröffentlichungsdatum:',
769
-	'texte_definir_comme_traduction_rubrique' => 'Diese Rubrik ist eine Übersetzung der Rubik mit der Nummer',
770
-	'texte_descriptif_rapide' => 'Kurzbeschreibung',
771
-	'texte_effacer_base' => 'SPIP-Datenbank löschen',
772
-	'texte_effacer_statistiques' => 'Statistiken löschen',
773
-	'texte_en_cours_validation' => 'Die folgenden Einträge sind zur Veröffentlichung vorgeschlagen.',
774
-	'texte_enrichir_mise_a_jour' => 'Sie können Ihren Text ansprechend gestalten, indem Sie die „typografischen Abkürzungen“ verwenden.',
775
-	'texte_fichier_authent' => '<b>Soll SPIP die Dateien <tt>.htpasswd</tt> und <tt>.htpasswd-admin</tt> im Verzeichnis @dossier@ anlegen?</b><p>
731
+    // T
732
+    'tache_cron_asap' => 'Cronjob @function@ (unverzüglich)',
733
+    'tache_cron_secondes' => 'Cronjob @function@ (alle @nb@ Sekunden)',
734
+    'taille_cache_image' => 'Die von SPIP automatisch berechneten Grafiken (Icons für Dokumente, als Grafiken gespeicherte Titel, mathematische Ausdrücke im Format TeX...) belegen insgesamt @taille@ im Verzeichnis @dir@.',
735
+    'taille_cache_moins_de' => 'Die Größe des Caches beträgt mindestens  @octets@.',
736
+    'taille_cache_octets' => 'Aktuelle Grösse des Cache: @octets@ Byte',
737
+    'taille_cache_vide' => 'Der Cache ist leer.',
738
+    'taille_repertoire_cache' => 'Grösse des Cache-Verzeichnis',
739
+    'text_article_propose_publication' => 'Dieser Artikel ist zur Veröffentlichung vorgeschlagen.',
740
+    'texte_acces_ldap_anonyme_1' => 'Manche LDAP-Server erlauben keinen anonymen Zugriff. In diesem Fall muss man Zugangsdaten für die erste Anmeldung eingeben, um Informationen im Verzeichnis suchen zu können. Meistens kann man hingegen die folgenden Felder frei lassen.',
741
+    'texte_admin_effacer_01' => 'Dieser Befehl löscht den <i>gesamten</i> Inhalt der Datenbank mit <i>allen</i> Redakteuren und Administratoren. Nach der Ausführung dieses Befehls müssen Sie SPIP neu installieren und einen ersten Administrator anlegen.',
742
+    'texte_adresse_annuaire_1' => '(Wenn Ihr Verzeichnis auf dem selben Rechner installiert ist wie diese Website, müssen Sie wahrscheinlich „localhost“ angeben.)',
743
+    'texte_ajout_auteur' => 'Folgender Autor ist diesem Artikel zugeordnet worden:',
744
+    'texte_annuaire_ldap_1' => 'Wenn Sie Zugang zu einem LDAP-Verzeichnis haben, können Sie es verwenden, um Benutzer automatisch nach SPIP zu importieren.',
745
+    'texte_article_statut' => 'Dieser Artikel ist:',
746
+    'texte_article_virtuel' => 'Virtueller Artikel',
747
+    'texte_article_virtuel_reference' => '<b>Virtueller Artikel:</b> Dieser Artikel ist Teil Ihrer Website, leitet Besucher aber zu einer anderen URL um. Sie können die Umleitung abschalten, indem Sie den URL oben löschen.',
748
+    'texte_aucun_resultat_auteur' => 'Kein Ergebnis für “@cherche_auteur@”',
749
+    'texte_auteur_messagerie' => 'Die Website kann Ihnen eine Liste aktuell eingelogter Redakteure anzeigen, so dass Sie sofort miteinander in Kontakt treten können (Wenn das Nachrichtensystem abgeschaltet ist, gibt es auch keine Liste angemeldeter Redakteure). Sie haben die Möglichkeit, nicht in diese Liste aufgenommen zu werden (damit sind Sie für andere Benutzer "unsichtbar").',
750
+    'texte_auteurs' => 'AUTOREN',
751
+    'texte_choix_base_1' => 'Wählen Sie die Datenbank:',
752
+    'texte_choix_base_2' => 'Der SQL-Server enthält mehrere Datenbanken.',
753
+    'texte_choix_base_3' => '<b>Wählen</b> Sie die von Ihrem Webhoster für Sie angelegte aus:',
754
+    'texte_choix_table_prefix' => 'Prefix der Tabellen:',
755
+    'texte_compte_element' => '@count@ Element',
756
+    'texte_compte_elements' => '@count@ Elemente',
757
+    'texte_conflit_edition_correction' => 'Bitte überprüfen sie hier die Unterschiede zwischen zwei Versionen des Textes. Sie können Ihre Änderungen kopieren und neu eingeben.',
758
+    'texte_connexion_mysql' => 'Sie erhalten die erforderlichen SQL-Zugangsdaten von Ihrem Provider: Name des Datenbankservers und persönliche Zugangsdaten.',
759
+    'texte_contenu_article' => '(Zusammenfassung des Artikels in wenigen Worten.)',
760
+    'texte_contenu_articles' => 'Ja nach Vorlage, die Sie für Ihre Website verwenden, können Sie Elemente von Artikeln aktivieren oder abschalten. Bitte bestimmen Sie mit dieser Liste, welche Elemente verfügbar sein sollen.',
761
+    'texte_crash_base' => 'Wenn Ihre Datenbank abgestürzt ist, können Sie eine automatische Reparatur versuchen.',
762
+    'texte_creer_rubrique' => 'Bevor Sie Artikel schreiben können,<br /> müssen Sie eine Rubrik anlegen.',
763
+    'texte_date_creation_article' => 'ARTIKEL ANGELEGT AM:',
764
+    'texte_date_creation_objet' => 'Erstellungsdatum:', # on ajoute le &quot;:&quot;
765
+    'texte_date_publication_anterieure' => 'DATUM EINER FRÜHEREN BEARBEITUNG',
766
+    'texte_date_publication_anterieure_nonaffichee' => 'Kein Datum einer früheren Bearbeitung anzeigen.',
767
+    'texte_date_publication_article' => 'ONLINE VERÖFFENTLICHT AM:',
768
+    'texte_date_publication_objet' => 'Veröffentlichungsdatum:',
769
+    'texte_definir_comme_traduction_rubrique' => 'Diese Rubrik ist eine Übersetzung der Rubik mit der Nummer',
770
+    'texte_descriptif_rapide' => 'Kurzbeschreibung',
771
+    'texte_effacer_base' => 'SPIP-Datenbank löschen',
772
+    'texte_effacer_statistiques' => 'Statistiken löschen',
773
+    'texte_en_cours_validation' => 'Die folgenden Einträge sind zur Veröffentlichung vorgeschlagen.',
774
+    'texte_enrichir_mise_a_jour' => 'Sie können Ihren Text ansprechend gestalten, indem Sie die „typografischen Abkürzungen“ verwenden.',
775
+    'texte_fichier_authent' => '<b>Soll SPIP die Dateien <tt>.htpasswd</tt> und <tt>.htpasswd-admin</tt> im Verzeichnis @dossier@ anlegen?</b><p>
776 776
  Mit diesen Dateien können Sie den Zugang zu anderen Bereichen Ihrer Website (z.B. externe Logfile-Auswertungen) auf Redakteure und Administratoren beschränken.</p><p>Wenn Sie diese Möglickeit nicht nutzen, könnn Sie hier die Grundeinstellung (Dateien werden nicht angelegt) beibehalten.</p>',
777
-	'texte_informations_personnelles_1' => 'Das System wird nun persönliche Zugangsdaten für Sie anlegen.',
778
-	'texte_informations_personnelles_2' => '(Hinweis: Wenn Sie die Site erneut installieren, und Ihre Zugangsdaten funktionieren, können Sie',
779
-	'texte_introductif_article' => '(Einleitender Text des Artikels.)',
780
-	'texte_jeu_caractere' => 'Es empfiehlt sich, das Universalalphabet (<tt>utf-8</tt>) für ihre Website zu verwenden. Es ermöglicht die Darstellung der Zeichen aller Sprachen und wird nunmehr von allen modernen Webbrowsern unterstützt.',
781
-	'texte_jeu_caractere_3' => 'Ihre Website verwendet zur Zeit den Zeichensatz:',
782
-	'texte_jeu_caractere_4' => 'Wenn das nicht mit den Erfordernissen ihrer Daten übereinstimmt (z.B. nach der Wiederherstellung einer Datensicherung), oder wenn sie die Website neu einrichten und einen anderen Zeichernsatz verwenden möchten, stellen sie ihn bitte hier ein:',
783
-	'texte_login_ldap_1' => '(Keine Angabe bzw. vollständiger Pfad, z.B. „<tt>uid=meier, ou=mitglieder, dc=MeineDomäne, dc=com</tt>“.)',
784
-	'texte_login_precaution' => 'Achtung! Sie sind zur Zeit mit diesem Namen angemeldet. Bitte verwenden Sie diese Seite mit der erforderlichen Vorsicht.',
785
-	'texte_messagerie_agenda' => 'Mit dem Nachrichtensystem können Redakteure im Redaktionsbereich direkt miteinander kommunizieren. Es ist mit einem Kalender verbunden.',
786
-	'texte_mise_a_niveau_base_1' => 'Sie haben den Programmcode von SPIP aktualisiert. Jetzt muss die Datenbank aktualisiert werden.',
787
-	'texte_modifier_article' => 'Artikel bearbeiten:',
788
-	'texte_multilinguisme' => 'Wenn Sie Artikel in mehreren Sprachen mit entsprecher komplexer Navigation verwalten möchten, können Sie den Rubriken und/oder den Artikeln ein Menü zur Sprachauswahl hinzufügen. Diese Funktion ist abhängig von der Struktur Ihrer Website.',
789
-	'texte_multilinguisme_trad' => 'Sie können ein System zur automatischen Verlinkung der verschiedenen Sprachversionen von Objekten aktivieren.',
790
-	'texte_non_compresse' => '<i>unkomprimiert</i> (ihr Server unterstützt diese Funktion nicht)',
791
-	'texte_nouvelle_version_spip_1' => 'Sie haben eine neue Version von SPIP installiert.',
792
-	'texte_nouvelle_version_spip_2' => 'Diese neue Version erfordert eine weiter gehende Aktualisierung Ihres Systems als gewöhnlich. Wenn Sie Webmaster dieser Site sind, löschen Sie bitte die Datei @connect@ und setzen Sie die Installation fort, indem Sie die Verbindungsdaten zur Datenbank neu eingeben.<p>(Tipp: Sollten Sie Ihre Verbindungsdaten vergessen haben, schauen Sie in der Datei @connect@ nach, bevor Sie sie löschen ...)</p>',
793
-	'texte_operation_echec' => 'Gehen Sie zur vorigen Seite zurück und wählen Sie eine andere Datenbank aus bzw. legen Sie eine neue an. Überprüfen Sie die Angaben Ihres Providers.',
794
-	'texte_plus_trois_car' => 'mehr als 3 Zeichen',
795
-	'texte_plusieurs_articles' => 'Mehrere Autoren für „@cherche_auteur@“ gefunden:',
796
-	'texte_port_annuaire' => '(Der Standardwert kann meistens beibehalten werden.)',
797
-	'texte_presente_plugin' => 'Diese Seite zeigt eine Liste der auf dieser Website verfügbaren Plugins. Sie können sie aktivieren, indem sie die entsprechenden Einträge mit einem Häkchen merkieren.',
798
-	'texte_proposer_publication' => 'Wenn Ihr Artikel fertig ist,<br /> können Sie ihn zur Veröffentlichung vorschlagen.',
799
-	'texte_proxy' => 'In manchen Fällen (Intranet, Rechner hinter einer Firewall...),
777
+    'texte_informations_personnelles_1' => 'Das System wird nun persönliche Zugangsdaten für Sie anlegen.',
778
+    'texte_informations_personnelles_2' => '(Hinweis: Wenn Sie die Site erneut installieren, und Ihre Zugangsdaten funktionieren, können Sie',
779
+    'texte_introductif_article' => '(Einleitender Text des Artikels.)',
780
+    'texte_jeu_caractere' => 'Es empfiehlt sich, das Universalalphabet (<tt>utf-8</tt>) für ihre Website zu verwenden. Es ermöglicht die Darstellung der Zeichen aller Sprachen und wird nunmehr von allen modernen Webbrowsern unterstützt.',
781
+    'texte_jeu_caractere_3' => 'Ihre Website verwendet zur Zeit den Zeichensatz:',
782
+    'texte_jeu_caractere_4' => 'Wenn das nicht mit den Erfordernissen ihrer Daten übereinstimmt (z.B. nach der Wiederherstellung einer Datensicherung), oder wenn sie die Website neu einrichten und einen anderen Zeichernsatz verwenden möchten, stellen sie ihn bitte hier ein:',
783
+    'texte_login_ldap_1' => '(Keine Angabe bzw. vollständiger Pfad, z.B. „<tt>uid=meier, ou=mitglieder, dc=MeineDomäne, dc=com</tt>“.)',
784
+    'texte_login_precaution' => 'Achtung! Sie sind zur Zeit mit diesem Namen angemeldet. Bitte verwenden Sie diese Seite mit der erforderlichen Vorsicht.',
785
+    'texte_messagerie_agenda' => 'Mit dem Nachrichtensystem können Redakteure im Redaktionsbereich direkt miteinander kommunizieren. Es ist mit einem Kalender verbunden.',
786
+    'texte_mise_a_niveau_base_1' => 'Sie haben den Programmcode von SPIP aktualisiert. Jetzt muss die Datenbank aktualisiert werden.',
787
+    'texte_modifier_article' => 'Artikel bearbeiten:',
788
+    'texte_multilinguisme' => 'Wenn Sie Artikel in mehreren Sprachen mit entsprecher komplexer Navigation verwalten möchten, können Sie den Rubriken und/oder den Artikeln ein Menü zur Sprachauswahl hinzufügen. Diese Funktion ist abhängig von der Struktur Ihrer Website.',
789
+    'texte_multilinguisme_trad' => 'Sie können ein System zur automatischen Verlinkung der verschiedenen Sprachversionen von Objekten aktivieren.',
790
+    'texte_non_compresse' => '<i>unkomprimiert</i> (ihr Server unterstützt diese Funktion nicht)',
791
+    'texte_nouvelle_version_spip_1' => 'Sie haben eine neue Version von SPIP installiert.',
792
+    'texte_nouvelle_version_spip_2' => 'Diese neue Version erfordert eine weiter gehende Aktualisierung Ihres Systems als gewöhnlich. Wenn Sie Webmaster dieser Site sind, löschen Sie bitte die Datei @connect@ und setzen Sie die Installation fort, indem Sie die Verbindungsdaten zur Datenbank neu eingeben.<p>(Tipp: Sollten Sie Ihre Verbindungsdaten vergessen haben, schauen Sie in der Datei @connect@ nach, bevor Sie sie löschen ...)</p>',
793
+    'texte_operation_echec' => 'Gehen Sie zur vorigen Seite zurück und wählen Sie eine andere Datenbank aus bzw. legen Sie eine neue an. Überprüfen Sie die Angaben Ihres Providers.',
794
+    'texte_plus_trois_car' => 'mehr als 3 Zeichen',
795
+    'texte_plusieurs_articles' => 'Mehrere Autoren für „@cherche_auteur@“ gefunden:',
796
+    'texte_port_annuaire' => '(Der Standardwert kann meistens beibehalten werden.)',
797
+    'texte_presente_plugin' => 'Diese Seite zeigt eine Liste der auf dieser Website verfügbaren Plugins. Sie können sie aktivieren, indem sie die entsprechenden Einträge mit einem Häkchen merkieren.',
798
+    'texte_proposer_publication' => 'Wenn Ihr Artikel fertig ist,<br /> können Sie ihn zur Veröffentlichung vorschlagen.',
799
+    'texte_proxy' => 'In manchen Fällen (Intranet, Rechner hinter einer Firewall...),
800 800
 kann ein <i>HTTP-Proxy</i> erforderlich sein, um die syndizierten Websites zu erreichen.
801 801
  In diesem Fall geben Sie seine Adresse im Format
802 802
 <tt><html>http://proxy:8080</html></tt>. an.
803 803
 Meistens kann dieses Feld aber leer bleiben.',
804
-	'texte_publication_articles_post_dates' => 'Wie soll SPIP Artikel behandeln, deren Erscheinungsdatum in die Zukunft gelegt wurde?',
805
-	'texte_rappel_selection_champs' => '[Vergessen Sie nicht, dieses Feld korrekt auszufüllen.]',
806
-	'texte_recalcul_page' => 'Wenn Sie nur eine einzelne Seite aktualisieren wollen, verwenden Sie besser den Schalter „Seite aus Cache löschen“.',
807
-	'texte_recuperer_base' => 'Datenbank reparieren',
808
-	'texte_reference_mais_redirige' => 'Artikel Ihrer Website, der eine Umleitung zu einem anderen URL enthält.',
809
-	'texte_requetes_echouent' => '<b>Wenn manche SQL-Befehle ohne ersichtlichen Grund systematisch fehlschlagen, kann es an einer beschädigten Datenbank liegen.</b><p>
804
+    'texte_publication_articles_post_dates' => 'Wie soll SPIP Artikel behandeln, deren Erscheinungsdatum in die Zukunft gelegt wurde?',
805
+    'texte_rappel_selection_champs' => '[Vergessen Sie nicht, dieses Feld korrekt auszufüllen.]',
806
+    'texte_recalcul_page' => 'Wenn Sie nur eine einzelne Seite aktualisieren wollen, verwenden Sie besser den Schalter „Seite aus Cache löschen“.',
807
+    'texte_recuperer_base' => 'Datenbank reparieren',
808
+    'texte_reference_mais_redirige' => 'Artikel Ihrer Website, der eine Umleitung zu einem anderen URL enthält.',
809
+    'texte_requetes_echouent' => '<b>Wenn manche SQL-Befehle ohne ersichtlichen Grund systematisch fehlschlagen, kann es an einer beschädigten Datenbank liegen.</b><p>
810 810
 SQL kann Tabellen reparieren, die beschädigt worden sind. Starten Sie hier einen Reparaturversuch. Sollte das fehlschlagen, notieren Sie bitte die Fehlermeldung, die u.U. einen Hinweis auf die Ursache des Problems gibt ...<p>
811 811
 Wenn das Problem weiter besteht, nehmen Sie bitte Kontakt mit Ihrem Provider auf.<p>',
812
-	'texte_selection_langue_principale' => 'Hier können Sie die «Hauptsprache» der Website auswählen. Das zwingt Sie - zum Glück - nicht, Ihre Artikel in dieser Sprache zu schreiben, sondern ermöglicht:
812
+    'texte_selection_langue_principale' => 'Hier können Sie die «Hauptsprache» der Website auswählen. Das zwingt Sie - zum Glück - nicht, Ihre Artikel in dieser Sprache zu schreiben, sondern ermöglicht:
813 813
         <ul><li> das Format der Datumsanzeige einzustellen;</li>
814 814
         <li> die Art der typografischen Korrekturen von SPIP zu bestimmen;</li>
815 815
         <li> über die Sprachversion der eingebauten Formulare zu entscheiden;</li>
816 816
         <li> die Standardsprache des Redaktionssystems zu verändern.</li></ul>',
817
-	'texte_sous_titre' => 'Untertitel',
818
-	'texte_statistiques_visites' => '(dunkle Balken : Sonntag / dunkle Kurve : Entwicklung der Durchschnittswerte)',
819
-	'texte_statut_attente_validation' => 'vorgeschlagen',
820
-	'texte_statut_publies' => 'veröffentlicht',
821
-	'texte_statut_refuses' => 'abgelehnt',
822
-	'texte_suppression_fichiers' => 'Benutzen Sie diesen Befehl, um alle Dateien aus dem Zwischenspeicher von SPIP zu löschen. Damit können Sie eine erneute Berechnung aller Seiten erzwingen, wenn Sie z.B. wesentliche Änderungen am Inhalt und Layout Ihrer Site gemacht haben. ',
823
-	'texte_sur_titre' => 'Einleitender Titel',
824
-	'texte_table_ok' => ': Tabelle OK.',
825
-	'texte_tentative_recuperation' => 'Reparaturversuch',
826
-	'texte_tenter_reparation' => 'Reparatur der Datenbank versuchen',
827
-	'texte_test_proxy' => 'Um den Proxy zu testen, geben Sie hier die Adresse einer gewünschten Website ein.',
828
-	'texte_titre_02' => 'Titel:',
829
-	'texte_titre_obligatoire' => '<b>Titel</b> [obligatorisch]',
830
-	'texte_travail_article' => '@nom_auteur_modif@ hat diesen Artikel vor @date_diff@ Minuten bearbeitet',
831
-	'texte_travail_collaboratif' => 'Wenn es öfter vorkommt, dass mehrere Redakteure gemeinsam an Artikeln arbeiten, kann SPIP die vor kurzem „geöffneten“ Artikel anzeigen, um gleichzeitige Änderungen vorzubeugen. Diese Funktion ist normalerweise abgeschaltet, um störende Meldungen zu reduzieren.',
832
-	'texte_vide' => 'leer',
833
-	'texte_vider_cache' => 'Cache leeren',
834
-	'titre_admin_tech' => 'Wartung',
835
-	'titre_admin_vider' => 'Wartung',
836
-	'titre_ajouter_un_auteur' => 'Autor hinzufügen',
837
-	'titre_ajouter_un_mot' => 'Schlagwort hinzufügen',
838
-	'titre_cadre_afficher_article' => 'Artikel anzeigen',
839
-	'titre_cadre_afficher_traductions' => 'Stand der Übersetzungen für diese Sprachen anzeigen',
840
-	'titre_cadre_ajouter_auteur' => 'AUTOR HINZUFÜGEN: ',
841
-	'titre_cadre_interieur_rubrique' => 'In der Rubrik',
842
-	'titre_cadre_numero_auteur' => 'AUTOR NUMMER',
843
-	'titre_cadre_numero_objet' => '@objet@ Nummer:',
844
-	'titre_cadre_signature_obligatoire' => '<b>Unterschrift</b> [obligatorisch]<br />',
845
-	'titre_config_contenu_notifications' => 'Benachrichtigungen',
846
-	'titre_config_contenu_prive' => 'Im Redaktionsbereich',
847
-	'titre_config_contenu_public' => 'Auf der öffentlichen Website',
848
-	'titre_config_fonctions' => 'Website konfigurieren',
849
-	'titre_config_langage' => 'Sprache einstellen',
850
-	'titre_configuration' => 'Website konfigurieren',
851
-	'titre_configurer_preferences' => 'Ihre Einstellungen',
852
-	'titre_configurer_preferences_menus' => 'Konfigurieren Sie Ihre Menüeinstellungen',
853
-	'titre_conflit_edition' => 'Bearbeitungskonflikt',
854
-	'titre_connexion_ldap' => 'Optionen: <b>LDAP-Verbindung</b>',
855
-	'titre_groupe_mots' => 'KATEGORIE:',
856
-	'titre_identite_site' => 'Name der Website', # &quot;Identité du site&quot; war &quot;Identität der Website&quot;, jetzt &quot;Name der Website&quot;, auch möglich &quot;Websitebezeichnung&quot; o.ä.
857
-	'titre_langue_article' => 'Sprache des Artikels',
858
-	'titre_langue_rubrique' => 'Sprache der Rubrik',
859
-	'titre_langue_trad_article' => 'SPRACHE UND ÜBERSETZUNGEN DES ARTIKELS',
860
-	'titre_les_articles' => 'ARTIKEL',
861
-	'titre_messagerie_agenda' => 'Nachrichten und Kalender',
862
-	'titre_naviguer_dans_le_site' => 'Sitenavigation ...',
863
-	'titre_nouvelle_rubrique' => 'Neue Rubrik',
864
-	'titre_numero_rubrique' => 'RUBRIK NUMMER:',
865
-	'titre_page_articles_edit' => 'Bearbeiten: @titre@',
866
-	'titre_page_articles_page' => 'Artikel',
867
-	'titre_page_articles_tous' => 'Ganze Website',
868
-	'titre_page_calendrier' => 'Kalender @nom_mois@ @annee@',
869
-	'titre_page_config_contenu' => 'Website konfigurieren',
870
-	'titre_page_delete_all' => 'vollständig unwiderruflich löschen',
871
-	'titre_page_recherche' => 'Ergebnisse der Suche nach @recherche@',
872
-	'titre_page_statistiques_referers' => 'Statistik (Referer)',
873
-	'titre_page_upgrade' => 'Aktualisierung von SPIP',
874
-	'titre_preference_menus_favoris' => 'Lieblingsmenüs',
875
-	'titre_publication_articles_post_dates' => 'Veröffentlichung von vordatierten Artikeln',
876
-	'titre_reparation' => 'Reparatur',
877
-	'titre_suivi_petition' => 'Petitionen verwalten',
878
-	'tls_ldap' => 'Transport Layer Security:',
879
-	'trad_article_traduction' => 'Alle Fassungen dieses Artikels:',
880
-	'trad_delier' => 'Nicht mehr mit diesen Übersetzungen verbinden',
881
-	'trad_lier' => 'Dieser Artikel ist eine Übersetzung des Artikels Nummer ',
882
-	'trad_new' => 'Neue Übersetzung beginnen',
817
+    'texte_sous_titre' => 'Untertitel',
818
+    'texte_statistiques_visites' => '(dunkle Balken : Sonntag / dunkle Kurve : Entwicklung der Durchschnittswerte)',
819
+    'texte_statut_attente_validation' => 'vorgeschlagen',
820
+    'texte_statut_publies' => 'veröffentlicht',
821
+    'texte_statut_refuses' => 'abgelehnt',
822
+    'texte_suppression_fichiers' => 'Benutzen Sie diesen Befehl, um alle Dateien aus dem Zwischenspeicher von SPIP zu löschen. Damit können Sie eine erneute Berechnung aller Seiten erzwingen, wenn Sie z.B. wesentliche Änderungen am Inhalt und Layout Ihrer Site gemacht haben. ',
823
+    'texte_sur_titre' => 'Einleitender Titel',
824
+    'texte_table_ok' => ': Tabelle OK.',
825
+    'texte_tentative_recuperation' => 'Reparaturversuch',
826
+    'texte_tenter_reparation' => 'Reparatur der Datenbank versuchen',
827
+    'texte_test_proxy' => 'Um den Proxy zu testen, geben Sie hier die Adresse einer gewünschten Website ein.',
828
+    'texte_titre_02' => 'Titel:',
829
+    'texte_titre_obligatoire' => '<b>Titel</b> [obligatorisch]',
830
+    'texte_travail_article' => '@nom_auteur_modif@ hat diesen Artikel vor @date_diff@ Minuten bearbeitet',
831
+    'texte_travail_collaboratif' => 'Wenn es öfter vorkommt, dass mehrere Redakteure gemeinsam an Artikeln arbeiten, kann SPIP die vor kurzem „geöffneten“ Artikel anzeigen, um gleichzeitige Änderungen vorzubeugen. Diese Funktion ist normalerweise abgeschaltet, um störende Meldungen zu reduzieren.',
832
+    'texte_vide' => 'leer',
833
+    'texte_vider_cache' => 'Cache leeren',
834
+    'titre_admin_tech' => 'Wartung',
835
+    'titre_admin_vider' => 'Wartung',
836
+    'titre_ajouter_un_auteur' => 'Autor hinzufügen',
837
+    'titre_ajouter_un_mot' => 'Schlagwort hinzufügen',
838
+    'titre_cadre_afficher_article' => 'Artikel anzeigen',
839
+    'titre_cadre_afficher_traductions' => 'Stand der Übersetzungen für diese Sprachen anzeigen',
840
+    'titre_cadre_ajouter_auteur' => 'AUTOR HINZUFÜGEN: ',
841
+    'titre_cadre_interieur_rubrique' => 'In der Rubrik',
842
+    'titre_cadre_numero_auteur' => 'AUTOR NUMMER',
843
+    'titre_cadre_numero_objet' => '@objet@ Nummer:',
844
+    'titre_cadre_signature_obligatoire' => '<b>Unterschrift</b> [obligatorisch]<br />',
845
+    'titre_config_contenu_notifications' => 'Benachrichtigungen',
846
+    'titre_config_contenu_prive' => 'Im Redaktionsbereich',
847
+    'titre_config_contenu_public' => 'Auf der öffentlichen Website',
848
+    'titre_config_fonctions' => 'Website konfigurieren',
849
+    'titre_config_langage' => 'Sprache einstellen',
850
+    'titre_configuration' => 'Website konfigurieren',
851
+    'titre_configurer_preferences' => 'Ihre Einstellungen',
852
+    'titre_configurer_preferences_menus' => 'Konfigurieren Sie Ihre Menüeinstellungen',
853
+    'titre_conflit_edition' => 'Bearbeitungskonflikt',
854
+    'titre_connexion_ldap' => 'Optionen: <b>LDAP-Verbindung</b>',
855
+    'titre_groupe_mots' => 'KATEGORIE:',
856
+    'titre_identite_site' => 'Name der Website', # &quot;Identité du site&quot; war &quot;Identität der Website&quot;, jetzt &quot;Name der Website&quot;, auch möglich &quot;Websitebezeichnung&quot; o.ä.
857
+    'titre_langue_article' => 'Sprache des Artikels',
858
+    'titre_langue_rubrique' => 'Sprache der Rubrik',
859
+    'titre_langue_trad_article' => 'SPRACHE UND ÜBERSETZUNGEN DES ARTIKELS',
860
+    'titre_les_articles' => 'ARTIKEL',
861
+    'titre_messagerie_agenda' => 'Nachrichten und Kalender',
862
+    'titre_naviguer_dans_le_site' => 'Sitenavigation ...',
863
+    'titre_nouvelle_rubrique' => 'Neue Rubrik',
864
+    'titre_numero_rubrique' => 'RUBRIK NUMMER:',
865
+    'titre_page_articles_edit' => 'Bearbeiten: @titre@',
866
+    'titre_page_articles_page' => 'Artikel',
867
+    'titre_page_articles_tous' => 'Ganze Website',
868
+    'titre_page_calendrier' => 'Kalender @nom_mois@ @annee@',
869
+    'titre_page_config_contenu' => 'Website konfigurieren',
870
+    'titre_page_delete_all' => 'vollständig unwiderruflich löschen',
871
+    'titre_page_recherche' => 'Ergebnisse der Suche nach @recherche@',
872
+    'titre_page_statistiques_referers' => 'Statistik (Referer)',
873
+    'titre_page_upgrade' => 'Aktualisierung von SPIP',
874
+    'titre_preference_menus_favoris' => 'Lieblingsmenüs',
875
+    'titre_publication_articles_post_dates' => 'Veröffentlichung von vordatierten Artikeln',
876
+    'titre_reparation' => 'Reparatur',
877
+    'titre_suivi_petition' => 'Petitionen verwalten',
878
+    'tls_ldap' => 'Transport Layer Security:',
879
+    'trad_article_traduction' => 'Alle Fassungen dieses Artikels:',
880
+    'trad_delier' => 'Nicht mehr mit diesen Übersetzungen verbinden',
881
+    'trad_lier' => 'Dieser Artikel ist eine Übersetzung des Artikels Nummer ',
882
+    'trad_new' => 'Neue Übersetzung beginnen',
883 883
 
884
-	// U
885
-	'utf8_convert_erreur_orig' => 'Fehler: Der Zeichensatz @charset@ wird nicht unterstützt.',
884
+    // U
885
+    'utf8_convert_erreur_orig' => 'Fehler: Der Zeichensatz @charset@ wird nicht unterstützt.',
886 886
 
887
-	// V
888
-	'version' => 'Version:'
887
+    // V
888
+    'version' => 'Version:'
889 889
 );
Please login to merge, or discard this patch.
ecrire/iterateur/condition.php 1 patch
Indentation   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -19,7 +19,7 @@  discard block
 block discarded – undo
19 19
  **/
20 20
 
21 21
 if (!defined('_ECRIRE_INC_VERSION')) {
22
-	return;
22
+    return;
23 23
 }
24 24
 
25 25
 include_spip('iterateur/data');
@@ -37,10 +37,10 @@  discard block
 block discarded – undo
37 37
  *     Description de la boucle complétée des champs
38 38
  */
39 39
 function iterateur_CONDITION_dist($b) {
40
-	$b->iterateur = 'CONDITION'; # designe la classe d'iterateur
41
-	$b->show = [
42
-		'field' => []
43
-	];
40
+    $b->iterateur = 'CONDITION'; # designe la classe d'iterateur
41
+    $b->show = [
42
+        'field' => []
43
+    ];
44 44
 
45
-	return $b;
45
+    return $b;
46 46
 }
Please login to merge, or discard this patch.
ecrire/iterateur/pour.php 1 patch
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -19,7 +19,7 @@  discard block
 block discarded – undo
19 19
  **/
20 20
 
21 21
 if (!defined('_ECRIRE_INC_VERSION')) {
22
-	return;
22
+    return;
23 23
 }
24 24
 
25 25
 /**
@@ -38,13 +38,13 @@  discard block
 block discarded – undo
38 38
  *     Description de la boucle complétée des champs
39 39
  */
40 40
 function iterateur_POUR_dist($b) {
41
-	$b->iterateur = 'DATA'; # designe la classe d'iterateur
42
-	$b->show = [
43
-		'field' => [
44
-			'cle' => 'STRING',
45
-			'valeur' => 'STRING',
46
-		]
47
-	];
41
+    $b->iterateur = 'DATA'; # designe la classe d'iterateur
42
+    $b->show = [
43
+        'field' => [
44
+            'cle' => 'STRING',
45
+            'valeur' => 'STRING',
46
+        ]
47
+    ];
48 48
 
49
-	return $b;
49
+    return $b;
50 50
 }
Please login to merge, or discard this patch.
ecrire/iterateur/php.php 1 patch
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -20,7 +20,7 @@  discard block
 block discarded – undo
20 20
 
21 21
 
22 22
 if (!defined('_ECRIRE_INC_VERSION')) {
23
-	return;
23
+    return;
24 24
 }
25 25
 
26 26
 
@@ -38,17 +38,17 @@  discard block
 block discarded – undo
38 38
  *     Description de la boucle complétée des champs
39 39
  */
40 40
 function iterateur_php_dist($b, $iteratorName) {
41
-	$b->iterateur = $iteratorName; # designe la classe d'iterateur
42
-	$b->show = [
43
-		'field' => [
44
-			'cle' => 'STRING',
45
-			'valeur' => 'STRING',
46
-		]
47
-	];
48
-
49
-	foreach (get_class_methods($iteratorName) as $method) {
50
-		$b->show['field'][strtolower($method)] = 'METHOD';
51
-	}
52
-
53
-	return $b;
41
+    $b->iterateur = $iteratorName; # designe la classe d'iterateur
42
+    $b->show = [
43
+        'field' => [
44
+            'cle' => 'STRING',
45
+            'valeur' => 'STRING',
46
+        ]
47
+    ];
48
+
49
+    foreach (get_class_methods($iteratorName) as $method) {
50
+        $b->show['field'][strtolower($method)] = 'METHOD';
51
+    }
52
+
53
+    return $b;
54 54
 }
Please login to merge, or discard this patch.
ecrire/inc/pipelines.php 2 patches
Indentation   +129 added lines, -129 removed lines patch added patch discarded remove patch
@@ -16,10 +16,10 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\Pipelines
17 17
  **/
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 if (test_espace_prive()) {
22
-	include_spip('inc/pipelines_ecrire');
22
+    include_spip('inc/pipelines_ecrire');
23 23
 }
24 24
 
25 25
 
@@ -45,28 +45,28 @@  discard block
 block discarded – undo
45 45
  * @return string          Contenu qui sera inséré dans le head HTML
46 46
  **/
47 47
 function f_jQuery($texte) {
48
-	$x = '';
49
-	$jquery_plugins = pipeline(
50
-		'jquery_plugins',
51
-		[
52
-			'javascript/jquery.js',
53
-			'javascript/jquery.form.js',
54
-			'javascript/jquery.autosave.js',
55
-			'javascript/jquery.placeholder-label.js',
56
-			'javascript/ajaxCallback.js',
57
-			'javascript/js.cookie.js',
58
-		]
59
-	);
60
-	foreach (array_unique($jquery_plugins) as $script) {
61
-		if ($script = find_in_path(supprimer_timestamp($script))) {
62
-			$script = timestamp($script);
63
-			$x .= "\n<script src=\"$script\" type=\"text/javascript\"></script>\n";
64
-		}
65
-	}
48
+    $x = '';
49
+    $jquery_plugins = pipeline(
50
+        'jquery_plugins',
51
+        [
52
+            'javascript/jquery.js',
53
+            'javascript/jquery.form.js',
54
+            'javascript/jquery.autosave.js',
55
+            'javascript/jquery.placeholder-label.js',
56
+            'javascript/ajaxCallback.js',
57
+            'javascript/js.cookie.js',
58
+        ]
59
+    );
60
+    foreach (array_unique($jquery_plugins) as $script) {
61
+        if ($script = find_in_path(supprimer_timestamp($script))) {
62
+            $script = timestamp($script);
63
+            $x .= "\n<script src=\"$script\" type=\"text/javascript\"></script>\n";
64
+        }
65
+    }
66 66
 
67
-	$texte = $x . $texte;
67
+    $texte = $x . $texte;
68 68
 
69
-	return $texte;
69
+    return $texte;
70 70
 }
71 71
 
72 72
 
@@ -85,28 +85,28 @@  discard block
 block discarded – undo
85 85
  * @return string         Contenu de la page envoyée au navigateur
86 86
  **/
87 87
 function f_surligne($texte) {
88
-	if (!$GLOBALS['html']) {
89
-		return $texte;
90
-	}
91
-	$rech = _request('var_recherche');
92
-	if (
93
-		!$rech
94
-		and (!defined('_SURLIGNE_RECHERCHE_REFERERS')
95
-			or !_SURLIGNE_RECHERCHE_REFERERS
96
-			or !isset($_SERVER['HTTP_REFERER']))
97
-	) {
98
-		return $texte;
99
-	}
100
-	include_spip('inc/surligne');
88
+    if (!$GLOBALS['html']) {
89
+        return $texte;
90
+    }
91
+    $rech = _request('var_recherche');
92
+    if (
93
+        !$rech
94
+        and (!defined('_SURLIGNE_RECHERCHE_REFERERS')
95
+            or !_SURLIGNE_RECHERCHE_REFERERS
96
+            or !isset($_SERVER['HTTP_REFERER']))
97
+    ) {
98
+        return $texte;
99
+    }
100
+    include_spip('inc/surligne');
101 101
 
102
-	if (isset($_SERVER['HTTP_REFERER'])) {
103
-		$_SERVER['HTTP_REFERER'] = preg_replace(',[^\w\,/#&;:-]+,', ' ', $_SERVER['HTTP_REFERER']);
104
-	}
105
-	if ($rech) {
106
-		$rech = preg_replace(',[^\w\,/#&;:-]+,', ' ', $rech);
107
-	}
102
+    if (isset($_SERVER['HTTP_REFERER'])) {
103
+        $_SERVER['HTTP_REFERER'] = preg_replace(',[^\w\,/#&;:-]+,', ' ', $_SERVER['HTTP_REFERER']);
104
+    }
105
+    if ($rech) {
106
+        $rech = preg_replace(',[^\w\,/#&;:-]+,', ' ', $rech);
107
+    }
108 108
 
109
-	return surligner_mots($texte, $rech);
109
+    return surligner_mots($texte, $rech);
110 110
 }
111 111
 
112 112
 /**
@@ -123,33 +123,33 @@  discard block
 block discarded – undo
123 123
  * @return string         Contenu de la page envoyée au navigateur
124 124
  **/
125 125
 function f_tidy($texte) {
126
-	/**
127
-	 * Indentation à faire ?
128
-	 *
129
-	 * - true : actif.
130
-	 * - false par défaut.
131
-	 */
126
+    /**
127
+     * Indentation à faire ?
128
+     *
129
+     * - true : actif.
130
+     * - false par défaut.
131
+     */
132 132
 
133
-	if (
134
-		$GLOBALS['xhtml'] # tidy demande
135
-		and $GLOBALS['html'] # verifie que la page avait l'entete text/html
136
-		and strlen($texte)
137
-		and !headers_sent()
138
-	) {
139
-		# Compatibilite ascendante
140
-		if (!is_string($GLOBALS['xhtml'])) {
141
-			$GLOBALS['xhtml'] = 'tidy';
142
-		}
133
+    if (
134
+        $GLOBALS['xhtml'] # tidy demande
135
+        and $GLOBALS['html'] # verifie que la page avait l'entete text/html
136
+        and strlen($texte)
137
+        and !headers_sent()
138
+    ) {
139
+        # Compatibilite ascendante
140
+        if (!is_string($GLOBALS['xhtml'])) {
141
+            $GLOBALS['xhtml'] = 'tidy';
142
+        }
143 143
 
144
-		if (!$f = charger_fonction($GLOBALS['xhtml'], 'inc', true)) {
145
-			spip_log("tidy absent, l'indenteur SPIP le remplace");
146
-			$f = charger_fonction('sax', 'xml');
147
-		}
144
+        if (!$f = charger_fonction($GLOBALS['xhtml'], 'inc', true)) {
145
+            spip_log("tidy absent, l'indenteur SPIP le remplace");
146
+            $f = charger_fonction('sax', 'xml');
147
+        }
148 148
 
149
-		return $f($texte);
150
-	}
149
+        return $f($texte);
150
+    }
151 151
 
152
-	return $texte;
152
+    return $texte;
153 153
 }
154 154
 
155 155
 
@@ -168,21 +168,21 @@  discard block
 block discarded – undo
168 168
  * @return string         Contenu de la page envoyée au navigateur
169 169
  **/
170 170
 function f_insert_head($texte) {
171
-	if (!$GLOBALS['html']) {
172
-		return $texte;
173
-	}
174
-	include_spip('public/admin'); // pour strripos
171
+    if (!$GLOBALS['html']) {
172
+        return $texte;
173
+    }
174
+    include_spip('public/admin'); // pour strripos
175 175
 
176
-	($pos = stripos($texte, '</head>'))
177
-	|| ($pos = stripos($texte, '<body>'))
178
-	|| ($pos = 0);
176
+    ($pos = stripos($texte, '</head>'))
177
+    || ($pos = stripos($texte, '<body>'))
178
+    || ($pos = 0);
179 179
 
180
-	if (!str_contains(substr($texte, 0, $pos), '<!-- insert_head -->')) {
181
-		$insert = "\n" . pipeline('insert_head', '<!-- f_insert_head -->') . "\n";
182
-		$texte = substr_replace($texte, $insert, $pos, 0);
183
-	}
180
+    if (!str_contains(substr($texte, 0, $pos), '<!-- insert_head -->')) {
181
+        $insert = "\n" . pipeline('insert_head', '<!-- f_insert_head -->') . "\n";
182
+        $texte = substr_replace($texte, $insert, $pos, 0);
183
+    }
184 184
 
185
-	return $texte;
185
+    return $texte;
186 186
 }
187 187
 
188 188
 
@@ -198,34 +198,34 @@  discard block
 block discarded – undo
198 198
  * @return string         Contenu de la page envoyée au navigateur
199 199
  **/
200 200
 function f_admin($texte) {
201
-	if (defined('_VAR_PREVIEW') and _VAR_PREVIEW and $GLOBALS['html']) {
202
-		include_spip('inc/filtres'); // pour http_img_pack
203
-		$x = "<div class='spip-previsu' "
204
-			. http_style_background('preview-32.png', '', 32)
205
-			. '>'
206
-			. _T('previsualisation')
207
-			. '</div>';
208
-		if (!$pos = stripos($texte, '</body>')) {
209
-			$pos = strlen($texte);
210
-		}
211
-		$texte = substr_replace($texte, $x, $pos, 0);
212
-		// pas de preview en fenetre enfant
213
-		$x = "<script type='text/javascript'>const frameEl = window.frameElement;if (frameEl) {frameEl.sandbox='sandbox';window.location.href='" . addslashes($GLOBALS['meta']['adresse_site']) . "';}</script>";
214
-		if (!$pos = stripos($texte, '<head') or !$pos = strpos($texte, '>', $pos)) {
215
-			$pos = -1;
216
-		}
217
-		$texte = substr_replace($texte, $x, $pos + 1, 0);
218
-	}
201
+    if (defined('_VAR_PREVIEW') and _VAR_PREVIEW and $GLOBALS['html']) {
202
+        include_spip('inc/filtres'); // pour http_img_pack
203
+        $x = "<div class='spip-previsu' "
204
+            . http_style_background('preview-32.png', '', 32)
205
+            . '>'
206
+            . _T('previsualisation')
207
+            . '</div>';
208
+        if (!$pos = stripos($texte, '</body>')) {
209
+            $pos = strlen($texte);
210
+        }
211
+        $texte = substr_replace($texte, $x, $pos, 0);
212
+        // pas de preview en fenetre enfant
213
+        $x = "<script type='text/javascript'>const frameEl = window.frameElement;if (frameEl) {frameEl.sandbox='sandbox';window.location.href='" . addslashes($GLOBALS['meta']['adresse_site']) . "';}</script>";
214
+        if (!$pos = stripos($texte, '<head') or !$pos = strpos($texte, '>', $pos)) {
215
+            $pos = -1;
216
+        }
217
+        $texte = substr_replace($texte, $x, $pos + 1, 0);
218
+    }
219 219
 
220
-	if (isset($GLOBALS['affiche_boutons_admin']) and $GLOBALS['affiche_boutons_admin']) {
221
-		include_spip('public/admin');
222
-		$texte = affiche_boutons_admin($texte);
223
-	}
224
-	if (_request('var_mode') == 'noajax') {
225
-		$texte = preg_replace(',(class=[\'"][^\'"]*)ajax([^\'"]*[\'"]),Uims', "\\1\\2", $texte);
226
-	}
220
+    if (isset($GLOBALS['affiche_boutons_admin']) and $GLOBALS['affiche_boutons_admin']) {
221
+        include_spip('public/admin');
222
+        $texte = affiche_boutons_admin($texte);
223
+    }
224
+    if (_request('var_mode') == 'noajax') {
225
+        $texte = preg_replace(',(class=[\'"][^\'"]*)ajax([^\'"]*[\'"]),Uims', "\\1\\2", $texte);
226
+    }
227 227
 
228
-	return $texte;
228
+    return $texte;
229 229
 }
230 230
 
231 231
 /**
@@ -243,11 +243,11 @@  discard block
 block discarded – undo
243 243
  * @return array $flux  Description et contenu de l'inclusion
244 244
  **/
245 245
 function f_recuperer_fond($flux) {
246
-	if (!test_espace_prive()) {
247
-		return $flux;
248
-	}
246
+    if (!test_espace_prive()) {
247
+        return $flux;
248
+    }
249 249
 
250
-	return f_afficher_blocs_ecrire($flux);
250
+    return f_afficher_blocs_ecrire($flux);
251 251
 }
252 252
 
253 253
 /**
@@ -261,30 +261,30 @@  discard block
 block discarded – undo
261 261
  * @return string         Contenu de la page envoyée au navigateur
262 262
  */
263 263
 function f_queue($texte) {
264
-	// eviter une inclusion si rien a faire
265
-	if (
266
-		_request('action') == 'cron'
267
-		or queue_sleep_time_to_next_job() > 0
268
-		or defined('_DEBUG_BLOCK_QUEUE')
269
-	) {
270
-		return $texte;
271
-	}
264
+    // eviter une inclusion si rien a faire
265
+    if (
266
+        _request('action') == 'cron'
267
+        or queue_sleep_time_to_next_job() > 0
268
+        or defined('_DEBUG_BLOCK_QUEUE')
269
+    ) {
270
+        return $texte;
271
+    }
272 272
 
273
-	include_spip('inc/queue');
274
-	$code = queue_affichage_cron();
273
+    include_spip('inc/queue');
274
+    $code = queue_affichage_cron();
275 275
 
276
-	// si rien a afficher
277
-	// ou si on est pas dans une page html, on ne sait rien faire de mieux
278
-	if (!$code or !isset($GLOBALS['html']) or !$GLOBALS['html']) {
279
-		return $texte;
280
-	}
276
+    // si rien a afficher
277
+    // ou si on est pas dans une page html, on ne sait rien faire de mieux
278
+    if (!$code or !isset($GLOBALS['html']) or !$GLOBALS['html']) {
279
+        return $texte;
280
+    }
281 281
 
282
-	// inserer avant le </body> fermant si on peut, a la fin de la page sinon
283
-	if (($p = strpos($texte, '</body>')) !== false) {
284
-		$texte = substr($texte, 0, $p) . $code . substr($texte, $p);
285
-	} else {
286
-		$texte .= $code;
287
-	}
282
+    // inserer avant le </body> fermant si on peut, a la fin de la page sinon
283
+    if (($p = strpos($texte, '</body>')) !== false) {
284
+        $texte = substr($texte, 0, $p) . $code . substr($texte, $p);
285
+    } else {
286
+        $texte .= $code;
287
+    }
288 288
 
289
-	return $texte;
289
+    return $texte;
290 290
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -64,7 +64,7 @@  discard block
 block discarded – undo
64 64
 		}
65 65
 	}
66 66
 
67
-	$texte = $x . $texte;
67
+	$texte = $x.$texte;
68 68
 
69 69
 	return $texte;
70 70
 }
@@ -178,7 +178,7 @@  discard block
 block discarded – undo
178 178
 	|| ($pos = 0);
179 179
 
180 180
 	if (!str_contains(substr($texte, 0, $pos), '<!-- insert_head -->')) {
181
-		$insert = "\n" . pipeline('insert_head', '<!-- f_insert_head -->') . "\n";
181
+		$insert = "\n".pipeline('insert_head', '<!-- f_insert_head -->')."\n";
182 182
 		$texte = substr_replace($texte, $insert, $pos, 0);
183 183
 	}
184 184
 
@@ -210,7 +210,7 @@  discard block
 block discarded – undo
210 210
 		}
211 211
 		$texte = substr_replace($texte, $x, $pos, 0);
212 212
 		// pas de preview en fenetre enfant
213
-		$x = "<script type='text/javascript'>const frameEl = window.frameElement;if (frameEl) {frameEl.sandbox='sandbox';window.location.href='" . addslashes($GLOBALS['meta']['adresse_site']) . "';}</script>";
213
+		$x = "<script type='text/javascript'>const frameEl = window.frameElement;if (frameEl) {frameEl.sandbox='sandbox';window.location.href='".addslashes($GLOBALS['meta']['adresse_site'])."';}</script>";
214 214
 		if (!$pos = stripos($texte, '<head') or !$pos = strpos($texte, '>', $pos)) {
215 215
 			$pos = -1;
216 216
 		}
@@ -281,7 +281,7 @@  discard block
 block discarded – undo
281 281
 
282 282
 	// inserer avant le </body> fermant si on peut, a la fin de la page sinon
283 283
 	if (($p = strpos($texte, '</body>')) !== false) {
284
-		$texte = substr($texte, 0, $p) . $code . substr($texte, $p);
284
+		$texte = substr($texte, 0, $p).$code.substr($texte, $p);
285 285
 	} else {
286 286
 		$texte .= $code;
287 287
 	}
Please login to merge, or discard this patch.
ecrire/inc/charsets.php 2 patches
Indentation   +636 added lines, -636 removed lines patch added patch discarded remove patch
@@ -22,7 +22,7 @@  discard block
 block discarded – undo
22 22
 
23 23
 // securité
24 24
 if (!defined('_ECRIRE_INC_VERSION')) {
25
-	return;
25
+    return;
26 26
 }
27 27
 
28 28
 // se faciliter la lecture du charset
@@ -32,19 +32,19 @@  discard block
 block discarded – undo
32 32
  * Initialisation
33 33
  */
34 34
 function init_charset(): void {
35
-	// Initialisation
36
-	$GLOBALS['CHARSET'] = [];
37
-
38
-	// noter a l'occasion dans la meta pcre_u notre capacite a utiliser le flag /u
39
-	// dans les preg_replace pour ne pas casser certaines lettres accentuees :
40
-	// en utf-8 chr(195).chr(160) = a` alors qu'en iso-latin chr(160) = nbsp
41
-	if (
42
-		!isset($GLOBALS['meta']['pcre_u'])
43
-		or (isset($_GET['var_mode']) and !isset($_GET['var_profile']))
44
-	) {
45
-		include_spip('inc/meta');
46
-		ecrire_meta('pcre_u', (lire_config('charset', _DEFAULT_CHARSET) === 'utf-8') ? 'u' : '');
47
-	}
35
+    // Initialisation
36
+    $GLOBALS['CHARSET'] = [];
37
+
38
+    // noter a l'occasion dans la meta pcre_u notre capacite a utiliser le flag /u
39
+    // dans les preg_replace pour ne pas casser certaines lettres accentuees :
40
+    // en utf-8 chr(195).chr(160) = a` alors qu'en iso-latin chr(160) = nbsp
41
+    if (
42
+        !isset($GLOBALS['meta']['pcre_u'])
43
+        or (isset($_GET['var_mode']) and !isset($_GET['var_profile']))
44
+    ) {
45
+        include_spip('inc/meta');
46
+        ecrire_meta('pcre_u', (lire_config('charset', _DEFAULT_CHARSET) === 'utf-8') ? 'u' : '');
47
+    }
48 48
 }
49 49
 
50 50
 // TODO: code d’exécution en dehors du fichier.
@@ -65,39 +65,39 @@  discard block
 block discarded – undo
65 65
  *     - false si le charset n'est pas décrit dans le répertoire charsets/
66 66
  **/
67 67
 function load_charset($charset = 'AUTO') {
68
-	if ($charset == 'AUTO') {
69
-		$charset = $GLOBALS['meta']['charset'];
70
-	}
71
-	$charset = trim(strtolower($charset));
72
-	if (isset($GLOBALS['CHARSET'][$charset])) {
73
-		return $charset;
74
-	}
75
-
76
-	if ($charset == 'utf-8') {
77
-		$GLOBALS['CHARSET'][$charset] = [];
78
-
79
-		return $charset;
80
-	}
81
-
82
-	// Quelques synonymes
83
-	if ($charset === '') {
84
-		$charset = 'iso-8859-1';
85
-	} elseif ($charset === 'windows-1250') {
86
-		$charset = 'cp1250';
87
-	} elseif ($charset === 'windows-1251') {
88
-		$charset = 'cp1251';
89
-	} elseif ($charset === 'windows-1256') {
90
-		$charset = 'cp1256';
91
-	}
92
-
93
-	if (find_in_path($charset . '.php', 'charsets/', true)) {
94
-		return $charset;
95
-	} else {
96
-		spip_log("Erreur: pas de fichier de conversion 'charsets/$charset'");
97
-		$GLOBALS['CHARSET'][$charset] = [];
98
-
99
-		return false;
100
-	}
68
+    if ($charset == 'AUTO') {
69
+        $charset = $GLOBALS['meta']['charset'];
70
+    }
71
+    $charset = trim(strtolower($charset));
72
+    if (isset($GLOBALS['CHARSET'][$charset])) {
73
+        return $charset;
74
+    }
75
+
76
+    if ($charset == 'utf-8') {
77
+        $GLOBALS['CHARSET'][$charset] = [];
78
+
79
+        return $charset;
80
+    }
81
+
82
+    // Quelques synonymes
83
+    if ($charset === '') {
84
+        $charset = 'iso-8859-1';
85
+    } elseif ($charset === 'windows-1250') {
86
+        $charset = 'cp1250';
87
+    } elseif ($charset === 'windows-1251') {
88
+        $charset = 'cp1251';
89
+    } elseif ($charset === 'windows-1256') {
90
+        $charset = 'cp1256';
91
+    }
92
+
93
+    if (find_in_path($charset . '.php', 'charsets/', true)) {
94
+        return $charset;
95
+    } else {
96
+        spip_log("Erreur: pas de fichier de conversion 'charsets/$charset'");
97
+        $GLOBALS['CHARSET'][$charset] = [];
98
+
99
+        return false;
100
+    }
101 101
 }
102 102
 
103 103
 
@@ -110,19 +110,19 @@  discard block
 block discarded – undo
110 110
  *     true si notre charset est utilisable par mb_strsing
111 111
  **/
112 112
 function init_mb_string(): bool {
113
-	static $mb;
114
-
115
-	// verifier que le charset interne est connu de mb_string
116
-	if (!$mb) {
117
-		if (mb_detect_order(lire_config('charset', _DEFAULT_CHARSET))) {
118
-			mb_internal_encoding('utf-8');
119
-			$mb = 1;
120
-		} else {
121
-			$mb = -1;
122
-		}
123
-	}
124
-
125
-	return ($mb === 1);
113
+    static $mb;
114
+
115
+    // verifier que le charset interne est connu de mb_string
116
+    if (!$mb) {
117
+        if (mb_detect_order(lire_config('charset', _DEFAULT_CHARSET))) {
118
+            mb_internal_encoding('utf-8');
119
+            $mb = 1;
120
+        } else {
121
+            $mb = -1;
122
+        }
123
+    }
124
+
125
+    return ($mb === 1);
126 126
 }
127 127
 
128 128
 /**
@@ -137,21 +137,21 @@  discard block
 block discarded – undo
137 137
  *     true si iconv fonctionne correctement
138 138
  **/
139 139
 function test_iconv(): bool {
140
-	static $iconv_ok;
141
-
142
-	if (!$iconv_ok) {
143
-		if (!function_exists('iconv')) {
144
-			$iconv_ok = -1;
145
-		} else {
146
-			if (utf_32_to_unicode(@iconv('utf-8', 'utf-32', 'chaine de test')) === 'chaine de test') {
147
-				$iconv_ok = 1;
148
-			} else {
149
-				$iconv_ok = -1;
150
-			}
151
-		}
152
-	}
153
-
154
-	return ($iconv_ok === 1);
140
+    static $iconv_ok;
141
+
142
+    if (!$iconv_ok) {
143
+        if (!function_exists('iconv')) {
144
+            $iconv_ok = -1;
145
+        } else {
146
+            if (utf_32_to_unicode(@iconv('utf-8', 'utf-32', 'chaine de test')) === 'chaine de test') {
147
+                $iconv_ok = 1;
148
+            } else {
149
+                $iconv_ok = -1;
150
+            }
151
+        }
152
+    }
153
+
154
+    return ($iconv_ok === 1);
155 155
 }
156 156
 
157 157
 /**
@@ -171,75 +171,75 @@  discard block
 block discarded – undo
171 171
  *     texte corrigé
172 172
  **/
173 173
 function corriger_caracteres_windows($texte, $charset = 'AUTO', $charset_cible = 'unicode') {
174
-	static $trans;
175
-
176
-	if (is_array($texte)) {
177
-		return array_map('corriger_caracteres_windows', $texte);
178
-	}
179
-
180
-	if ($charset == 'AUTO') {
181
-		$charset = lire_config('charset', _DEFAULT_CHARSET);
182
-	}
183
-	if ($charset == 'utf-8') {
184
-		$p = chr(194);
185
-		if (strpos($texte, $p) == false) {
186
-			return $texte;
187
-		}
188
-	} else {
189
-		if ($charset == 'iso-8859-1') {
190
-			$p = '';
191
-		} else {
192
-			return $texte;
193
-		}
194
-	}
195
-
196
-	if (!isset($trans[$charset][$charset_cible])) {
197
-		$trans[$charset][$charset_cible] = [
198
-			$p . chr(128) => '&#8364;',
199
-			$p . chr(129) => ' ', # pas affecte
200
-			$p . chr(130) => '&#8218;',
201
-			$p . chr(131) => '&#402;',
202
-			$p . chr(132) => '&#8222;',
203
-			$p . chr(133) => '&#8230;',
204
-			$p . chr(134) => '&#8224;',
205
-			$p . chr(135) => '&#8225;',
206
-			$p . chr(136) => '&#710;',
207
-			$p . chr(137) => '&#8240;',
208
-			$p . chr(138) => '&#352;',
209
-			$p . chr(139) => '&#8249;',
210
-			$p . chr(140) => '&#338;',
211
-			$p . chr(141) => ' ', # pas affecte
212
-			$p . chr(142) => '&#381;',
213
-			$p . chr(143) => ' ', # pas affecte
214
-			$p . chr(144) => ' ', # pas affecte
215
-			$p . chr(145) => '&#8216;',
216
-			$p . chr(146) => '&#8217;',
217
-			$p . chr(147) => '&#8220;',
218
-			$p . chr(148) => '&#8221;',
219
-			$p . chr(149) => '&#8226;',
220
-			$p . chr(150) => '&#8211;',
221
-			$p . chr(151) => '&#8212;',
222
-			$p . chr(152) => '&#732;',
223
-			$p . chr(153) => '&#8482;',
224
-			$p . chr(154) => '&#353;',
225
-			$p . chr(155) => '&#8250;',
226
-			$p . chr(156) => '&#339;',
227
-			$p . chr(157) => ' ', # pas affecte
228
-			$p . chr(158) => '&#382;',
229
-			$p . chr(159) => '&#376;',
230
-		];
231
-		if ($charset_cible != 'unicode') {
232
-			foreach ($trans[$charset][$charset_cible] as $k => $c) {
233
-				$trans[$charset][$charset_cible][$k] = unicode2charset($c, $charset_cible);
234
-			}
235
-		}
236
-	}
237
-
238
-	return @str_replace(
239
-		array_keys($trans[$charset][$charset_cible]),
240
-		array_values($trans[$charset][$charset_cible]),
241
-		$texte
242
-	);
174
+    static $trans;
175
+
176
+    if (is_array($texte)) {
177
+        return array_map('corriger_caracteres_windows', $texte);
178
+    }
179
+
180
+    if ($charset == 'AUTO') {
181
+        $charset = lire_config('charset', _DEFAULT_CHARSET);
182
+    }
183
+    if ($charset == 'utf-8') {
184
+        $p = chr(194);
185
+        if (strpos($texte, $p) == false) {
186
+            return $texte;
187
+        }
188
+    } else {
189
+        if ($charset == 'iso-8859-1') {
190
+            $p = '';
191
+        } else {
192
+            return $texte;
193
+        }
194
+    }
195
+
196
+    if (!isset($trans[$charset][$charset_cible])) {
197
+        $trans[$charset][$charset_cible] = [
198
+            $p . chr(128) => '&#8364;',
199
+            $p . chr(129) => ' ', # pas affecte
200
+            $p . chr(130) => '&#8218;',
201
+            $p . chr(131) => '&#402;',
202
+            $p . chr(132) => '&#8222;',
203
+            $p . chr(133) => '&#8230;',
204
+            $p . chr(134) => '&#8224;',
205
+            $p . chr(135) => '&#8225;',
206
+            $p . chr(136) => '&#710;',
207
+            $p . chr(137) => '&#8240;',
208
+            $p . chr(138) => '&#352;',
209
+            $p . chr(139) => '&#8249;',
210
+            $p . chr(140) => '&#338;',
211
+            $p . chr(141) => ' ', # pas affecte
212
+            $p . chr(142) => '&#381;',
213
+            $p . chr(143) => ' ', # pas affecte
214
+            $p . chr(144) => ' ', # pas affecte
215
+            $p . chr(145) => '&#8216;',
216
+            $p . chr(146) => '&#8217;',
217
+            $p . chr(147) => '&#8220;',
218
+            $p . chr(148) => '&#8221;',
219
+            $p . chr(149) => '&#8226;',
220
+            $p . chr(150) => '&#8211;',
221
+            $p . chr(151) => '&#8212;',
222
+            $p . chr(152) => '&#732;',
223
+            $p . chr(153) => '&#8482;',
224
+            $p . chr(154) => '&#353;',
225
+            $p . chr(155) => '&#8250;',
226
+            $p . chr(156) => '&#339;',
227
+            $p . chr(157) => ' ', # pas affecte
228
+            $p . chr(158) => '&#382;',
229
+            $p . chr(159) => '&#376;',
230
+        ];
231
+        if ($charset_cible != 'unicode') {
232
+            foreach ($trans[$charset][$charset_cible] as $k => $c) {
233
+                $trans[$charset][$charset_cible][$k] = unicode2charset($c, $charset_cible);
234
+            }
235
+        }
236
+    }
237
+
238
+    return @str_replace(
239
+        array_keys($trans[$charset][$charset_cible]),
240
+        array_values($trans[$charset][$charset_cible]),
241
+        $texte
242
+    );
243 243
 }
244 244
 
245 245
 
@@ -256,26 +256,26 @@  discard block
 block discarded – undo
256 256
  *     texte converti
257 257
  **/
258 258
 function html2unicode($texte, $secure = false) {
259
-	if (strpos($texte, '&') === false) {
260
-		return $texte;
261
-	}
262
-	static $trans = [];
263
-	if (!$trans) {
264
-		load_charset('html');
265
-		foreach ($GLOBALS['CHARSET']['html'] as $key => $val) {
266
-			$trans["&$key;"] = $val;
267
-		}
268
-	}
269
-
270
-	if ($secure) {
271
-		return str_replace(array_keys($trans), array_values($trans), $texte);
272
-	} else {
273
-		return str_replace(
274
-			['&amp;', '&quot;', '&lt;', '&gt;'],
275
-			['&', '"', '<', '>'],
276
-			str_replace(array_keys($trans), array_values($trans), $texte)
277
-		);
278
-	}
259
+    if (strpos($texte, '&') === false) {
260
+        return $texte;
261
+    }
262
+    static $trans = [];
263
+    if (!$trans) {
264
+        load_charset('html');
265
+        foreach ($GLOBALS['CHARSET']['html'] as $key => $val) {
266
+            $trans["&$key;"] = $val;
267
+        }
268
+    }
269
+
270
+    if ($secure) {
271
+        return str_replace(array_keys($trans), array_values($trans), $texte);
272
+    } else {
273
+        return str_replace(
274
+            ['&amp;', '&quot;', '&lt;', '&gt;'],
275
+            ['&', '"', '<', '>'],
276
+            str_replace(array_keys($trans), array_values($trans), $texte)
277
+        );
278
+    }
279 279
 }
280 280
 
281 281
 
@@ -290,16 +290,16 @@  discard block
 block discarded – undo
290 290
  *     texte converti
291 291
  **/
292 292
 function mathml2unicode($texte) {
293
-	static $trans;
294
-	if (!$trans) {
295
-		load_charset('mathml');
293
+    static $trans;
294
+    if (!$trans) {
295
+        load_charset('mathml');
296 296
 
297
-		foreach ($GLOBALS['CHARSET']['mathml'] as $key => $val) {
298
-			$trans["&$key;"] = $val;
299
-		}
300
-	}
297
+        foreach ($GLOBALS['CHARSET']['mathml'] as $key => $val) {
298
+            $trans["&$key;"] = $val;
299
+        }
300
+    }
301 301
 
302
-	return str_replace(array_keys($trans), array_values($trans), $texte);
302
+    return str_replace(array_keys($trans), array_values($trans), $texte);
303 303
 }
304 304
 
305 305
 
@@ -321,75 +321,75 @@  discard block
 block discarded – undo
321 321
  *     texte converti en unicode
322 322
  **/
323 323
 function charset2unicode($texte, $charset = 'AUTO' /* $forcer: obsolete*/) {
324
-	static $trans;
325
-
326
-	if ($charset === 'AUTO') {
327
-		$charset = lire_config('charset', _DEFAULT_CHARSET);
328
-	}
329
-
330
-	if ($charset === '') {
331
-		$charset = 'iso-8859-1';
332
-	}
333
-	$charset = strtolower($charset);
334
-
335
-	switch ($charset) {
336
-		case 'utf-8':
337
-		case 'utf8':
338
-			return utf_8_to_unicode($texte);
339
-
340
-		case 'iso-8859-1':
341
-			$texte = corriger_caracteres_windows($texte, 'iso-8859-1');
342
-		// pas de break; ici, on suit sur default:
343
-
344
-		default:
345
-			// mbstring presente ?
346
-			if (init_mb_string()) {
347
-				$order = mb_detect_order();
348
-				try {
349
-					# mb_string connait-il $charset?
350
-					if ($order and mb_detect_order($charset)) {
351
-						$s = mb_convert_encoding($texte, 'utf-8', $charset);
352
-						if ($s && $s != $texte) {
353
-							return utf_8_to_unicode($s);
354
-						}
355
-					}
356
-				} catch (\Error $e) {
357
-					// Le charset n'existe probablement pas
358
-				} finally {
359
-					mb_detect_order($order); # remettre comme precedemment
360
-				}
361
-			}
362
-
363
-			// Sinon, peut-etre connaissons-nous ce charset ?
364
-			if (!isset($trans[$charset])) {
365
-				if (
366
-					$cset = load_charset($charset)
367
-					and is_array($GLOBALS['CHARSET'][$cset])
368
-				) {
369
-					foreach ($GLOBALS['CHARSET'][$cset] as $key => $val) {
370
-						$trans[$charset][chr($key)] = '&#' . $val . ';';
371
-					}
372
-				}
373
-			}
374
-			if (isset($trans[$charset]) and is_countable($trans[$charset]) ? count($trans[$charset]) : 0) {
375
-				return str_replace(array_keys($trans[$charset]), array_values($trans[$charset]), $texte);
376
-			}
377
-
378
-			// Sinon demander a iconv (malgre le fait qu'il coupe quand un
379
-			// caractere n'appartient pas au charset, mais c'est un probleme
380
-			// surtout en utf-8, gere ci-dessus)
381
-			if (test_iconv()) {
382
-				$s = iconv($charset, 'utf-32le', $texte);
383
-				if ($s) {
384
-					return utf_32_to_unicode($s);
385
-				}
386
-			}
387
-
388
-			// Au pire ne rien faire
389
-			spip_log("erreur charset '$charset' non supporte");
390
-
391
-			return $texte;
392
-	}
324
+    static $trans;
325
+
326
+    if ($charset === 'AUTO') {
327
+        $charset = lire_config('charset', _DEFAULT_CHARSET);
328
+    }
329
+
330
+    if ($charset === '') {
331
+        $charset = 'iso-8859-1';
332
+    }
333
+    $charset = strtolower($charset);
334
+
335
+    switch ($charset) {
336
+        case 'utf-8':
337
+        case 'utf8':
338
+            return utf_8_to_unicode($texte);
339
+
340
+        case 'iso-8859-1':
341
+            $texte = corriger_caracteres_windows($texte, 'iso-8859-1');
342
+        // pas de break; ici, on suit sur default:
343
+
344
+        default:
345
+            // mbstring presente ?
346
+            if (init_mb_string()) {
347
+                $order = mb_detect_order();
348
+                try {
349
+                    # mb_string connait-il $charset?
350
+                    if ($order and mb_detect_order($charset)) {
351
+                        $s = mb_convert_encoding($texte, 'utf-8', $charset);
352
+                        if ($s && $s != $texte) {
353
+                            return utf_8_to_unicode($s);
354
+                        }
355
+                    }
356
+                } catch (\Error $e) {
357
+                    // Le charset n'existe probablement pas
358
+                } finally {
359
+                    mb_detect_order($order); # remettre comme precedemment
360
+                }
361
+            }
362
+
363
+            // Sinon, peut-etre connaissons-nous ce charset ?
364
+            if (!isset($trans[$charset])) {
365
+                if (
366
+                    $cset = load_charset($charset)
367
+                    and is_array($GLOBALS['CHARSET'][$cset])
368
+                ) {
369
+                    foreach ($GLOBALS['CHARSET'][$cset] as $key => $val) {
370
+                        $trans[$charset][chr($key)] = '&#' . $val . ';';
371
+                    }
372
+                }
373
+            }
374
+            if (isset($trans[$charset]) and is_countable($trans[$charset]) ? count($trans[$charset]) : 0) {
375
+                return str_replace(array_keys($trans[$charset]), array_values($trans[$charset]), $texte);
376
+            }
377
+
378
+            // Sinon demander a iconv (malgre le fait qu'il coupe quand un
379
+            // caractere n'appartient pas au charset, mais c'est un probleme
380
+            // surtout en utf-8, gere ci-dessus)
381
+            if (test_iconv()) {
382
+                $s = iconv($charset, 'utf-32le', $texte);
383
+                if ($s) {
384
+                    return utf_32_to_unicode($s);
385
+                }
386
+            }
387
+
388
+            // Au pire ne rien faire
389
+            spip_log("erreur charset '$charset' non supporte");
390
+
391
+            return $texte;
392
+    }
393 393
 }
394 394
 
395 395
 
@@ -408,43 +408,43 @@  discard block
 block discarded – undo
408 408
  *     texte transformé dans le charset souhaité
409 409
  **/
410 410
 function unicode2charset($texte, $charset = 'AUTO') {
411
-	static $CHARSET_REVERSE = [];
412
-	static $trans = [];
413
-
414
-	if ($charset == 'AUTO') {
415
-		$charset = lire_config('charset', _DEFAULT_CHARSET);
416
-	}
417
-
418
-	switch ($charset) {
419
-		case 'utf-8':
420
-			return unicode_to_utf_8($texte);
421
-
422
-		default:
423
-			$charset = load_charset($charset);
424
-
425
-			if (empty($CHARSET_REVERSE[$charset])) {
426
-				$CHARSET_REVERSE[$charset] = array_flip($GLOBALS['CHARSET'][$charset]);
427
-			}
428
-
429
-			if (!isset($trans[$charset])) {
430
-				$trans[$charset] = [];
431
-				$t = &$trans[$charset];
432
-				for ($e = 128; $e < 255; $e++) {
433
-					$h = dechex($e);
434
-					if ($s = isset($CHARSET_REVERSE[$charset][$e])) {
435
-						$s = $CHARSET_REVERSE[$charset][$e];
436
-						$t['&#' . $e . ';'] = $t['&#0' . $e . ';'] = $t['&#00' . $e . ';'] = chr($s);
437
-						$t['&#x' . $h . ';'] = $t['&#x0' . $h . ';'] = $t['&#x00' . $h . ';'] = chr($s);
438
-					} else {
439
-						$t['&#' . $e . ';'] = $t['&#0' . $e . ';'] = $t['&#00' . $e . ';'] = chr($e);
440
-						$t['&#x' . $h . ';'] = $t['&#x0' . $h . ';'] = $t['&#x00' . $h . ';'] = chr($e);
441
-					}
442
-				}
443
-			}
444
-			$texte = str_replace(array_keys($trans[$charset]), array_values($trans[$charset]), $texte);
445
-
446
-			return $texte;
447
-	}
411
+    static $CHARSET_REVERSE = [];
412
+    static $trans = [];
413
+
414
+    if ($charset == 'AUTO') {
415
+        $charset = lire_config('charset', _DEFAULT_CHARSET);
416
+    }
417
+
418
+    switch ($charset) {
419
+        case 'utf-8':
420
+            return unicode_to_utf_8($texte);
421
+
422
+        default:
423
+            $charset = load_charset($charset);
424
+
425
+            if (empty($CHARSET_REVERSE[$charset])) {
426
+                $CHARSET_REVERSE[$charset] = array_flip($GLOBALS['CHARSET'][$charset]);
427
+            }
428
+
429
+            if (!isset($trans[$charset])) {
430
+                $trans[$charset] = [];
431
+                $t = &$trans[$charset];
432
+                for ($e = 128; $e < 255; $e++) {
433
+                    $h = dechex($e);
434
+                    if ($s = isset($CHARSET_REVERSE[$charset][$e])) {
435
+                        $s = $CHARSET_REVERSE[$charset][$e];
436
+                        $t['&#' . $e . ';'] = $t['&#0' . $e . ';'] = $t['&#00' . $e . ';'] = chr($s);
437
+                        $t['&#x' . $h . ';'] = $t['&#x0' . $h . ';'] = $t['&#x00' . $h . ';'] = chr($s);
438
+                    } else {
439
+                        $t['&#' . $e . ';'] = $t['&#0' . $e . ';'] = $t['&#00' . $e . ';'] = chr($e);
440
+                        $t['&#x' . $h . ';'] = $t['&#x0' . $h . ';'] = $t['&#x00' . $h . ';'] = chr($e);
441
+                    }
442
+                }
443
+            }
444
+            $texte = str_replace(array_keys($trans[$charset]), array_values($trans[$charset]), $texte);
445
+
446
+            return $texte;
447
+    }
448 448
 }
449 449
 
450 450
 
@@ -462,40 +462,40 @@  discard block
 block discarded – undo
462 462
  *     texte transformé dans le charset site
463 463
  **/
464 464
 function importer_charset($texte, $charset = 'AUTO') {
465
-	$s = null;
466
-	static $trans = [];
467
-	// on traite le cas le plus frequent iso-8859-1 vers utf directement pour aller plus vite !
468
-	if (($charset == 'iso-8859-1') && ($GLOBALS['meta']['charset'] == 'utf-8')) {
469
-		$texte = corriger_caracteres_windows($texte, 'iso-8859-1', $GLOBALS['meta']['charset']);
470
-		if (init_mb_string()) {
471
-			if (
472
-				$order = mb_detect_order() # mb_string connait-il $charset?
473
-				and mb_detect_order($charset)
474
-			) {
475
-				$s = mb_convert_encoding($texte, 'utf-8', $charset);
476
-			}
477
-			mb_detect_order($order); # remettre comme precedemment
478
-			return $s;
479
-		}
480
-		// Sinon, peut-etre connaissons-nous ce charset ?
481
-		if (!isset($trans[$charset])) {
482
-			if (
483
-				$cset = load_charset($charset)
484
-				and is_array($GLOBALS['CHARSET'][$cset])
485
-			) {
486
-				foreach ($GLOBALS['CHARSET'][$cset] as $key => $val) {
487
-					$trans[$charset][chr($key)] = unicode2charset('&#' . $val . ';');
488
-				}
489
-			}
490
-		}
491
-		if (is_countable($trans[$charset]) ? count($trans[$charset]) : 0) {
492
-			return str_replace(array_keys($trans[$charset]), array_values($trans[$charset]), $texte);
493
-		}
494
-
495
-		return $texte;
496
-	}
497
-
498
-	return unicode2charset(charset2unicode($texte, $charset));
465
+    $s = null;
466
+    static $trans = [];
467
+    // on traite le cas le plus frequent iso-8859-1 vers utf directement pour aller plus vite !
468
+    if (($charset == 'iso-8859-1') && ($GLOBALS['meta']['charset'] == 'utf-8')) {
469
+        $texte = corriger_caracteres_windows($texte, 'iso-8859-1', $GLOBALS['meta']['charset']);
470
+        if (init_mb_string()) {
471
+            if (
472
+                $order = mb_detect_order() # mb_string connait-il $charset?
473
+                and mb_detect_order($charset)
474
+            ) {
475
+                $s = mb_convert_encoding($texte, 'utf-8', $charset);
476
+            }
477
+            mb_detect_order($order); # remettre comme precedemment
478
+            return $s;
479
+        }
480
+        // Sinon, peut-etre connaissons-nous ce charset ?
481
+        if (!isset($trans[$charset])) {
482
+            if (
483
+                $cset = load_charset($charset)
484
+                and is_array($GLOBALS['CHARSET'][$cset])
485
+            ) {
486
+                foreach ($GLOBALS['CHARSET'][$cset] as $key => $val) {
487
+                    $trans[$charset][chr($key)] = unicode2charset('&#' . $val . ';');
488
+                }
489
+            }
490
+        }
491
+        if (is_countable($trans[$charset]) ? count($trans[$charset]) : 0) {
492
+            return str_replace(array_keys($trans[$charset]), array_values($trans[$charset]), $texte);
493
+        }
494
+
495
+        return $texte;
496
+    }
497
+
498
+    return unicode2charset(charset2unicode($texte, $charset));
499 499
 }
500 500
 
501 501
 
@@ -511,92 +511,92 @@  discard block
 block discarded – undo
511 511
  **/
512 512
 function utf_8_to_unicode($source) {
513 513
 
514
-	// mb_string : methode rapide
515
-	if (init_mb_string()) {
516
-		$convmap = [0x7F, 0xFFFFFF, 0x0, 0xFFFFFF];
517
-
518
-		return mb_encode_numericentity($source, $convmap, 'UTF-8');
519
-	}
520
-
521
-	// Sinon methode pas a pas
522
-	static $decrement;
523
-	static $shift;
524
-
525
-	// Cf. php.net, par Ronen. Adapte pour compatibilite < php4
526
-	if (!is_array($decrement)) {
527
-		// array used to figure what number to decrement from character order value
528
-		// according to number of characters used to map unicode to ascii by utf-8
529
-		$decrement[4] = 240;
530
-		$decrement[3] = 224;
531
-		$decrement[2] = 192;
532
-		$decrement[1] = 0;
533
-		// the number of bits to shift each charNum by
534
-		$shift[1][0] = 0;
535
-		$shift[2][0] = 6;
536
-		$shift[2][1] = 0;
537
-		$shift[3][0] = 12;
538
-		$shift[3][1] = 6;
539
-		$shift[3][2] = 0;
540
-		$shift[4][0] = 18;
541
-		$shift[4][1] = 12;
542
-		$shift[4][2] = 6;
543
-		$shift[4][3] = 0;
544
-	}
545
-
546
-	$pos = 0;
547
-	$len = strlen($source);
548
-	$encodedString = '';
549
-	while ($pos < $len) {
550
-		$char = '';
551
-		$ischar = false;
552
-		$asciiPos = ord(substr($source, $pos, 1));
553
-		if (($asciiPos >= 240) && ($asciiPos <= 255)) {
554
-			// 4 chars representing one unicode character
555
-			$thisLetter = substr($source, $pos, 4);
556
-			$pos += 4;
557
-		} else {
558
-			if (($asciiPos >= 224) && ($asciiPos <= 239)) {
559
-				// 3 chars representing one unicode character
560
-				$thisLetter = substr($source, $pos, 3);
561
-				$pos += 3;
562
-			} else {
563
-				if (($asciiPos >= 192) && ($asciiPos <= 223)) {
564
-					// 2 chars representing one unicode character
565
-					$thisLetter = substr($source, $pos, 2);
566
-					$pos += 2;
567
-				} else {
568
-					// 1 char (lower ascii)
569
-					$thisLetter = substr($source, $pos, 1);
570
-					$pos += 1;
571
-					$char = $thisLetter;
572
-					$ischar = true;
573
-				}
574
-			}
575
-		}
576
-
577
-		if ($ischar) {
578
-			$encodedString .= $char;
579
-		} else {  // process the string representing the letter to a unicode entity
580
-			$thisLen = strlen($thisLetter);
581
-			$thisPos = 0;
582
-			$decimalCode = 0;
583
-			while ($thisPos < $thisLen) {
584
-				$thisCharOrd = ord(substr($thisLetter, $thisPos, 1));
585
-				if ($thisPos == 0) {
586
-					$charNum = intval($thisCharOrd - $decrement[$thisLen]);
587
-					$decimalCode += ($charNum << $shift[$thisLen][$thisPos]);
588
-				} else {
589
-					$charNum = intval($thisCharOrd - 128);
590
-					$decimalCode += ($charNum << $shift[$thisLen][$thisPos]);
591
-				}
592
-				$thisPos++;
593
-			}
594
-			$encodedLetter = '&#' . preg_replace('/^0+/', '', $decimalCode) . ';';
595
-			$encodedString .= $encodedLetter;
596
-		}
597
-	}
598
-
599
-	return $encodedString;
514
+    // mb_string : methode rapide
515
+    if (init_mb_string()) {
516
+        $convmap = [0x7F, 0xFFFFFF, 0x0, 0xFFFFFF];
517
+
518
+        return mb_encode_numericentity($source, $convmap, 'UTF-8');
519
+    }
520
+
521
+    // Sinon methode pas a pas
522
+    static $decrement;
523
+    static $shift;
524
+
525
+    // Cf. php.net, par Ronen. Adapte pour compatibilite < php4
526
+    if (!is_array($decrement)) {
527
+        // array used to figure what number to decrement from character order value
528
+        // according to number of characters used to map unicode to ascii by utf-8
529
+        $decrement[4] = 240;
530
+        $decrement[3] = 224;
531
+        $decrement[2] = 192;
532
+        $decrement[1] = 0;
533
+        // the number of bits to shift each charNum by
534
+        $shift[1][0] = 0;
535
+        $shift[2][0] = 6;
536
+        $shift[2][1] = 0;
537
+        $shift[3][0] = 12;
538
+        $shift[3][1] = 6;
539
+        $shift[3][2] = 0;
540
+        $shift[4][0] = 18;
541
+        $shift[4][1] = 12;
542
+        $shift[4][2] = 6;
543
+        $shift[4][3] = 0;
544
+    }
545
+
546
+    $pos = 0;
547
+    $len = strlen($source);
548
+    $encodedString = '';
549
+    while ($pos < $len) {
550
+        $char = '';
551
+        $ischar = false;
552
+        $asciiPos = ord(substr($source, $pos, 1));
553
+        if (($asciiPos >= 240) && ($asciiPos <= 255)) {
554
+            // 4 chars representing one unicode character
555
+            $thisLetter = substr($source, $pos, 4);
556
+            $pos += 4;
557
+        } else {
558
+            if (($asciiPos >= 224) && ($asciiPos <= 239)) {
559
+                // 3 chars representing one unicode character
560
+                $thisLetter = substr($source, $pos, 3);
561
+                $pos += 3;
562
+            } else {
563
+                if (($asciiPos >= 192) && ($asciiPos <= 223)) {
564
+                    // 2 chars representing one unicode character
565
+                    $thisLetter = substr($source, $pos, 2);
566
+                    $pos += 2;
567
+                } else {
568
+                    // 1 char (lower ascii)
569
+                    $thisLetter = substr($source, $pos, 1);
570
+                    $pos += 1;
571
+                    $char = $thisLetter;
572
+                    $ischar = true;
573
+                }
574
+            }
575
+        }
576
+
577
+        if ($ischar) {
578
+            $encodedString .= $char;
579
+        } else {  // process the string representing the letter to a unicode entity
580
+            $thisLen = strlen($thisLetter);
581
+            $thisPos = 0;
582
+            $decimalCode = 0;
583
+            while ($thisPos < $thisLen) {
584
+                $thisCharOrd = ord(substr($thisLetter, $thisPos, 1));
585
+                if ($thisPos == 0) {
586
+                    $charNum = intval($thisCharOrd - $decrement[$thisLen]);
587
+                    $decimalCode += ($charNum << $shift[$thisLen][$thisPos]);
588
+                } else {
589
+                    $charNum = intval($thisCharOrd - 128);
590
+                    $decimalCode += ($charNum << $shift[$thisLen][$thisPos]);
591
+                }
592
+                $thisPos++;
593
+            }
594
+            $encodedLetter = '&#' . preg_replace('/^0+/', '', $decimalCode) . ';';
595
+            $encodedString .= $encodedLetter;
596
+        }
597
+    }
598
+
599
+    return $encodedString;
600 600
 }
601 601
 
602 602
 /**
@@ -615,32 +615,32 @@  discard block
 block discarded – undo
615 615
  **/
616 616
 function utf_32_to_unicode($source) {
617 617
 
618
-	// mb_string : methode rapide
619
-	if (init_mb_string()) {
620
-		$convmap = [0x7F, 0xFFFFFF, 0x0, 0xFFFFFF];
621
-		$source = mb_encode_numericentity($source, $convmap, 'UTF-32LE');
622
-
623
-		return str_replace(chr(0), '', $source);
624
-	}
625
-
626
-	// Sinon methode lente
627
-	$texte = '';
628
-	while ($source) {
629
-		$words = unpack('V*', substr($source, 0, 1024));
630
-		$source = substr($source, 1024);
631
-		foreach ($words as $word) {
632
-			if ($word < 128) {
633
-				$texte .= chr($word);
634
-			} // ignorer le BOM - http://www.unicode.org/faq/utf_bom.html
635
-			else {
636
-				if ($word != 65279) {
637
-					$texte .= '&#' . $word . ';';
638
-				}
639
-			}
640
-		}
641
-	}
642
-
643
-	return $texte;
618
+    // mb_string : methode rapide
619
+    if (init_mb_string()) {
620
+        $convmap = [0x7F, 0xFFFFFF, 0x0, 0xFFFFFF];
621
+        $source = mb_encode_numericentity($source, $convmap, 'UTF-32LE');
622
+
623
+        return str_replace(chr(0), '', $source);
624
+    }
625
+
626
+    // Sinon methode lente
627
+    $texte = '';
628
+    while ($source) {
629
+        $words = unpack('V*', substr($source, 0, 1024));
630
+        $source = substr($source, 1024);
631
+        foreach ($words as $word) {
632
+            if ($word < 128) {
633
+                $texte .= chr($word);
634
+            } // ignorer le BOM - http://www.unicode.org/faq/utf_bom.html
635
+            else {
636
+                if ($word != 65279) {
637
+                    $texte .= '&#' . $word . ';';
638
+                }
639
+            }
640
+        }
641
+    }
642
+
643
+    return $texte;
644 644
 }
645 645
 
646 646
 
@@ -657,21 +657,21 @@  discard block
 block discarded – undo
657 657
  *    Caractère utf8 si trouvé, '' sinon
658 658
  **/
659 659
 function caractere_utf_8($num) {
660
-	$num = intval($num);
661
-	if ($num < 128) {
662
-		return chr($num);
663
-	}
664
-	if ($num < 2048) {
665
-		return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
666
-	}
667
-	if ($num < 65536) {
668
-		return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
669
-	}
670
-	if ($num < 1_114_112) {
671
-		return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
672
-	}
673
-
674
-	return '';
660
+    $num = intval($num);
661
+    if ($num < 128) {
662
+        return chr($num);
663
+    }
664
+    if ($num < 2048) {
665
+        return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
666
+    }
667
+    if ($num < 65536) {
668
+        return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
669
+    }
670
+    if ($num < 1_114_112) {
671
+        return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
672
+    }
673
+
674
+    return '';
675 675
 }
676 676
 
677 677
 /**
@@ -684,42 +684,42 @@  discard block
 block discarded – undo
684 684
  **/
685 685
 function unicode_to_utf_8($texte) {
686 686
 
687
-	// 1. Entites &#128; et suivantes
688
-	$vu = [];
689
-	if (
690
-		preg_match_all(
691
-			',&#0*([1-9][0-9][0-9]+);,S',
692
-			$texte,
693
-			$regs,
694
-			PREG_SET_ORDER
695
-		)
696
-	) {
697
-		foreach ($regs as $reg) {
698
-			if ($reg[1] > 127 and !isset($vu[$reg[0]])) {
699
-				$vu[$reg[0]] = caractere_utf_8($reg[1]);
700
-			}
701
-		}
702
-	}
703
-	//$texte = str_replace(array_keys($vu), array_values($vu), $texte);
704
-
705
-	// 2. Entites > &#xFF;
706
-	//$vu = array();
707
-	if (
708
-		preg_match_all(
709
-			',&#x0*([1-9a-f][0-9a-f][0-9a-f]+);,iS',
710
-			$texte,
711
-			$regs,
712
-			PREG_SET_ORDER
713
-		)
714
-	) {
715
-		foreach ($regs as $reg) {
716
-			if (!isset($vu[$reg[0]])) {
717
-				$vu[$reg[0]] = caractere_utf_8(hexdec($reg[1]));
718
-			}
719
-		}
720
-	}
721
-
722
-	return str_replace(array_keys($vu), array_values($vu), $texte);
687
+    // 1. Entites &#128; et suivantes
688
+    $vu = [];
689
+    if (
690
+        preg_match_all(
691
+            ',&#0*([1-9][0-9][0-9]+);,S',
692
+            $texte,
693
+            $regs,
694
+            PREG_SET_ORDER
695
+        )
696
+    ) {
697
+        foreach ($regs as $reg) {
698
+            if ($reg[1] > 127 and !isset($vu[$reg[0]])) {
699
+                $vu[$reg[0]] = caractere_utf_8($reg[1]);
700
+            }
701
+        }
702
+    }
703
+    //$texte = str_replace(array_keys($vu), array_values($vu), $texte);
704
+
705
+    // 2. Entites > &#xFF;
706
+    //$vu = array();
707
+    if (
708
+        preg_match_all(
709
+            ',&#x0*([1-9a-f][0-9a-f][0-9a-f]+);,iS',
710
+            $texte,
711
+            $regs,
712
+            PREG_SET_ORDER
713
+        )
714
+    ) {
715
+        foreach ($regs as $reg) {
716
+            if (!isset($vu[$reg[0]])) {
717
+                $vu[$reg[0]] = caractere_utf_8(hexdec($reg[1]));
718
+            }
719
+        }
720
+    }
721
+
722
+    return str_replace(array_keys($vu), array_values($vu), $texte);
723 723
 }
724 724
 
725 725
 /**
@@ -731,15 +731,15 @@  discard block
 block discarded – undo
731 731
  *     texte converti
732 732
  **/
733 733
 function unicode_to_javascript($texte) {
734
-	$vu = [];
735
-	while (preg_match(',&#0*([0-9]+);,S', $texte, $regs) and !isset($vu[$regs[1]])) {
736
-		$num = $regs[1];
737
-		$vu[$num] = true;
738
-		$s = '\u' . sprintf('%04x', $num);
739
-		$texte = str_replace($regs[0], $s, $texte);
740
-	}
741
-
742
-	return $texte;
734
+    $vu = [];
735
+    while (preg_match(',&#0*([0-9]+);,S', $texte, $regs) and !isset($vu[$regs[1]])) {
736
+        $num = $regs[1];
737
+        $vu[$num] = true;
738
+        $s = '\u' . sprintf('%04x', $num);
739
+        $texte = str_replace($regs[0], $s, $texte);
740
+    }
741
+
742
+    return $texte;
743 743
 }
744 744
 
745 745
 /**
@@ -751,11 +751,11 @@  discard block
 block discarded – undo
751 751
  *     texte converti
752 752
  **/
753 753
 function javascript_to_unicode($texte) {
754
-	while (preg_match(',%u([0-9A-F][0-9A-F][0-9A-F][0-9A-F]),', $texte, $regs)) {
755
-		$texte = str_replace($regs[0], '&#' . hexdec($regs[1]) . ';', $texte);
756
-	}
754
+    while (preg_match(',%u([0-9A-F][0-9A-F][0-9A-F][0-9A-F]),', $texte, $regs)) {
755
+        $texte = str_replace($regs[0], '&#' . hexdec($regs[1]) . ';', $texte);
756
+    }
757 757
 
758
-	return $texte;
758
+    return $texte;
759 759
 }
760 760
 
761 761
 /**
@@ -767,11 +767,11 @@  discard block
 block discarded – undo
767 767
  *     texte converti
768 768
  **/
769 769
 function javascript_to_binary($texte) {
770
-	while (preg_match(',%([0-9A-F][0-9A-F]),', $texte, $regs)) {
771
-		$texte = str_replace($regs[0], chr(hexdec($regs[1])), $texte);
772
-	}
770
+    while (preg_match(',%([0-9A-F][0-9A-F]),', $texte, $regs)) {
771
+        $texte = str_replace($regs[0], chr(hexdec($regs[1])), $texte);
772
+    }
773 773
 
774
-	return $texte;
774
+    return $texte;
775 775
 }
776 776
 
777 777
 
@@ -789,26 +789,26 @@  discard block
 block discarded – undo
789 789
  * @return string
790 790
  */
791 791
 function translitteration_rapide($texte, $charset = 'AUTO', $complexe = ''): string {
792
-	static $trans = [];
793
-	if ($charset == 'AUTO') {
794
-		$charset = $GLOBALS['meta']['charset'];
795
-	}
796
-	if (!strlen($texte)) {
797
-		return $texte;
798
-	}
799
-
800
-	$table_translit = 'translit' . $complexe;
801
-
802
-	// 2. Translitterer grace a la table predefinie
803
-	if (!isset($trans[$complexe])) {
804
-		$trans[$complexe] = [];
805
-		load_charset($table_translit);
806
-		foreach ($GLOBALS['CHARSET'][$table_translit] as $key => $val) {
807
-			$trans[$complexe][caractere_utf_8($key)] = $val;
808
-		}
809
-	}
810
-
811
-	return str_replace(array_keys($trans[$complexe]), array_values($trans[$complexe]), $texte);
792
+    static $trans = [];
793
+    if ($charset == 'AUTO') {
794
+        $charset = $GLOBALS['meta']['charset'];
795
+    }
796
+    if (!strlen($texte)) {
797
+        return $texte;
798
+    }
799
+
800
+    $table_translit = 'translit' . $complexe;
801
+
802
+    // 2. Translitterer grace a la table predefinie
803
+    if (!isset($trans[$complexe])) {
804
+        $trans[$complexe] = [];
805
+        load_charset($table_translit);
806
+        foreach ($GLOBALS['CHARSET'][$table_translit] as $key => $val) {
807
+            $trans[$complexe][caractere_utf_8($key)] = $val;
808
+        }
809
+    }
810
+
811
+    return str_replace(array_keys($trans[$complexe]), array_values($trans[$complexe]), $texte);
812 812
 }
813 813
 
814 814
 /**
@@ -831,14 +831,14 @@  discard block
 block discarded – undo
831 831
  * @return string
832 832
  */
833 833
 function translitteration($texte, $charset = 'AUTO', $complexe = ''): string {
834
-	// 0. Supprimer les caracteres illegaux
835
-	include_spip('inc/filtres');
836
-	$texte = corriger_caracteres($texte);
834
+    // 0. Supprimer les caracteres illegaux
835
+    include_spip('inc/filtres');
836
+    $texte = corriger_caracteres($texte);
837 837
 
838
-	// 1. Passer le charset et les &eacute en utf-8
839
-	$texte = unicode_to_utf_8(html2unicode(charset2unicode($texte, $charset)));
838
+    // 1. Passer le charset et les &eacute en utf-8
839
+    $texte = unicode_to_utf_8(html2unicode(charset2unicode($texte, $charset)));
840 840
 
841
-	return translitteration_rapide($texte, $charset, $complexe);
841
+    return translitteration_rapide($texte, $charset, $complexe);
842 842
 }
843 843
 
844 844
 /**
@@ -853,17 +853,17 @@  discard block
 block discarded – undo
853 853
  * @return string
854 854
  */
855 855
 function translitteration_complexe($texte, $chiffres = false): string {
856
-	$texte = translitteration($texte, 'AUTO', 'complexe');
856
+    $texte = translitteration($texte, 'AUTO', 'complexe');
857 857
 
858
-	if ($chiffres) {
859
-		$texte = preg_replace_callback(
860
-			"/[aeiuoyd]['`?~.^+(-]{1,2}/S",
861
-			fn($m) => translitteration_chiffree($m[0]),
862
-			$texte
863
-		);
864
-	}
858
+    if ($chiffres) {
859
+        $texte = preg_replace_callback(
860
+            "/[aeiuoyd]['`?~.^+(-]{1,2}/S",
861
+            fn($m) => translitteration_chiffree($m[0]),
862
+            $texte
863
+        );
864
+    }
865 865
 
866
-	return $texte;
866
+    return $texte;
867 867
 }
868 868
 
869 869
 /**
@@ -875,7 +875,7 @@  discard block
 block discarded – undo
875 875
  * @return string
876 876
  */
877 877
 function translitteration_chiffree($car): string {
878
-	return strtr($car, "'`?~.^+(-", '123456789');
878
+    return strtr($car, "'`?~.^+(-", '123456789');
879 879
 }
880 880
 
881 881
 
@@ -888,7 +888,7 @@  discard block
 block discarded – undo
888 888
  *    true s'il a un BOM
889 889
  **/
890 890
 function bom_utf8($texte): bool {
891
-	return (substr($texte, 0, 3) === chr(0xEF) . chr(0xBB) . chr(0xBF));
891
+    return (substr($texte, 0, 3) === chr(0xEF) . chr(0xBB) . chr(0xBF));
892 892
 }
893 893
 
894 894
 /**
@@ -905,21 +905,21 @@  discard block
 block discarded – undo
905 905
  *     true si c'est le cas
906 906
  **/
907 907
 function is_utf8($string): bool {
908
-	return !strlen(
909
-		preg_replace(
910
-			',[\x09\x0A\x0D\x20-\x7E]'            # ASCII
911
-			. '|[\xC2-\xDF][\x80-\xBF]'             # non-overlong 2-byte
912
-			. '|\xE0[\xA0-\xBF][\x80-\xBF]'         # excluding overlongs
913
-			. '|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}'  # straight 3-byte
914
-			. '|\xED[\x80-\x9F][\x80-\xBF]'         # excluding surrogates
915
-			. '|\xF0[\x90-\xBF][\x80-\xBF]{2}'      # planes 1-3
916
-			. '|[\xF1-\xF3][\x80-\xBF]{3}'          # planes 4-15
917
-			. '|\xF4[\x80-\x8F][\x80-\xBF]{2}'      # plane 16
918
-			. ',sS',
919
-			'',
920
-			$string
921
-		)
922
-	);
908
+    return !strlen(
909
+        preg_replace(
910
+            ',[\x09\x0A\x0D\x20-\x7E]'            # ASCII
911
+            . '|[\xC2-\xDF][\x80-\xBF]'             # non-overlong 2-byte
912
+            . '|\xE0[\xA0-\xBF][\x80-\xBF]'         # excluding overlongs
913
+            . '|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}'  # straight 3-byte
914
+            . '|\xED[\x80-\x9F][\x80-\xBF]'         # excluding surrogates
915
+            . '|\xF0[\x90-\xBF][\x80-\xBF]{2}'      # planes 1-3
916
+            . '|[\xF1-\xF3][\x80-\xBF]{3}'          # planes 4-15
917
+            . '|\xF4[\x80-\x8F][\x80-\xBF]{2}'      # plane 16
918
+            . ',sS',
919
+            '',
920
+            $string
921
+        )
922
+    );
923 923
 }
924 924
 
925 925
 /**
@@ -931,13 +931,13 @@  discard block
 block discarded – undo
931 931
  *     true si c'est le cas
932 932
  **/
933 933
 function is_ascii($string): bool {
934
-	return !strlen(
935
-		preg_replace(
936
-			',[\x09\x0A\x0D\x20-\x7E],sS',
937
-			'',
938
-			$string
939
-		)
940
-	);
934
+    return !strlen(
935
+        preg_replace(
936
+            ',[\x09\x0A\x0D\x20-\x7E],sS',
937
+            '',
938
+            $string
939
+        )
940
+    );
941 941
 }
942 942
 
943 943
 /**
@@ -956,53 +956,53 @@  discard block
 block discarded – undo
956 956
  **/
957 957
 function transcoder_page($texte, $headers = ''): string {
958 958
 
959
-	// Si tout est < 128 pas la peine d'aller plus loin
960
-	if (is_ascii($texte)) {
961
-		#spip_log('charset: ascii');
962
-		return $texte;
963
-	}
964
-
965
-	if (bom_utf8($texte)) {
966
-		// Reconnaitre le BOM utf-8 (0xEFBBBF)
967
-		$charset = 'utf-8';
968
-		$texte = substr($texte, 3);
969
-	} elseif (preg_match(',<[?]xml[^>]*encoding[^>]*=[^>]*([-_a-z0-9]+?),UimsS', $texte, $regs)) {
970
-		// charset precise par le contenu (xml)
971
-		$charset = trim(strtolower($regs[1]));
972
-	} elseif (
973
-		// charset precise par le contenu (html)
974
-		preg_match(',<(meta|html|body)[^>]*charset[^>]*=[^>]*([#-_a-z0-9]+?),UimsS', $texte, $regs)
975
-		# eviter toute balise SPIP tel que #CHARSET ou #CONFIG d'un squelette
976
-		and !str_contains($regs[2], '#')
977
-		and $tmp = trim(strtolower($regs[2]))
978
-	) {
979
-		$charset = $tmp;
980
-	} elseif (preg_match(',charset=([-_a-z0-9]+),i', $headers, $regs)) {
981
-		// charset de la reponse http
982
-		$charset = trim(strtolower($regs[1]));
983
-	} else {
984
-		$charset = '';
985
-	}
986
-
987
-
988
-	// normaliser les noms du shif-jis japonais
989
-	if (preg_match(',^(x|shift)[_-]s?jis$,i', $charset)) {
990
-		$charset = 'shift-jis';
991
-	}
992
-
993
-	if ($charset) {
994
-		spip_log("charset: $charset");
995
-	} else {
996
-		// valeur par defaut
997
-		if (is_utf8($texte)) {
998
-			$charset = 'utf-8';
999
-		} else {
1000
-			$charset = 'iso-8859-1';
1001
-		}
1002
-		spip_log("charset probable: $charset");
1003
-	}
1004
-
1005
-	return importer_charset($texte, $charset);
959
+    // Si tout est < 128 pas la peine d'aller plus loin
960
+    if (is_ascii($texte)) {
961
+        #spip_log('charset: ascii');
962
+        return $texte;
963
+    }
964
+
965
+    if (bom_utf8($texte)) {
966
+        // Reconnaitre le BOM utf-8 (0xEFBBBF)
967
+        $charset = 'utf-8';
968
+        $texte = substr($texte, 3);
969
+    } elseif (preg_match(',<[?]xml[^>]*encoding[^>]*=[^>]*([-_a-z0-9]+?),UimsS', $texte, $regs)) {
970
+        // charset precise par le contenu (xml)
971
+        $charset = trim(strtolower($regs[1]));
972
+    } elseif (
973
+        // charset precise par le contenu (html)
974
+        preg_match(',<(meta|html|body)[^>]*charset[^>]*=[^>]*([#-_a-z0-9]+?),UimsS', $texte, $regs)
975
+        # eviter toute balise SPIP tel que #CHARSET ou #CONFIG d'un squelette
976
+        and !str_contains($regs[2], '#')
977
+        and $tmp = trim(strtolower($regs[2]))
978
+    ) {
979
+        $charset = $tmp;
980
+    } elseif (preg_match(',charset=([-_a-z0-9]+),i', $headers, $regs)) {
981
+        // charset de la reponse http
982
+        $charset = trim(strtolower($regs[1]));
983
+    } else {
984
+        $charset = '';
985
+    }
986
+
987
+
988
+    // normaliser les noms du shif-jis japonais
989
+    if (preg_match(',^(x|shift)[_-]s?jis$,i', $charset)) {
990
+        $charset = 'shift-jis';
991
+    }
992
+
993
+    if ($charset) {
994
+        spip_log("charset: $charset");
995
+    } else {
996
+        // valeur par defaut
997
+        if (is_utf8($texte)) {
998
+            $charset = 'utf-8';
999
+        } else {
1000
+            $charset = 'iso-8859-1';
1001
+        }
1002
+        spip_log("charset probable: $charset");
1003
+    }
1004
+
1005
+    return importer_charset($texte, $charset);
1006 1006
 }
1007 1007
 
1008 1008
 
@@ -1026,19 +1026,19 @@  discard block
 block discarded – undo
1026 1026
  *     Le texte coupé
1027 1027
  **/
1028 1028
 function spip_substr($c, $start = 0, $length = null) {
1029
-	if ($GLOBALS['meta']['charset'] !== 'utf-8') {
1030
-		if ($length) {
1031
-			return substr($c, $start, $length);
1032
-		} else {
1033
-			return substr($c, $start);
1034
-		}
1035
-	}
1036
-
1037
-	if ($length) {
1038
-		return mb_substr($c, $start, $length);
1039
-	} else {
1040
-		return mb_substr($c, $start);
1041
-	}
1029
+    if ($GLOBALS['meta']['charset'] !== 'utf-8') {
1030
+        if ($length) {
1031
+            return substr($c, $start, $length);
1032
+        } else {
1033
+            return substr($c, $start);
1034
+        }
1035
+    }
1036
+
1037
+    if ($length) {
1038
+        return mb_substr($c, $start, $length);
1039
+    } else {
1040
+        return mb_substr($c, $start);
1041
+    }
1042 1042
 }
1043 1043
 
1044 1044
 /**
@@ -1052,13 +1052,13 @@  discard block
 block discarded – undo
1052 1052
  *     La chaîne avec une majuscule sur le premier mot
1053 1053
  */
1054 1054
 function spip_ucfirst($c) {
1055
-	if ($GLOBALS['meta']['charset'] !== 'utf-8') {
1056
-		return ucfirst($c);
1057
-	}
1055
+    if ($GLOBALS['meta']['charset'] !== 'utf-8') {
1056
+        return ucfirst($c);
1057
+    }
1058 1058
 
1059
-	$lettre1 = mb_strtoupper(spip_substr($c, 0, 1));
1059
+    $lettre1 = mb_strtoupper(spip_substr($c, 0, 1));
1060 1060
 
1061
-	return $lettre1 . spip_substr($c, 1);
1061
+    return $lettre1 . spip_substr($c, 1);
1062 1062
 }
1063 1063
 
1064 1064
 /**
@@ -1072,11 +1072,11 @@  discard block
 block discarded – undo
1072 1072
  *     La chaîne en minuscules
1073 1073
  */
1074 1074
 function spip_strtolower($c) {
1075
-	if ($GLOBALS['meta']['charset'] !== 'utf-8') {
1076
-		return strtolower($c);
1077
-	}
1075
+    if ($GLOBALS['meta']['charset'] !== 'utf-8') {
1076
+        return strtolower($c);
1077
+    }
1078 1078
 
1079
-	return mb_strtolower($c);
1079
+    return mb_strtolower($c);
1080 1080
 }
1081 1081
 
1082 1082
 /**
@@ -1090,15 +1090,15 @@  discard block
 block discarded – undo
1090 1090
  *     Longueur de la chaîne
1091 1091
  */
1092 1092
 function spip_strlen($c) {
1093
-	// On transforme les sauts de ligne pour ne pas compter deux caractères
1094
-	$c = str_replace("\r\n", "\n", $c);
1093
+    // On transforme les sauts de ligne pour ne pas compter deux caractères
1094
+    $c = str_replace("\r\n", "\n", $c);
1095 1095
 
1096
-	// Si ce n'est pas utf-8, utiliser strlen
1097
-	if ($GLOBALS['meta']['charset'] !== 'utf-8') {
1098
-		return strlen($c);
1099
-	}
1096
+    // Si ce n'est pas utf-8, utiliser strlen
1097
+    if ($GLOBALS['meta']['charset'] !== 'utf-8') {
1098
+        return strlen($c);
1099
+    }
1100 1100
 
1101
-	return mb_strlen($c);
1101
+    return mb_strlen($c);
1102 1102
 }
1103 1103
 
1104 1104
 /**
@@ -1113,17 +1113,17 @@  discard block
 block discarded – undo
1113 1113
  *     en unicode : &#128169;
1114 1114
  */
1115 1115
 function utf8_noplanes($x): string {
1116
-	$regexp_utf8_4bytes = '/(
1116
+    $regexp_utf8_4bytes = '/(
1117 1117
       \xF0[\x90-\xBF][\x80-\xBF]{2}     # planes 1-3
1118 1118
    | [\xF1-\xF3][\x80-\xBF]{3}          # planes 4-15
1119 1119
    |  \xF4[\x80-\x8F][\x80-\xBF]{2}     # plane 16
1120 1120
 )/xS';
1121
-	if (preg_match_all($regexp_utf8_4bytes, $x, $z, PREG_PATTERN_ORDER)) {
1122
-		foreach ($z[0] as $k) {
1123
-			$ku = utf_8_to_unicode($k);
1124
-			$x = str_replace($k, $ku, $x);
1125
-		}
1126
-	}
1127
-
1128
-	return $x;
1121
+    if (preg_match_all($regexp_utf8_4bytes, $x, $z, PREG_PATTERN_ORDER)) {
1122
+        foreach ($z[0] as $k) {
1123
+            $ku = utf_8_to_unicode($k);
1124
+            $x = str_replace($k, $ku, $x);
1125
+        }
1126
+    }
1127
+
1128
+    return $x;
1129 1129
 }
Please login to merge, or discard this patch.
Spacing   +49 added lines, -49 removed lines patch added patch discarded remove patch
@@ -90,7 +90,7 @@  discard block
 block discarded – undo
90 90
 		$charset = 'cp1256';
91 91
 	}
92 92
 
93
-	if (find_in_path($charset . '.php', 'charsets/', true)) {
93
+	if (find_in_path($charset.'.php', 'charsets/', true)) {
94 94
 		return $charset;
95 95
 	} else {
96 96
 		spip_log("Erreur: pas de fichier de conversion 'charsets/$charset'");
@@ -195,38 +195,38 @@  discard block
 block discarded – undo
195 195
 
196 196
 	if (!isset($trans[$charset][$charset_cible])) {
197 197
 		$trans[$charset][$charset_cible] = [
198
-			$p . chr(128) => '&#8364;',
199
-			$p . chr(129) => ' ', # pas affecte
200
-			$p . chr(130) => '&#8218;',
201
-			$p . chr(131) => '&#402;',
202
-			$p . chr(132) => '&#8222;',
203
-			$p . chr(133) => '&#8230;',
204
-			$p . chr(134) => '&#8224;',
205
-			$p . chr(135) => '&#8225;',
206
-			$p . chr(136) => '&#710;',
207
-			$p . chr(137) => '&#8240;',
208
-			$p . chr(138) => '&#352;',
209
-			$p . chr(139) => '&#8249;',
210
-			$p . chr(140) => '&#338;',
211
-			$p . chr(141) => ' ', # pas affecte
212
-			$p . chr(142) => '&#381;',
213
-			$p . chr(143) => ' ', # pas affecte
214
-			$p . chr(144) => ' ', # pas affecte
215
-			$p . chr(145) => '&#8216;',
216
-			$p . chr(146) => '&#8217;',
217
-			$p . chr(147) => '&#8220;',
218
-			$p . chr(148) => '&#8221;',
219
-			$p . chr(149) => '&#8226;',
220
-			$p . chr(150) => '&#8211;',
221
-			$p . chr(151) => '&#8212;',
222
-			$p . chr(152) => '&#732;',
223
-			$p . chr(153) => '&#8482;',
224
-			$p . chr(154) => '&#353;',
225
-			$p . chr(155) => '&#8250;',
226
-			$p . chr(156) => '&#339;',
227
-			$p . chr(157) => ' ', # pas affecte
228
-			$p . chr(158) => '&#382;',
229
-			$p . chr(159) => '&#376;',
198
+			$p.chr(128) => '&#8364;',
199
+			$p.chr(129) => ' ', # pas affecte
200
+			$p.chr(130) => '&#8218;',
201
+			$p.chr(131) => '&#402;',
202
+			$p.chr(132) => '&#8222;',
203
+			$p.chr(133) => '&#8230;',
204
+			$p.chr(134) => '&#8224;',
205
+			$p.chr(135) => '&#8225;',
206
+			$p.chr(136) => '&#710;',
207
+			$p.chr(137) => '&#8240;',
208
+			$p.chr(138) => '&#352;',
209
+			$p.chr(139) => '&#8249;',
210
+			$p.chr(140) => '&#338;',
211
+			$p.chr(141) => ' ', # pas affecte
212
+			$p.chr(142) => '&#381;',
213
+			$p.chr(143) => ' ', # pas affecte
214
+			$p.chr(144) => ' ', # pas affecte
215
+			$p.chr(145) => '&#8216;',
216
+			$p.chr(146) => '&#8217;',
217
+			$p.chr(147) => '&#8220;',
218
+			$p.chr(148) => '&#8221;',
219
+			$p.chr(149) => '&#8226;',
220
+			$p.chr(150) => '&#8211;',
221
+			$p.chr(151) => '&#8212;',
222
+			$p.chr(152) => '&#732;',
223
+			$p.chr(153) => '&#8482;',
224
+			$p.chr(154) => '&#353;',
225
+			$p.chr(155) => '&#8250;',
226
+			$p.chr(156) => '&#339;',
227
+			$p.chr(157) => ' ', # pas affecte
228
+			$p.chr(158) => '&#382;',
229
+			$p.chr(159) => '&#376;',
230 230
 		];
231 231
 		if ($charset_cible != 'unicode') {
232 232
 			foreach ($trans[$charset][$charset_cible] as $k => $c) {
@@ -367,7 +367,7 @@  discard block
 block discarded – undo
367 367
 					and is_array($GLOBALS['CHARSET'][$cset])
368 368
 				) {
369 369
 					foreach ($GLOBALS['CHARSET'][$cset] as $key => $val) {
370
-						$trans[$charset][chr($key)] = '&#' . $val . ';';
370
+						$trans[$charset][chr($key)] = '&#'.$val.';';
371 371
 					}
372 372
 				}
373 373
 			}
@@ -433,11 +433,11 @@  discard block
 block discarded – undo
433 433
 					$h = dechex($e);
434 434
 					if ($s = isset($CHARSET_REVERSE[$charset][$e])) {
435 435
 						$s = $CHARSET_REVERSE[$charset][$e];
436
-						$t['&#' . $e . ';'] = $t['&#0' . $e . ';'] = $t['&#00' . $e . ';'] = chr($s);
437
-						$t['&#x' . $h . ';'] = $t['&#x0' . $h . ';'] = $t['&#x00' . $h . ';'] = chr($s);
436
+						$t['&#'.$e.';'] = $t['&#0'.$e.';'] = $t['&#00'.$e.';'] = chr($s);
437
+						$t['&#x'.$h.';'] = $t['&#x0'.$h.';'] = $t['&#x00'.$h.';'] = chr($s);
438 438
 					} else {
439
-						$t['&#' . $e . ';'] = $t['&#0' . $e . ';'] = $t['&#00' . $e . ';'] = chr($e);
440
-						$t['&#x' . $h . ';'] = $t['&#x0' . $h . ';'] = $t['&#x00' . $h . ';'] = chr($e);
439
+						$t['&#'.$e.';'] = $t['&#0'.$e.';'] = $t['&#00'.$e.';'] = chr($e);
440
+						$t['&#x'.$h.';'] = $t['&#x0'.$h.';'] = $t['&#x00'.$h.';'] = chr($e);
441 441
 					}
442 442
 				}
443 443
 			}
@@ -484,7 +484,7 @@  discard block
 block discarded – undo
484 484
 				and is_array($GLOBALS['CHARSET'][$cset])
485 485
 			) {
486 486
 				foreach ($GLOBALS['CHARSET'][$cset] as $key => $val) {
487
-					$trans[$charset][chr($key)] = unicode2charset('&#' . $val . ';');
487
+					$trans[$charset][chr($key)] = unicode2charset('&#'.$val.';');
488 488
 				}
489 489
 			}
490 490
 		}
@@ -591,7 +591,7 @@  discard block
 block discarded – undo
591 591
 				}
592 592
 				$thisPos++;
593 593
 			}
594
-			$encodedLetter = '&#' . preg_replace('/^0+/', '', $decimalCode) . ';';
594
+			$encodedLetter = '&#'.preg_replace('/^0+/', '', $decimalCode).';';
595 595
 			$encodedString .= $encodedLetter;
596 596
 		}
597 597
 	}
@@ -634,7 +634,7 @@  discard block
 block discarded – undo
634 634
 			} // ignorer le BOM - http://www.unicode.org/faq/utf_bom.html
635 635
 			else {
636 636
 				if ($word != 65279) {
637
-					$texte .= '&#' . $word . ';';
637
+					$texte .= '&#'.$word.';';
638 638
 				}
639 639
 			}
640 640
 		}
@@ -662,13 +662,13 @@  discard block
 block discarded – undo
662 662
 		return chr($num);
663 663
 	}
664 664
 	if ($num < 2048) {
665
-		return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
665
+		return chr(($num >> 6) + 192).chr(($num & 63) + 128);
666 666
 	}
667 667
 	if ($num < 65536) {
668
-		return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
668
+		return chr(($num >> 12) + 224).chr((($num >> 6) & 63) + 128).chr(($num & 63) + 128);
669 669
 	}
670 670
 	if ($num < 1_114_112) {
671
-		return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
671
+		return chr(($num >> 18) + 240).chr((($num >> 12) & 63) + 128).chr((($num >> 6) & 63) + 128).chr(($num & 63) + 128);
672 672
 	}
673 673
 
674 674
 	return '';
@@ -735,7 +735,7 @@  discard block
 block discarded – undo
735 735
 	while (preg_match(',&#0*([0-9]+);,S', $texte, $regs) and !isset($vu[$regs[1]])) {
736 736
 		$num = $regs[1];
737 737
 		$vu[$num] = true;
738
-		$s = '\u' . sprintf('%04x', $num);
738
+		$s = '\u'.sprintf('%04x', $num);
739 739
 		$texte = str_replace($regs[0], $s, $texte);
740 740
 	}
741 741
 
@@ -752,7 +752,7 @@  discard block
 block discarded – undo
752 752
  **/
753 753
 function javascript_to_unicode($texte) {
754 754
 	while (preg_match(',%u([0-9A-F][0-9A-F][0-9A-F][0-9A-F]),', $texte, $regs)) {
755
-		$texte = str_replace($regs[0], '&#' . hexdec($regs[1]) . ';', $texte);
755
+		$texte = str_replace($regs[0], '&#'.hexdec($regs[1]).';', $texte);
756 756
 	}
757 757
 
758 758
 	return $texte;
@@ -797,7 +797,7 @@  discard block
 block discarded – undo
797 797
 		return $texte;
798 798
 	}
799 799
 
800
-	$table_translit = 'translit' . $complexe;
800
+	$table_translit = 'translit'.$complexe;
801 801
 
802 802
 	// 2. Translitterer grace a la table predefinie
803 803
 	if (!isset($trans[$complexe])) {
@@ -888,7 +888,7 @@  discard block
 block discarded – undo
888 888
  *    true s'il a un BOM
889 889
  **/
890 890
 function bom_utf8($texte): bool {
891
-	return (substr($texte, 0, 3) === chr(0xEF) . chr(0xBB) . chr(0xBF));
891
+	return (substr($texte, 0, 3) === chr(0xEF).chr(0xBB).chr(0xBF));
892 892
 }
893 893
 
894 894
 /**
@@ -1058,7 +1058,7 @@  discard block
 block discarded – undo
1058 1058
 
1059 1059
 	$lettre1 = mb_strtoupper(spip_substr($c, 0, 1));
1060 1060
 
1061
-	return $lettre1 . spip_substr($c, 1);
1061
+	return $lettre1.spip_substr($c, 1);
1062 1062
 }
1063 1063
 
1064 1064
 /**
Please login to merge, or discard this patch.
ecrire/base/repair.php 2 patches
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -38,7 +38,7 @@  discard block
 block discarded – undo
38 38
 
39 39
 	$res = admin_repair_tables();
40 40
 	if (!$res) {
41
-		$res = "<div class='error'>" . _T('avis_erreur_mysql') . ' ' . sql_errno() . ': ' . sql_error() . "</div>\n";
41
+		$res = "<div class='error'>"._T('avis_erreur_mysql').' '.sql_errno().': '.sql_error()."</div>\n";
42 42
 	} else {
43 43
 		include_spip('inc/rubriques');
44 44
 		calculer_rubriques();
@@ -48,7 +48,7 @@  discard block
 block discarded – undo
48 48
 	$res .= pipeline('base_admin_repair', $res);
49 49
 	echo minipres(
50 50
 		_T('texte_tentative_recuperation'),
51
-		$res . generer_form_ecrire('accueil', '', '', _T('public:accueil_site'))
51
+		$res.generer_form_ecrire('accueil', '', '', _T('public:accueil_site'))
52 52
 	);
53 53
 }
54 54
 
@@ -91,12 +91,12 @@  discard block
 block discarded – undo
91 91
 		$count = sql_countsel($tab);
92 92
 
93 93
 		if ($count > 1) {
94
-			$m .= '(' . _T('texte_compte_elements', ['count' => $count]) . ")\n";
94
+			$m .= '('._T('texte_compte_elements', ['count' => $count]).")\n";
95 95
 		} else {
96 96
 			if ($count == 1) {
97
-				$m .= '(' . _T('texte_compte_element', ['count' => $count]) . ")\n";
97
+				$m .= '('._T('texte_compte_element', ['count' => $count]).")\n";
98 98
 			} else {
99
-				$m .= '(' . _T('texte_vide') . ")\n";
99
+				$m .= '('._T('texte_vide').")\n";
100 100
 			}
101 101
 		}
102 102
 
@@ -105,13 +105,13 @@  discard block
 block discarded – undo
105 105
 			and $msg = join(
106 106
 				' ',
107 107
 				(is_resource($result_repair) or is_object($result_repair)) ? sql_fetch($result_repair) : $result_repair
108
-			) . ' '
108
+			).' '
109 109
 			and !str_contains($msg, ' OK ')
110 110
 		) {
111 111
 			$class = " class='notice'";
112
-			$m .= '<br /><tt>' . spip_htmlentities($msg) . "</tt>\n";
112
+			$m .= '<br /><tt>'.spip_htmlentities($msg)."</tt>\n";
113 113
 		} else {
114
-			$m .= ' ' . _T('texte_table_ok');
114
+			$m .= ' '._T('texte_table_ok');
115 115
 		}
116 116
 
117 117
 		$res .= "<div$class>$m</div>";
Please login to merge, or discard this patch.
Indentation   +63 added lines, -63 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  */
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 /**
@@ -36,20 +36,20 @@  discard block
 block discarded – undo
36 36
  **/
37 37
 function base_repair_dist($titre = '', $reprise = '') {
38 38
 
39
-	$res = admin_repair_tables();
40
-	if (!$res) {
41
-		$res = "<div class='error'>" . _T('avis_erreur_mysql') . ' ' . sql_errno() . ': ' . sql_error() . "</div>\n";
42
-	} else {
43
-		include_spip('inc/rubriques');
44
-		calculer_rubriques();
45
-		propager_les_secteurs();
46
-	}
47
-	include_spip('inc/minipres');
48
-	$res .= pipeline('base_admin_repair', $res);
49
-	echo minipres(
50
-		_T('texte_tentative_recuperation'),
51
-		$res . generer_form_ecrire('accueil', '', '', _T('public:accueil_site'))
52
-	);
39
+    $res = admin_repair_tables();
40
+    if (!$res) {
41
+        $res = "<div class='error'>" . _T('avis_erreur_mysql') . ' ' . sql_errno() . ': ' . sql_error() . "</div>\n";
42
+    } else {
43
+        include_spip('inc/rubriques');
44
+        calculer_rubriques();
45
+        propager_les_secteurs();
46
+    }
47
+    include_spip('inc/minipres');
48
+    $res .= pipeline('base_admin_repair', $res);
49
+    echo minipres(
50
+        _T('texte_tentative_recuperation'),
51
+        $res . generer_form_ecrire('accueil', '', '', _T('public:accueil_site'))
52
+    );
53 53
 }
54 54
 
55 55
 /**
@@ -63,60 +63,60 @@  discard block
 block discarded – undo
63 63
  **/
64 64
 function admin_repair_tables() {
65 65
 
66
-	$repair = sql_serveur('repair', '', true);
66
+    $repair = sql_serveur('repair', '', true);
67 67
 
68
-	// recreer les tables manquantes eventuelles
69
-	include_spip('base/create');
70
-	creer_base();
71
-	$tables = sql_alltable();
68
+    // recreer les tables manquantes eventuelles
69
+    include_spip('base/create');
70
+    creer_base();
71
+    $tables = sql_alltable();
72 72
 
73
-	$res = '';
74
-	foreach ($tables as $tab) {
75
-		$class = '';
76
-		$m = "<strong>$tab</strong> ";
77
-		spip_log("Repare $tab", _LOG_INFO_IMPORTANTE);
78
-		// supprimer la meta avant de lancer la reparation
79
-		// car le repair peut etre long ; on ne veut pas boucler
80
-		effacer_meta('admin_repair');
81
-		if ($repair) {
82
-			$result_repair = sql_repair($tab);
83
-			if (!$result_repair) {
84
-				return false;
85
-			}
86
-		}
73
+    $res = '';
74
+    foreach ($tables as $tab) {
75
+        $class = '';
76
+        $m = "<strong>$tab</strong> ";
77
+        spip_log("Repare $tab", _LOG_INFO_IMPORTANTE);
78
+        // supprimer la meta avant de lancer la reparation
79
+        // car le repair peut etre long ; on ne veut pas boucler
80
+        effacer_meta('admin_repair');
81
+        if ($repair) {
82
+            $result_repair = sql_repair($tab);
83
+            if (!$result_repair) {
84
+                return false;
85
+            }
86
+        }
87 87
 
88
-		// essayer de maj la table (creation de champs manquants)
89
-		maj_tables($tab);
88
+        // essayer de maj la table (creation de champs manquants)
89
+        maj_tables($tab);
90 90
 
91
-		$count = sql_countsel($tab);
91
+        $count = sql_countsel($tab);
92 92
 
93
-		if ($count > 1) {
94
-			$m .= '(' . _T('texte_compte_elements', ['count' => $count]) . ")\n";
95
-		} else {
96
-			if ($count == 1) {
97
-				$m .= '(' . _T('texte_compte_element', ['count' => $count]) . ")\n";
98
-			} else {
99
-				$m .= '(' . _T('texte_vide') . ")\n";
100
-			}
101
-		}
93
+        if ($count > 1) {
94
+            $m .= '(' . _T('texte_compte_elements', ['count' => $count]) . ")\n";
95
+        } else {
96
+            if ($count == 1) {
97
+                $m .= '(' . _T('texte_compte_element', ['count' => $count]) . ")\n";
98
+            } else {
99
+                $m .= '(' . _T('texte_vide') . ")\n";
100
+            }
101
+        }
102 102
 
103
-		if (
104
-			$repair
105
-			and $result_repair
106
-			and $msg = join(
107
-				' ',
108
-				(is_resource($result_repair) or is_object($result_repair)) ? sql_fetch($result_repair) : $result_repair
109
-			) . ' '
110
-			and !str_contains($msg, ' OK ')
111
-		) {
112
-			$class = " class='notice'";
113
-			$m .= '<br /><tt>' . spip_htmlentities($msg) . "</tt>\n";
114
-		} else {
115
-			$m .= ' ' . _T('texte_table_ok');
116
-		}
103
+        if (
104
+            $repair
105
+            and $result_repair
106
+            and $msg = join(
107
+                ' ',
108
+                (is_resource($result_repair) or is_object($result_repair)) ? sql_fetch($result_repair) : $result_repair
109
+            ) . ' '
110
+            and !str_contains($msg, ' OK ')
111
+        ) {
112
+            $class = " class='notice'";
113
+            $m .= '<br /><tt>' . spip_htmlentities($msg) . "</tt>\n";
114
+        } else {
115
+            $m .= ' ' . _T('texte_table_ok');
116
+        }
117 117
 
118
-		$res .= "<div$class>$m</div>";
119
-	}
118
+        $res .= "<div$class>$m</div>";
119
+    }
120 120
 
121
-	return $res;
121
+    return $res;
122 122
 }
Please login to merge, or discard this patch.
ecrire/action/inscrire_auteur.php 2 patches
Indentation   +236 added lines, -236 removed lines patch added patch discarded remove patch
@@ -21,7 +21,7 @@  discard block
 block discarded – undo
21 21
 
22 22
 
23 23
 if (!defined('_ECRIRE_INC_VERSION')) {
24
-	return;
24
+    return;
25 25
 }
26 26
 
27 27
 
@@ -44,70 +44,70 @@  discard block
 block discarded – undo
44 44
  * @return array|string
45 45
  */
46 46
 function action_inscrire_auteur_dist($statut, $mail_complet, $nom, $options = []) {
47
-	if (!is_array($options)) {
48
-		$options = ['id' => $options];
49
-	}
50
-
51
-	if (function_exists('test_inscription')) {
52
-		$f = 'test_inscription';
53
-	} else {
54
-		$f = 'test_inscription_dist';
55
-	}
56
-	$desc = $f($statut, $mail_complet, $nom, $options);
57
-
58
-	// erreur ?
59
-	if (!is_array($desc)) {
60
-		return _T($desc);
61
-	}
62
-
63
-	include_spip('base/abstract_sql');
64
-	$res = sql_select('statut, id_auteur, login, email, nom', 'spip_auteurs', 'email=' . sql_quote($desc['email']));
65
-	// erreur ?
66
-	if (!$res) {
67
-		return _T('titre_probleme_technique');
68
-	}
69
-
70
-	$row = sql_fetch($res);
71
-	sql_free($res);
72
-	if ($row) {
73
-		if (isset($options['force_nouveau']) and $options['force_nouveau'] == true) {
74
-			$desc['id_auteur'] = $row['id_auteur'];
75
-			$desc = inscription_nouveau($desc);
76
-		} else {
77
-			$desc = $row;
78
-		}
79
-	} else // s'il n'existe pas deja, creer les identifiants
80
-	{
81
-		$desc = inscription_nouveau($desc);
82
-	}
83
-
84
-	// erreur ?
85
-	if (!is_array($desc)) {
86
-		return $desc;
87
-	}
88
-
89
-
90
-	// generer le mot de passe (ou le refaire si compte inutilise)
91
-	$desc['pass'] = creer_pass_pour_auteur($desc['id_auteur']);
92
-
93
-	// attribuer un jeton pour confirmation par clic sur un lien
94
-	$desc['jeton'] = auteur_attribuer_jeton($desc['id_auteur']);
95
-
96
-	// charger de suite cette fonction, pour ses utilitaires
97
-	$envoyer_inscription = charger_fonction('envoyer_inscription', '');
98
-	[$sujet, $msg, $from, $head] = $envoyer_inscription($desc, $nom, $statut, $options);
99
-
100
-	$notifications = charger_fonction('notifications', 'inc');
101
-	notifications_envoyer_mails($mail_complet, $msg, $sujet, $from, $head);
102
-
103
-	// Notifications
104
-	$notifications(
105
-		'inscription',
106
-		$desc['id_auteur'],
107
-		['nom' => $desc['nom'], 'email' => $desc['email']]
108
-	);
109
-
110
-	return $desc;
47
+    if (!is_array($options)) {
48
+        $options = ['id' => $options];
49
+    }
50
+
51
+    if (function_exists('test_inscription')) {
52
+        $f = 'test_inscription';
53
+    } else {
54
+        $f = 'test_inscription_dist';
55
+    }
56
+    $desc = $f($statut, $mail_complet, $nom, $options);
57
+
58
+    // erreur ?
59
+    if (!is_array($desc)) {
60
+        return _T($desc);
61
+    }
62
+
63
+    include_spip('base/abstract_sql');
64
+    $res = sql_select('statut, id_auteur, login, email, nom', 'spip_auteurs', 'email=' . sql_quote($desc['email']));
65
+    // erreur ?
66
+    if (!$res) {
67
+        return _T('titre_probleme_technique');
68
+    }
69
+
70
+    $row = sql_fetch($res);
71
+    sql_free($res);
72
+    if ($row) {
73
+        if (isset($options['force_nouveau']) and $options['force_nouveau'] == true) {
74
+            $desc['id_auteur'] = $row['id_auteur'];
75
+            $desc = inscription_nouveau($desc);
76
+        } else {
77
+            $desc = $row;
78
+        }
79
+    } else // s'il n'existe pas deja, creer les identifiants
80
+    {
81
+        $desc = inscription_nouveau($desc);
82
+    }
83
+
84
+    // erreur ?
85
+    if (!is_array($desc)) {
86
+        return $desc;
87
+    }
88
+
89
+
90
+    // generer le mot de passe (ou le refaire si compte inutilise)
91
+    $desc['pass'] = creer_pass_pour_auteur($desc['id_auteur']);
92
+
93
+    // attribuer un jeton pour confirmation par clic sur un lien
94
+    $desc['jeton'] = auteur_attribuer_jeton($desc['id_auteur']);
95
+
96
+    // charger de suite cette fonction, pour ses utilitaires
97
+    $envoyer_inscription = charger_fonction('envoyer_inscription', '');
98
+    [$sujet, $msg, $from, $head] = $envoyer_inscription($desc, $nom, $statut, $options);
99
+
100
+    $notifications = charger_fonction('notifications', 'inc');
101
+    notifications_envoyer_mails($mail_complet, $msg, $sujet, $from, $head);
102
+
103
+    // Notifications
104
+    $notifications(
105
+        'inscription',
106
+        $desc['id_auteur'],
107
+        ['nom' => $desc['nom'], 'email' => $desc['email']]
108
+    );
109
+
110
+    return $desc;
111 111
 }
112 112
 
113 113
 
@@ -130,23 +130,23 @@  discard block
 block discarded – undo
130 130
  *
131 131
  */
132 132
 function test_inscription_dist($statut, $mail, $nom, $options) {
133
-	include_spip('inc/filtres');
134
-	if (!$r = email_valide($mail)) {
135
-		return 'info_email_invalide';
136
-	}
137
-	$nom = trim(corriger_caracteres($nom));
138
-	$res = ['email' => $r, 'nom' => $nom, 'prefs' => $statut];
139
-	if (isset($options['login'])) {
140
-		$login = trim(corriger_caracteres($options['login']));
141
-		if ((strlen($login) >= _LOGIN_TROP_COURT) and (strlen($nom) <= 64)) {
142
-			$res['login'] = $login;
143
-		}
144
-	}
145
-	if (!isset($res['login']) and ((strlen($nom) < _LOGIN_TROP_COURT) or (strlen($nom) > 64))) {
146
-		return 'ecrire:info_login_trop_court';
147
-	}
148
-
149
-	return $res;
133
+    include_spip('inc/filtres');
134
+    if (!$r = email_valide($mail)) {
135
+        return 'info_email_invalide';
136
+    }
137
+    $nom = trim(corriger_caracteres($nom));
138
+    $res = ['email' => $r, 'nom' => $nom, 'prefs' => $statut];
139
+    if (isset($options['login'])) {
140
+        $login = trim(corriger_caracteres($options['login']));
141
+        if ((strlen($login) >= _LOGIN_TROP_COURT) and (strlen($nom) <= 64)) {
142
+            $res['login'] = $login;
143
+        }
144
+    }
145
+    if (!isset($res['login']) and ((strlen($nom) < _LOGIN_TROP_COURT) or (strlen($nom) > 64))) {
146
+        return 'ecrire:info_login_trop_court';
147
+    }
148
+
149
+    return $res;
150 150
 }
151 151
 
152 152
 
@@ -159,33 +159,33 @@  discard block
 block discarded – undo
159 159
  * @return mixed|string
160 160
  */
161 161
 function inscription_nouveau($desc) {
162
-	if (!isset($desc['login']) or !strlen($desc['login'])) {
163
-		$desc['login'] = test_login($desc['nom'], $desc['email']);
164
-	}
162
+    if (!isset($desc['login']) or !strlen($desc['login'])) {
163
+        $desc['login'] = test_login($desc['nom'], $desc['email']);
164
+    }
165 165
 
166
-	$desc['statut'] = 'nouveau';
167
-	include_spip('action/editer_auteur');
168
-	if (isset($desc['id_auteur'])) {
169
-		$id_auteur = $desc['id_auteur'];
170
-	} else {
171
-		$id_auteur = auteur_inserer();
172
-	}
166
+    $desc['statut'] = 'nouveau';
167
+    include_spip('action/editer_auteur');
168
+    if (isset($desc['id_auteur'])) {
169
+        $id_auteur = $desc['id_auteur'];
170
+    } else {
171
+        $id_auteur = auteur_inserer();
172
+    }
173 173
 
174
-	if (!$id_auteur) {
175
-		return _T('titre_probleme_technique');
176
-	}
174
+    if (!$id_auteur) {
175
+        return _T('titre_probleme_technique');
176
+    }
177 177
 
178
-	$desc['lang'] = $GLOBALS['spip_lang'];
178
+    $desc['lang'] = $GLOBALS['spip_lang'];
179 179
 
180
-	include_spip('inc/autoriser');
181
-	// lever l'autorisation pour pouvoir modifier le statut
182
-	autoriser_exception('modifier', 'auteur', $id_auteur);
183
-	auteur_modifier($id_auteur, $desc);
184
-	autoriser_exception('modifier', 'auteur', $id_auteur, false);
180
+    include_spip('inc/autoriser');
181
+    // lever l'autorisation pour pouvoir modifier le statut
182
+    autoriser_exception('modifier', 'auteur', $id_auteur);
183
+    auteur_modifier($id_auteur, $desc);
184
+    autoriser_exception('modifier', 'auteur', $id_auteur, false);
185 185
 
186
-	$desc['id_auteur'] = $id_auteur;
186
+    $desc['id_auteur'] = $id_auteur;
187 187
 
188
-	return $desc;
188
+    return $desc;
189 189
 }
190 190
 
191 191
 
@@ -202,27 +202,27 @@  discard block
 block discarded – undo
202 202
  * @return string
203 203
  */
204 204
 function test_login($nom, $mail) {
205
-	include_spip('inc/charsets');
206
-	$nom = strtolower(translitteration($nom));
207
-	$login_base = preg_replace('/[^\w\d_]/', '_', $nom);
208
-
209
-	// il faut eviter que le login soit vraiment trop court
210
-	if (strlen($login_base) < 3) {
211
-		$mail = strtolower(translitteration(preg_replace('/@.*/', '', $mail)));
212
-		$login_base = preg_replace('/[^\w\d]/', '_', $mail);
213
-	}
214
-	if (strlen($login_base) < 3) {
215
-		$login_base = 'user';
216
-	}
217
-
218
-	$login = $login_base;
219
-
220
-	for ($i = 1;; $i++) {
221
-		if (!sql_countsel('spip_auteurs', "login='$login'")) {
222
-			return $login;
223
-		}
224
-		$login = $login_base . $i;
225
-	}
205
+    include_spip('inc/charsets');
206
+    $nom = strtolower(translitteration($nom));
207
+    $login_base = preg_replace('/[^\w\d_]/', '_', $nom);
208
+
209
+    // il faut eviter que le login soit vraiment trop court
210
+    if (strlen($login_base) < 3) {
211
+        $mail = strtolower(translitteration(preg_replace('/@.*/', '', $mail)));
212
+        $login_base = preg_replace('/[^\w\d]/', '_', $mail);
213
+    }
214
+    if (strlen($login_base) < 3) {
215
+        $login_base = 'user';
216
+    }
217
+
218
+    $login = $login_base;
219
+
220
+    for ($i = 1;; $i++) {
221
+        if (!sql_countsel('spip_auteurs', "login='$login'")) {
222
+            return $login;
223
+        }
224
+        $login = $login_base . $i;
225
+    }
226 226
 }
227 227
 
228 228
 
@@ -240,26 +240,26 @@  discard block
 block discarded – undo
240 240
  */
241 241
 function envoyer_inscription_dist($desc, $nom, $mode, $options = []) {
242 242
 
243
-	$contexte = array_merge($desc, $options);
244
-	$contexte['nom'] = $nom;
245
-	$contexte['mode'] = $mode;
246
-	$contexte['url_confirm'] = generer_url_action('confirmer_inscription', '', true, true);
247
-	$contexte['url_confirm'] = parametre_url($contexte['url_confirm'], 'email', $desc['email']);
248
-	$contexte['url_confirm'] = parametre_url($contexte['url_confirm'], 'jeton', $desc['jeton']);
249
-	// S'il y a l'option redirect, on l'ajoute directement ici
250
-	if (isset($options['redirect'])) {
251
-		$contexte['url_confirm'] = parametre_url($contexte['url_confirm'], 'redirect', $options['redirect']);
252
-	}
253
-
254
-	$modele_mail = 'modeles/mail_inscription';
255
-	if (isset($options['modele_mail']) and $options['modele_mail']) {
256
-		$modele_mail = $options['modele_mail'];
257
-	}
258
-	$message = recuperer_fond($modele_mail, $contexte);
259
-	$from = ($options['from'] ?? '');
260
-	$head = '';
261
-
262
-	return ['', $message, $from, $head];
243
+    $contexte = array_merge($desc, $options);
244
+    $contexte['nom'] = $nom;
245
+    $contexte['mode'] = $mode;
246
+    $contexte['url_confirm'] = generer_url_action('confirmer_inscription', '', true, true);
247
+    $contexte['url_confirm'] = parametre_url($contexte['url_confirm'], 'email', $desc['email']);
248
+    $contexte['url_confirm'] = parametre_url($contexte['url_confirm'], 'jeton', $desc['jeton']);
249
+    // S'il y a l'option redirect, on l'ajoute directement ici
250
+    if (isset($options['redirect'])) {
251
+        $contexte['url_confirm'] = parametre_url($contexte['url_confirm'], 'redirect', $options['redirect']);
252
+    }
253
+
254
+    $modele_mail = 'modeles/mail_inscription';
255
+    if (isset($options['modele_mail']) and $options['modele_mail']) {
256
+        $modele_mail = $options['modele_mail'];
257
+    }
258
+    $message = recuperer_fond($modele_mail, $contexte);
259
+    $from = ($options['from'] ?? '');
260
+    $head = '';
261
+
262
+    return ['', $message, $from, $head];
263 263
 }
264 264
 
265 265
 
@@ -270,12 +270,12 @@  discard block
 block discarded – undo
270 270
  * @return string
271 271
  */
272 272
 function creer_pass_pour_auteur($id_auteur) {
273
-	include_spip('inc/acces');
274
-	$pass = creer_pass_aleatoire(max(_PASS_LONGUEUR_MINI, 16), $id_auteur);
275
-	include_spip('action/editer_auteur');
276
-	auteur_instituer($id_auteur, ['pass' => $pass]);
273
+    include_spip('inc/acces');
274
+    $pass = creer_pass_aleatoire(max(_PASS_LONGUEUR_MINI, 16), $id_auteur);
275
+    include_spip('action/editer_auteur');
276
+    auteur_instituer($id_auteur, ['pass' => $pass]);
277 277
 
278
-	return $pass;
278
+    return $pass;
279 279
 }
280 280
 
281 281
 /**
@@ -288,17 +288,17 @@  discard block
 block discarded – undo
288 288
  * @return string
289 289
  */
290 290
 function tester_statut_inscription($statut_tmp, $id) {
291
-	include_spip('inc/autoriser');
292
-	if ($statut_tmp) {
293
-		return autoriser('inscrireauteur', $statut_tmp, $id) ? $statut_tmp : '';
294
-	} elseif (
295
-		autoriser('inscrireauteur', $statut_tmp = '1comite', $id)
296
-		or autoriser('inscrireauteur', $statut_tmp = '6forum', $id)
297
-	) {
298
-		return $statut_tmp;
299
-	}
300
-
301
-	return '';
291
+    include_spip('inc/autoriser');
292
+    if ($statut_tmp) {
293
+        return autoriser('inscrireauteur', $statut_tmp, $id) ? $statut_tmp : '';
294
+    } elseif (
295
+        autoriser('inscrireauteur', $statut_tmp = '1comite', $id)
296
+        or autoriser('inscrireauteur', $statut_tmp = '6forum', $id)
297
+    ) {
298
+        return $statut_tmp;
299
+    }
300
+
301
+    return '';
302 302
 }
303 303
 
304 304
 
@@ -312,35 +312,35 @@  discard block
 block discarded – undo
312 312
  * @return array
313 313
  */
314 314
 function confirmer_statut_inscription($auteur) {
315
-	// securite
316
-	if ($auteur['statut'] != 'nouveau') {
317
-		return $auteur;
318
-	}
319
-
320
-	$s = $auteur['prefs'];
321
-	// securite, au cas ou prefs aurait ete corrompu (ou deja ecrase par un tableau serialize)
322
-	if (!preg_match(',^\w+$,', $s)) {
323
-		$s = '6forum';
324
-	}
325
-	include_spip('inc/autoriser');
326
-	if (!autoriser('inscrireauteur', $s)) {
327
-		return $auteur;
328
-	}
329
-
330
-	include_spip('inc/autoriser');
331
-	// accorder l'autorisation de modif du statut auteur
332
-	autoriser_exception('modifier', 'auteur', $auteur['id_auteur']);
333
-	include_spip('action/editer_auteur');
334
-	// changer le statut
335
-	auteur_modifier($auteur['id_auteur'], ['statut' => $s]);
336
-	unset($_COOKIE['spip_session']); // forcer la maj de la session
337
-	// lever l'autorisation de modif du statut auteur
338
-	autoriser_exception('modifier', 'auteur', $auteur['id_auteur'], false);
339
-
340
-	// mettre a jour le statut
341
-	$auteur['statut'] = $s;
342
-
343
-	return $auteur;
315
+    // securite
316
+    if ($auteur['statut'] != 'nouveau') {
317
+        return $auteur;
318
+    }
319
+
320
+    $s = $auteur['prefs'];
321
+    // securite, au cas ou prefs aurait ete corrompu (ou deja ecrase par un tableau serialize)
322
+    if (!preg_match(',^\w+$,', $s)) {
323
+        $s = '6forum';
324
+    }
325
+    include_spip('inc/autoriser');
326
+    if (!autoriser('inscrireauteur', $s)) {
327
+        return $auteur;
328
+    }
329
+
330
+    include_spip('inc/autoriser');
331
+    // accorder l'autorisation de modif du statut auteur
332
+    autoriser_exception('modifier', 'auteur', $auteur['id_auteur']);
333
+    include_spip('action/editer_auteur');
334
+    // changer le statut
335
+    auteur_modifier($auteur['id_auteur'], ['statut' => $s]);
336
+    unset($_COOKIE['spip_session']); // forcer la maj de la session
337
+    // lever l'autorisation de modif du statut auteur
338
+    autoriser_exception('modifier', 'auteur', $auteur['id_auteur'], false);
339
+
340
+    // mettre a jour le statut
341
+    $auteur['statut'] = $s;
342
+
343
+    return $auteur;
344 344
 }
345 345
 
346 346
 
@@ -354,20 +354,20 @@  discard block
 block discarded – undo
354 354
  * @return string
355 355
  */
356 356
 function auteur_attribuer_jeton($id_auteur): string {
357
-	include_spip('base/abstract_sql');
358
-	include_spip('inc/acces');
359
-
360
-	// s'assurer de l'unicite du jeton pour le couple (email,cookie)
361
-	do {
362
-		// Un morceau du jeton est lisible en bdd pour éviter de devoir déchiffrer
363
-		// tous les jetons connus pour vérifier le jeton d’un auteur.
364
-		$public = substr(creer_uniqid(), 0, 7) . '.';
365
-		$jeton = $public . creer_uniqid();
366
-		$jeton_chiffre_prefixe = $public . Chiffrement::chiffrer($jeton, SpipCles::secret_du_site());
367
-		sql_updateq('spip_auteurs', ['cookie_oubli' => $jeton_chiffre_prefixe], 'id_auteur=' . intval($id_auteur));
368
-	} while (sql_countsel('spip_auteurs', 'cookie_oubli=' . sql_quote($jeton_chiffre_prefixe, '', 'string')) > 1);
369
-
370
-	return $jeton;
357
+    include_spip('base/abstract_sql');
358
+    include_spip('inc/acces');
359
+
360
+    // s'assurer de l'unicite du jeton pour le couple (email,cookie)
361
+    do {
362
+        // Un morceau du jeton est lisible en bdd pour éviter de devoir déchiffrer
363
+        // tous les jetons connus pour vérifier le jeton d’un auteur.
364
+        $public = substr(creer_uniqid(), 0, 7) . '.';
365
+        $jeton = $public . creer_uniqid();
366
+        $jeton_chiffre_prefixe = $public . Chiffrement::chiffrer($jeton, SpipCles::secret_du_site());
367
+        sql_updateq('spip_auteurs', ['cookie_oubli' => $jeton_chiffre_prefixe], 'id_auteur=' . intval($id_auteur));
368
+    } while (sql_countsel('spip_auteurs', 'cookie_oubli=' . sql_quote($jeton_chiffre_prefixe, '', 'string')) > 1);
369
+
370
+    return $jeton;
371 371
 }
372 372
 
373 373
 /**
@@ -381,19 +381,19 @@  discard block
 block discarded – undo
381 381
  * @return string|null
382 382
  */
383 383
 function auteur_lire_jeton(int $id_auteur, bool $autoInit = false): ?string {
384
-	include_spip('base/abstract_sql');
385
-	$jeton_chiffre_prefixe = sql_getfetsel('cookie_oubli', 'spip_auteurs', 'id_auteur=' . $id_auteur);
386
-	if ($jeton_chiffre_prefixe) {
387
-		$jeton_chiffre = substr($jeton_chiffre_prefixe, 8);
388
-		$jeton = Chiffrement::dechiffrer($jeton_chiffre, SpipCles::secret_du_site());
389
-		if ($jeton) {
390
-			return $jeton;
391
-		}
392
-	}
393
-	if ($autoInit) {
394
-		return auteur_attribuer_jeton($id_auteur);
395
-	}
396
-	return null;
384
+    include_spip('base/abstract_sql');
385
+    $jeton_chiffre_prefixe = sql_getfetsel('cookie_oubli', 'spip_auteurs', 'id_auteur=' . $id_auteur);
386
+    if ($jeton_chiffre_prefixe) {
387
+        $jeton_chiffre = substr($jeton_chiffre_prefixe, 8);
388
+        $jeton = Chiffrement::dechiffrer($jeton_chiffre, SpipCles::secret_du_site());
389
+        if ($jeton) {
390
+            return $jeton;
391
+        }
392
+    }
393
+    if ($autoInit) {
394
+        return auteur_attribuer_jeton($id_auteur);
395
+    }
396
+    return null;
397 397
 }
398 398
 
399 399
 /**
@@ -403,24 +403,24 @@  discard block
 block discarded – undo
403 403
  * @return array|bool
404 404
  */
405 405
 function auteur_verifier_jeton($jeton) {
406
-	// refuser un jeton corrompu
407
-	if (preg_match(',[^0-9a-f.],i', $jeton)) {
408
-		return false;
409
-	}
410
-
411
-	include_spip('base/abstract_sql');
412
-	$public = substr($jeton, 0, 8);
413
-
414
-	// Les auteurs qui ont un jetons ressemblant
415
-	$auteurs = sql_allfetsel('*', 'spip_auteurs', 'cookie_oubli LIKE ' . sql_quote($public . '%'));
416
-	foreach ($auteurs as $auteur) {
417
-		$jeton_chiffre = substr($auteur['cookie_oubli'], 8);
418
-		$_jeton = Chiffrement::dechiffrer($jeton_chiffre, SpipCles::secret_du_site());
419
-		if ($_jeton and hash_equals($jeton, $_jeton)) {
420
-			return $auteur;
421
-		}
422
-	}
423
-	return false;
406
+    // refuser un jeton corrompu
407
+    if (preg_match(',[^0-9a-f.],i', $jeton)) {
408
+        return false;
409
+    }
410
+
411
+    include_spip('base/abstract_sql');
412
+    $public = substr($jeton, 0, 8);
413
+
414
+    // Les auteurs qui ont un jetons ressemblant
415
+    $auteurs = sql_allfetsel('*', 'spip_auteurs', 'cookie_oubli LIKE ' . sql_quote($public . '%'));
416
+    foreach ($auteurs as $auteur) {
417
+        $jeton_chiffre = substr($auteur['cookie_oubli'], 8);
418
+        $_jeton = Chiffrement::dechiffrer($jeton_chiffre, SpipCles::secret_du_site());
419
+        if ($_jeton and hash_equals($jeton, $_jeton)) {
420
+            return $auteur;
421
+        }
422
+    }
423
+    return false;
424 424
 }
425 425
 
426 426
 /**
@@ -430,6 +430,6 @@  discard block
 block discarded – undo
430 430
  * @return bool
431 431
  */
432 432
 function auteur_effacer_jeton($id_auteur) {
433
-	include_spip('base/abstract_sql');
434
-	return sql_updateq('spip_auteurs', ['cookie_oubli' => ''], 'id_auteur=' . intval($id_auteur));
433
+    include_spip('base/abstract_sql');
434
+    return sql_updateq('spip_auteurs', ['cookie_oubli' => ''], 'id_auteur=' . intval($id_auteur));
435 435
 }
Please login to merge, or discard this patch.
Spacing   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -61,7 +61,7 @@  discard block
 block discarded – undo
61 61
 	}
62 62
 
63 63
 	include_spip('base/abstract_sql');
64
-	$res = sql_select('statut, id_auteur, login, email, nom', 'spip_auteurs', 'email=' . sql_quote($desc['email']));
64
+	$res = sql_select('statut, id_auteur, login, email, nom', 'spip_auteurs', 'email='.sql_quote($desc['email']));
65 65
 	// erreur ?
66 66
 	if (!$res) {
67 67
 		return _T('titre_probleme_technique');
@@ -217,11 +217,11 @@  discard block
 block discarded – undo
217 217
 
218 218
 	$login = $login_base;
219 219
 
220
-	for ($i = 1;; $i++) {
220
+	for ($i = 1; ; $i++) {
221 221
 		if (!sql_countsel('spip_auteurs', "login='$login'")) {
222 222
 			return $login;
223 223
 		}
224
-		$login = $login_base . $i;
224
+		$login = $login_base.$i;
225 225
 	}
226 226
 }
227 227
 
@@ -361,11 +361,11 @@  discard block
 block discarded – undo
361 361
 	do {
362 362
 		// Un morceau du jeton est lisible en bdd pour éviter de devoir déchiffrer
363 363
 		// tous les jetons connus pour vérifier le jeton d’un auteur.
364
-		$public = substr(creer_uniqid(), 0, 7) . '.';
365
-		$jeton = $public . creer_uniqid();
366
-		$jeton_chiffre_prefixe = $public . Chiffrement::chiffrer($jeton, SpipCles::secret_du_site());
367
-		sql_updateq('spip_auteurs', ['cookie_oubli' => $jeton_chiffre_prefixe], 'id_auteur=' . intval($id_auteur));
368
-	} while (sql_countsel('spip_auteurs', 'cookie_oubli=' . sql_quote($jeton_chiffre_prefixe, '', 'string')) > 1);
364
+		$public = substr(creer_uniqid(), 0, 7).'.';
365
+		$jeton = $public.creer_uniqid();
366
+		$jeton_chiffre_prefixe = $public.Chiffrement::chiffrer($jeton, SpipCles::secret_du_site());
367
+		sql_updateq('spip_auteurs', ['cookie_oubli' => $jeton_chiffre_prefixe], 'id_auteur='.intval($id_auteur));
368
+	} while (sql_countsel('spip_auteurs', 'cookie_oubli='.sql_quote($jeton_chiffre_prefixe, '', 'string')) > 1);
369 369
 
370 370
 	return $jeton;
371 371
 }
@@ -382,7 +382,7 @@  discard block
 block discarded – undo
382 382
  */
383 383
 function auteur_lire_jeton(int $id_auteur, bool $autoInit = false): ?string {
384 384
 	include_spip('base/abstract_sql');
385
-	$jeton_chiffre_prefixe = sql_getfetsel('cookie_oubli', 'spip_auteurs', 'id_auteur=' . $id_auteur);
385
+	$jeton_chiffre_prefixe = sql_getfetsel('cookie_oubli', 'spip_auteurs', 'id_auteur='.$id_auteur);
386 386
 	if ($jeton_chiffre_prefixe) {
387 387
 		$jeton_chiffre = substr($jeton_chiffre_prefixe, 8);
388 388
 		$jeton = Chiffrement::dechiffrer($jeton_chiffre, SpipCles::secret_du_site());
@@ -412,7 +412,7 @@  discard block
 block discarded – undo
412 412
 	$public = substr($jeton, 0, 8);
413 413
 
414 414
 	// Les auteurs qui ont un jetons ressemblant
415
-	$auteurs = sql_allfetsel('*', 'spip_auteurs', 'cookie_oubli LIKE ' . sql_quote($public . '%'));
415
+	$auteurs = sql_allfetsel('*', 'spip_auteurs', 'cookie_oubli LIKE '.sql_quote($public.'%'));
416 416
 	foreach ($auteurs as $auteur) {
417 417
 		$jeton_chiffre = substr($auteur['cookie_oubli'], 8);
418 418
 		$_jeton = Chiffrement::dechiffrer($jeton_chiffre, SpipCles::secret_du_site());
@@ -431,5 +431,5 @@  discard block
 block discarded – undo
431 431
  */
432 432
 function auteur_effacer_jeton($id_auteur) {
433 433
 	include_spip('base/abstract_sql');
434
-	return sql_updateq('spip_auteurs', ['cookie_oubli' => ''], 'id_auteur=' . intval($id_auteur));
434
+	return sql_updateq('spip_auteurs', ['cookie_oubli' => ''], 'id_auteur='.intval($id_auteur));
435 435
 }
Please login to merge, or discard this patch.
ecrire/src/Compilateur/Iterateur/Condition.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -9,12 +9,12 @@
 block discarded – undo
9 9
  */
10 10
 class Condition extends Data
11 11
 {
12
-	/**
13
-	 * Obtenir les données de la boucle CONDITION.
14
-	 *
15
-	 * @param array $command
16
-	 */
17
-	protected function select($command) {
18
-		$this->tableau = [0 => 1];
19
-	}
12
+    /**
13
+     * Obtenir les données de la boucle CONDITION.
14
+     *
15
+     * @param array $command
16
+     */
17
+    protected function select($command) {
18
+        $this->tableau = [0 => 1];
19
+    }
20 20
 }
Please login to merge, or discard this patch.