Completed
Pull Request — master (#41)
by
unknown
01:10
created
ecrire/lang/public_fr.php 1 patch
Indentation   +115 added lines, -115 removed lines patch added patch discarded remove patch
@@ -2,123 +2,123 @@
 block discarded – undo
2 2
 // This is a SPIP language file  --  Ceci est un fichier langue de SPIP
3 3
 // Fichier source, a modifier dans https://git.spip.net/spip/spip.git
4 4
 if (!defined('_ECRIRE_INC_VERSION')) {
5
-	return;
5
+    return;
6 6
 }
7 7
 
8 8
 $GLOBALS[$GLOBALS['idx_lang']] = array(
9 9
 
10
-	// A
11
-	'accueil_site' => 'Accueil',
12
-	'article' => 'Article',
13
-	'articles' => 'Articles',
14
-	'articles_auteur' => 'Articles de cet auteur',
15
-	'articles_populaires' => 'Articles les plus populaires',
16
-	'articles_rubrique' => 'Articles de cette rubrique',
17
-	'aucun_article' => 'Il n’y a pas d’article à cette adresse',
18
-	'aucun_auteur' => 'Il n’y a pas d’auteur à cette adresse',
19
-	'aucun_site' => 'Il n’y a pas de site à cette adresse',
20
-	'aucune_breve' => 'Il n’y a pas de brève à cette adresse',
21
-	'aucune_rubrique' => 'Il n’y a pas de rubrique à cette adresse',
22
-	'auteur' => 'Auteur',
23
-	'autres' => 'Autres',
24
-	'autres_breves' => 'Autres brèves',
25
-	'autres_groupes_mots_clefs' => 'Autres groupes de mots-clés',
26
-	'autres_sites' => 'Autres sites',
27
-
28
-	// B
29
-	'bonjour' => 'Bonjour',
30
-
31
-	// C
32
-	'commenter_site' => 'Commenter ce site',
33
-	'contact' => 'Contact',
34
-	'copie_document_impossible' => 'Impossible de copier le document',
35
-
36
-	// D
37
-	'date' => 'Date',
38
-	'dernier_ajout' => 'Dernier ajout',
39
-	'dernieres_breves' => 'Dernières brèves',
40
-	'derniers_articles' => 'Derniers articles',
41
-	'derniers_commentaires' => 'Derniers commentaires',
42
-	'derniers_messages_forum' => 'Derniers messages publiés dans les forums',
43
-
44
-	// E
45
-	'edition_mode_texte' => 'Édition en mode texte de',
46
-	'en_reponse' => 'En réponse à :',
47
-	'en_resume' => 'En résumé',
48
-	'envoyer_message' => 'Envoyer un message',
49
-	'espace_prive' => 'Espace privé',
50
-
51
-	// F
52
-	'formats_acceptes' => 'Formats acceptés : @formats@.',
53
-
54
-	// H
55
-	'hierarchie_site' => 'Hiérarchie du site',
56
-
57
-	// J
58
-	'jours' => 'jours',
59
-
60
-	// L
61
-	'lien_connecter' => 'Se connecter',
62
-
63
-	// M
64
-	'meme_auteur' => 'Du même auteur',
65
-	'meme_rubrique' => 'Dans la même rubrique',
66
-	'memes_auteurs' => 'Des mêmes auteurs',
67
-	'message' => 'Message',
68
-	'messages_forum' => 'Messages',
69
-	'messages_recents' => 'Messages de forums les plus récents',
70
-	'mots_clef' => 'Mot-clé',
71
-	'mots_clefs' => 'Mots-clés',
72
-	'mots_clefs_meme_groupe' => 'Mots-clés dans le même groupe',
73
-
74
-	// N
75
-	'navigation' => 'Navigation',
76
-	'nom' => 'Nom',
77
-	'nouveautes' => 'Les nouveautés',
78
-	'nouveautes_web' => 'Nouveautés sur le Web',
79
-	'nouveaux_articles' => 'Nouveaux articles',
80
-	'nouvelles_breves' => 'Nouvelles brèves',
81
-
82
-	// P
83
-	'page_precedente' => 'page précédente',
84
-	'page_suivante' => 'page suivante',
85
-	'par_auteur' => 'par ',
86
-	'participer_site' => 'Vous pouvez participer à la vie de ce site et proposer vos propres articles en vous inscrivant ci-dessous. Vous recevrez immédiatement un email vous indiquant vos codes d’accès à l’espace privé du site.',
87
-	'plan_site' => 'Plan du site',
88
-	'popularite' => 'Popularité',
89
-	'poster_message' => 'Poster un message',
90
-	'proposer_site' => 'Vous pouvez proposer un site à ajouter dans cette rubrique :',
91
-
92
-	// R
93
-	'repondre_article' => 'Répondre à cet article',
94
-	'repondre_breve' => 'Répondre à cette brève',
95
-	'resultats_recherche' => 'Résultats de la recherche',
96
-	'retour_debut_forums' => 'Retour au début des forums',
97
-	'rss_abonnement' => 'Copiez l’URL suivante dans votre agrégateur :',
98
-	'rss_abonnement_titre' => 'S’abonner',
99
-	'rss_abonnement_titre_page' => 'S’abonner à',
100
-	'rss_explication' => 'Un fil RSS recueille les informations de mise à jour d’un site. Il fournit le contenu des billets ou des commentaires ou un extrait de ceux-ci, ainsi qu’un lien vers les versions complètes et quelques autres informations. Ce fil a pour vocation d’être lu par un agrégateur RSS.',
101
-	'rss_explication_titre' => 'Qu’est-ce qu’un flux RSS ?',
102
-	'rubrique' => 'Rubrique',
103
-	'rubriques' => 'Rubriques',
104
-
105
-	// S
106
-	'signatures_petition' => 'Signatures',
107
-	'site_realise_avec_spip' => 'Site réalisé avec SPIP',
108
-	'sites_web' => 'Sites Web',
109
-	'sous_rubriques' => 'Sous-rubriques',
110
-	'spam' => 'Spam',
111
-	'suite' => 'suite',
112
-	'sur_web' => 'Sur le Web',
113
-	'syndiquer_rubrique' => 'Syndiquer cette rubrique',
114
-	'syndiquer_site' => 'Syndiquer tout le site',
115
-
116
-	// T
117
-	'texte_lettre_information' => 'Voici la lettre d’information du site',
118
-	'texte_lettre_information_2' => 'Cette lettre recense les nouveautés publiées depuis',
119
-
120
-	// V
121
-	'ver_imprimer' => 'Version à imprimer',
122
-	'voir_en_ligne' => 'Voir en ligne',
123
-	'voir_squelette' => 'voir le squelette de cette page'
10
+    // A
11
+    'accueil_site' => 'Accueil',
12
+    'article' => 'Article',
13
+    'articles' => 'Articles',
14
+    'articles_auteur' => 'Articles de cet auteur',
15
+    'articles_populaires' => 'Articles les plus populaires',
16
+    'articles_rubrique' => 'Articles de cette rubrique',
17
+    'aucun_article' => 'Il n’y a pas d’article à cette adresse',
18
+    'aucun_auteur' => 'Il n’y a pas d’auteur à cette adresse',
19
+    'aucun_site' => 'Il n’y a pas de site à cette adresse',
20
+    'aucune_breve' => 'Il n’y a pas de brève à cette adresse',
21
+    'aucune_rubrique' => 'Il n’y a pas de rubrique à cette adresse',
22
+    'auteur' => 'Auteur',
23
+    'autres' => 'Autres',
24
+    'autres_breves' => 'Autres brèves',
25
+    'autres_groupes_mots_clefs' => 'Autres groupes de mots-clés',
26
+    'autres_sites' => 'Autres sites',
27
+
28
+    // B
29
+    'bonjour' => 'Bonjour',
30
+
31
+    // C
32
+    'commenter_site' => 'Commenter ce site',
33
+    'contact' => 'Contact',
34
+    'copie_document_impossible' => 'Impossible de copier le document',
35
+
36
+    // D
37
+    'date' => 'Date',
38
+    'dernier_ajout' => 'Dernier ajout',
39
+    'dernieres_breves' => 'Dernières brèves',
40
+    'derniers_articles' => 'Derniers articles',
41
+    'derniers_commentaires' => 'Derniers commentaires',
42
+    'derniers_messages_forum' => 'Derniers messages publiés dans les forums',
43
+
44
+    // E
45
+    'edition_mode_texte' => 'Édition en mode texte de',
46
+    'en_reponse' => 'En réponse à :',
47
+    'en_resume' => 'En résumé',
48
+    'envoyer_message' => 'Envoyer un message',
49
+    'espace_prive' => 'Espace privé',
50
+
51
+    // F
52
+    'formats_acceptes' => 'Formats acceptés : @formats@.',
53
+
54
+    // H
55
+    'hierarchie_site' => 'Hiérarchie du site',
56
+
57
+    // J
58
+    'jours' => 'jours',
59
+
60
+    // L
61
+    'lien_connecter' => 'Se connecter',
62
+
63
+    // M
64
+    'meme_auteur' => 'Du même auteur',
65
+    'meme_rubrique' => 'Dans la même rubrique',
66
+    'memes_auteurs' => 'Des mêmes auteurs',
67
+    'message' => 'Message',
68
+    'messages_forum' => 'Messages',
69
+    'messages_recents' => 'Messages de forums les plus récents',
70
+    'mots_clef' => 'Mot-clé',
71
+    'mots_clefs' => 'Mots-clés',
72
+    'mots_clefs_meme_groupe' => 'Mots-clés dans le même groupe',
73
+
74
+    // N
75
+    'navigation' => 'Navigation',
76
+    'nom' => 'Nom',
77
+    'nouveautes' => 'Les nouveautés',
78
+    'nouveautes_web' => 'Nouveautés sur le Web',
79
+    'nouveaux_articles' => 'Nouveaux articles',
80
+    'nouvelles_breves' => 'Nouvelles brèves',
81
+
82
+    // P
83
+    'page_precedente' => 'page précédente',
84
+    'page_suivante' => 'page suivante',
85
+    'par_auteur' => 'par ',
86
+    'participer_site' => 'Vous pouvez participer à la vie de ce site et proposer vos propres articles en vous inscrivant ci-dessous. Vous recevrez immédiatement un email vous indiquant vos codes d’accès à l’espace privé du site.',
87
+    'plan_site' => 'Plan du site',
88
+    'popularite' => 'Popularité',
89
+    'poster_message' => 'Poster un message',
90
+    'proposer_site' => 'Vous pouvez proposer un site à ajouter dans cette rubrique :',
91
+
92
+    // R
93
+    'repondre_article' => 'Répondre à cet article',
94
+    'repondre_breve' => 'Répondre à cette brève',
95
+    'resultats_recherche' => 'Résultats de la recherche',
96
+    'retour_debut_forums' => 'Retour au début des forums',
97
+    'rss_abonnement' => 'Copiez l’URL suivante dans votre agrégateur :',
98
+    'rss_abonnement_titre' => 'S’abonner',
99
+    'rss_abonnement_titre_page' => 'S’abonner à',
100
+    'rss_explication' => 'Un fil RSS recueille les informations de mise à jour d’un site. Il fournit le contenu des billets ou des commentaires ou un extrait de ceux-ci, ainsi qu’un lien vers les versions complètes et quelques autres informations. Ce fil a pour vocation d’être lu par un agrégateur RSS.',
101
+    'rss_explication_titre' => 'Qu’est-ce qu’un flux RSS ?',
102
+    'rubrique' => 'Rubrique',
103
+    'rubriques' => 'Rubriques',
104
+
105
+    // S
106
+    'signatures_petition' => 'Signatures',
107
+    'site_realise_avec_spip' => 'Site réalisé avec SPIP',
108
+    'sites_web' => 'Sites Web',
109
+    'sous_rubriques' => 'Sous-rubriques',
110
+    'spam' => 'Spam',
111
+    'suite' => 'suite',
112
+    'sur_web' => 'Sur le Web',
113
+    'syndiquer_rubrique' => 'Syndiquer cette rubrique',
114
+    'syndiquer_site' => 'Syndiquer tout le site',
115
+
116
+    // T
117
+    'texte_lettre_information' => 'Voici la lettre d’information du site',
118
+    'texte_lettre_information_2' => 'Cette lettre recense les nouveautés publiées depuis',
119
+
120
+    // V
121
+    'ver_imprimer' => 'Version à imprimer',
122
+    'voir_en_ligne' => 'Voir en ligne',
123
+    'voir_squelette' => 'voir le squelette de cette page'
124 124
 );
Please login to merge, or discard this patch.
ecrire/lang/public_en.php 1 patch
Indentation   +115 added lines, -115 removed lines patch added patch discarded remove patch
@@ -4,123 +4,123 @@
 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
-	'accueil_site' => 'Home',
14
-	'article' => 'Article',
15
-	'articles' => 'Articles',
16
-	'articles_auteur' => 'Articles by this author',
17
-	'articles_populaires' => 'Most popular articles',
18
-	'articles_rubrique' => 'Articles in this section',
19
-	'aucun_article' => 'No articles here',
20
-	'aucun_auteur' => 'No authors here',
21
-	'aucun_site' => 'No links here',
22
-	'aucune_breve' => 'No news items here',
23
-	'aucune_rubrique' => 'No sections here',
24
-	'auteur' => 'Author',
25
-	'autres' => 'Others',
26
-	'autres_breves' => 'Other news',
27
-	'autres_groupes_mots_clefs' => 'Other groups of keywords',
28
-	'autres_sites' => 'Other websites',
29
-
30
-	// B
31
-	'bonjour' => 'Hello',
32
-
33
-	// C
34
-	'commenter_site' => 'Comment on this site',
35
-	'contact' => 'Contact',
36
-	'copie_document_impossible' => 'Impossible to copy this document',
37
-
38
-	// D
39
-	'date' => 'Date',
40
-	'dernier_ajout' => 'Latest update',
41
-	'dernieres_breves' => 'Latest news',
42
-	'derniers_articles' => 'Latest articles',
43
-	'derniers_commentaires' => 'Latest comments',
44
-	'derniers_messages_forum' => 'Latest forum posts',
45
-
46
-	// E
47
-	'edition_mode_texte' => 'Text mode only',
48
-	'en_reponse' => 'Replying to:',
49
-	'en_resume' => 'Summary',
50
-	'envoyer_message' => 'Send a message',
51
-	'espace_prive' => 'Private area',
52
-
53
-	// F
54
-	'formats_acceptes' => 'Valid formats: @formats@.',
55
-
56
-	// H
57
-	'hierarchie_site' => 'Site map',
58
-
59
-	// J
60
-	'jours' => 'days',
61
-
62
-	// L
63
-	'lien_connecter' => 'Log in',
64
-
65
-	// M
66
-	'meme_auteur' => 'By the same author',
67
-	'meme_rubrique' => 'Also in this section',
68
-	'memes_auteurs' => 'By the same authors',
69
-	'message' => 'Message',
70
-	'messages_forum' => 'Forum posts',
71
-	'messages_recents' => 'Most recent forum posts',
72
-	'mots_clef' => 'Keyword',
73
-	'mots_clefs' => 'Keywords',
74
-	'mots_clefs_meme_groupe' => 'Other keywords in this group',
75
-
76
-	// N
77
-	'navigation' => 'Browsing',
78
-	'nom' => 'Name',
79
-	'nouveautes' => 'What’s new',
80
-	'nouveautes_web' => 'What’s new on the Web',
81
-	'nouveaux_articles' => 'New articles',
82
-	'nouvelles_breves' => 'Latest news items',
83
-
84
-	// P
85
-	'page_precedente' => 'previous page',
86
-	'page_suivante' => 'next page',
87
-	'par_auteur' => 'by ',
88
-	'participer_site' => 'You can take active part in this website and write your own articles by signing up here. You will receive an email with your account information for the private area of the site.',
89
-	'plan_site' => 'Site Map',
90
-	'popularite' => 'Popularity',
91
-	'poster_message' => 'Post a message',
92
-	'proposer_site' => 'You can suggest a website for inclusion in this section:',
93
-
94
-	// R
95
-	'repondre_article' => 'Comment on this article',
96
-	'repondre_breve' => 'Comment on this news item',
97
-	'resultats_recherche' => 'Search results',
98
-	'retour_debut_forums' => 'Back to forum top',
99
-	'rss_abonnement' => 'Simply copy the following URL into your aggregator:',
100
-	'rss_abonnement_titre' => 'Subscribe',
101
-	'rss_abonnement_titre_page' => 'Subscribe to',
102
-	'rss_explication' => 'An RSS thread collects information about a site’s update. It delivers the content of the tickets or the comments or an extract of them, as well as a link to the full versions et some other information. This thread is to be read by an RSS aggregator.',
103
-	'rss_explication_titre' => 'What is an RSS feed?',
104
-	'rubrique' => 'Section',
105
-	'rubriques' => 'Sections',
106
-
107
-	// S
108
-	'signatures_petition' => 'Signatures',
109
-	'site_realise_avec_spip' => 'Site powered by SPIP',
110
-	'sites_web' => 'Websites',
111
-	'sous_rubriques' => 'Subsections',
112
-	'spam' => 'Spam',
113
-	'suite' => 'continue',
114
-	'sur_web' => 'Around the Web',
115
-	'syndiquer_rubrique' => 'Subscribe to this section',
116
-	'syndiquer_site' => 'Subscribe to the whole site',
117
-
118
-	// T
119
-	'texte_lettre_information' => 'Here is the site newsletter',
120
-	'texte_lettre_information_2' => 'This site contains news items published since',
121
-
122
-	// V
123
-	'ver_imprimer' => 'Printable version',
124
-	'voir_en_ligne' => 'View online',
125
-	'voir_squelette' => 'show the template of this page'
12
+    // A
13
+    'accueil_site' => 'Home',
14
+    'article' => 'Article',
15
+    'articles' => 'Articles',
16
+    'articles_auteur' => 'Articles by this author',
17
+    'articles_populaires' => 'Most popular articles',
18
+    'articles_rubrique' => 'Articles in this section',
19
+    'aucun_article' => 'No articles here',
20
+    'aucun_auteur' => 'No authors here',
21
+    'aucun_site' => 'No links here',
22
+    'aucune_breve' => 'No news items here',
23
+    'aucune_rubrique' => 'No sections here',
24
+    'auteur' => 'Author',
25
+    'autres' => 'Others',
26
+    'autres_breves' => 'Other news',
27
+    'autres_groupes_mots_clefs' => 'Other groups of keywords',
28
+    'autres_sites' => 'Other websites',
29
+
30
+    // B
31
+    'bonjour' => 'Hello',
32
+
33
+    // C
34
+    'commenter_site' => 'Comment on this site',
35
+    'contact' => 'Contact',
36
+    'copie_document_impossible' => 'Impossible to copy this document',
37
+
38
+    // D
39
+    'date' => 'Date',
40
+    'dernier_ajout' => 'Latest update',
41
+    'dernieres_breves' => 'Latest news',
42
+    'derniers_articles' => 'Latest articles',
43
+    'derniers_commentaires' => 'Latest comments',
44
+    'derniers_messages_forum' => 'Latest forum posts',
45
+
46
+    // E
47
+    'edition_mode_texte' => 'Text mode only',
48
+    'en_reponse' => 'Replying to:',
49
+    'en_resume' => 'Summary',
50
+    'envoyer_message' => 'Send a message',
51
+    'espace_prive' => 'Private area',
52
+
53
+    // F
54
+    'formats_acceptes' => 'Valid formats: @formats@.',
55
+
56
+    // H
57
+    'hierarchie_site' => 'Site map',
58
+
59
+    // J
60
+    'jours' => 'days',
61
+
62
+    // L
63
+    'lien_connecter' => 'Log in',
64
+
65
+    // M
66
+    'meme_auteur' => 'By the same author',
67
+    'meme_rubrique' => 'Also in this section',
68
+    'memes_auteurs' => 'By the same authors',
69
+    'message' => 'Message',
70
+    'messages_forum' => 'Forum posts',
71
+    'messages_recents' => 'Most recent forum posts',
72
+    'mots_clef' => 'Keyword',
73
+    'mots_clefs' => 'Keywords',
74
+    'mots_clefs_meme_groupe' => 'Other keywords in this group',
75
+
76
+    // N
77
+    'navigation' => 'Browsing',
78
+    'nom' => 'Name',
79
+    'nouveautes' => 'What’s new',
80
+    'nouveautes_web' => 'What’s new on the Web',
81
+    'nouveaux_articles' => 'New articles',
82
+    'nouvelles_breves' => 'Latest news items',
83
+
84
+    // P
85
+    'page_precedente' => 'previous page',
86
+    'page_suivante' => 'next page',
87
+    'par_auteur' => 'by ',
88
+    'participer_site' => 'You can take active part in this website and write your own articles by signing up here. You will receive an email with your account information for the private area of the site.',
89
+    'plan_site' => 'Site Map',
90
+    'popularite' => 'Popularity',
91
+    'poster_message' => 'Post a message',
92
+    'proposer_site' => 'You can suggest a website for inclusion in this section:',
93
+
94
+    // R
95
+    'repondre_article' => 'Comment on this article',
96
+    'repondre_breve' => 'Comment on this news item',
97
+    'resultats_recherche' => 'Search results',
98
+    'retour_debut_forums' => 'Back to forum top',
99
+    'rss_abonnement' => 'Simply copy the following URL into your aggregator:',
100
+    'rss_abonnement_titre' => 'Subscribe',
101
+    'rss_abonnement_titre_page' => 'Subscribe to',
102
+    'rss_explication' => 'An RSS thread collects information about a site’s update. It delivers the content of the tickets or the comments or an extract of them, as well as a link to the full versions et some other information. This thread is to be read by an RSS aggregator.',
103
+    'rss_explication_titre' => 'What is an RSS feed?',
104
+    'rubrique' => 'Section',
105
+    'rubriques' => 'Sections',
106
+
107
+    // S
108
+    'signatures_petition' => 'Signatures',
109
+    'site_realise_avec_spip' => 'Site powered by SPIP',
110
+    'sites_web' => 'Websites',
111
+    'sous_rubriques' => 'Subsections',
112
+    'spam' => 'Spam',
113
+    'suite' => 'continue',
114
+    'sur_web' => 'Around the Web',
115
+    'syndiquer_rubrique' => 'Subscribe to this section',
116
+    'syndiquer_site' => 'Subscribe to the whole site',
117
+
118
+    // T
119
+    'texte_lettre_information' => 'Here is the site newsletter',
120
+    'texte_lettre_information_2' => 'This site contains news items published since',
121
+
122
+    // V
123
+    'ver_imprimer' => 'Printable version',
124
+    'voir_en_ligne' => 'View online',
125
+    'voir_squelette' => 'show the template of this page'
126 126
 );
Please login to merge, or discard this patch.
ecrire/lang/spip_ar.php 1 patch
Indentation   +668 added lines, -668 removed lines patch added patch discarded remove patch
@@ -4,245 +4,245 @@  discard block
 block discarded – undo
4 4
 // ** ne pas modifier le fichier **
5 5
 
6 6
 if (!defined('_ECRIRE_INC_VERSION')) {
7
-	return;
7
+    return;
8 8
 }
9 9
 
10 10
 $GLOBALS[$GLOBALS['idx_lang']] = array(
11 11
 
12
-	// A
13
-	'access_interface_graphique' => 'عودة إلى الواجهة الرسومية الكاملة',
14
-	'access_mode_texte' => 'عرض الواجهة النصية المبسّطة',
15
-	'admin_debug' => 'اكتشاف الأخطاء',
16
-	'admin_modifier_article' => 'تعديل هذا المقال',
17
-	'admin_modifier_auteur' => 'تغيير هذا المؤلف',
18
-	'admin_modifier_breve' => 'تعديل هذا الخبر',
19
-	'admin_modifier_mot' => 'تغيير هذا المفتاح',
20
-	'admin_modifier_rubrique' => 'تعديل هذا القسم',
21
-	'admin_recalculer' => 'إعادة تحديث هذه الصفحة',
22
-	'afficher_calendrier' => 'عرض الروزنامة',
23
-	'afficher_trad' => 'عرض الترجمات',
24
-	'alerte_maj_impossible' => '<b>تحذير!</b> ترقية قاعدة SQL إلى الإصدار @version@ متعذر. قد يكون السبب مشكلة في حقل التعديل. الرجاء الاتصال بمضيف موقعك.',
25
-	'alerte_modif_info_concourante' => 'تحذير:هذه المعلومة عُدلت في مكان آخر. القيمة الحالية هي:',
26
-	'analyse_xml' => 'تحليل XML',
27
-	'annuler' => 'إلغاء',
28
-	'antispam_champ_vide' => 'الرجاء الإبقاء على هذا الحقل فارغاً:',
29
-	'articles_recents' => 'أحدث المقالات',
30
-	'attention_champ_mini_nb_caractères' => 'تنبيه! @nb@ حروف على الأقل',
31
-	'avis_1_erreur_saisie' => 'هناك خطأ في إدخالك، الرجاء التدقيق في المعلومات.',
32
-	'avis_archive_incorrect' => 'ملف الأرشيف ليس ملف SPIP',
33
-	'avis_archive_invalide' => 'ملف الأرشيف غير صالح',
34
-	'avis_attention' => 'تحذير!',
35
-	'avis_champ_incorrect_type_objet' => 'إسم حقل @name@ غير صالح لنوع العنصر @type@',
36
-	'avis_colonne_inexistante' => 'العمود @col@ غير موجود',
37
-	'avis_erreur' => 'خطأ: انظر أدناه',
38
-	'avis_erreur_connexion' => 'خطأ اتصال',
39
-	'avis_erreur_cookie' => 'مشكلة في الكعكة',
40
-	'avis_erreur_fonction_contexte' => 'خطأ برمجة. لا يجب المناداة على هذه الوظيفة في هذا السياق.',
41
-	'avis_erreur_mysql' => 'خطأ SQL ',
42
-	'avis_erreur_sauvegarde' => 'خطأ في النسخة الاحتياطية (@type@ @id_objet@)!',
43
-	'avis_erreur_visiteur' => 'هناك مشكلة في الدخول إلى المجال الخاص',
44
-	'avis_nb_erreurs_saisie' => 'هناك @nb@ خطأ في إدخالك، الرجاء التدقيق في المعلومات.',
12
+    // A
13
+    'access_interface_graphique' => 'عودة إلى الواجهة الرسومية الكاملة',
14
+    'access_mode_texte' => 'عرض الواجهة النصية المبسّطة',
15
+    'admin_debug' => 'اكتشاف الأخطاء',
16
+    'admin_modifier_article' => 'تعديل هذا المقال',
17
+    'admin_modifier_auteur' => 'تغيير هذا المؤلف',
18
+    'admin_modifier_breve' => 'تعديل هذا الخبر',
19
+    'admin_modifier_mot' => 'تغيير هذا المفتاح',
20
+    'admin_modifier_rubrique' => 'تعديل هذا القسم',
21
+    'admin_recalculer' => 'إعادة تحديث هذه الصفحة',
22
+    'afficher_calendrier' => 'عرض الروزنامة',
23
+    'afficher_trad' => 'عرض الترجمات',
24
+    'alerte_maj_impossible' => '<b>تحذير!</b> ترقية قاعدة SQL إلى الإصدار @version@ متعذر. قد يكون السبب مشكلة في حقل التعديل. الرجاء الاتصال بمضيف موقعك.',
25
+    'alerte_modif_info_concourante' => 'تحذير:هذه المعلومة عُدلت في مكان آخر. القيمة الحالية هي:',
26
+    'analyse_xml' => 'تحليل XML',
27
+    'annuler' => 'إلغاء',
28
+    'antispam_champ_vide' => 'الرجاء الإبقاء على هذا الحقل فارغاً:',
29
+    'articles_recents' => 'أحدث المقالات',
30
+    'attention_champ_mini_nb_caractères' => 'تنبيه! @nb@ حروف على الأقل',
31
+    'avis_1_erreur_saisie' => 'هناك خطأ في إدخالك، الرجاء التدقيق في المعلومات.',
32
+    'avis_archive_incorrect' => 'ملف الأرشيف ليس ملف SPIP',
33
+    'avis_archive_invalide' => 'ملف الأرشيف غير صالح',
34
+    'avis_attention' => 'تحذير!',
35
+    'avis_champ_incorrect_type_objet' => 'إسم حقل @name@ غير صالح لنوع العنصر @type@',
36
+    'avis_colonne_inexistante' => 'العمود @col@ غير موجود',
37
+    'avis_erreur' => 'خطأ: انظر أدناه',
38
+    'avis_erreur_connexion' => 'خطأ اتصال',
39
+    'avis_erreur_cookie' => 'مشكلة في الكعكة',
40
+    'avis_erreur_fonction_contexte' => 'خطأ برمجة. لا يجب المناداة على هذه الوظيفة في هذا السياق.',
41
+    'avis_erreur_mysql' => 'خطأ SQL ',
42
+    'avis_erreur_sauvegarde' => 'خطأ في النسخة الاحتياطية (@type@ @id_objet@)!',
43
+    'avis_erreur_visiteur' => 'هناك مشكلة في الدخول إلى المجال الخاص',
44
+    'avis_nb_erreurs_saisie' => 'هناك @nb@ خطأ في إدخالك، الرجاء التدقيق في المعلومات.',
45 45
 
46
-	// B
47
-	'barre_a_accent_grave' => 'إدراج حرف A كبير مع نبر الإطالة',
48
-	'barre_aide' => 'استخدم شريط اختصارات الكتابة لإثراء تصميم صفحتك',
49
-	'barre_e_accent_aigu' => 'إدراج حرف E كبير مع نبر حاد',
50
-	'barre_eo' => 'إدراج E داخل O',
51
-	'barre_eo_maj' => 'إدراج E كبير داخل O كبير',
52
-	'barre_euro' => 'إدراج رمز €',
53
-	'barre_gras' => '{{غامق{{',
54
-	'barre_guillemets' => 'إحاطة «بعلامتي اقتباس مزدوجة»',
55
-	'barre_guillemets_simples' => 'وضع بين "علامتي اقتباس مزدوجة من المستوى الثاني"',
56
-	'barre_intertitre' => 'تحويل إلى {{{عنوان فقرة}}}',
57
-	'barre_italic' => '{مائل{',
58
-	'barre_lien' => 'تحويل إلى [وصلة هايبرتكست->http://...]',
59
-	'barre_lien_input' => 'الرجاء إدخال عنوان الوصلة (يمكنك إدخال عنوان نسيج على شكل http://www.mysite.com أو إدخال رقم مقال من الموقع الحالي فقط).',
60
-	'barre_note' => 'تحويل إلى [[حاشية]]',
61
-	'barre_paragraphe' => 'إنشاء فقرة',
62
-	'barre_quote' => '<quote>اقتباس رسالة</quote>',
63
-	'bouton_changer' => 'تغيير',
64
-	'bouton_chercher' => 'بحث',
65
-	'bouton_choisir' => 'تحديد',
66
-	'bouton_deplacer' => 'نقل',
67
-	'bouton_download' => 'تحميل',
68
-	'bouton_enregistrer' => 'إدخال',
69
-	'bouton_radio_desactiver_messagerie_interne' => 'إيقاف المراسلة الداخلية',
70
-	'bouton_radio_envoi_annonces' => 'إرسال إعلانات التحرير',
71
-	'bouton_radio_non_envoi_annonces' => 'عدم إرسال الإعلانات',
72
-	'bouton_radio_non_envoi_liste_nouveautes' => 'عدم إرسال قائمة بآخر الأخبار',
73
-	'bouton_recharger_page' => 'إعادة تحميل الصفحة',
74
-	'bouton_telecharger' => 'تحميل',
75
-	'bouton_upload' => 'تنزيل',
76
-	'bouton_valider' => 'إدخال',
46
+    // B
47
+    'barre_a_accent_grave' => 'إدراج حرف A كبير مع نبر الإطالة',
48
+    'barre_aide' => 'استخدم شريط اختصارات الكتابة لإثراء تصميم صفحتك',
49
+    'barre_e_accent_aigu' => 'إدراج حرف E كبير مع نبر حاد',
50
+    'barre_eo' => 'إدراج E داخل O',
51
+    'barre_eo_maj' => 'إدراج E كبير داخل O كبير',
52
+    'barre_euro' => 'إدراج رمز €',
53
+    'barre_gras' => '{{غامق{{',
54
+    'barre_guillemets' => 'إحاطة «بعلامتي اقتباس مزدوجة»',
55
+    'barre_guillemets_simples' => 'وضع بين "علامتي اقتباس مزدوجة من المستوى الثاني"',
56
+    'barre_intertitre' => 'تحويل إلى {{{عنوان فقرة}}}',
57
+    'barre_italic' => '{مائل{',
58
+    'barre_lien' => 'تحويل إلى [وصلة هايبرتكست->http://...]',
59
+    'barre_lien_input' => 'الرجاء إدخال عنوان الوصلة (يمكنك إدخال عنوان نسيج على شكل http://www.mysite.com أو إدخال رقم مقال من الموقع الحالي فقط).',
60
+    'barre_note' => 'تحويل إلى [[حاشية]]',
61
+    'barre_paragraphe' => 'إنشاء فقرة',
62
+    'barre_quote' => '<quote>اقتباس رسالة</quote>',
63
+    'bouton_changer' => 'تغيير',
64
+    'bouton_chercher' => 'بحث',
65
+    'bouton_choisir' => 'تحديد',
66
+    'bouton_deplacer' => 'نقل',
67
+    'bouton_download' => 'تحميل',
68
+    'bouton_enregistrer' => 'إدخال',
69
+    'bouton_radio_desactiver_messagerie_interne' => 'إيقاف المراسلة الداخلية',
70
+    'bouton_radio_envoi_annonces' => 'إرسال إعلانات التحرير',
71
+    'bouton_radio_non_envoi_annonces' => 'عدم إرسال الإعلانات',
72
+    'bouton_radio_non_envoi_liste_nouveautes' => 'عدم إرسال قائمة بآخر الأخبار',
73
+    'bouton_recharger_page' => 'إعادة تحميل الصفحة',
74
+    'bouton_telecharger' => 'تحميل',
75
+    'bouton_upload' => 'تنزيل',
76
+    'bouton_valider' => 'إدخال',
77 77
 
78
-	// C
79
-	'cal_apresmidi' => 'بعد الظهر',
80
-	'cal_jour_entier' => 'يوم كامل',
81
-	'cal_matin' => 'الصباح',
82
-	'cal_par_jour' => 'روزنامة يومية',
83
-	'cal_par_mois' => 'روزنامة شهرية',
84
-	'cal_par_semaine' => 'روزنامة أسبوعية',
85
-	'choix_couleur_interface' => 'اللون',
86
-	'choix_interface' => 'اختيار الواجهة',
87
-	'colonne' => 'عمود',
88
-	'confirm_changer_statut' => 'تحذير، لقد طلبت تغيير حالة هذا العنصر. هل تريد المتابعة؟',
89
-	'correcte' => 'صحيح',
78
+    // C
79
+    'cal_apresmidi' => 'بعد الظهر',
80
+    'cal_jour_entier' => 'يوم كامل',
81
+    'cal_matin' => 'الصباح',
82
+    'cal_par_jour' => 'روزنامة يومية',
83
+    'cal_par_mois' => 'روزنامة شهرية',
84
+    'cal_par_semaine' => 'روزنامة أسبوعية',
85
+    'choix_couleur_interface' => 'اللون',
86
+    'choix_interface' => 'اختيار الواجهة',
87
+    'colonne' => 'عمود',
88
+    'confirm_changer_statut' => 'تحذير، لقد طلبت تغيير حالة هذا العنصر. هل تريد المتابعة؟',
89
+    'correcte' => 'صحيح',
90 90
 
91
-	// D
92
-	'date_aujourdhui' => 'اليوم',
93
-	'date_avant_jc' => 'قبل الميلاد',
94
-	'date_dans' => 'بعد @delai@',
95
-	'date_de_mois_1' => '@j@ @nommois@',
96
-	'date_de_mois_10' => '@j@ @nommois@',
97
-	'date_de_mois_11' => '@j@ @nommois@',
98
-	'date_de_mois_12' => '@j@ @nommois@',
99
-	'date_de_mois_2' => '@j@ @nommois@',
100
-	'date_de_mois_3' => '@j@ @nommois@',
101
-	'date_de_mois_4' => '@j@ @nommois@',
102
-	'date_de_mois_5' => '@j@ @nommois@',
103
-	'date_de_mois_6' => '@j@ @nommois@',
104
-	'date_de_mois_7' => '@j@ @nommois@',
105
-	'date_de_mois_8' => '@j@ @nommois@',
106
-	'date_de_mois_9' => '@j@ @nommois@',
107
-	'date_demain' => 'غداً',
108
-	'date_fmt_heures_minutes' => '@h@  و@m@  دقيقة',
109
-	'date_fmt_heures_minutes_court' => '@h@h@m@',
110
-	'date_fmt_jour' => '@nomjour@ @jour@',
111
-	'date_fmt_jour_heure' => '@jour@ الساعة @heure@',
112
-	'date_fmt_jour_heure_debut_fin' => 'في @jour@ من @heure_debut@ الى @heure_fin@',
113
-	'date_fmt_jour_heure_debut_fin_abbr' => 'في @dtstart@@jour@ من @heure_debut@@dtabbr@ الى @dtend@@heure_fin@@dtabbr@',
114
-	'date_fmt_jour_mois' => '@jour@ @nommois@',
115
-	'date_fmt_jour_mois_annee' => '@jour@ @nommois@ @annee@',
116
-	'date_fmt_mois_annee' => '@nommois@ @annee@',
117
-	'date_fmt_nomjour' => '@nomjour@ @date@',
118
-	'date_fmt_nomjour_date' => 'في @nomjour@ @date@',
119
-	'date_fmt_periode' => 'من @date_debut@ الى @date_fin@',
120
-	'date_fmt_periode_abbr' => 'من @dtart@@date_debut@@dtabbr@ الى @dtend@@date_fin@@dtabbr@',
121
-	'date_fmt_periode_from' => 'من',
122
-	'date_fmt_periode_to' => 'الى',
123
-	'date_fmt_saison_annee' => '@saison@ @annee@',
124
-	'date_heures' => 'ساعة',
125
-	'date_hier' => 'البارحة',
126
-	'date_il_y_a' => 'منذ @delai@',
127
-	'date_jnum1' => '1',
128
-	'date_jnum10' => '10',
129
-	'date_jnum11' => '11',
130
-	'date_jnum12' => '12',
131
-	'date_jnum13' => '13',
132
-	'date_jnum14' => '14',
133
-	'date_jnum15' => '15',
134
-	'date_jnum16' => '16',
135
-	'date_jnum17' => '17',
136
-	'date_jnum18' => '18',
137
-	'date_jnum19' => '19',
138
-	'date_jnum2' => '2',
139
-	'date_jnum20' => '20',
140
-	'date_jnum21' => '21',
141
-	'date_jnum22' => '22',
142
-	'date_jnum23' => '23',
143
-	'date_jnum24' => '24',
144
-	'date_jnum25' => '25',
145
-	'date_jnum26' => '26',
146
-	'date_jnum27' => '27',
147
-	'date_jnum28' => '28',
148
-	'date_jnum29' => '29',
149
-	'date_jnum3' => '3',
150
-	'date_jnum30' => '30',
151
-	'date_jnum31' => '31',
152
-	'date_jnum4' => '4',
153
-	'date_jnum5' => '5',
154
-	'date_jnum6' => '6',
155
-	'date_jnum7' => '7',
156
-	'date_jnum8' => '8',
157
-	'date_jnum9' => '9',
158
-	'date_jour_1' => 'الأحد',
159
-	'date_jour_1_abbr' => 'أحد',
160
-	'date_jour_1_initiale' => 'أحد',
161
-	'date_jour_2' => 'الاثنين',
162
-	'date_jour_2_abbr' => 'اثنين',
163
-	'date_jour_2_initiale' => 'اثنين',
164
-	'date_jour_3' => 'الثلاثاء',
165
-	'date_jour_3_abbr' => 'ثلاثاء',
166
-	'date_jour_3_initiale' => 'ثلاثاء',
167
-	'date_jour_4' => 'الأربعاء',
168
-	'date_jour_4_abbr' => 'أربعاء',
169
-	'date_jour_4_initiale' => 'أربعاء',
170
-	'date_jour_5' => 'الخميس',
171
-	'date_jour_5_abbr' => 'خميس',
172
-	'date_jour_5_initiale' => 'خميس',
173
-	'date_jour_6' => 'الجمعة',
174
-	'date_jour_6_abbr' => 'جمعة',
175
-	'date_jour_6_initiale' => 'جمعة',
176
-	'date_jour_7' => 'السبت',
177
-	'date_jour_7_abbr' => 'سبت',
178
-	'date_jour_7_initiale' => 'سبت',
179
-	'date_jours' => 'يوم',
180
-	'date_minutes' => 'دقيقة',
181
-	'date_mois' => 'شهر',
182
-	'date_mois_1' => 'كانون الثاني (يناير)',
183
-	'date_mois_10' => 'تشرين الأول (أكتوبر)',
184
-	'date_mois_10_abbr' => 'ت١',
185
-	'date_mois_11' => 'تشرين الثاني (نوفمبر)',
186
-	'date_mois_11_abbr' => 'ت٢',
187
-	'date_mois_12' => 'كانون الأول (ديسمبر)',
188
-	'date_mois_12_abbr' => 'ك١',
189
-	'date_mois_1_abbr' => 'ك٢',
190
-	'date_mois_2' => 'شباط (فبراير)',
191
-	'date_mois_2_abbr' => 'شباط',
192
-	'date_mois_3' => 'آذار (مارس)',
193
-	'date_mois_3_abbr' => 'آذار',
194
-	'date_mois_4' => 'نيسان (أبريل)',
195
-	'date_mois_4_abbr' => 'نيسان',
196
-	'date_mois_5' => 'أيار (مايو)',
197
-	'date_mois_5_abbr' => 'أيار',
198
-	'date_mois_6' => 'حزيران (يونيو)',
199
-	'date_mois_6_abbr' => 'جزيران',
200
-	'date_mois_7' => 'تموز (يوليو)',
201
-	'date_mois_7_abbr' => 'تموز',
202
-	'date_mois_8' => 'آب (أغسطس)',
203
-	'date_mois_8_abbr' => 'آب',
204
-	'date_mois_9' => 'أيلول (سبتمبر)',
205
-	'date_mois_9_abbr' => 'أيلول',
206
-	'date_saison_1' => 'الشتاء',
207
-	'date_saison_2' => 'الربيع',
208
-	'date_saison_3' => 'الصيف',
209
-	'date_saison_4' => 'الخريف',
210
-	'date_secondes' => 'ثانية',
211
-	'date_semaines' => 'أسبوع',
212
-	'date_un_mois' => 'شهر',
213
-	'date_une_heure' => 'ساعة',
214
-	'date_une_minute' => 'دقيقة',
215
-	'date_une_seconde' => 'ثانية',
216
-	'date_une_semaine' => 'أسبوع',
217
-	'dirs_commencer' => 'للبدء فعلاً بعملية التثبيت',
218
-	'dirs_preliminaire' => 'تمهيد: <b>إعداد امتيازات الدخول</b>',
219
-	'dirs_probleme_droits' => 'مشكلة في امتيازات الدخول',
220
-	'dirs_repertoires_absents' => '<p><b>لم يتم العثور على الأدلة التالية: </b></p><ul>@bad_dirs@</ul>
91
+    // D
92
+    'date_aujourdhui' => 'اليوم',
93
+    'date_avant_jc' => 'قبل الميلاد',
94
+    'date_dans' => 'بعد @delai@',
95
+    'date_de_mois_1' => '@j@ @nommois@',
96
+    'date_de_mois_10' => '@j@ @nommois@',
97
+    'date_de_mois_11' => '@j@ @nommois@',
98
+    'date_de_mois_12' => '@j@ @nommois@',
99
+    'date_de_mois_2' => '@j@ @nommois@',
100
+    'date_de_mois_3' => '@j@ @nommois@',
101
+    'date_de_mois_4' => '@j@ @nommois@',
102
+    'date_de_mois_5' => '@j@ @nommois@',
103
+    'date_de_mois_6' => '@j@ @nommois@',
104
+    'date_de_mois_7' => '@j@ @nommois@',
105
+    'date_de_mois_8' => '@j@ @nommois@',
106
+    'date_de_mois_9' => '@j@ @nommois@',
107
+    'date_demain' => 'غداً',
108
+    'date_fmt_heures_minutes' => '@h@  و@m@  دقيقة',
109
+    'date_fmt_heures_minutes_court' => '@h@h@m@',
110
+    'date_fmt_jour' => '@nomjour@ @jour@',
111
+    'date_fmt_jour_heure' => '@jour@ الساعة @heure@',
112
+    'date_fmt_jour_heure_debut_fin' => 'في @jour@ من @heure_debut@ الى @heure_fin@',
113
+    'date_fmt_jour_heure_debut_fin_abbr' => 'في @dtstart@@jour@ من @heure_debut@@dtabbr@ الى @dtend@@heure_fin@@dtabbr@',
114
+    'date_fmt_jour_mois' => '@jour@ @nommois@',
115
+    'date_fmt_jour_mois_annee' => '@jour@ @nommois@ @annee@',
116
+    'date_fmt_mois_annee' => '@nommois@ @annee@',
117
+    'date_fmt_nomjour' => '@nomjour@ @date@',
118
+    'date_fmt_nomjour_date' => 'في @nomjour@ @date@',
119
+    'date_fmt_periode' => 'من @date_debut@ الى @date_fin@',
120
+    'date_fmt_periode_abbr' => 'من @dtart@@date_debut@@dtabbr@ الى @dtend@@date_fin@@dtabbr@',
121
+    'date_fmt_periode_from' => 'من',
122
+    'date_fmt_periode_to' => 'الى',
123
+    'date_fmt_saison_annee' => '@saison@ @annee@',
124
+    'date_heures' => 'ساعة',
125
+    'date_hier' => 'البارحة',
126
+    'date_il_y_a' => 'منذ @delai@',
127
+    'date_jnum1' => '1',
128
+    'date_jnum10' => '10',
129
+    'date_jnum11' => '11',
130
+    'date_jnum12' => '12',
131
+    'date_jnum13' => '13',
132
+    'date_jnum14' => '14',
133
+    'date_jnum15' => '15',
134
+    'date_jnum16' => '16',
135
+    'date_jnum17' => '17',
136
+    'date_jnum18' => '18',
137
+    'date_jnum19' => '19',
138
+    'date_jnum2' => '2',
139
+    'date_jnum20' => '20',
140
+    'date_jnum21' => '21',
141
+    'date_jnum22' => '22',
142
+    'date_jnum23' => '23',
143
+    'date_jnum24' => '24',
144
+    'date_jnum25' => '25',
145
+    'date_jnum26' => '26',
146
+    'date_jnum27' => '27',
147
+    'date_jnum28' => '28',
148
+    'date_jnum29' => '29',
149
+    'date_jnum3' => '3',
150
+    'date_jnum30' => '30',
151
+    'date_jnum31' => '31',
152
+    'date_jnum4' => '4',
153
+    'date_jnum5' => '5',
154
+    'date_jnum6' => '6',
155
+    'date_jnum7' => '7',
156
+    'date_jnum8' => '8',
157
+    'date_jnum9' => '9',
158
+    'date_jour_1' => 'الأحد',
159
+    'date_jour_1_abbr' => 'أحد',
160
+    'date_jour_1_initiale' => 'أحد',
161
+    'date_jour_2' => 'الاثنين',
162
+    'date_jour_2_abbr' => 'اثنين',
163
+    'date_jour_2_initiale' => 'اثنين',
164
+    'date_jour_3' => 'الثلاثاء',
165
+    'date_jour_3_abbr' => 'ثلاثاء',
166
+    'date_jour_3_initiale' => 'ثلاثاء',
167
+    'date_jour_4' => 'الأربعاء',
168
+    'date_jour_4_abbr' => 'أربعاء',
169
+    'date_jour_4_initiale' => 'أربعاء',
170
+    'date_jour_5' => 'الخميس',
171
+    'date_jour_5_abbr' => 'خميس',
172
+    'date_jour_5_initiale' => 'خميس',
173
+    'date_jour_6' => 'الجمعة',
174
+    'date_jour_6_abbr' => 'جمعة',
175
+    'date_jour_6_initiale' => 'جمعة',
176
+    'date_jour_7' => 'السبت',
177
+    'date_jour_7_abbr' => 'سبت',
178
+    'date_jour_7_initiale' => 'سبت',
179
+    'date_jours' => 'يوم',
180
+    'date_minutes' => 'دقيقة',
181
+    'date_mois' => 'شهر',
182
+    'date_mois_1' => 'كانون الثاني (يناير)',
183
+    'date_mois_10' => 'تشرين الأول (أكتوبر)',
184
+    'date_mois_10_abbr' => 'ت١',
185
+    'date_mois_11' => 'تشرين الثاني (نوفمبر)',
186
+    'date_mois_11_abbr' => 'ت٢',
187
+    'date_mois_12' => 'كانون الأول (ديسمبر)',
188
+    'date_mois_12_abbr' => 'ك١',
189
+    'date_mois_1_abbr' => 'ك٢',
190
+    'date_mois_2' => 'شباط (فبراير)',
191
+    'date_mois_2_abbr' => 'شباط',
192
+    'date_mois_3' => 'آذار (مارس)',
193
+    'date_mois_3_abbr' => 'آذار',
194
+    'date_mois_4' => 'نيسان (أبريل)',
195
+    'date_mois_4_abbr' => 'نيسان',
196
+    'date_mois_5' => 'أيار (مايو)',
197
+    'date_mois_5_abbr' => 'أيار',
198
+    'date_mois_6' => 'حزيران (يونيو)',
199
+    'date_mois_6_abbr' => 'جزيران',
200
+    'date_mois_7' => 'تموز (يوليو)',
201
+    'date_mois_7_abbr' => 'تموز',
202
+    'date_mois_8' => 'آب (أغسطس)',
203
+    'date_mois_8_abbr' => 'آب',
204
+    'date_mois_9' => 'أيلول (سبتمبر)',
205
+    'date_mois_9_abbr' => 'أيلول',
206
+    'date_saison_1' => 'الشتاء',
207
+    'date_saison_2' => 'الربيع',
208
+    'date_saison_3' => 'الصيف',
209
+    'date_saison_4' => 'الخريف',
210
+    'date_secondes' => 'ثانية',
211
+    'date_semaines' => 'أسبوع',
212
+    'date_un_mois' => 'شهر',
213
+    'date_une_heure' => 'ساعة',
214
+    'date_une_minute' => 'دقيقة',
215
+    'date_une_seconde' => 'ثانية',
216
+    'date_une_semaine' => 'أسبوع',
217
+    'dirs_commencer' => 'للبدء فعلاً بعملية التثبيت',
218
+    'dirs_preliminaire' => 'تمهيد: <b>إعداد امتيازات الدخول</b>',
219
+    'dirs_probleme_droits' => 'مشكلة في امتيازات الدخول',
220
+    'dirs_repertoires_absents' => '<p><b>لم يتم العثور على الأدلة التالية: </b></p><ul>@bad_dirs@</ul>
221 221
 <p>قد يكون السبب خطأ في اعتماد الحروف الكبيرة أو الصغيرة في أسمائها. الرجاء التأكد من أن الحروف الكبيرة والصغيرة في أسماء هذه الأدلة تناسب ما هو معروض أعلاه؛ إذا لم يكن الأمر كذلك، الرجاء إعادة تسمية الأدلة بواسطة برنامج FTP لتصحيح الخطأ.
222 222
 <p>بعد تنفيذ هذه العملية يمكنك </p>',
223
-	'dirs_repertoires_suivants' => '<p><b>الأدلة التالية ممنوعة على الكتابة: </b></p
223
+    'dirs_repertoires_suivants' => '<p><b>الأدلة التالية ممنوعة على الكتابة: </b></p
224 224
 <ul>@bad_dirs@</ul>
225 225
 <p>لحل هذه المشكلة، استخدم برنامج FTP لإعداد امتيازات الدخول لكل من هذه الأدلة. ويوضح دليل الاستخدام هذه العملية بالتفصيل.
226 226
 <p>بعد إتمام هذه العملية يمكنك</p>',
227
-	'double_occurrence' => 'ظهور مكرر لعلامة @balise@',
227
+    'double_occurrence' => 'ظهور مكرر لعلامة @balise@',
228 228
 
229
-	// E
230
-	'en_cours' => 'جاري',
231
-	'envoi_via_le_site' => 'إرسال عبر الموقع',
232
-	'erreur' => 'خطأ',
233
-	'erreur_balise_non_fermee' => 'آخر علامة غير مغلقة:',
234
-	'erreur_technique_ajaxform' => 'عفواً. حدث خطأ غير متوقع خلال إرسال الاستمارة. الرجاء المحاولة من جديد.',
235
-	'erreur_technique_enregistrement_champs' => 'خطأ تقني منع التسجيل السليم للحقل @champs@. ',
236
-	'erreur_technique_enregistrement_impossible' => 'خطأ تقني منع التسجيل.',
237
-	'erreur_texte' => 'خطأ (أخطاء)',
238
-	'etape' => 'خطوة',
229
+    // E
230
+    'en_cours' => 'جاري',
231
+    'envoi_via_le_site' => 'إرسال عبر الموقع',
232
+    'erreur' => 'خطأ',
233
+    'erreur_balise_non_fermee' => 'آخر علامة غير مغلقة:',
234
+    'erreur_technique_ajaxform' => 'عفواً. حدث خطأ غير متوقع خلال إرسال الاستمارة. الرجاء المحاولة من جديد.',
235
+    'erreur_technique_enregistrement_champs' => 'خطأ تقني منع التسجيل السليم للحقل @champs@. ',
236
+    'erreur_technique_enregistrement_impossible' => 'خطأ تقني منع التسجيل.',
237
+    'erreur_texte' => 'خطأ (أخطاء)',
238
+    'etape' => 'خطوة',
239 239
 
240
-	// F
241
-	'fichier_introuvable' => 'لا يمكن العثور على الملف @fichier@',
242
-	'form_auteur_confirmation' => 'تأكيد عنوان البريد الالكتروني',
243
-	'form_auteur_email_modifie' => 'تغير عنوان بريدك.',
244
-	'form_auteur_envoi_mail_confirmation' => 'لفد تم ارسال بريد تأكيد الى @email@. عليك زيارة عنوان الموقع الموجود في الرسالة للتصديق على عنوان بريدك.',
245
-	'form_auteur_mail_confirmation' => 'أهلاً وسهلاً
240
+    // F
241
+    'fichier_introuvable' => 'لا يمكن العثور على الملف @fichier@',
242
+    'form_auteur_confirmation' => 'تأكيد عنوان البريد الالكتروني',
243
+    'form_auteur_email_modifie' => 'تغير عنوان بريدك.',
244
+    'form_auteur_envoi_mail_confirmation' => 'لفد تم ارسال بريد تأكيد الى @email@. عليك زيارة عنوان الموقع الموجود في الرسالة للتصديق على عنوان بريدك.',
245
+    'form_auteur_mail_confirmation' => 'أهلاً وسهلاً
246 246
 
247 247
 لقد طلبت تغيير عنوان بريدك.
248 248
 للتصديق على العنوان الجديد، يكفي الاتصال
@@ -251,347 +251,347 @@  discard block
 block discarded – undo
251 251
 
252 252
     @url@
253 253
 ',
254
-	'form_deja_inscrit' => 'سبق لك التسجيل.',
255
-	'form_email_non_valide' => 'عنوانك البريدي غير صالح.',
256
-	'form_forum_access_refuse' => 'لم تعد تملك امتياز الدحول إلى هذا الموقع.',
257
-	'form_forum_bonjour' => 'مرحباً @nom@،',
258
-	'form_forum_confirmer_email' => 'لتأكيد عنوان بريدك، إذهب الى:@url_confirm@',
259
-	'form_forum_email_deja_enregistre' => 'سبق تسجيل هذا العنوان البريدي، يمكنك إذاً استخدام كلمة سرك الاعتيادية.',
260
-	'form_forum_identifiant_mail' => 'لقد تم إرسال معرّفك الجديد بالبريد الالكتروني.',
261
-	'form_forum_identifiants' => 'بيانات الاتصال الشخصية',
262
-	'form_forum_indiquer_nom_email' => 'قم بإدخال اسمك وعنوانك البريدي هنا. ستحصل على بيانات اتصالك قريباً في البريد الإلكتروني.',
263
-	'form_forum_login' => 'المعرّف:',
264
-	'form_forum_message_auto' => '(هذه رسالة آلية)',
265
-	'form_forum_pass' => 'كلمة السر:',
266
-	'form_forum_probleme_mail' => 'مشكلة بريد إلكتروني: لا يمكن إرسال بيانات الدخول.',
267
-	'form_forum_voici1' => 'هذه هي بياناتك للاشتراك في نشاط
254
+    'form_deja_inscrit' => 'سبق لك التسجيل.',
255
+    'form_email_non_valide' => 'عنوانك البريدي غير صالح.',
256
+    'form_forum_access_refuse' => 'لم تعد تملك امتياز الدحول إلى هذا الموقع.',
257
+    'form_forum_bonjour' => 'مرحباً @nom@،',
258
+    'form_forum_confirmer_email' => 'لتأكيد عنوان بريدك، إذهب الى:@url_confirm@',
259
+    'form_forum_email_deja_enregistre' => 'سبق تسجيل هذا العنوان البريدي، يمكنك إذاً استخدام كلمة سرك الاعتيادية.',
260
+    'form_forum_identifiant_mail' => 'لقد تم إرسال معرّفك الجديد بالبريد الالكتروني.',
261
+    'form_forum_identifiants' => 'بيانات الاتصال الشخصية',
262
+    'form_forum_indiquer_nom_email' => 'قم بإدخال اسمك وعنوانك البريدي هنا. ستحصل على بيانات اتصالك قريباً في البريد الإلكتروني.',
263
+    'form_forum_login' => 'المعرّف:',
264
+    'form_forum_message_auto' => '(هذه رسالة آلية)',
265
+    'form_forum_pass' => 'كلمة السر:',
266
+    'form_forum_probleme_mail' => 'مشكلة بريد إلكتروني: لا يمكن إرسال بيانات الدخول.',
267
+    'form_forum_voici1' => 'هذه هي بياناتك للاشتراك في نشاط
268 268
 الموقع  "@nom_site_spip@" (@adresse_site@):',
269
-	'form_forum_voici2' => 'هذه هي بياناتك لاقتراح مقالات
269
+    'form_forum_voici2' => 'هذه هي بياناتك لاقتراح مقالات
270 270
 للموقع  "@nom_site_spip@" (@adresse_login@):',
271
-	'form_indiquer_email' => 'الرجاء إدخال عنوانك الإلكتروني.',
272
-	'form_indiquer_nom' => 'الرجاء إدخال اسمك.',
273
-	'form_indiquer_nom_site' => 'الرجاء إدخال إسم موقعك.',
274
-	'form_pet_deja_enregistre' => 'سبق تسجيل هذا الموقع',
275
-	'form_pet_signature_pasprise' => 'تم تجاهل توقيعك.',
276
-	'form_prop_confirmer_envoi' => 'تأكيد الإرسال',
277
-	'form_prop_description' => 'وصف/تعليق',
278
-	'form_prop_enregistre' => 'تم تسجيل اقتراحك، سوف يظهر بعد تصديقه من قبل مسئولي هذا الموقع.',
279
-	'form_prop_envoyer' => 'ابعث برسالة',
280
-	'form_prop_indiquer_email' => 'الرجاء إدخال عنوان بريد إلكتروني صالح',
281
-	'form_prop_indiquer_nom_site' => 'الرجاء إدخال اسم الموقع.',
282
-	'form_prop_indiquer_sujet' => 'الرجاء إدخال موضوع',
283
-	'form_prop_message_envoye' => 'تم بعث الرسالة',
284
-	'form_prop_non_enregistre' => 'لم يتم تسجيل اقتراحك.',
285
-	'form_prop_sujet' => 'الموضوع',
286
-	'form_prop_url_site' => 'عنوان الموقع',
287
-	'format_date_attendu' => 'إدخال تاريخ بتنسيق jj/mm/aaaa.',
288
-	'format_date_incorrecte' => 'التاريخ او تنسيقه غير صحيح',
289
-	'format_heure_attendu' => 'إدخال ساعة بتنسيق hh:mm.',
290
-	'format_heure_incorrecte' => 'الساعة او تنسيقها غير صحيح',
291
-	'forum_non_inscrit' => 'إما انك غير مسجل أو هناك خطأ في العنوان أو كلمة السر.',
292
-	'forum_par_auteur' => 'من @auteur@',
293
-	'forum_titre_erreur' => 'خطأ...',
271
+    'form_indiquer_email' => 'الرجاء إدخال عنوانك الإلكتروني.',
272
+    'form_indiquer_nom' => 'الرجاء إدخال اسمك.',
273
+    'form_indiquer_nom_site' => 'الرجاء إدخال إسم موقعك.',
274
+    'form_pet_deja_enregistre' => 'سبق تسجيل هذا الموقع',
275
+    'form_pet_signature_pasprise' => 'تم تجاهل توقيعك.',
276
+    'form_prop_confirmer_envoi' => 'تأكيد الإرسال',
277
+    'form_prop_description' => 'وصف/تعليق',
278
+    'form_prop_enregistre' => 'تم تسجيل اقتراحك، سوف يظهر بعد تصديقه من قبل مسئولي هذا الموقع.',
279
+    'form_prop_envoyer' => 'ابعث برسالة',
280
+    'form_prop_indiquer_email' => 'الرجاء إدخال عنوان بريد إلكتروني صالح',
281
+    'form_prop_indiquer_nom_site' => 'الرجاء إدخال اسم الموقع.',
282
+    'form_prop_indiquer_sujet' => 'الرجاء إدخال موضوع',
283
+    'form_prop_message_envoye' => 'تم بعث الرسالة',
284
+    'form_prop_non_enregistre' => 'لم يتم تسجيل اقتراحك.',
285
+    'form_prop_sujet' => 'الموضوع',
286
+    'form_prop_url_site' => 'عنوان الموقع',
287
+    'format_date_attendu' => 'إدخال تاريخ بتنسيق jj/mm/aaaa.',
288
+    'format_date_incorrecte' => 'التاريخ او تنسيقه غير صحيح',
289
+    'format_heure_attendu' => 'إدخال ساعة بتنسيق hh:mm.',
290
+    'format_heure_incorrecte' => 'الساعة او تنسيقها غير صحيح',
291
+    'forum_non_inscrit' => 'إما انك غير مسجل أو هناك خطأ في العنوان أو كلمة السر.',
292
+    'forum_par_auteur' => 'من @auteur@',
293
+    'forum_titre_erreur' => 'خطأ...',
294 294
 
295
-	// I
296
-	'ical_texte_rss_articles' => 'يوجد ملف «الترخيص الخلفي» لمقالات هذا الموقع على العنوان: ',
297
-	'ical_texte_rss_articles2' => 'يمكنك أيضاً الحصول على ملفات «الترخيص الخلفي» لمقالات كل قسم في الموقع:',
298
-	'ical_texte_rss_breves' => 'يوجد كذلك ملف يحتوي على أخبار الموقع. وبإدخال رقم قسم ما، تحصل على أخبار هذا القسم فقط.',
299
-	'icone_a_suivre' => 'للمتابعة',
300
-	'icone_admin_site' => 'إدارة الموقع',
301
-	'icone_agenda' => 'المفكرة',
302
-	'icone_aide_ligne' => 'التعليمات الفورية',
303
-	'icone_articles' => 'المقالات',
304
-	'icone_auteurs' => 'المؤلفون',
305
-	'icone_brouteur' => 'تصفح سريع',
306
-	'icone_configuration_site' => 'إعداد',
307
-	'icone_configurer_site' => 'إعداد موقعك',
308
-	'icone_creer_nouvel_auteur' => 'إضافة مؤلف جديد',
309
-	'icone_creer_rubrique' => 'إنشاء قسم',
310
-	'icone_creer_sous_rubrique' => 'إنشاء قسم فرعي',
311
-	'icone_deconnecter' => 'خروج',
312
-	'icone_discussions' => 'نقاشات',
313
-	'icone_doc_rubrique' => 'مستندات الأقسام',
314
-	'icone_ecrire_article' => 'كتابة مقال جديد',
315
-	'icone_edition_site' => 'تحرير الموقع',
316
-	'icone_gestion_langues' => 'إدارة اللغات',
317
-	'icone_informations_personnelles' => 'المعلومات الشخصية',
318
-	'icone_interface_complet' => 'واجهة كاملة',
319
-	'icone_interface_simple' => 'واجهة مبسّطة',
320
-	'icone_maintenance_site' => 'صيانة الموقع',
321
-	'icone_messagerie_personnelle' => 'المراسلة الشخصية',
322
-	'icone_repartition_debut' => 'إظهار التوزيع منذ البداية',
323
-	'icone_rubriques' => 'الأقسام',
324
-	'icone_sauver_site' => 'نسخة احتياطية للموقع',
325
-	'icone_site_entier' => 'الموقع بالكامل',
326
-	'icone_sites_references' => 'المواقع المبوبة',
327
-	'icone_statistiques' => 'إحصاءات الموقع',
328
-	'icone_suivi_activite' => 'متابعة نشاط الموقع',
329
-	'icone_suivi_actualite' => 'تطور الموقع',
330
-	'icone_suivi_pettions' => 'متابعة/إدارة العرائض',
331
-	'icone_suivi_revisions' => 'تعديل المقالات',
332
-	'icone_supprimer_document' => 'حذف هذا المستند',
333
-	'icone_supprimer_image' => 'حذف هذه الصورة',
334
-	'icone_tous_articles' => 'كل مقالاتك',
335
-	'icone_tous_auteur' => 'جميع المؤلفين',
336
-	'icone_tous_visiteur' => 'جميع الزوار',
337
-	'icone_visiter_site' => 'تصفح الموقع العمومي',
338
-	'icone_voir_en_ligne' => 'عرض مباشر',
339
-	'img_indisponible' => 'صورة غير متوفرة',
340
-	'impossible' => 'مستحيل',
341
-	'info_a_suivre' => 'للمتابعة»',
342
-	'info_acces_interdit' => 'الدخول محظور',
343
-	'info_acces_refuse' => 'دخول محظور',
344
-	'info_action' => 'عملية: @action@',
345
-	'info_administrer_rubriques' => 'يمكنك إدارة هذا القسم وأقسامه الفرعية',
346
-	'info_adresse_non_indiquee' => 'لم تدخل أي عنوان لاختباره!',
347
-	'info_aide' => 'تعليمات :',
348
-	'info_ajouter_mot' => 'إضافة هذا المفتاح',
349
-	'info_annonce' => 'إعلان',
350
-	'info_annonces_generales' => 'إعلانات عامة:',
351
-	'info_article_propose' => 'مقال مقترح',
352
-	'info_article_publie' => 'مقال منشور',
353
-	'info_article_redaction' => 'مقال قيد التحرير',
354
-	'info_article_refuse' => 'مقال مرفوض',
355
-	'info_article_supprime' => 'مقال محذوف',
356
-	'info_articles' => 'المقالات',
357
-	'info_articles_a_valider' => 'مقالات معروضة للتصديق',
358
-	'info_articles_nb' => '@nb@ مقال',
359
-	'info_articles_proposes' => 'المقالات المعروضة',
360
-	'info_articles_un' => 'مقال واحد',
361
-	'info_auteurs_nombre' => 'مؤلف (مؤلفون):',
362
-	'info_authentification_ftp' => 'التحقق ( عبر بروتوكول FTP ).',
363
-	'info_breves_2' => 'خبر',
364
-	'info_breves_nb' => '@nb@ خبر',
365
-	'info_breves_un' => 'خبر واحد',
366
-	'info_connexion_refusee' => 'رفض الاتصال',
367
-	'info_contact_developpeur' => 'الرجاء الاتصال بمطوّر.',
368
-	'info_contenance' => 'هذا الموقع يحتوي على:',
369
-	'info_contribution' => 'مشاركة منتديات',
370
-	'info_copyright' => '@spip@ برنامج حر موزع @lien_gpl@.',
371
-	'info_copyright_doc' => 'لمزيد من المعلومات راجع الموقع<a href="@spipnet@">@spipnet_affiche@</a>.',
372
-	'info_copyright_gpl' => 'بموجب الترخيص العام GPL',
373
-	'info_cours_edition' => 'قيد التحرير',
374
-	'info_creer_repertoire' => 'الرجاء إنشاء ملف أو دليل باسم',
375
-	'info_creer_repertoire_2' => 'داخل الدليل الفرعي <b>@repertoire@</b>، ثم:',
376
-	'info_creer_vignette' => 'إنشاء آلي للمصغر',
377
-	'info_creerdansrubrique_non_autorise' => 'لا تملك الحقوق الكافية لإنشاء اي محتوى في هذا القسم',
378
-	'info_deplier' => 'بسط',
379
-	'info_descriptif_nombre' => 'الوصف:',
380
-	'info_description' => 'الوصف:',
381
-	'info_description_2' => 'الوصف:',
382
-	'info_dimension' => 'الحجم:',
383
-	'info_documents_nb' => '@nb@ مستند',
384
-	'info_documents_un' => 'مستند واحد',
385
-	'info_ecire_message_prive' => 'تحرير رسالة خاصة',
386
-	'info_email_invalide' => 'عنوان بريد غير صالح.',
387
-	'info_en_cours_validation' => 'مقالاتك قيد التحرير',
388
-	'info_en_ligne' => 'متصل حالياً:',
389
-	'info_envoyer_message_prive' => 'ابعث برسالة خاصة لهذا المؤلف',
390
-	'info_erreur_requete' => 'خطأ في الاستفسار:',
391
-	'info_erreur_squelette2' => 'لا توجد صفحة نموذجية <b>@fichier@</b> متاحة...',
392
-	'info_erreur_systeme' => 'خطأ في النظام (خطأ رقم @errsys@)',
393
-	'info_erreur_systeme2' => 'قد يكون القرص الصلب ممتلئاً أو قد تكون قاعدة البيانات معطلة.<br />
295
+    // I
296
+    'ical_texte_rss_articles' => 'يوجد ملف «الترخيص الخلفي» لمقالات هذا الموقع على العنوان: ',
297
+    'ical_texte_rss_articles2' => 'يمكنك أيضاً الحصول على ملفات «الترخيص الخلفي» لمقالات كل قسم في الموقع:',
298
+    'ical_texte_rss_breves' => 'يوجد كذلك ملف يحتوي على أخبار الموقع. وبإدخال رقم قسم ما، تحصل على أخبار هذا القسم فقط.',
299
+    'icone_a_suivre' => 'للمتابعة',
300
+    'icone_admin_site' => 'إدارة الموقع',
301
+    'icone_agenda' => 'المفكرة',
302
+    'icone_aide_ligne' => 'التعليمات الفورية',
303
+    'icone_articles' => 'المقالات',
304
+    'icone_auteurs' => 'المؤلفون',
305
+    'icone_brouteur' => 'تصفح سريع',
306
+    'icone_configuration_site' => 'إعداد',
307
+    'icone_configurer_site' => 'إعداد موقعك',
308
+    'icone_creer_nouvel_auteur' => 'إضافة مؤلف جديد',
309
+    'icone_creer_rubrique' => 'إنشاء قسم',
310
+    'icone_creer_sous_rubrique' => 'إنشاء قسم فرعي',
311
+    'icone_deconnecter' => 'خروج',
312
+    'icone_discussions' => 'نقاشات',
313
+    'icone_doc_rubrique' => 'مستندات الأقسام',
314
+    'icone_ecrire_article' => 'كتابة مقال جديد',
315
+    'icone_edition_site' => 'تحرير الموقع',
316
+    'icone_gestion_langues' => 'إدارة اللغات',
317
+    'icone_informations_personnelles' => 'المعلومات الشخصية',
318
+    'icone_interface_complet' => 'واجهة كاملة',
319
+    'icone_interface_simple' => 'واجهة مبسّطة',
320
+    'icone_maintenance_site' => 'صيانة الموقع',
321
+    'icone_messagerie_personnelle' => 'المراسلة الشخصية',
322
+    'icone_repartition_debut' => 'إظهار التوزيع منذ البداية',
323
+    'icone_rubriques' => 'الأقسام',
324
+    'icone_sauver_site' => 'نسخة احتياطية للموقع',
325
+    'icone_site_entier' => 'الموقع بالكامل',
326
+    'icone_sites_references' => 'المواقع المبوبة',
327
+    'icone_statistiques' => 'إحصاءات الموقع',
328
+    'icone_suivi_activite' => 'متابعة نشاط الموقع',
329
+    'icone_suivi_actualite' => 'تطور الموقع',
330
+    'icone_suivi_pettions' => 'متابعة/إدارة العرائض',
331
+    'icone_suivi_revisions' => 'تعديل المقالات',
332
+    'icone_supprimer_document' => 'حذف هذا المستند',
333
+    'icone_supprimer_image' => 'حذف هذه الصورة',
334
+    'icone_tous_articles' => 'كل مقالاتك',
335
+    'icone_tous_auteur' => 'جميع المؤلفين',
336
+    'icone_tous_visiteur' => 'جميع الزوار',
337
+    'icone_visiter_site' => 'تصفح الموقع العمومي',
338
+    'icone_voir_en_ligne' => 'عرض مباشر',
339
+    'img_indisponible' => 'صورة غير متوفرة',
340
+    'impossible' => 'مستحيل',
341
+    'info_a_suivre' => 'للمتابعة»',
342
+    'info_acces_interdit' => 'الدخول محظور',
343
+    'info_acces_refuse' => 'دخول محظور',
344
+    'info_action' => 'عملية: @action@',
345
+    'info_administrer_rubriques' => 'يمكنك إدارة هذا القسم وأقسامه الفرعية',
346
+    'info_adresse_non_indiquee' => 'لم تدخل أي عنوان لاختباره!',
347
+    'info_aide' => 'تعليمات :',
348
+    'info_ajouter_mot' => 'إضافة هذا المفتاح',
349
+    'info_annonce' => 'إعلان',
350
+    'info_annonces_generales' => 'إعلانات عامة:',
351
+    'info_article_propose' => 'مقال مقترح',
352
+    'info_article_publie' => 'مقال منشور',
353
+    'info_article_redaction' => 'مقال قيد التحرير',
354
+    'info_article_refuse' => 'مقال مرفوض',
355
+    'info_article_supprime' => 'مقال محذوف',
356
+    'info_articles' => 'المقالات',
357
+    'info_articles_a_valider' => 'مقالات معروضة للتصديق',
358
+    'info_articles_nb' => '@nb@ مقال',
359
+    'info_articles_proposes' => 'المقالات المعروضة',
360
+    'info_articles_un' => 'مقال واحد',
361
+    'info_auteurs_nombre' => 'مؤلف (مؤلفون):',
362
+    'info_authentification_ftp' => 'التحقق ( عبر بروتوكول FTP ).',
363
+    'info_breves_2' => 'خبر',
364
+    'info_breves_nb' => '@nb@ خبر',
365
+    'info_breves_un' => 'خبر واحد',
366
+    'info_connexion_refusee' => 'رفض الاتصال',
367
+    'info_contact_developpeur' => 'الرجاء الاتصال بمطوّر.',
368
+    'info_contenance' => 'هذا الموقع يحتوي على:',
369
+    'info_contribution' => 'مشاركة منتديات',
370
+    'info_copyright' => '@spip@ برنامج حر موزع @lien_gpl@.',
371
+    'info_copyright_doc' => 'لمزيد من المعلومات راجع الموقع<a href="@spipnet@">@spipnet_affiche@</a>.',
372
+    'info_copyright_gpl' => 'بموجب الترخيص العام GPL',
373
+    'info_cours_edition' => 'قيد التحرير',
374
+    'info_creer_repertoire' => 'الرجاء إنشاء ملف أو دليل باسم',
375
+    'info_creer_repertoire_2' => 'داخل الدليل الفرعي <b>@repertoire@</b>، ثم:',
376
+    'info_creer_vignette' => 'إنشاء آلي للمصغر',
377
+    'info_creerdansrubrique_non_autorise' => 'لا تملك الحقوق الكافية لإنشاء اي محتوى في هذا القسم',
378
+    'info_deplier' => 'بسط',
379
+    'info_descriptif_nombre' => 'الوصف:',
380
+    'info_description' => 'الوصف:',
381
+    'info_description_2' => 'الوصف:',
382
+    'info_dimension' => 'الحجم:',
383
+    'info_documents_nb' => '@nb@ مستند',
384
+    'info_documents_un' => 'مستند واحد',
385
+    'info_ecire_message_prive' => 'تحرير رسالة خاصة',
386
+    'info_email_invalide' => 'عنوان بريد غير صالح.',
387
+    'info_en_cours_validation' => 'مقالاتك قيد التحرير',
388
+    'info_en_ligne' => 'متصل حالياً:',
389
+    'info_envoyer_message_prive' => 'ابعث برسالة خاصة لهذا المؤلف',
390
+    'info_erreur_requete' => 'خطأ في الاستفسار:',
391
+    'info_erreur_squelette2' => 'لا توجد صفحة نموذجية <b>@fichier@</b> متاحة...',
392
+    'info_erreur_systeme' => 'خطأ في النظام (خطأ رقم @errsys@)',
393
+    'info_erreur_systeme2' => 'قد يكون القرص الصلب ممتلئاً أو قد تكون قاعدة البيانات معطلة.<br />
394 394
 <span style="color:red;">حاول <a href=\'@script@\'>إصلاح القاعدة</a>، أو الاتصال بمضيف موقعك.</font> ',
395
-	'info_fini' => 'انتهى!',
396
-	'info_format_image' => 'تنسيق ملفات الصور الذي يمكن استخدامه لإنشاء المصغرات: @gd_formats@ .',
397
-	'info_format_non_defini' => 'تنسيق غير معروف',
398
-	'info_grand_ecran' => 'شاشة كبيرة',
399
-	'info_image_aide' => 'تعليمات',
400
-	'info_image_process_titre' => 'طريقة إنشاء المصغرات',
401
-	'info_impossible_lire_page' => '<b>خطأ!</b> لا يمكن قراءة الصفحة <tt><html>@test_proxy@</html></tt> عبر الجهاز الوكيل',
402
-	'info_installation_systeme_publication' => 'تثبيت نظام النشر...',
403
-	'info_installer_documents' => 'يمكنك تثبيت كل المستندات الموجودة في المجلد @upload@ آلياً.',
404
-	'info_installer_ftp' => 'بصفتك مديراً، يمكنك تثبيت (بواسطة بروتوكول FTP) ملفات في المجلد@upload@  من أجل تحديدهم في ما بعد مباشرة من هنا.',
405
-	'info_installer_images' => 'يمكنك تثبيت صور بتنسيقات JPEG  وGIF  وPNG.',
406
-	'info_installer_images_dossier' => 'تثبيت صور في المجلد @upload@  للتمكن من تحديدها هنا.',
407
-	'info_interface_complete' => 'واجهة كاملة',
408
-	'info_interface_simple' => 'واجهة مبسّطة',
409
-	'info_joindre_document_article' => 'يمكنك إرفاق مقالك بمستندات من الأنواع',
410
-	'info_joindre_document_rubrique' => 'يمكنك إضافة مستندات من الأنواع التالية إلى هذا القسم',
411
-	'info_joindre_documents_article' => 'يمكنك إرفاق مستندات من الأنواع التالية بمقالك :',
412
-	'info_l_article' => 'المقال',
413
-	'info_la_breve' => 'الخبر',
414
-	'info_la_rubrique' => 'القسم',
415
-	'info_langue_principale' => 'اللغة الأساسية للموقع',
416
-	'info_largeur_vignette' => '@largeur_vignette@ × @hauteur_vignette@  نقطة',
417
-	'info_les_auteurs_1' => 'من @les_auteurs@',
418
-	'info_logo_format_interdit' => 'الرموز بتنسيق @formats@ هي الوحيدة المسموح بها.',
419
-	'info_logo_max_poids' => 'يجب ألا يتعدى حجم الرموز @maxi@ (يبلغ حجم الملف الحالي @actuel@). ',
420
-	'info_mail_fournisseur' => '[email protected]',
421
-	'info_message_2' => 'رسالة',
422
-	'info_message_supprime' => 'تم حذف المشاركة',
423
-	'info_messages_nb' => '@nb@ رسالة',
424
-	'info_messages_un' => 'رسالة واحدة',
425
-	'info_mise_en_ligne' => 'تاريخ النشر:',
426
-	'info_modification_parametres_securite' => 'تعديل إعدادات الأمان',
427
-	'info_mois_courant' => 'في بحر الشهر:',
428
-	'info_mot_cle_ajoute' => 'تمت إضافة المفتاح التالي إلى',
429
-	'info_multi_herit' => 'اللغة الافتراضية',
430
-	'info_multi_langues_soulignees' => '<u>اللغات التي تحتها خط</u> تتمتع بترجمة كاملة او جزئية لكل نصوص الواجهة. فإذا حددت هذه اللغات، سيتم ترجمة العديد من عناصر الموقع العمومي (التواريخ والاستمارات) آلياً. أما بالنسبة للغات التي ليس تحتها خط، فستظهر هذه العناصر في لغة الموقع الأساسية.',
431
-	'info_multilinguisme' => 'تعدد اللغات',
432
-	'info_nom_non_utilisateurs_connectes' => 'اسمك لا يظهر في قائمة المستخدمين المتصلين.',
433
-	'info_nom_utilisateurs_connectes' => 'اسمك يظهر في قائمة المستخدمين المتصلين.',
434
-	'info_nombre_en_ligne' => 'متصل حالياً:',
435
-	'info_non_resultat' => 'لا توجد نتائج لـ "@cherche_mot@"',
436
-	'info_non_utilisation_messagerie' => 'أنت لا تستخدم المراسلة الداخلية في هذا الموقع.',
437
-	'info_nouveau_message' => 'وصلت رسالة جديدة',
438
-	'info_nouveaux_messages' => 'وصلت @total_messages@  رسالة جديدة',
439
-	'info_numero_abbreviation' => 'رقم',
440
-	'info_obligatoire' => 'هذه المعلومة إجبارية',
441
-	'info_page_actuelle' => 'الصفحة الحالية',
442
-	'info_pense_bete' => 'مذكرة',
443
-	'info_petit_ecran' => 'شاشة صغيرة',
444
-	'info_petition_close' => 'عريضة مقفلة',
445
-	'info_pixels' => 'نقطة',
446
-	'info_plusieurs_mots_trouves' => 'تم العثور على عدة مفاتيح لـ "@cherche_mot@" :',
447
-	'info_portfolio_automatique' => 'محفظة آلية:',
448
-	'info_premier_resultat' => '[النتائج الـ@debut_limit@  الأولى من أصل @total@]',
449
-	'info_premier_resultat_sur' => '[النتائج الـ@debut_limit@  الأولى من أصل @total@]',
450
-	'info_propose_1' => '[@nom_site_spip@] يقترح: @titre@',
451
-	'info_propose_2' => 'مقال معروض
395
+    'info_fini' => 'انتهى!',
396
+    'info_format_image' => 'تنسيق ملفات الصور الذي يمكن استخدامه لإنشاء المصغرات: @gd_formats@ .',
397
+    'info_format_non_defini' => 'تنسيق غير معروف',
398
+    'info_grand_ecran' => 'شاشة كبيرة',
399
+    'info_image_aide' => 'تعليمات',
400
+    'info_image_process_titre' => 'طريقة إنشاء المصغرات',
401
+    'info_impossible_lire_page' => '<b>خطأ!</b> لا يمكن قراءة الصفحة <tt><html>@test_proxy@</html></tt> عبر الجهاز الوكيل',
402
+    'info_installation_systeme_publication' => 'تثبيت نظام النشر...',
403
+    'info_installer_documents' => 'يمكنك تثبيت كل المستندات الموجودة في المجلد @upload@ آلياً.',
404
+    'info_installer_ftp' => 'بصفتك مديراً، يمكنك تثبيت (بواسطة بروتوكول FTP) ملفات في المجلد@upload@  من أجل تحديدهم في ما بعد مباشرة من هنا.',
405
+    'info_installer_images' => 'يمكنك تثبيت صور بتنسيقات JPEG  وGIF  وPNG.',
406
+    'info_installer_images_dossier' => 'تثبيت صور في المجلد @upload@  للتمكن من تحديدها هنا.',
407
+    'info_interface_complete' => 'واجهة كاملة',
408
+    'info_interface_simple' => 'واجهة مبسّطة',
409
+    'info_joindre_document_article' => 'يمكنك إرفاق مقالك بمستندات من الأنواع',
410
+    'info_joindre_document_rubrique' => 'يمكنك إضافة مستندات من الأنواع التالية إلى هذا القسم',
411
+    'info_joindre_documents_article' => 'يمكنك إرفاق مستندات من الأنواع التالية بمقالك :',
412
+    'info_l_article' => 'المقال',
413
+    'info_la_breve' => 'الخبر',
414
+    'info_la_rubrique' => 'القسم',
415
+    'info_langue_principale' => 'اللغة الأساسية للموقع',
416
+    'info_largeur_vignette' => '@largeur_vignette@ × @hauteur_vignette@  نقطة',
417
+    'info_les_auteurs_1' => 'من @les_auteurs@',
418
+    'info_logo_format_interdit' => 'الرموز بتنسيق @formats@ هي الوحيدة المسموح بها.',
419
+    'info_logo_max_poids' => 'يجب ألا يتعدى حجم الرموز @maxi@ (يبلغ حجم الملف الحالي @actuel@). ',
420
+    'info_mail_fournisseur' => '[email protected]',
421
+    'info_message_2' => 'رسالة',
422
+    'info_message_supprime' => 'تم حذف المشاركة',
423
+    'info_messages_nb' => '@nb@ رسالة',
424
+    'info_messages_un' => 'رسالة واحدة',
425
+    'info_mise_en_ligne' => 'تاريخ النشر:',
426
+    'info_modification_parametres_securite' => 'تعديل إعدادات الأمان',
427
+    'info_mois_courant' => 'في بحر الشهر:',
428
+    'info_mot_cle_ajoute' => 'تمت إضافة المفتاح التالي إلى',
429
+    'info_multi_herit' => 'اللغة الافتراضية',
430
+    'info_multi_langues_soulignees' => '<u>اللغات التي تحتها خط</u> تتمتع بترجمة كاملة او جزئية لكل نصوص الواجهة. فإذا حددت هذه اللغات، سيتم ترجمة العديد من عناصر الموقع العمومي (التواريخ والاستمارات) آلياً. أما بالنسبة للغات التي ليس تحتها خط، فستظهر هذه العناصر في لغة الموقع الأساسية.',
431
+    'info_multilinguisme' => 'تعدد اللغات',
432
+    'info_nom_non_utilisateurs_connectes' => 'اسمك لا يظهر في قائمة المستخدمين المتصلين.',
433
+    'info_nom_utilisateurs_connectes' => 'اسمك يظهر في قائمة المستخدمين المتصلين.',
434
+    'info_nombre_en_ligne' => 'متصل حالياً:',
435
+    'info_non_resultat' => 'لا توجد نتائج لـ "@cherche_mot@"',
436
+    'info_non_utilisation_messagerie' => 'أنت لا تستخدم المراسلة الداخلية في هذا الموقع.',
437
+    'info_nouveau_message' => 'وصلت رسالة جديدة',
438
+    'info_nouveaux_messages' => 'وصلت @total_messages@  رسالة جديدة',
439
+    'info_numero_abbreviation' => 'رقم',
440
+    'info_obligatoire' => 'هذه المعلومة إجبارية',
441
+    'info_page_actuelle' => 'الصفحة الحالية',
442
+    'info_pense_bete' => 'مذكرة',
443
+    'info_petit_ecran' => 'شاشة صغيرة',
444
+    'info_petition_close' => 'عريضة مقفلة',
445
+    'info_pixels' => 'نقطة',
446
+    'info_plusieurs_mots_trouves' => 'تم العثور على عدة مفاتيح لـ "@cherche_mot@" :',
447
+    'info_portfolio_automatique' => 'محفظة آلية:',
448
+    'info_premier_resultat' => '[النتائج الـ@debut_limit@  الأولى من أصل @total@]',
449
+    'info_premier_resultat_sur' => '[النتائج الـ@debut_limit@  الأولى من أصل @total@]',
450
+    'info_propose_1' => '[@nom_site_spip@] يقترح: @titre@',
451
+    'info_propose_2' => 'مقال معروض
452 452
 ----------',
453
-	'info_propose_3' => 'المقال "@titre@" معروض للنشر.',
454
-	'info_propose_4' => 'أنت مدعو لمراجعته وإبداء رأيك',
455
-	'info_propose_5' => 'في المنتدى المرتبط به. إنه موجود على العنوان:',
456
-	'info_publie_01' => 'تم التصديق على المقال "@titre@"  من قبل @connect_nom@ .',
457
-	'info_publie_1' => '[@nom_site_spip@] ينشر: @titre@',
458
-	'info_publie_2' => 'مقال منشور
453
+    'info_propose_3' => 'المقال "@titre@" معروض للنشر.',
454
+    'info_propose_4' => 'أنت مدعو لمراجعته وإبداء رأيك',
455
+    'info_propose_5' => 'في المنتدى المرتبط به. إنه موجود على العنوان:',
456
+    'info_publie_01' => 'تم التصديق على المقال "@titre@"  من قبل @connect_nom@ .',
457
+    'info_publie_1' => '[@nom_site_spip@] ينشر: @titre@',
458
+    'info_publie_2' => 'مقال منشور
459 459
 ----------',
460
-	'info_rechercher' => 'بحث',
461
-	'info_rechercher_02' => 'بحث:',
462
-	'info_remplacer_vignette' => 'استبدال المصغر الافتراضي برمز شخصي:',
463
-	'info_rubriques_nb' => '@nb@ قسم',
464
-	'info_rubriques_un' => 'قسم واحد',
465
-	'info_sans_titre_2' => 'بدون عنوان',
466
-	'info_selectionner_fichier' => 'يمكنك تحديد ملف من المجلد @upload@:',
467
-	'info_selectionner_fichier_2' => 'تحديد ملف:',
468
-	'info_sites_nb' => '@nb@ موقع',
469
-	'info_sites_un' => 'موقع واحد',
470
-	'info_supprimer_vignette' => 'حذف المصغر',
471
-	'info_symbole_bleu' => 'الرمز <b>أزرق</b> يرمز إلى <b>مذكرة</b>: أي رسالة لاستخدامك الشخصي.',
472
-	'info_symbole_jaune' => 'الرمز <b>أصفر</b> يرمز إلى <b>إعلان لجميع المحررين</b>: يمكن لجميع المدراء تحريره وهو ظاهر لجميع المحررين.',
473
-	'info_symbole_vert' => 'الرمز <b>أخضر</b>  يرمز إلى <b>الرسائل المتبادلة بين مستخدمي</b> الموقع.',
474
-	'info_telecharger_nouveau_logo' => 'تحميل رمز جديد:',
475
-	'info_telecharger_ordinateur' => 'تحميل من جهازك:',
476
-	'info_tous_resultats_enregistres' => '[تم تسجيل كل النتائج]',
477
-	'info_tout_afficher' => 'إظهار الكل',
478
-	'info_travaux_texte' => 'هذا الموقع قيد الإعداد. برجاء العودة في وقت لاحق...',
479
-	'info_travaux_titre' => 'موقع قيد التصميم',
480
-	'info_trop_resultat' => 'تم العثور على عدد كبير جداً من النتائج لـ "@cherche_mot@" ، الرجاء زيادة دقة البحث.',
481
-	'info_utilisation_messagerie_interne' => 'أنت تستخدم المراسلة الداخلية في هذا الموقع.',
482
-	'info_valider_lien' => 'التصديق على هذه الوصلة',
483
-	'info_verifier_image' => '، الرجاء التأكد من أنه تم نقل الصور بشكل سليم.',
484
-	'info_vignette_defaut' => 'المصغر الافتراضي',
485
-	'info_vignette_personnalisee' => 'مصغر شخصي',
486
-	'info_visite' => 'زيارة:',
487
-	'info_vos_rendez_vous' => 'مواعيدك القادمة',
488
-	'infos_vos_pense_bete' => 'مذكراتك',
460
+    'info_rechercher' => 'بحث',
461
+    'info_rechercher_02' => 'بحث:',
462
+    'info_remplacer_vignette' => 'استبدال المصغر الافتراضي برمز شخصي:',
463
+    'info_rubriques_nb' => '@nb@ قسم',
464
+    'info_rubriques_un' => 'قسم واحد',
465
+    'info_sans_titre_2' => 'بدون عنوان',
466
+    'info_selectionner_fichier' => 'يمكنك تحديد ملف من المجلد @upload@:',
467
+    'info_selectionner_fichier_2' => 'تحديد ملف:',
468
+    'info_sites_nb' => '@nb@ موقع',
469
+    'info_sites_un' => 'موقع واحد',
470
+    'info_supprimer_vignette' => 'حذف المصغر',
471
+    'info_symbole_bleu' => 'الرمز <b>أزرق</b> يرمز إلى <b>مذكرة</b>: أي رسالة لاستخدامك الشخصي.',
472
+    'info_symbole_jaune' => 'الرمز <b>أصفر</b> يرمز إلى <b>إعلان لجميع المحررين</b>: يمكن لجميع المدراء تحريره وهو ظاهر لجميع المحررين.',
473
+    'info_symbole_vert' => 'الرمز <b>أخضر</b>  يرمز إلى <b>الرسائل المتبادلة بين مستخدمي</b> الموقع.',
474
+    'info_telecharger_nouveau_logo' => 'تحميل رمز جديد:',
475
+    'info_telecharger_ordinateur' => 'تحميل من جهازك:',
476
+    'info_tous_resultats_enregistres' => '[تم تسجيل كل النتائج]',
477
+    'info_tout_afficher' => 'إظهار الكل',
478
+    'info_travaux_texte' => 'هذا الموقع قيد الإعداد. برجاء العودة في وقت لاحق...',
479
+    'info_travaux_titre' => 'موقع قيد التصميم',
480
+    'info_trop_resultat' => 'تم العثور على عدد كبير جداً من النتائج لـ "@cherche_mot@" ، الرجاء زيادة دقة البحث.',
481
+    'info_utilisation_messagerie_interne' => 'أنت تستخدم المراسلة الداخلية في هذا الموقع.',
482
+    'info_valider_lien' => 'التصديق على هذه الوصلة',
483
+    'info_verifier_image' => '، الرجاء التأكد من أنه تم نقل الصور بشكل سليم.',
484
+    'info_vignette_defaut' => 'المصغر الافتراضي',
485
+    'info_vignette_personnalisee' => 'مصغر شخصي',
486
+    'info_visite' => 'زيارة:',
487
+    'info_vos_rendez_vous' => 'مواعيدك القادمة',
488
+    'infos_vos_pense_bete' => 'مذكراتك',
489 489
 
490
-	// L
491
-	'label_ajout_id_rapide' => 'إضافة سريعة',
492
-	'label_poids_fichier' => 'الحجم',
493
-	'label_ponctuer' => '@label@ :',
494
-	'lien_afficher_icones_seuls' => 'عرض الرموز فقط',
495
-	'lien_afficher_texte_icones' => 'عرض الرموز والعناوين',
496
-	'lien_afficher_texte_seul' => 'عرض العناوين فقط',
497
-	'lien_aller_a_la_derniere_page' => 'الذهاب الى الصفحة الأخيرة',
498
-	'lien_aller_a_la_page_nb' => 'الذهاب الى الصفحة @nb@',
499
-	'lien_aller_a_la_page_precedente' => 'الذهاب الى الصفحة الالسابقة',
500
-	'lien_aller_a_la_page_suivante' => 'الذهاب الى الصفحة التالية',
501
-	'lien_aller_a_la_premiere_page' => 'الذهاب الى الصفحة الأولى',
502
-	'lien_liberer' => 'فك الحجز',
503
-	'lien_liberer_tous' => 'فك حجز الكل',
504
-	'lien_nouvea_pense_bete' => 'مذكرة جديدة',
505
-	'lien_nouveau_message' => 'رسالة جديدة',
506
-	'lien_nouvelle_annonce' => 'إعلان جديد',
507
-	'lien_petitions' => 'عريضة',
508
-	'lien_popularite' => 'شعبية: @popularite@%',
509
-	'lien_racine_site' => 'أصل الموقع',
510
-	'lien_reessayer' => 'إعادة المحاولة',
511
-	'lien_repondre_message' => 'الرد على هذه المشاركة',
512
-	'lien_supprimer' => 'حذف',
513
-	'lien_tout_afficher' => 'إظهار الكل',
514
-	'lien_visite_site' => 'زيارة هذا الموقع',
515
-	'lien_visites' => '@visites@ زيارة',
516
-	'lien_voir_auteur' => 'مراجعة هذا المؤلف',
517
-	'ligne' => 'سطر',
518
-	'login' => 'الدخول',
519
-	'login_acces_prive' => 'الدخول إلى المجال الخاص',
520
-	'login_autre_identifiant' => 'الاتصال بمعرّف آخر',
521
-	'login_cookie_accepte' => 'الرجاء تهيئ برنامج التصفح ليتقبلها (من هذا الموقع على الأقل)',
522
-	'login_cookie_oblige' => 'للتعريف عن نفسك بشكل آمن في هذا الموقع، يجب قبول الكعكات (cookies).',
523
-	'login_deconnexion_ok' => 'تم قطع الاتصال.',
524
-	'login_erreur_pass' => 'خطأ في كلمة السر.',
525
-	'login_espace_prive' => 'المجال الخاص',
526
-	'login_identifiant_inconnu' => 'المعرّف «@login@» غير معروف.',
527
-	'login_login' => 'المعرّف:',
528
-	'login_login2' => 'المعرّف او عنوان البريد الالكتروني:',
529
-	'login_login_pass_incorrect' => '(خطأ في المعرّف أو كلمة السر).',
530
-	'login_motpasseoublie' => 'هل نسيت كلمة السر؟',
531
-	'login_non_securise' => 'لطفا، هذه الاستمارة غير آمنة.
490
+    // L
491
+    'label_ajout_id_rapide' => 'إضافة سريعة',
492
+    'label_poids_fichier' => 'الحجم',
493
+    'label_ponctuer' => '@label@ :',
494
+    'lien_afficher_icones_seuls' => 'عرض الرموز فقط',
495
+    'lien_afficher_texte_icones' => 'عرض الرموز والعناوين',
496
+    'lien_afficher_texte_seul' => 'عرض العناوين فقط',
497
+    'lien_aller_a_la_derniere_page' => 'الذهاب الى الصفحة الأخيرة',
498
+    'lien_aller_a_la_page_nb' => 'الذهاب الى الصفحة @nb@',
499
+    'lien_aller_a_la_page_precedente' => 'الذهاب الى الصفحة الالسابقة',
500
+    'lien_aller_a_la_page_suivante' => 'الذهاب الى الصفحة التالية',
501
+    'lien_aller_a_la_premiere_page' => 'الذهاب الى الصفحة الأولى',
502
+    'lien_liberer' => 'فك الحجز',
503
+    'lien_liberer_tous' => 'فك حجز الكل',
504
+    'lien_nouvea_pense_bete' => 'مذكرة جديدة',
505
+    'lien_nouveau_message' => 'رسالة جديدة',
506
+    'lien_nouvelle_annonce' => 'إعلان جديد',
507
+    'lien_petitions' => 'عريضة',
508
+    'lien_popularite' => 'شعبية: @popularite@%',
509
+    'lien_racine_site' => 'أصل الموقع',
510
+    'lien_reessayer' => 'إعادة المحاولة',
511
+    'lien_repondre_message' => 'الرد على هذه المشاركة',
512
+    'lien_supprimer' => 'حذف',
513
+    'lien_tout_afficher' => 'إظهار الكل',
514
+    'lien_visite_site' => 'زيارة هذا الموقع',
515
+    'lien_visites' => '@visites@ زيارة',
516
+    'lien_voir_auteur' => 'مراجعة هذا المؤلف',
517
+    'ligne' => 'سطر',
518
+    'login' => 'الدخول',
519
+    'login_acces_prive' => 'الدخول إلى المجال الخاص',
520
+    'login_autre_identifiant' => 'الاتصال بمعرّف آخر',
521
+    'login_cookie_accepte' => 'الرجاء تهيئ برنامج التصفح ليتقبلها (من هذا الموقع على الأقل)',
522
+    'login_cookie_oblige' => 'للتعريف عن نفسك بشكل آمن في هذا الموقع، يجب قبول الكعكات (cookies).',
523
+    'login_deconnexion_ok' => 'تم قطع الاتصال.',
524
+    'login_erreur_pass' => 'خطأ في كلمة السر.',
525
+    'login_espace_prive' => 'المجال الخاص',
526
+    'login_identifiant_inconnu' => 'المعرّف «@login@» غير معروف.',
527
+    'login_login' => 'المعرّف:',
528
+    'login_login2' => 'المعرّف او عنوان البريد الالكتروني:',
529
+    'login_login_pass_incorrect' => '(خطأ في المعرّف أو كلمة السر).',
530
+    'login_motpasseoublie' => 'هل نسيت كلمة السر؟',
531
+    'login_non_securise' => 'لطفا، هذه الاستمارة غير آمنة.
532 532
    إذا كنت ترغب أن تكون كلمة سرك
533 533
    آمنة على الشبكة، يجب تفعيل جافاسكريبت 
534 534
    في برنامج التصفح',
535
-	'login_nouvelle_tentative' => 'محاولة جديدة',
536
-	'login_par_ici' => 'أنت مسجّل... توجه من هنا...',
537
-	'login_pass2' => 'كلمة السر:',
538
-	'login_preferez_refuser' => '<b>إذا كنت تفضل عدم قبول الكعكات</b>، يمكنك استخدام طريقة دخول أخرى (أقل أماناً):',
539
-	'login_recharger' => 'وإعادة تحميل الصفحة',
540
-	'login_rester_identifie' => 'تذكروني',
541
-	'login_retour_public' => 'عودة إلى الموقع العام',
542
-	'login_retour_site' => 'عودة إلى الموقع العام',
543
-	'login_retoursitepublic' => 'عودة إلى الموقع العام',
544
-	'login_sans_cookie' => 'تعريف بدون الكعكة',
545
-	'login_securise' => 'تعريف مؤمّن',
546
-	'login_sinscrire' => 'تسجيل',
547
-	'login_test_navigateur' => 'تجربة المتصفح/إعادة الاتصال',
548
-	'login_verifiez_navigateur' => '(على أي حال، تأكد من أن المتصفح لم يقم بحفظ كلمة سرك...)',
535
+    'login_nouvelle_tentative' => 'محاولة جديدة',
536
+    'login_par_ici' => 'أنت مسجّل... توجه من هنا...',
537
+    'login_pass2' => 'كلمة السر:',
538
+    'login_preferez_refuser' => '<b>إذا كنت تفضل عدم قبول الكعكات</b>، يمكنك استخدام طريقة دخول أخرى (أقل أماناً):',
539
+    'login_recharger' => 'وإعادة تحميل الصفحة',
540
+    'login_rester_identifie' => 'تذكروني',
541
+    'login_retour_public' => 'عودة إلى الموقع العام',
542
+    'login_retour_site' => 'عودة إلى الموقع العام',
543
+    'login_retoursitepublic' => 'عودة إلى الموقع العام',
544
+    'login_sans_cookie' => 'تعريف بدون الكعكة',
545
+    'login_securise' => 'تعريف مؤمّن',
546
+    'login_sinscrire' => 'تسجيل',
547
+    'login_test_navigateur' => 'تجربة المتصفح/إعادة الاتصال',
548
+    'login_verifiez_navigateur' => '(على أي حال، تأكد من أن المتصفح لم يقم بحفظ كلمة سرك...)',
549 549
 
550
-	// M
551
-	'masquer_colonne' => 'حجب هذا العمود',
552
-	'masquer_trad' => 'حجب الترجمات',
553
-	'message_nouveaux_identifiants_echec' => 'لا يمكن إنشاء معرف وكلمة سر جديدين.',
554
-	'message_nouveaux_identifiants_echec_envoi' => 'مشكلة في إرسال المعرف وكلمة السر الجديدين.',
555
-	'message_nouveaux_identifiants_ok' => 'تم إرسال المعرف وكلمة السر الجديدين الى @email@.',
556
-	'module_fichiers_langues' => 'ملفات اللغة',
550
+    // M
551
+    'masquer_colonne' => 'حجب هذا العمود',
552
+    'masquer_trad' => 'حجب الترجمات',
553
+    'message_nouveaux_identifiants_echec' => 'لا يمكن إنشاء معرف وكلمة سر جديدين.',
554
+    'message_nouveaux_identifiants_echec_envoi' => 'مشكلة في إرسال المعرف وكلمة السر الجديدين.',
555
+    'message_nouveaux_identifiants_ok' => 'تم إرسال المعرف وكلمة السر الجديدين الى @email@.',
556
+    'module_fichiers_langues' => 'ملفات اللغة',
557 557
 
558
-	// N
559
-	'navigateur_pas_redirige' => 'إذا لم تتم إعادة توجيه متصفحك، انقر هنا للمتابعة.',
560
-	'numero' => 'رقم',
558
+    // N
559
+    'navigateur_pas_redirige' => 'إذا لم تتم إعادة توجيه متصفحك، انقر هنا للمتابعة.',
560
+    'numero' => 'رقم',
561 561
 
562
-	// O
563
-	'occurence' => 'ظهور',
564
-	'onglet_affacer_base' => 'حذف قاعدة البيانات',
565
-	'onglet_auteur' => 'المؤلف',
566
-	'onglet_contenu_site' => 'محتوى الموقع',
567
-	'onglet_evolution_visite_mod' => 'تطور',
568
-	'onglet_fonctions_avances' => 'الوظائف المتطورة',
569
-	'onglet_informations_personnelles' => 'المعلومات الشخصية',
570
-	'onglet_interactivite' => 'التفاعلية',
571
-	'onglet_messagerie' => 'المراسلة',
572
-	'onglet_repartition_rubrique' => 'التوزيع حسب الأقسام',
573
-	'onglet_save_restaur_base' => 'نسخ احتياطي / استرجاع القاعدة',
574
-	'onglet_vider_cache' => 'تفريغ الذاكرة المخبأة',
562
+    // O
563
+    'occurence' => 'ظهور',
564
+    'onglet_affacer_base' => 'حذف قاعدة البيانات',
565
+    'onglet_auteur' => 'المؤلف',
566
+    'onglet_contenu_site' => 'محتوى الموقع',
567
+    'onglet_evolution_visite_mod' => 'تطور',
568
+    'onglet_fonctions_avances' => 'الوظائف المتطورة',
569
+    'onglet_informations_personnelles' => 'المعلومات الشخصية',
570
+    'onglet_interactivite' => 'التفاعلية',
571
+    'onglet_messagerie' => 'المراسلة',
572
+    'onglet_repartition_rubrique' => 'التوزيع حسب الأقسام',
573
+    'onglet_save_restaur_base' => 'نسخ احتياطي / استرجاع القاعدة',
574
+    'onglet_vider_cache' => 'تفريغ الذاكرة المخبأة',
575 575
 
576
-	// P
577
-	'pass_choix_pass' => 'الرجاء اختيار كلمة السر الجديدة:',
578
-	'pass_erreur' => 'خطأ',
579
-	'pass_erreur_acces_refuse' => '<b>خطأ:< b> لم تعد تملك حق الدخول إلى هذا الموقع.',
580
-	'pass_erreur_code_inconnu' => '<b>خطأ:< b> هذا المعرّف لا يتناسب مع أي من الزوار الذين يتمتعون بحق الدخول إلى هذا الموقع.',
581
-	'pass_erreur_non_enregistre' => '<b>خطأ:< b>  العنوان <tt>@email_oubli@</tt> ليس مسجلاً في هذا الموقع.',
582
-	'pass_erreur_non_valide' => '<b>خطأ:< b>  العنوان <tt>@email_oubli@</tt> ليس صالحاً.',
583
-	'pass_erreur_probleme_technique' => '<b>خطأ:< b>  لم يتم بعث هذه الرسالة بسبب مشكلة تقنية.',
584
-	'pass_espace_prive_bla' => 'المجال الخاص لهذا الموقع مفتوح
576
+    // P
577
+    'pass_choix_pass' => 'الرجاء اختيار كلمة السر الجديدة:',
578
+    'pass_erreur' => 'خطأ',
579
+    'pass_erreur_acces_refuse' => '<b>خطأ:< b> لم تعد تملك حق الدخول إلى هذا الموقع.',
580
+    'pass_erreur_code_inconnu' => '<b>خطأ:< b> هذا المعرّف لا يتناسب مع أي من الزوار الذين يتمتعون بحق الدخول إلى هذا الموقع.',
581
+    'pass_erreur_non_enregistre' => '<b>خطأ:< b>  العنوان <tt>@email_oubli@</tt> ليس مسجلاً في هذا الموقع.',
582
+    'pass_erreur_non_valide' => '<b>خطأ:< b>  العنوان <tt>@email_oubli@</tt> ليس صالحاً.',
583
+    'pass_erreur_probleme_technique' => '<b>خطأ:< b>  لم يتم بعث هذه الرسالة بسبب مشكلة تقنية.',
584
+    'pass_espace_prive_bla' => 'المجال الخاص لهذا الموقع مفتوح
585 585
 للزوار بعد تسجيلهم. بعد تسجيلك
586 586
 يمكنك مراجعة المقالات قيد التحرير
587 587
 واقتراح مقالات والمشاركة في كل المنتديات.',
588
-	'pass_forum_bla' => 'طلبت المشاركة في منتدى
588
+    'pass_forum_bla' => 'طلبت المشاركة في منتدى
589 589
 محصور بالزوار المسجلين.',
590
-	'pass_indiquez_cidessous' => 'قم بإدخال العنوان الإلكتروني الذي 
590
+    'pass_indiquez_cidessous' => 'قم بإدخال العنوان الإلكتروني الذي 
591 591
 تسجلت بواستطه سابقاً.
592 592
 ستحصل على رسالة تفسر لك كيفية
593 593
 استعادة دخولك.',
594
-	'pass_mail_passcookie' => '(هذه رسالة آلية)
594
+    'pass_mail_passcookie' => '(هذه رسالة آلية)
595 595
 لاستعادة دخولك إلى الموقع
596 596
 @nom_site_spip@  (@adresse_site@)
597 597
 
@@ -603,146 +603,146 @@  discard block
 block discarded – undo
603 603
 وإعادة الاتصال بالموقع.
604 604
 
605 605
 ',
606
-	'pass_mot_oublie' => 'نسيان كلمة السر',
607
-	'pass_nouveau_enregistre' => 'تم تسجيل كلمة سرك الجديدة.',
608
-	'pass_nouveau_pass' => 'كلمة السر الجديدة',
609
-	'pass_ok' => 'موافق',
610
-	'pass_oubli_mot' => 'نسيان كلمة السر',
611
-	'pass_procedure_changer' => 'من أجل تغيير كلمة السر، قم بأدخال عنوان البريد الالكتروني المرتبط بحسابك.',
612
-	'pass_quitter_fenetre' => 'إقفال هذه النافذة',
613
-	'pass_rappel_login' => 'تذكير: معرّفك هو «@login@».',
614
-	'pass_recevoir_mail' => 'تم ارسال رابط لإعادة تأصيل كلمة السر الى عنوان البريد لديك (اذا كان صالحاً).',
615
-	'pass_retour_public' => 'عودة إلى الموقع العام',
616
-	'pass_rien_a_faire_ici' => 'لا شغل لك هنا.',
617
-	'pass_vousinscrire' => 'تسجيلك في الموقع',
618
-	'precedent' => 'السابق',
619
-	'previsualisation' => 'عرض مسبق',
620
-	'previsualiser' => 'عرض مسبق',
606
+    'pass_mot_oublie' => 'نسيان كلمة السر',
607
+    'pass_nouveau_enregistre' => 'تم تسجيل كلمة سرك الجديدة.',
608
+    'pass_nouveau_pass' => 'كلمة السر الجديدة',
609
+    'pass_ok' => 'موافق',
610
+    'pass_oubli_mot' => 'نسيان كلمة السر',
611
+    'pass_procedure_changer' => 'من أجل تغيير كلمة السر، قم بأدخال عنوان البريد الالكتروني المرتبط بحسابك.',
612
+    'pass_quitter_fenetre' => 'إقفال هذه النافذة',
613
+    'pass_rappel_login' => 'تذكير: معرّفك هو «@login@».',
614
+    'pass_recevoir_mail' => 'تم ارسال رابط لإعادة تأصيل كلمة السر الى عنوان البريد لديك (اذا كان صالحاً).',
615
+    'pass_retour_public' => 'عودة إلى الموقع العام',
616
+    'pass_rien_a_faire_ici' => 'لا شغل لك هنا.',
617
+    'pass_vousinscrire' => 'تسجيلك في الموقع',
618
+    'precedent' => 'السابق',
619
+    'previsualisation' => 'عرض مسبق',
620
+    'previsualiser' => 'عرض مسبق',
621 621
 
622
-	// R
623
-	'retour' => 'عودة',
622
+    // R
623
+    'retour' => 'عودة',
624 624
 
625
-	// S
626
-	'spip_conforme_dtd' => 'يعتبر SPIP أن هذا المستند مطابق لتحديد DOCTYPE:',
627
-	'squelette' => 'صفحة نموذجية',
628
-	'squelette_inclus_ligne' => 'صفحة نموذجية مدمجة، سطر',
629
-	'squelette_ligne' => 'صفحة نموذجية، سطر',
630
-	'stats_visites_et_popularite' => '@visites@ زيارة؛ شعبية: @popularite@',
631
-	'suivant' => 'التالي',
625
+    // S
626
+    'spip_conforme_dtd' => 'يعتبر SPIP أن هذا المستند مطابق لتحديد DOCTYPE:',
627
+    'squelette' => 'صفحة نموذجية',
628
+    'squelette_inclus_ligne' => 'صفحة نموذجية مدمجة، سطر',
629
+    'squelette_ligne' => 'صفحة نموذجية، سطر',
630
+    'stats_visites_et_popularite' => '@visites@ زيارة؛ شعبية: @popularite@',
631
+    'suivant' => 'التالي',
632 632
 
633
-	// T
634
-	'taille_go' => '@taille@ غيغابايت',
635
-	'taille_ko' => '@taille@ كيلوبايت',
636
-	'taille_mo' => '@taille@ ميغابايت',
637
-	'taille_octets' => '@taille@ بايت',
638
-	'texte_actualite_site_1' => 'عندما تتأقلم مع واجهة النظام انقر على «',
639
-	'texte_actualite_site_2' => 'الواجهة الكاملة',
640
-	'texte_actualite_site_3' => '»  لإتاحة المزيد من الوظائف.',
641
-	'texte_creation_automatique_vignette' => 'لقد تم تفعيل الإنشاء الآلي لمصغرات المعاينة. إذا استخدمت هذه الاستمارة لإدخال صور بتنسيق (أو تنسيقات) @gd_formats@، سيتم تزويدها بمصغر لا يزيد حجمه عن @taille_preview@  نقطة. ',
642
-	'texte_documents_associes' => 'المستندات التالية ترافق المقال،
633
+    // T
634
+    'taille_go' => '@taille@ غيغابايت',
635
+    'taille_ko' => '@taille@ كيلوبايت',
636
+    'taille_mo' => '@taille@ ميغابايت',
637
+    'taille_octets' => '@taille@ بايت',
638
+    'texte_actualite_site_1' => 'عندما تتأقلم مع واجهة النظام انقر على «',
639
+    'texte_actualite_site_2' => 'الواجهة الكاملة',
640
+    'texte_actualite_site_3' => '»  لإتاحة المزيد من الوظائف.',
641
+    'texte_creation_automatique_vignette' => 'لقد تم تفعيل الإنشاء الآلي لمصغرات المعاينة. إذا استخدمت هذه الاستمارة لإدخال صور بتنسيق (أو تنسيقات) @gd_formats@، سيتم تزويدها بمصغر لا يزيد حجمه عن @taille_preview@  نقطة. ',
642
+    'texte_documents_associes' => 'المستندات التالية ترافق المقال،
643 643
     لكنها لم تُدرج
644 644
     مباشرة. بالاعتماد على تصميم الموقع العمومي،
645 645
     قد تظهر على شكل مستندات مرفقة.',
646
-	'texte_erreur_mise_niveau_base' => 'خطأ في قاعدة البيانات خلال الترقية.
646
+    'texte_erreur_mise_niveau_base' => 'خطأ في قاعدة البيانات خلال الترقية.
647 647
      تعذر تمرير الصورة <b>@fichier@</b>  (المقال @id_article@). 
648 648
      سجل هذا المرجع وحاول إعادة عملية
649 649
      الترقية، وأخيراً تأكد من أن الصور لا تزال تظهر
650 650
      في المقالات.',
651
-	'texte_erreur_visiteur' => 'حاولت الدخول إلى المجال الخاص بمعرّف لا يسمح بذلك.',
652
-	'texte_inc_auth_1' => 'عرّفت عن نفسك
651
+    'texte_erreur_visiteur' => 'حاولت الدخول إلى المجال الخاص بمعرّف لا يسمح بذلك.',
652
+    'texte_inc_auth_1' => 'عرّفت عن نفسك
653 653
 بالمعرّف <b>@auth_login@</b>، لكنه غير (لم يعد) موجود في قاعدة البيانات.
654 654
   حاول  ',
655
-	'texte_inc_auth_2' => 'إعادة الاتصال',
656
-	'texte_inc_auth_3' => '، بعد إنهاء المتصفح ثم
655
+    'texte_inc_auth_2' => 'إعادة الاتصال',
656
+    'texte_inc_auth_3' => '، بعد إنهاء المتصفح ثم
657 657
 إعادة تشغيله إذا اقتضت الحاجة.',
658
-	'texte_inc_config' => 'التغييرات الداخلة على هذه الصفحة تؤثر بشكل ملحوظ على
658
+    'texte_inc_config' => 'التغييرات الداخلة على هذه الصفحة تؤثر بشكل ملحوظ على
659 659
 تشغيل الموقع. يستحسن عدم إدخال تغييرات قبل
660 660
 التأقلم مع نظام SPIP  للنشر. <br /><br /><b>بشكل
661 661
 عام، ننصحك
662 662
 بحصر التعامل مع هذه الصفحات بالمسؤول الأساسي عن تصميم الموقع.</b>',
663
-	'texte_inc_meta_1' => 'واجه النظام خطأً خلال كتابة الملف <code>@fichier@</code>. بصفتك أحد مدراء الموقع، الرجاء',
664
-	'texte_inc_meta_2' => 'التأكد من حقوق الكتابة',
665
-	'texte_inc_meta_3' => 'الخاصة بالدليل <code>@repertoire@</code>. ',
666
-	'texte_statut_en_cours_redaction' => 'قيد التحرير',
667
-	'texte_statut_poubelle' => 'إلى المهملات',
668
-	'texte_statut_propose_evaluation' => 'معروض للتقييم',
669
-	'texte_statut_publie' => 'منشور',
670
-	'texte_statut_refuse' => 'مرفوض',
671
-	'titre_ajouter_mot_cle' => 'إضافة مفتاح:',
672
-	'titre_cadre_raccourcis' => 'اختصارات:',
673
-	'titre_changer_couleur_interface' => 'تغيير لون الواجهة',
674
-	'titre_image_admin_article' => 'أنت مخول إدارة هذا المقال',
675
-	'titre_image_administrateur' => 'مدير',
676
-	'titre_image_aide' => 'تعليمات حول هذا العنصر',
677
-	'titre_image_auteur_supprime' => 'مؤلف محذوف',
678
-	'titre_image_redacteur' => 'محرر دون إذن دخول',
679
-	'titre_image_redacteur_02' => 'محرر',
680
-	'titre_image_selecteur' => 'عرض القائمة',
681
-	'titre_image_visiteur' => 'زائر',
682
-	'titre_joindre_document' => 'إرفاق مستند',
683
-	'titre_mots_cles' => 'المفاتيح',
684
-	'titre_probleme_technique' => 'تحذير: مشكلة تقنية (خادم SQL) تمنع الدخول إلى هذا الجزء من الموقع. شكراً على تفهمكم.',
685
-	'titre_publier_document' => 'نشر مستند في هذا القسم',
686
-	'titre_signatures_attente' => 'تواقيع بانتظار التصديق',
687
-	'titre_signatures_confirmees' => 'توقيعات مصدّقة',
688
-	'titre_statistiques' => 'إحصاءات الموقع',
689
-	'titre_titre_document' => 'اسم المستند: ',
690
-	'todo' => 'قريباً',
691
-	'trad_definir_reference' => 'اختيار "@titre@" كمرجع للترجمات',
692
-	'trad_reference' => '(مرجع الترجمات)',
663
+    'texte_inc_meta_1' => 'واجه النظام خطأً خلال كتابة الملف <code>@fichier@</code>. بصفتك أحد مدراء الموقع، الرجاء',
664
+    'texte_inc_meta_2' => 'التأكد من حقوق الكتابة',
665
+    'texte_inc_meta_3' => 'الخاصة بالدليل <code>@repertoire@</code>. ',
666
+    'texte_statut_en_cours_redaction' => 'قيد التحرير',
667
+    'texte_statut_poubelle' => 'إلى المهملات',
668
+    'texte_statut_propose_evaluation' => 'معروض للتقييم',
669
+    'texte_statut_publie' => 'منشور',
670
+    'texte_statut_refuse' => 'مرفوض',
671
+    'titre_ajouter_mot_cle' => 'إضافة مفتاح:',
672
+    'titre_cadre_raccourcis' => 'اختصارات:',
673
+    'titre_changer_couleur_interface' => 'تغيير لون الواجهة',
674
+    'titre_image_admin_article' => 'أنت مخول إدارة هذا المقال',
675
+    'titre_image_administrateur' => 'مدير',
676
+    'titre_image_aide' => 'تعليمات حول هذا العنصر',
677
+    'titre_image_auteur_supprime' => 'مؤلف محذوف',
678
+    'titre_image_redacteur' => 'محرر دون إذن دخول',
679
+    'titre_image_redacteur_02' => 'محرر',
680
+    'titre_image_selecteur' => 'عرض القائمة',
681
+    'titre_image_visiteur' => 'زائر',
682
+    'titre_joindre_document' => 'إرفاق مستند',
683
+    'titre_mots_cles' => 'المفاتيح',
684
+    'titre_probleme_technique' => 'تحذير: مشكلة تقنية (خادم SQL) تمنع الدخول إلى هذا الجزء من الموقع. شكراً على تفهمكم.',
685
+    'titre_publier_document' => 'نشر مستند في هذا القسم',
686
+    'titre_signatures_attente' => 'تواقيع بانتظار التصديق',
687
+    'titre_signatures_confirmees' => 'توقيعات مصدّقة',
688
+    'titre_statistiques' => 'إحصاءات الموقع',
689
+    'titre_titre_document' => 'اسم المستند: ',
690
+    'todo' => 'قريباً',
691
+    'trad_definir_reference' => 'اختيار "@titre@" كمرجع للترجمات',
692
+    'trad_reference' => '(مرجع الترجمات)',
693 693
 
694
-	// U
695
-	'upload_limit' => 'حجم هذا الملف أكبر مما يتحمل جهاز الخدمة: الحجم الأقصى المسموح به <b>للتنزيل</b> هو @max@.',
694
+    // U
695
+    'upload_limit' => 'حجم هذا الملف أكبر مما يتحمل جهاز الخدمة: الحجم الأقصى المسموح به <b>للتنزيل</b> هو @max@.',
696 696
 
697
-	// Z
698
-	'zbug_balise_b_aval' => ': العلامة B متأخرة',
699
-	'zbug_balise_inexistante' => 'خطأ في الاعلان عن العلامة @balise@ لـ@from@',
700
-	'zbug_balise_sans_argument' => 'عامل غير موجود في علامة @balise@',
701
-	'zbug_boucle' => 'حلقة',
702
-	'zbug_boucle_recursive_undef' => 'حلقة دورية غير معرّفة: @nom@',
703
-	'zbug_calcul' => 'حساب',
704
-	'zbug_champ_hors_boucle' => 'الحقل @champ@ خارج الحلقة',
705
-	'zbug_champ_hors_critere' => 'الحقل @champ@ خارج المقياس @critere@',
706
-	'zbug_champ_hors_motif' => 'الحقل @champ@ خارج سياق @motif@',
707
-	'zbug_code' => 'الرموز البرمجية',
708
-	'zbug_critere_inconnu' => 'معيار غير معروف @critere@',
709
-	'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} على جدول دون مفتاح اساسي افرادي',
710
-	'zbug_distant_interdit' => 'عملية خارجية ممنوعة',
711
-	'zbug_doublon_table_sans_cle_primaire' => 'قيمة مكررة في جدول لا يملك مفتاح أساسي',
712
-	'zbug_doublon_table_sans_index' => 'تكرار في جدول غير مفهرس',
713
-	'zbug_erreur_boucle_double' => 'تعريف متكرر للحلقة @id@',
714
-	'zbug_erreur_boucle_fermant' => 'علامة إغلاق غائبة في حلقة @id@',
715
-	'zbug_erreur_boucle_syntaxe' => 'تركيب حلقة @id@ غير صحيح',
716
-	'zbug_erreur_compilation' => 'خطأ تصنيف',
717
-	'zbug_erreur_execution_page' => 'خطأ في التنفيذ',
718
-	'zbug_erreur_filtre' => 'المرشح @filtre@ غير معرّف ',
719
-	'zbug_erreur_filtre_nbarg_min' => 'المرشح @filtre@ : ينقص @nb@ عامل',
720
-	'zbug_erreur_meme_parent' => 'لا ينطبق معيار {meme_parent} إلا على حلقتي (FORUMS) أو (RUBRIQUES)',
721
-	'zbug_erreur_squelette' => 'خطأ في الصفحة النموذجية',
722
-	'zbug_hors_compilation' => 'خارج التصنيف',
723
-	'zbug_info_erreur_squelette' => 'خطأ في الموفع',
724
-	'zbug_inversion_ordre_inexistant' => 'عكس ترتيب غير موجود أصلاً',
725
-	'zbug_pagination_sans_critere' => 'علامة PAGINATION# بدون معيار {pagination} أو مستخدمة في حلقة دورية',
726
-	'zbug_parametres_inclus_incorrects' => 'عامل إدراج غير صحيحة: @param@',
727
-	'zbug_profile' => 'فترة المعالجة: @time@',
728
-	'zbug_resultat' => 'النتيجة',
729
-	'zbug_serveur_indefini' => 'خادم SQL غير محدد',
730
-	'zbug_statistiques' => 'احصاءات استفسارات SQL مرتبة حسب المدة',
731
-	'zbug_table_inconnue' => 'جدول SQL هو «@table@» غير معروف',
732
-	'zxml_connus_attributs' => 'خاصيات معروفة',
733
-	'zxml_de' => 'من',
734
-	'zxml_inconnu_attribut' => 'خاصية غير معروفة',
735
-	'zxml_inconnu_balise' => 'علامة غير معروفة',
736
-	'zxml_inconnu_entite' => 'كائن غير معروف',
737
-	'zxml_inconnu_id' => 'هوية ID غير معروفة',
738
-	'zxml_mais_de' => 'لكن من',
739
-	'zxml_non_conforme' => 'غير مطابق للشكل',
740
-	'zxml_non_fils' => 'ليس من سلالة',
741
-	'zxml_nonvide_balise' => 'علامة غير فارغة',
742
-	'zxml_obligatoire_attribut' => 'خاصية إجبارية لكنها غير موجودة في',
743
-	'zxml_succession_fils_incorrecte' => 'تتابع سلالات غير سليم',
744
-	'zxml_survoler' => 'الحوم لعرض الصحيح',
745
-	'zxml_valeur_attribut' => 'قيمة الخاصية',
746
-	'zxml_vide_balise' => 'علامة فارغة',
747
-	'zxml_vu' => 'ظهر مسبقاً'
697
+    // Z
698
+    'zbug_balise_b_aval' => ': العلامة B متأخرة',
699
+    'zbug_balise_inexistante' => 'خطأ في الاعلان عن العلامة @balise@ لـ@from@',
700
+    'zbug_balise_sans_argument' => 'عامل غير موجود في علامة @balise@',
701
+    'zbug_boucle' => 'حلقة',
702
+    'zbug_boucle_recursive_undef' => 'حلقة دورية غير معرّفة: @nom@',
703
+    'zbug_calcul' => 'حساب',
704
+    'zbug_champ_hors_boucle' => 'الحقل @champ@ خارج الحلقة',
705
+    'zbug_champ_hors_critere' => 'الحقل @champ@ خارج المقياس @critere@',
706
+    'zbug_champ_hors_motif' => 'الحقل @champ@ خارج سياق @motif@',
707
+    'zbug_code' => 'الرموز البرمجية',
708
+    'zbug_critere_inconnu' => 'معيار غير معروف @critere@',
709
+    'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} على جدول دون مفتاح اساسي افرادي',
710
+    'zbug_distant_interdit' => 'عملية خارجية ممنوعة',
711
+    'zbug_doublon_table_sans_cle_primaire' => 'قيمة مكررة في جدول لا يملك مفتاح أساسي',
712
+    'zbug_doublon_table_sans_index' => 'تكرار في جدول غير مفهرس',
713
+    'zbug_erreur_boucle_double' => 'تعريف متكرر للحلقة @id@',
714
+    'zbug_erreur_boucle_fermant' => 'علامة إغلاق غائبة في حلقة @id@',
715
+    'zbug_erreur_boucle_syntaxe' => 'تركيب حلقة @id@ غير صحيح',
716
+    'zbug_erreur_compilation' => 'خطأ تصنيف',
717
+    'zbug_erreur_execution_page' => 'خطأ في التنفيذ',
718
+    'zbug_erreur_filtre' => 'المرشح @filtre@ غير معرّف ',
719
+    'zbug_erreur_filtre_nbarg_min' => 'المرشح @filtre@ : ينقص @nb@ عامل',
720
+    'zbug_erreur_meme_parent' => 'لا ينطبق معيار {meme_parent} إلا على حلقتي (FORUMS) أو (RUBRIQUES)',
721
+    'zbug_erreur_squelette' => 'خطأ في الصفحة النموذجية',
722
+    'zbug_hors_compilation' => 'خارج التصنيف',
723
+    'zbug_info_erreur_squelette' => 'خطأ في الموفع',
724
+    'zbug_inversion_ordre_inexistant' => 'عكس ترتيب غير موجود أصلاً',
725
+    'zbug_pagination_sans_critere' => 'علامة PAGINATION# بدون معيار {pagination} أو مستخدمة في حلقة دورية',
726
+    'zbug_parametres_inclus_incorrects' => 'عامل إدراج غير صحيحة: @param@',
727
+    'zbug_profile' => 'فترة المعالجة: @time@',
728
+    'zbug_resultat' => 'النتيجة',
729
+    'zbug_serveur_indefini' => 'خادم SQL غير محدد',
730
+    'zbug_statistiques' => 'احصاءات استفسارات SQL مرتبة حسب المدة',
731
+    'zbug_table_inconnue' => 'جدول SQL هو «@table@» غير معروف',
732
+    'zxml_connus_attributs' => 'خاصيات معروفة',
733
+    'zxml_de' => 'من',
734
+    'zxml_inconnu_attribut' => 'خاصية غير معروفة',
735
+    'zxml_inconnu_balise' => 'علامة غير معروفة',
736
+    'zxml_inconnu_entite' => 'كائن غير معروف',
737
+    'zxml_inconnu_id' => 'هوية ID غير معروفة',
738
+    'zxml_mais_de' => 'لكن من',
739
+    'zxml_non_conforme' => 'غير مطابق للشكل',
740
+    'zxml_non_fils' => 'ليس من سلالة',
741
+    'zxml_nonvide_balise' => 'علامة غير فارغة',
742
+    'zxml_obligatoire_attribut' => 'خاصية إجبارية لكنها غير موجودة في',
743
+    'zxml_succession_fils_incorrecte' => 'تتابع سلالات غير سليم',
744
+    'zxml_survoler' => 'الحوم لعرض الصحيح',
745
+    'zxml_valeur_attribut' => 'قيمة الخاصية',
746
+    'zxml_vide_balise' => 'علامة فارغة',
747
+    'zxml_vu' => 'ظهر مسبقاً'
748 748
 );
Please login to merge, or discard this patch.
ecrire/lang/public_ar.php 1 patch
Indentation   +115 added lines, -115 removed lines patch added patch discarded remove patch
@@ -4,123 +4,123 @@
 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
-	'accueil_site' => 'الصفحة الرئيسية',
14
-	'article' => 'مقال',
15
-	'articles' => 'المقالات',
16
-	'articles_auteur' => 'مقالات هذا المؤلف',
17
-	'articles_populaires' => 'المقالات الأكثر شعبية',
18
-	'articles_rubrique' => 'مقالات هذا القسم',
19
-	'aucun_article' => 'لا توجد مقالات على هذا العنوان',
20
-	'aucun_auteur' => 'لا يوجد مؤلفون على هذا العنوان',
21
-	'aucun_site' => 'لا توجد مواقع على هذا العنوان',
22
-	'aucune_breve' => 'لا توجد أخبار على هذا العنوان',
23
-	'aucune_rubrique' => 'لا توجد أقسام على هذا العنوان',
24
-	'auteur' => 'مؤلف',
25
-	'autres' => 'آخرون',
26
-	'autres_breves' => 'أخبار أخرى',
27
-	'autres_groupes_mots_clefs' => 'مجموعات مفاتيح أخرى',
28
-	'autres_sites' => 'مواقع أخرى',
29
-
30
-	// B
31
-	'bonjour' => 'أهلاً وسهلاً',
32
-
33
-	// C
34
-	'commenter_site' => 'تعليق على هذا الموقع',
35
-	'contact' => 'للاتصال',
36
-	'copie_document_impossible' => 'لا يمكن نسخ المستند',
37
-
38
-	// D
39
-	'date' => 'التاريخ',
40
-	'dernier_ajout' => 'آخر إضافة',
41
-	'dernieres_breves' => 'آخر الأخبار',
42
-	'derniers_articles' => 'آخر المقالات',
43
-	'derniers_commentaires' => 'آخر التعليقات',
44
-	'derniers_messages_forum' => 'آخر المشاركات المنشورة في المنتديات',
45
-
46
-	// E
47
-	'edition_mode_texte' => 'النشرة في وضعية النصوص',
48
-	'en_reponse' => 'رداً على:',
49
-	'en_resume' => 'باختصار',
50
-	'envoyer_message' => 'إرسال مشاركة',
51
-	'espace_prive' => 'المجال الخاص',
52
-
53
-	// F
54
-	'formats_acceptes' => 'التنسيقات المسموحة: @formats@.',
55
-
56
-	// H
57
-	'hierarchie_site' => 'هرمية الموقع',
58
-
59
-	// J
60
-	'jours' => 'يوم',
61
-
62
-	// L
63
-	'lien_connecter' => 'دخول',
64
-
65
-	// M
66
-	'meme_auteur' => 'من نفس المؤلف',
67
-	'meme_rubrique' => 'في هذا القسم أيضاً',
68
-	'memes_auteurs' => 'من المؤلفين نفسهم ايضاً',
69
-	'message' => 'مشاركة',
70
-	'messages_forum' => 'مشاركة منتدى',
71
-	'messages_recents' => 'أحدث المشاركات',
72
-	'mots_clef' => 'مفتاح',
73
-	'mots_clefs' => 'المفاتيح',
74
-	'mots_clefs_meme_groupe' => 'المفاتيح الأخرى في هذه المجموعة',
75
-
76
-	// N
77
-	'navigation' => 'تصفح',
78
-	'nom' => 'الاسم',
79
-	'nouveautes' => 'الجديد',
80
-	'nouveautes_web' => 'الجديد على النسيج',
81
-	'nouveaux_articles' => 'المقالات الجديدة',
82
-	'nouvelles_breves' => 'الأخبار الجديدة',
83
-
84
-	// P
85
-	'page_precedente' => 'الصفحة السابقة',
86
-	'page_suivante' => 'الصفحة التالية',
87
-	'par_auteur' => 'بقلم ',
88
-	'participer_site' => 'يمكنك المشاركة في هذا الموقع، بالتسجيل أدناه ونشر مقالاتك. وبعد التسجيل، سوف تصلك رسالة فورية بالبريد الإلكتروني تتضمن معرفك الخاص الذي يسمح لك بالدخول الى المجال الخاص.',
89
-	'plan_site' => 'خريطة الموقع',
90
-	'popularite' => 'الشعبية',
91
-	'poster_message' => 'إبعث برسالة',
92
-	'proposer_site' => 'يمكنك افتراح إضافة موقع الى هذا القسم:',
93
-
94
-	// R
95
-	'repondre_article' => 'الرد على هذا المقال',
96
-	'repondre_breve' => 'الرد على هذا الخبر',
97
-	'resultats_recherche' => 'نتائج البحث',
98
-	'retour_debut_forums' => 'عودة الى بداية المنتديات',
99
-	'rss_abonnement' => 'نسخ عن،ان URL التالي في مجمّع RSS:',
100
-	'rss_abonnement_titre' => 'الاشتراك',
101
-	'rss_abonnement_titre_page' => 'الاشتراك في',
102
-	'rss_explication' => 'يجمع خيط RSS معلومات حول تحديث موقع. ويوفر محتوى تذاكر التحديث او التعليقات او مقتطفات منها إضافة الى رابط الى المحتويات الكاملة وبعض المعلومات الإضافية. هذا الخيط يُقرأ بواسطة مجمّع RSS.',
103
-	'rss_explication_titre' => 'ما هو تدفق RSS؟',
104
-	'rubrique' => 'القسم',
105
-	'rubriques' => 'الأقسام',
106
-
107
-	// S
108
-	'signatures_petition' => 'التوقيعات',
109
-	'site_realise_avec_spip' => 'موقع صمم بنظام SPIP',
110
-	'sites_web' => 'مواقع النسيج',
111
-	'sous_rubriques' => 'الأقسام الفرعية',
112
-	'spam' => 'خنزرة',
113
-	'suite' => 'تتمة',
114
-	'sur_web' => 'على النسيج',
115
-	'syndiquer_rubrique' => 'ترخيص هذا القسم',
116
-	'syndiquer_site' => 'ترخيص كامل الموقع',
117
-
118
-	// T
119
-	'texte_lettre_information' => 'ها هي نشرة الموقع',
120
-	'texte_lettre_information_2' => 'تحصي هذه النشرة المقالات والأخبار المنشورة منذ ',
121
-
122
-	// V
123
-	'ver_imprimer' => 'نسخة للطباعة',
124
-	'voir_en_ligne' => 'عرض مباشر',
125
-	'voir_squelette' => 'عرض الصفحة النموذجية لهذه الصفحة'
12
+    // A
13
+    'accueil_site' => 'الصفحة الرئيسية',
14
+    'article' => 'مقال',
15
+    'articles' => 'المقالات',
16
+    'articles_auteur' => 'مقالات هذا المؤلف',
17
+    'articles_populaires' => 'المقالات الأكثر شعبية',
18
+    'articles_rubrique' => 'مقالات هذا القسم',
19
+    'aucun_article' => 'لا توجد مقالات على هذا العنوان',
20
+    'aucun_auteur' => 'لا يوجد مؤلفون على هذا العنوان',
21
+    'aucun_site' => 'لا توجد مواقع على هذا العنوان',
22
+    'aucune_breve' => 'لا توجد أخبار على هذا العنوان',
23
+    'aucune_rubrique' => 'لا توجد أقسام على هذا العنوان',
24
+    'auteur' => 'مؤلف',
25
+    'autres' => 'آخرون',
26
+    'autres_breves' => 'أخبار أخرى',
27
+    'autres_groupes_mots_clefs' => 'مجموعات مفاتيح أخرى',
28
+    'autres_sites' => 'مواقع أخرى',
29
+
30
+    // B
31
+    'bonjour' => 'أهلاً وسهلاً',
32
+
33
+    // C
34
+    'commenter_site' => 'تعليق على هذا الموقع',
35
+    'contact' => 'للاتصال',
36
+    'copie_document_impossible' => 'لا يمكن نسخ المستند',
37
+
38
+    // D
39
+    'date' => 'التاريخ',
40
+    'dernier_ajout' => 'آخر إضافة',
41
+    'dernieres_breves' => 'آخر الأخبار',
42
+    'derniers_articles' => 'آخر المقالات',
43
+    'derniers_commentaires' => 'آخر التعليقات',
44
+    'derniers_messages_forum' => 'آخر المشاركات المنشورة في المنتديات',
45
+
46
+    // E
47
+    'edition_mode_texte' => 'النشرة في وضعية النصوص',
48
+    'en_reponse' => 'رداً على:',
49
+    'en_resume' => 'باختصار',
50
+    'envoyer_message' => 'إرسال مشاركة',
51
+    'espace_prive' => 'المجال الخاص',
52
+
53
+    // F
54
+    'formats_acceptes' => 'التنسيقات المسموحة: @formats@.',
55
+
56
+    // H
57
+    'hierarchie_site' => 'هرمية الموقع',
58
+
59
+    // J
60
+    'jours' => 'يوم',
61
+
62
+    // L
63
+    'lien_connecter' => 'دخول',
64
+
65
+    // M
66
+    'meme_auteur' => 'من نفس المؤلف',
67
+    'meme_rubrique' => 'في هذا القسم أيضاً',
68
+    'memes_auteurs' => 'من المؤلفين نفسهم ايضاً',
69
+    'message' => 'مشاركة',
70
+    'messages_forum' => 'مشاركة منتدى',
71
+    'messages_recents' => 'أحدث المشاركات',
72
+    'mots_clef' => 'مفتاح',
73
+    'mots_clefs' => 'المفاتيح',
74
+    'mots_clefs_meme_groupe' => 'المفاتيح الأخرى في هذه المجموعة',
75
+
76
+    // N
77
+    'navigation' => 'تصفح',
78
+    'nom' => 'الاسم',
79
+    'nouveautes' => 'الجديد',
80
+    'nouveautes_web' => 'الجديد على النسيج',
81
+    'nouveaux_articles' => 'المقالات الجديدة',
82
+    'nouvelles_breves' => 'الأخبار الجديدة',
83
+
84
+    // P
85
+    'page_precedente' => 'الصفحة السابقة',
86
+    'page_suivante' => 'الصفحة التالية',
87
+    'par_auteur' => 'بقلم ',
88
+    'participer_site' => 'يمكنك المشاركة في هذا الموقع، بالتسجيل أدناه ونشر مقالاتك. وبعد التسجيل، سوف تصلك رسالة فورية بالبريد الإلكتروني تتضمن معرفك الخاص الذي يسمح لك بالدخول الى المجال الخاص.',
89
+    'plan_site' => 'خريطة الموقع',
90
+    'popularite' => 'الشعبية',
91
+    'poster_message' => 'إبعث برسالة',
92
+    'proposer_site' => 'يمكنك افتراح إضافة موقع الى هذا القسم:',
93
+
94
+    // R
95
+    'repondre_article' => 'الرد على هذا المقال',
96
+    'repondre_breve' => 'الرد على هذا الخبر',
97
+    'resultats_recherche' => 'نتائج البحث',
98
+    'retour_debut_forums' => 'عودة الى بداية المنتديات',
99
+    'rss_abonnement' => 'نسخ عن،ان URL التالي في مجمّع RSS:',
100
+    'rss_abonnement_titre' => 'الاشتراك',
101
+    'rss_abonnement_titre_page' => 'الاشتراك في',
102
+    'rss_explication' => 'يجمع خيط RSS معلومات حول تحديث موقع. ويوفر محتوى تذاكر التحديث او التعليقات او مقتطفات منها إضافة الى رابط الى المحتويات الكاملة وبعض المعلومات الإضافية. هذا الخيط يُقرأ بواسطة مجمّع RSS.',
103
+    'rss_explication_titre' => 'ما هو تدفق RSS؟',
104
+    'rubrique' => 'القسم',
105
+    'rubriques' => 'الأقسام',
106
+
107
+    // S
108
+    'signatures_petition' => 'التوقيعات',
109
+    'site_realise_avec_spip' => 'موقع صمم بنظام SPIP',
110
+    'sites_web' => 'مواقع النسيج',
111
+    'sous_rubriques' => 'الأقسام الفرعية',
112
+    'spam' => 'خنزرة',
113
+    'suite' => 'تتمة',
114
+    'sur_web' => 'على النسيج',
115
+    'syndiquer_rubrique' => 'ترخيص هذا القسم',
116
+    'syndiquer_site' => 'ترخيص كامل الموقع',
117
+
118
+    // T
119
+    'texte_lettre_information' => 'ها هي نشرة الموقع',
120
+    'texte_lettre_information_2' => 'تحصي هذه النشرة المقالات والأخبار المنشورة منذ ',
121
+
122
+    // V
123
+    'ver_imprimer' => 'نسخة للطباعة',
124
+    'voir_en_ligne' => 'عرض مباشر',
125
+    'voir_squelette' => 'عرض الصفحة النموذجية لهذه الصفحة'
126 126
 );
Please login to merge, or discard this patch.
ecrire/lang/ecrire_br.php 1 patch
Indentation   +836 added lines, -836 removed lines patch added patch discarded remove patch
@@ -4,903 +4,903 @@
 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' => 'Gweredekaat al lugant',
14
-	'affichage' => 'Diskwel',
15
-	'aide_non_disponible' => 'N’eo ket hegerz c’hoazh al lodenn-mañ eus ar skoazell enlinenn er yezh-mañ.',
16
-	'annuler_recherche' => 'Nullañ an enklask',
17
-	'auteur' => 'Skridaozer:',
18
-	'avis_acces_interdit' => 'Digor difennet.',
19
-	'avis_acces_interdit_prive' => 'N’ho peus ket an aotre da vont war ar bajenn-mañ<b>@exec@</b>.',
20
-	'avis_article_modifie' => 'Diwallit, labouret ez eus bet war ar pennad-mañ gant @nom_auteur_modif@, @date_diff@ munutenn zo',
21
-	'avis_aucun_resultat' => 'Disoc’h ebet.',
22
-	'avis_base_inaccessible' => 'N’haller ket kevreañ ouzh an diaz roadennoù @base@.',
23
-	'avis_chemin_invalide_1' => 'An hent dibabet ganeoc’h',
24
-	'avis_chemin_invalide_2' => 'ne seblant ket bezañ reizh. Distroit d’ar bajenn a-raok ha gwiriit an titouroù pourchaset ganeoc’h.',
25
-	'avis_connexion_echec_1' => 'C’hwitet eo ar c’hevreañ ouzh an diaz roadennoù.',
26
-	'avis_connexion_echec_2' => 'Distroit d’ar bajenn a-raok, ha gwiriit an titouroù pourchaset ganeoc’h.',
27
-	'avis_connexion_echec_3' => '<b>N.B.</b> War meur a servijer e tleit <b>goulenn</b> e vefe gweredekaet ho moned d’an diaz roadennoù a-raok gallout e implijout. Mar n’hallit ket kevreañ, gwiriit ha graet hoc’h eus ar goulenn-se.',
28
-	'avis_connexion_erreur_creer_base' => 'N’eus ket bet gallet krouiñ an diaz roadennoù.',
29
-	'avis_connexion_erreur_nom_base' => 'N’hall bezañ nemet lizherennoù, sifroù ha barrennigoù en anv an diaz',
30
-	'avis_connexion_ldap_echec_1' => 'C’hwitet eo ar c’hevreañ ouzh ar servijer LDAP.',
31
-	'avis_connexion_ldap_echec_2' => 'Distroit d’ar bajenn a-raok, ha gwiriit an titouroù pourchaset ganeoc’h.',
32
-	'avis_connexion_ldap_echec_3' => 'A-hend-all n’implijit ket ar skor LDAP evit enporzhiañ implijerien.',
33
-	'avis_deplacement_rubrique' => 'Diwallit! Er rubrikenn-mañ ez eus @contient_breves@ berrskrid@scb@ : askit al logell-gadarnaat-mañ mard he dilec’hiit.',
34
-	'avis_erreur_connexion_mysql' => 'Fazi kevreañ SQL',
35
-	'avis_espace_interdit' => '<b>Lec’h difennet</b> <div>Staliet eo SPIP c’hoazh.</div>',
36
-	'avis_lecture_noms_bases_1' => 'N’eo ket bet ar programm staliañ evit lenn anvioù an diazoù roadennoù staliet.',
37
-	'avis_lecture_noms_bases_2' => 'Pe n’eus diaz hegerz ebet, pe diweredekaet eo bet al listennañ diazoù evit abegoù surentez (ar pezh a c’hoarvez gant meur a herberc’hier).',
38
-	'avis_lecture_noms_bases_3' => 'A-hend-all e tlefec’h implijout un diaz dezhañ hoc’h anv kevreañ:',
39
-	'avis_non_acces_page' => 'N’hoc’h eus ket moned d’ar bajenn-mañ.',
40
-	'avis_operation_echec' => 'C’hwitet eo an ober.',
41
-	'avis_operation_impossible' => 'Ober dibosupl',
42
-	'avis_suppression_base' => 'DIWALLIT, hep distro eo lemel roadennoù',
12
+    // A
13
+    'activer_plugin' => 'Gweredekaat al lugant',
14
+    'affichage' => 'Diskwel',
15
+    'aide_non_disponible' => 'N’eo ket hegerz c’hoazh al lodenn-mañ eus ar skoazell enlinenn er yezh-mañ.',
16
+    'annuler_recherche' => 'Nullañ an enklask',
17
+    'auteur' => 'Skridaozer:',
18
+    'avis_acces_interdit' => 'Digor difennet.',
19
+    'avis_acces_interdit_prive' => 'N’ho peus ket an aotre da vont war ar bajenn-mañ<b>@exec@</b>.',
20
+    'avis_article_modifie' => 'Diwallit, labouret ez eus bet war ar pennad-mañ gant @nom_auteur_modif@, @date_diff@ munutenn zo',
21
+    'avis_aucun_resultat' => 'Disoc’h ebet.',
22
+    'avis_base_inaccessible' => 'N’haller ket kevreañ ouzh an diaz roadennoù @base@.',
23
+    'avis_chemin_invalide_1' => 'An hent dibabet ganeoc’h',
24
+    'avis_chemin_invalide_2' => 'ne seblant ket bezañ reizh. Distroit d’ar bajenn a-raok ha gwiriit an titouroù pourchaset ganeoc’h.',
25
+    'avis_connexion_echec_1' => 'C’hwitet eo ar c’hevreañ ouzh an diaz roadennoù.',
26
+    'avis_connexion_echec_2' => 'Distroit d’ar bajenn a-raok, ha gwiriit an titouroù pourchaset ganeoc’h.',
27
+    'avis_connexion_echec_3' => '<b>N.B.</b> War meur a servijer e tleit <b>goulenn</b> e vefe gweredekaet ho moned d’an diaz roadennoù a-raok gallout e implijout. Mar n’hallit ket kevreañ, gwiriit ha graet hoc’h eus ar goulenn-se.',
28
+    'avis_connexion_erreur_creer_base' => 'N’eus ket bet gallet krouiñ an diaz roadennoù.',
29
+    'avis_connexion_erreur_nom_base' => 'N’hall bezañ nemet lizherennoù, sifroù ha barrennigoù en anv an diaz',
30
+    'avis_connexion_ldap_echec_1' => 'C’hwitet eo ar c’hevreañ ouzh ar servijer LDAP.',
31
+    'avis_connexion_ldap_echec_2' => 'Distroit d’ar bajenn a-raok, ha gwiriit an titouroù pourchaset ganeoc’h.',
32
+    'avis_connexion_ldap_echec_3' => 'A-hend-all n’implijit ket ar skor LDAP evit enporzhiañ implijerien.',
33
+    'avis_deplacement_rubrique' => 'Diwallit! Er rubrikenn-mañ ez eus @contient_breves@ berrskrid@scb@ : askit al logell-gadarnaat-mañ mard he dilec’hiit.',
34
+    'avis_erreur_connexion_mysql' => 'Fazi kevreañ SQL',
35
+    'avis_espace_interdit' => '<b>Lec’h difennet</b> <div>Staliet eo SPIP c’hoazh.</div>',
36
+    'avis_lecture_noms_bases_1' => 'N’eo ket bet ar programm staliañ evit lenn anvioù an diazoù roadennoù staliet.',
37
+    'avis_lecture_noms_bases_2' => 'Pe n’eus diaz hegerz ebet, pe diweredekaet eo bet al listennañ diazoù evit abegoù surentez (ar pezh a c’hoarvez gant meur a herberc’hier).',
38
+    'avis_lecture_noms_bases_3' => 'A-hend-all e tlefec’h implijout un diaz dezhañ hoc’h anv kevreañ:',
39
+    'avis_non_acces_page' => 'N’hoc’h eus ket moned d’ar bajenn-mañ.',
40
+    'avis_operation_echec' => 'C’hwitet eo an ober.',
41
+    'avis_operation_impossible' => 'Ober dibosupl',
42
+    'avis_suppression_base' => 'DIWALLIT, hep distro eo lemel roadennoù',
43 43
 
44
-	// B
45
-	'bouton_acces_ldap' => 'Ouzhpennañ ar moned da LDAP',
46
-	'bouton_ajouter' => 'Ouzhpennañ',
47
-	'bouton_annuler' => 'Nullañ',
48
-	'bouton_cache_activer' => ' Adweredekaat ar grubuilh',
49
-	'bouton_cache_desactiver' => 'Diweredekaat ar grubuilh evit ur pennad',
50
-	'bouton_demande_publication' => 'Goulenn ma vo embannet ar pennad-mañ',
51
-	'bouton_desactive_tout' => 'Diweredekaat pep tra',
52
-	'bouton_desinstaller' => 'Distaliañ',
53
-	'bouton_effacer_tout' => 'Diverkañ PEP TRA',
54
-	'bouton_envoyer_message' => 'Kemennadenn ziwezhañ: kas',
55
-	'bouton_fermer' => 'Serriñ',
56
-	'bouton_mettre_a_jour_base' => 'Hizivaat an diaz roadennoù',
57
-	'bouton_modifier' => 'Kemmañ',
58
-	'bouton_radio_afficher' => 'Diskwel',
59
-	'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Dont war-wel war roll ar skridaozerien kevreet',
60
-	'bouton_radio_envoi_annonces_adresse' => 'Kas ar c’hemennoù d’ar chomlec’h-mañ:',
61
-	'bouton_radio_envoi_liste_nouveautes' => 'Kas listenn an nevezentioù',
62
-	'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Na zont war-wel war roll ar skridaozerien kevreet',
63
-	'bouton_radio_non_envoi_annonces_editoriales' => 'Na gas kemennoù embann',
64
-	'bouton_redirection' => 'ADHEÑCHAÑ',
65
-	'bouton_reinitialiser_aux_valeurs_par_defaut' => 'Adderaouekaat an talvoudoù dre ziouer',
66
-	'bouton_relancer_inscription' => 'Adlañsañ an enskrivadenn',
67
-	'bouton_relancer_inscriptions' => 'Adlañsañ an enskrivadenn.',
68
-	'bouton_relancer_installation' => 'Adlañsañ ar staliañ',
69
-	'bouton_reset_password' => 'Krouiñ ur ger-tremen nevez hag e gas dre bostel',
70
-	'bouton_suivant' => 'War-lerc’h',
71
-	'bouton_tenter_recuperation' => 'Klask dresañ',
72
-	'bouton_test_proxy' => 'Esaeañ ar proksi',
73
-	'bouton_vider_cache' => 'Goullonderiñ ar grubuilh',
44
+    // B
45
+    'bouton_acces_ldap' => 'Ouzhpennañ ar moned da LDAP',
46
+    'bouton_ajouter' => 'Ouzhpennañ',
47
+    'bouton_annuler' => 'Nullañ',
48
+    'bouton_cache_activer' => ' Adweredekaat ar grubuilh',
49
+    'bouton_cache_desactiver' => 'Diweredekaat ar grubuilh evit ur pennad',
50
+    'bouton_demande_publication' => 'Goulenn ma vo embannet ar pennad-mañ',
51
+    'bouton_desactive_tout' => 'Diweredekaat pep tra',
52
+    'bouton_desinstaller' => 'Distaliañ',
53
+    'bouton_effacer_tout' => 'Diverkañ PEP TRA',
54
+    'bouton_envoyer_message' => 'Kemennadenn ziwezhañ: kas',
55
+    'bouton_fermer' => 'Serriñ',
56
+    'bouton_mettre_a_jour_base' => 'Hizivaat an diaz roadennoù',
57
+    'bouton_modifier' => 'Kemmañ',
58
+    'bouton_radio_afficher' => 'Diskwel',
59
+    'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Dont war-wel war roll ar skridaozerien kevreet',
60
+    'bouton_radio_envoi_annonces_adresse' => 'Kas ar c’hemennoù d’ar chomlec’h-mañ:',
61
+    'bouton_radio_envoi_liste_nouveautes' => 'Kas listenn an nevezentioù',
62
+    'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Na zont war-wel war roll ar skridaozerien kevreet',
63
+    'bouton_radio_non_envoi_annonces_editoriales' => 'Na gas kemennoù embann',
64
+    'bouton_redirection' => 'ADHEÑCHAÑ',
65
+    'bouton_reinitialiser_aux_valeurs_par_defaut' => 'Adderaouekaat an talvoudoù dre ziouer',
66
+    'bouton_relancer_inscription' => 'Adlañsañ an enskrivadenn',
67
+    'bouton_relancer_inscriptions' => 'Adlañsañ an enskrivadenn.',
68
+    'bouton_relancer_installation' => 'Adlañsañ ar staliañ',
69
+    'bouton_reset_password' => 'Krouiñ ur ger-tremen nevez hag e gas dre bostel',
70
+    'bouton_suivant' => 'War-lerc’h',
71
+    'bouton_tenter_recuperation' => 'Klask dresañ',
72
+    'bouton_test_proxy' => 'Esaeañ ar proksi',
73
+    'bouton_vider_cache' => 'Goullonderiñ ar grubuilh',
74 74
 
75
-	// C
76
-	'cache_modifiable_webmestre' => 'Kemmet e c’hall bezañ an arventenn-mañ gant mestr-gwiad al lec’hienn.',
77
-	'calendrier_synchro' => 'Mard implijit ur meziant deiziataer kenglotus gant <b>iCal</b> e c’hallit e gembredañ gant titouroù al lec’hienn-mañ.',
78
-	'config_activer_champs' => 'Gweredekaat ar maeziennoù-mañ',
79
-	'config_choix_base_sup' => 'merkañ un diaz war ar servijer-mañ',
80
-	'config_erreur_base_sup' => 'N’en deus ket SPIP moned da roll an diazoù digor',
81
-	'config_info_base_sup' => 'Mard hoc’h eus diazoù roadennoù all da c’houlennata dre SPIP, gant e servijer SQL pe gant unan bennak all, e c’hallit o disklêriañ gant ar furmskrid-mañ dindan. Mar ne skrivit netra e maeziennoù zo e vo implijet an anaouderioù kevreañ ouzh an diaz pennañ.',
82
-	'config_info_base_sup_disponibles' => 'Diazoù ouzhpenn a c’haller goulennata c’hoazh:',
83
-	'config_info_enregistree' => 'Enrollet eo bet ar c’hefluniadur nevez',
84
-	'config_info_logos' => 'Pep a logo, ha pep a “logo nijal a-us” a c’hall bezañ lakaet da elfennoù al lec’hienn.',
85
-	'config_info_logos_utiliser' => 'Implijout al logoioù',
86
-	'config_info_logos_utiliser_non' => 'Na implijout al logoioù',
87
-	'config_info_logos_utiliser_survol' => 'Implijout al logoioù nijal a-us',
88
-	'config_info_logos_utiliser_survol_non' => 'Na implijout al logoioù nijal a-us',
89
-	'config_info_redirection' => 'Pa vo gweredekaet an dibab-mañ e c’hallot krouiñ pennadoù galloudel, ha na vint nemet daveoù da bennadoù bet embannet e lec’hiennoù all, pe er-maez eus SPIP.',
90
-	'config_redirection' => 'Pennadoù galloudel',
91
-	'config_titre_base_sup' => 'Disklêriañ un diaz ouzhpenn',
92
-	'config_titre_base_sup_choix' => 'Dibabit un diaz ouzhpenn',
93
-	'connexion_ldap' => 'Kevreañ:',
94
-	'creer_et_associer_un_auteur' => 'Krouiñ ha kevrediñ un aozer',
75
+    // C
76
+    'cache_modifiable_webmestre' => 'Kemmet e c’hall bezañ an arventenn-mañ gant mestr-gwiad al lec’hienn.',
77
+    'calendrier_synchro' => 'Mard implijit ur meziant deiziataer kenglotus gant <b>iCal</b> e c’hallit e gembredañ gant titouroù al lec’hienn-mañ.',
78
+    'config_activer_champs' => 'Gweredekaat ar maeziennoù-mañ',
79
+    'config_choix_base_sup' => 'merkañ un diaz war ar servijer-mañ',
80
+    'config_erreur_base_sup' => 'N’en deus ket SPIP moned da roll an diazoù digor',
81
+    'config_info_base_sup' => 'Mard hoc’h eus diazoù roadennoù all da c’houlennata dre SPIP, gant e servijer SQL pe gant unan bennak all, e c’hallit o disklêriañ gant ar furmskrid-mañ dindan. Mar ne skrivit netra e maeziennoù zo e vo implijet an anaouderioù kevreañ ouzh an diaz pennañ.',
82
+    'config_info_base_sup_disponibles' => 'Diazoù ouzhpenn a c’haller goulennata c’hoazh:',
83
+    'config_info_enregistree' => 'Enrollet eo bet ar c’hefluniadur nevez',
84
+    'config_info_logos' => 'Pep a logo, ha pep a “logo nijal a-us” a c’hall bezañ lakaet da elfennoù al lec’hienn.',
85
+    'config_info_logos_utiliser' => 'Implijout al logoioù',
86
+    'config_info_logos_utiliser_non' => 'Na implijout al logoioù',
87
+    'config_info_logos_utiliser_survol' => 'Implijout al logoioù nijal a-us',
88
+    'config_info_logos_utiliser_survol_non' => 'Na implijout al logoioù nijal a-us',
89
+    'config_info_redirection' => 'Pa vo gweredekaet an dibab-mañ e c’hallot krouiñ pennadoù galloudel, ha na vint nemet daveoù da bennadoù bet embannet e lec’hiennoù all, pe er-maez eus SPIP.',
90
+    'config_redirection' => 'Pennadoù galloudel',
91
+    'config_titre_base_sup' => 'Disklêriañ un diaz ouzhpenn',
92
+    'config_titre_base_sup_choix' => 'Dibabit un diaz ouzhpenn',
93
+    'connexion_ldap' => 'Kevreañ:',
94
+    'creer_et_associer_un_auteur' => 'Krouiñ ha kevrediñ un aozer',
95 95
 
96
-	// D
97
-	'date_mot_heures' => 'eur',
96
+    // D
97
+    'date_mot_heures' => 'eur',
98 98
 
99
-	// E
100
-	'ecran_connexion_couleur_principale' => 'Liv kentañ penn',
101
-	'ecran_connexion_image_fond' => 'Skeudenn adreñv',
102
-	'ecran_connexion_image_fond_explication' => 'Ober gant ur skeudenn (stumm JPEG, 1920x1080 pixels)',
103
-	'ecran_connexion_image_revenir_couleur_defaut' => 'Distreiñ d’al liv dre ziouer',
104
-	'ecran_connexion_titre' => 'Skramm evit kennaskañ',
105
-	'ecran_securite' => ' + skramm surentez @version@',
106
-	'email' => 'postel',
107
-	'email_2' => 'postel:',
108
-	'en_savoir_plus' => 'Gouzout muioc’h',
109
-	'entree_adresse_annuaire' => 'Chomlec’h eus al levr',
110
-	'entree_adresse_email' => 'Ho postel',
111
-	'entree_adresse_email_2' => ' Chomlec’h postel ',
112
-	'entree_base_donnee_1' => 'Chomlec’h an diaz roadennoù',
113
-	'entree_base_donnee_2' => '(Alies e klot ar chomlec’h-se gant hini ho lec’hienn, a-wezhioù e klot gant ar meneg «localhost», a-wezhioù e chom goullo-krenn.)',
114
-	'entree_biographie' => 'Buhezskrid berr-ha-berr.',
115
-	'entree_chemin_acces' => '<b>Skrivañ</b> an hent moned:',
116
-	'entree_cle_pgp' => 'Hoc’h alc’hwez PGP',
117
-	'entree_cle_pgp_2' => 'Alc’hwez PGP',
118
-	'entree_contenu_rubrique' => '(Endalc’h ar rubrikenn berr-ha-berr)',
119
-	'entree_identifiants_connexion' => 'Hoc’h anaouderioù kevreañ...',
120
-	'entree_identifiants_connexion_2' => 'Anaouderioù kevreañ',
121
-	'entree_informations_connexion_ldap' => 'Skrivit er furmskrid-mañ titouroù kevreañ ho levr chomlec’h LDAP.
99
+    // E
100
+    'ecran_connexion_couleur_principale' => 'Liv kentañ penn',
101
+    'ecran_connexion_image_fond' => 'Skeudenn adreñv',
102
+    'ecran_connexion_image_fond_explication' => 'Ober gant ur skeudenn (stumm JPEG, 1920x1080 pixels)',
103
+    'ecran_connexion_image_revenir_couleur_defaut' => 'Distreiñ d’al liv dre ziouer',
104
+    'ecran_connexion_titre' => 'Skramm evit kennaskañ',
105
+    'ecran_securite' => ' + skramm surentez @version@',
106
+    'email' => 'postel',
107
+    'email_2' => 'postel:',
108
+    'en_savoir_plus' => 'Gouzout muioc’h',
109
+    'entree_adresse_annuaire' => 'Chomlec’h eus al levr',
110
+    'entree_adresse_email' => 'Ho postel',
111
+    'entree_adresse_email_2' => ' Chomlec’h postel ',
112
+    'entree_base_donnee_1' => 'Chomlec’h an diaz roadennoù',
113
+    'entree_base_donnee_2' => '(Alies e klot ar chomlec’h-se gant hini ho lec’hienn, a-wezhioù e klot gant ar meneg «localhost», a-wezhioù e chom goullo-krenn.)',
114
+    'entree_biographie' => 'Buhezskrid berr-ha-berr.',
115
+    'entree_chemin_acces' => '<b>Skrivañ</b> an hent moned:',
116
+    'entree_cle_pgp' => 'Hoc’h alc’hwez PGP',
117
+    'entree_cle_pgp_2' => 'Alc’hwez PGP',
118
+    'entree_contenu_rubrique' => '(Endalc’h ar rubrikenn berr-ha-berr)',
119
+    'entree_identifiants_connexion' => 'Hoc’h anaouderioù kevreañ...',
120
+    'entree_identifiants_connexion_2' => 'Anaouderioù kevreañ',
121
+    'entree_informations_connexion_ldap' => 'Skrivit er furmskrid-mañ titouroù kevreañ ho levr chomlec’h LDAP.
122 122
  Merour ho reizhiad pe ho rouedad a zlefe gallout o fourchas deoc’h.',
123
-	'entree_infos_perso' => 'Piv oc’h-c’hwi?',
124
-	'entree_infos_perso_2' => 'Piv eo an aozer?',
125
-	'entree_interieur_rubrique' => 'Er rubrikenn:',
126
-	'entree_liens_sites' => '<b>Gourliamm</b> (daveenn, lec’hienn da weladenniñ...)',
127
-	'entree_login' => 'Ho ker kevreañ',
128
-	'entree_login_connexion_1' => 'Ar ger kevreañ',
129
-	'entree_login_connexion_2' => '(A-wezhioù e klot gant ho ker moned da FTP, a-wezhioù emañ da vezañ lezet goullo)',
130
-	'entree_mot_passe' => 'Ho ker-tremen',
131
-	'entree_mot_passe_1' => 'Ar ger-tremen kevreañ',
132
-	'entree_mot_passe_2' => '(A-wezhioù e klot gant ar ger-tremen da FTP, a-wezhioù emañ da vezañ lezet goullo)',
133
-	'entree_nom_fichier' => 'Skrivit anv ar restr @texte_compresse@:',
134
-	'entree_nom_pseudo' => 'Hoc’h anv pe ho lesanv',
135
-	'entree_nom_pseudo_1' => '(Hoc’h anv pe ho lesanv)',
136
-	'entree_nom_pseudo_2' => 'Anv pe lesanv',
137
-	'entree_nom_site' => 'Anv ho lec’hienn',
138
-	'entree_nom_site_2' => 'Anv lec’hienn an aozer',
139
-	'entree_nouveau_passe' => 'Ger-tremen nevez',
140
-	'entree_passe_ldap' => 'Ger-tremen',
141
-	'entree_port_annuaire' => 'Niverenn borzh al levr chomlec’h',
142
-	'entree_signature' => 'Sinadur',
143
-	'entree_titre_obligatoire' => '<b>Titl</b> [Ret]<br />',
144
-	'entree_url' => 'Chomlec’h (URL) ho lec’hienn',
145
-	'entree_url_2' => 'Chomlec’h (URL) al lec’hienn',
146
-	'erreur_connect_deja_existant' => 'Un dafariad zo c’hoazh gant an anv-se.',
147
-	'erreur_contenu_suspect' => 'Testenn tec’het',
148
-	'erreur_email_deja_existant' => 'Enrollet eo bet c’hoazh ar postel-se.',
149
-	'erreur_nom_connect_incorrect' => 'N’eo ket aotreet an anv dafariad-se ',
150
-	'erreur_plugin_attribut_balise_manquant' => 'Doareenn @attribut@ a vank er valizenn @balise@.',
151
-	'erreur_plugin_desinstalation_echouee' => 'C’hwitet eo da zistaliañ al lugant. E ziweredekaat a c’hallit avat.',
152
-	'erreur_plugin_fichier_absent' => 'Restr ezvezant',
153
-	'erreur_plugin_fichier_def_absent' => 'Restr termenañ ezvezant',
154
-	'erreur_plugin_nom_fonction_interdit' => 'Anv arc’hwel difennet',
155
-	'erreur_plugin_nom_manquant' => 'Anv lugant ezvezant',
156
-	'erreur_plugin_prefix_manquant' => 'N’eo ket termenet tachenn envel al lugant',
157
-	'erreur_plugin_tag_plugin_absent' => '&lt;lugant&gt; ezvezant er restr termenañ',
158
-	'erreur_plugin_version_manquant' => 'Stumm al lugant ezvezant',
159
-	'erreur_type_fichier' => 'Stumm restr fall',
123
+    'entree_infos_perso' => 'Piv oc’h-c’hwi?',
124
+    'entree_infos_perso_2' => 'Piv eo an aozer?',
125
+    'entree_interieur_rubrique' => 'Er rubrikenn:',
126
+    'entree_liens_sites' => '<b>Gourliamm</b> (daveenn, lec’hienn da weladenniñ...)',
127
+    'entree_login' => 'Ho ker kevreañ',
128
+    'entree_login_connexion_1' => 'Ar ger kevreañ',
129
+    'entree_login_connexion_2' => '(A-wezhioù e klot gant ho ker moned da FTP, a-wezhioù emañ da vezañ lezet goullo)',
130
+    'entree_mot_passe' => 'Ho ker-tremen',
131
+    'entree_mot_passe_1' => 'Ar ger-tremen kevreañ',
132
+    'entree_mot_passe_2' => '(A-wezhioù e klot gant ar ger-tremen da FTP, a-wezhioù emañ da vezañ lezet goullo)',
133
+    'entree_nom_fichier' => 'Skrivit anv ar restr @texte_compresse@:',
134
+    'entree_nom_pseudo' => 'Hoc’h anv pe ho lesanv',
135
+    'entree_nom_pseudo_1' => '(Hoc’h anv pe ho lesanv)',
136
+    'entree_nom_pseudo_2' => 'Anv pe lesanv',
137
+    'entree_nom_site' => 'Anv ho lec’hienn',
138
+    'entree_nom_site_2' => 'Anv lec’hienn an aozer',
139
+    'entree_nouveau_passe' => 'Ger-tremen nevez',
140
+    'entree_passe_ldap' => 'Ger-tremen',
141
+    'entree_port_annuaire' => 'Niverenn borzh al levr chomlec’h',
142
+    'entree_signature' => 'Sinadur',
143
+    'entree_titre_obligatoire' => '<b>Titl</b> [Ret]<br />',
144
+    'entree_url' => 'Chomlec’h (URL) ho lec’hienn',
145
+    'entree_url_2' => 'Chomlec’h (URL) al lec’hienn',
146
+    'erreur_connect_deja_existant' => 'Un dafariad zo c’hoazh gant an anv-se.',
147
+    'erreur_contenu_suspect' => 'Testenn tec’het',
148
+    'erreur_email_deja_existant' => 'Enrollet eo bet c’hoazh ar postel-se.',
149
+    'erreur_nom_connect_incorrect' => 'N’eo ket aotreet an anv dafariad-se ',
150
+    'erreur_plugin_attribut_balise_manquant' => 'Doareenn @attribut@ a vank er valizenn @balise@.',
151
+    'erreur_plugin_desinstalation_echouee' => 'C’hwitet eo da zistaliañ al lugant. E ziweredekaat a c’hallit avat.',
152
+    'erreur_plugin_fichier_absent' => 'Restr ezvezant',
153
+    'erreur_plugin_fichier_def_absent' => 'Restr termenañ ezvezant',
154
+    'erreur_plugin_nom_fonction_interdit' => 'Anv arc’hwel difennet',
155
+    'erreur_plugin_nom_manquant' => 'Anv lugant ezvezant',
156
+    'erreur_plugin_prefix_manquant' => 'N’eo ket termenet tachenn envel al lugant',
157
+    'erreur_plugin_tag_plugin_absent' => '&lt;lugant&gt; ezvezant er restr termenañ',
158
+    'erreur_plugin_version_manquant' => 'Stumm al lugant ezvezant',
159
+    'erreur_type_fichier' => 'Stumm restr fall',
160 160
 
161
-	// H
162
-	'htaccess_a_simuler' => 'Diwall: Ne vez ket dalc’het kont eus ar restroù @htaccess@ gant ho tafariad HTTP. Evit diogeliñ surentez vat eo ret deoc’h kemmañ ar c’hefluniadur-mañ war ar c’hraf-mañ, peotramant eo ret o defe an digemmennoù @constantes@ (a c’haller termenañ er restr  mes_options.php) talvoudoù levrioù-chomlec’h er-maez eus @document_root@.',
163
-	'htaccess_inoperant' => 'htaccess ne ra netra',
161
+    // H
162
+    'htaccess_a_simuler' => 'Diwall: Ne vez ket dalc’het kont eus ar restroù @htaccess@ gant ho tafariad HTTP. Evit diogeliñ surentez vat eo ret deoc’h kemmañ ar c’hefluniadur-mañ war ar c’hraf-mañ, peotramant eo ret o defe an digemmennoù @constantes@ (a c’haller termenañ er restr  mes_options.php) talvoudoù levrioù-chomlec’h er-maez eus @document_root@.',
163
+    'htaccess_inoperant' => 'htaccess ne ra netra',
164 164
 
165
-	// I
166
-	'ical_info1' => 'War ar bajenn-mañ ez eus meur a hentenn evit chom e darempred gant buhez al lec’hienn-mañ.',
167
-	'ical_info2' => 'Evit gouzout hiroc’h diwar-benn an teknikoù-se, klaskit hardizh e-barzh <a href="@spipnet@">teuliadur SPIP</a>.',
168
-	'ical_info_calendrier' => 'Daou zeiziadur zo en ho kerz. An hini kentañ zo ur plaen eus al lec’hienn hag a ziskouez an holl bennadoù bet embannet. An eil emañ warnañ ar c’hemennoù stur, koulz hag ho kemennadennoù prevez diwezhañ: miret eo evidoc’h dre berzh un alc’hwez personel, a c’hallit kemm n’eus forzh pegoulz pa nevezot ho ker-tremen.',
169
-	'ical_methode_http' => 'Pellgargañ',
170
-	'ical_methode_webcal' => 'Kempredañ (webcal://)',
171
-	'ical_texte_js' => 'A-drugarez d’ul linenn javascript e c’hellit, en un doare aezet, diskouez ar pennadoù diwezhañ embannet war al lec’hienn-mañ, war forzh pe hini eus ho lec’hiennoù.',
172
-	'ical_texte_prive' => 'An deiziataer hiniennel-mañ a gelaou ac’hanoc’h diwar-benn nevezinti embann prevez al lec’hienn-mañ (labourioù, emgavioù, pennadoù, berrskridoù kinniget,...).',
173
-	'ical_texte_public' => 'Gant an deiziataer-mañ e c’hellit heuliañ nevezenti foran al lec’hienn (pennadoù ha berrskridoù bet embannet).',
174
-	'ical_texte_rss' => 'Gallout a rit sindikadiñ nevezenti ar forom-mañ war forzh peseurt lenner restroù XML/RSS (Rich Site Summary). A-drugarez d’ar furmad-se ivez e c’hell SPIP lenn an nevezenti war al lec’hiennoù all hag a implij ur stumm kenlotus(lec’hiennoù sindikadet).',
175
-	'ical_titre_js' => 'Javascript',
176
-	'ical_titre_mailing' => 'Roll-skignañ',
177
-	'ical_titre_rss' => 'Restroù sindikadañ',
178
-	'icone_accueil' => 'Degemer',
179
-	'icone_activer_cookie' => 'Gweredekaat an toupin heuliañ',
180
-	'icone_activite' => 'Gwerederezh',
181
-	'icone_admin_plugin' => 'Merañ an adveziantoù',
182
-	'icone_administration' => 'Trezalc’h',
183
-	'icone_afficher_auteurs' => 'Diskouez ar skridaozerien',
184
-	'icone_afficher_visiteurs' => 'Diskouez ar weladennerien',
185
-	'icone_arret_discussion' => 'Paouez da gemer perzh er gaoz-mañ',
186
-	'icone_calendrier' => 'Deiziataer',
187
-	'icone_configuration' => 'Kefluniad',
188
-	'icone_creer_auteur' => 'Krouiñ ur skridaozer nevez, hag e stagañ ouzh ar pennad-mañ',
189
-	'icone_creer_mot_cle' => 'Krouiñ ur ger-stur nevez hag e liammañ ouzh ar pennad-mañ',
190
-	'icone_creer_rubrique_2' => 'Krouiñ ur rubrikenn nevez',
191
-	'icone_developpement' => 'Diorenniñ',
192
-	'icone_edition' => 'Embannadur',
193
-	'icone_ma_langue' => 'Va yezh',
194
-	'icone_mes_infos' => 'Va stlennadoù',
195
-	'icone_mes_preferences' => 'Va dibaboù',
196
-	'icone_modifier_article' => 'Kemmañ ar pennad-mañ',
197
-	'icone_modifier_rubrique' => 'Kemmañ ar rubrikenn-mañ',
198
-	'icone_publication' => 'Embann',
199
-	'icone_relancer_signataire' => 'Adlañsañ ar siner',
200
-	'icone_retour' => 'Distro',
201
-	'icone_retour_article' => 'Distreiñ d’ar pennad',
202
-	'icone_squelette' => 'Frammoù',
203
-	'icone_suivi_publication' => 'Heuliañ an embann',
204
-	'icone_supprimer_cookie' => 'Diverkañ an toupin heuliañ',
205
-	'icone_supprimer_rubrique' => 'Diverkañ ar rummad-mañ',
206
-	'icone_supprimer_signature' => 'Diverkañ ar sinadur-mañ',
207
-	'icone_valider_signature' => 'Aprouiñ ar sinadur-mañ',
208
-	'image_administrer_rubrique' => 'Gallout a rit merañ ar rubrikenn-mañ',
209
-	'impossible_modifier_login_auteur' => ' Login digemm',
210
-	'impossible_modifier_pass_auteur' => 'Ger-tremen digemm.',
211
-	'info_1_article' => '1 pennad',
212
-	'info_1_auteur' => '1 aozer',
213
-	'info_1_message' => '1 kemennad',
214
-	'info_1_mot_cle' => '1 ger-alc’hwez',
215
-	'info_1_rubrique' => '1 rubrikenn',
216
-	'info_1_visiteur' => '1 gweladenner',
217
-	'info_activer_cookie' => 'Gallout a rit implijout un <b>toupin heuliañ</b>, ar pezh a dalvezo deoc’h da dremen en un doare aes eus al lec’hienn brevez d’an hini foran.',
218
-	'info_activer_menu_developpement' => 'Diskouez al roll Diorrenniñ',
219
-	'info_admin_etre_webmestre' => 'Reiñ din gwirioù ur mestr-gwiad ',
220
-	'info_admin_je_suis_webmestre' => 'mestr-gwiad <b>ez on</b>',
221
-	'info_admin_statuer_webmestre' => 'Reiñ gwirioù ur mestr-gwiad d’an amaezhier-mañ',
222
-	'info_admin_webmestre' => 'An amaezhier-mañ zo<b>mestr-gwiad</b>',
223
-	'info_administrateur' => 'Merour',
224
-	'info_administrateur_1' => 'Merour',
225
-	'info_administrateur_2' => 'al lec’hienn (<i>diwallit en ur implijout se</i>)',
226
-	'info_administrateur_site_01' => 'Ma’z oc’h merour al lec’hienn,',
227
-	'info_administrateur_site_02' => 'klikit war al liamm-mañ',
228
-	'info_administrateurs' => 'Merourien',
229
-	'info_administrer_rubrique' => 'Gallout a rit merañ ar rubrikenn-mañ',
230
-	'info_adresse' => 'er chomlec’h :',
231
-	'info_adresse_desinscription' => 'Postel evit en em zisenskrivañ : ',
232
-	'info_adresse_url' => 'Chomlec’h (URL) al lec’hienn foran',
233
-	'info_afficher_par_nb' => 'Diskouez dre',
234
-	'info_aide_en_ligne' => 'Skoazell enlinenn SPIP',
235
-	'info_ajout_image' => 'Pa ouzhpennit skeudennoù evel restroù stag ouzh ur pennad 
165
+    // I
166
+    'ical_info1' => 'War ar bajenn-mañ ez eus meur a hentenn evit chom e darempred gant buhez al lec’hienn-mañ.',
167
+    'ical_info2' => 'Evit gouzout hiroc’h diwar-benn an teknikoù-se, klaskit hardizh e-barzh <a href="@spipnet@">teuliadur SPIP</a>.',
168
+    'ical_info_calendrier' => 'Daou zeiziadur zo en ho kerz. An hini kentañ zo ur plaen eus al lec’hienn hag a ziskouez an holl bennadoù bet embannet. An eil emañ warnañ ar c’hemennoù stur, koulz hag ho kemennadennoù prevez diwezhañ: miret eo evidoc’h dre berzh un alc’hwez personel, a c’hallit kemm n’eus forzh pegoulz pa nevezot ho ker-tremen.',
169
+    'ical_methode_http' => 'Pellgargañ',
170
+    'ical_methode_webcal' => 'Kempredañ (webcal://)',
171
+    'ical_texte_js' => 'A-drugarez d’ul linenn javascript e c’hellit, en un doare aezet, diskouez ar pennadoù diwezhañ embannet war al lec’hienn-mañ, war forzh pe hini eus ho lec’hiennoù.',
172
+    'ical_texte_prive' => 'An deiziataer hiniennel-mañ a gelaou ac’hanoc’h diwar-benn nevezinti embann prevez al lec’hienn-mañ (labourioù, emgavioù, pennadoù, berrskridoù kinniget,...).',
173
+    'ical_texte_public' => 'Gant an deiziataer-mañ e c’hellit heuliañ nevezenti foran al lec’hienn (pennadoù ha berrskridoù bet embannet).',
174
+    'ical_texte_rss' => 'Gallout a rit sindikadiñ nevezenti ar forom-mañ war forzh peseurt lenner restroù XML/RSS (Rich Site Summary). A-drugarez d’ar furmad-se ivez e c’hell SPIP lenn an nevezenti war al lec’hiennoù all hag a implij ur stumm kenlotus(lec’hiennoù sindikadet).',
175
+    'ical_titre_js' => 'Javascript',
176
+    'ical_titre_mailing' => 'Roll-skignañ',
177
+    'ical_titre_rss' => 'Restroù sindikadañ',
178
+    'icone_accueil' => 'Degemer',
179
+    'icone_activer_cookie' => 'Gweredekaat an toupin heuliañ',
180
+    'icone_activite' => 'Gwerederezh',
181
+    'icone_admin_plugin' => 'Merañ an adveziantoù',
182
+    'icone_administration' => 'Trezalc’h',
183
+    'icone_afficher_auteurs' => 'Diskouez ar skridaozerien',
184
+    'icone_afficher_visiteurs' => 'Diskouez ar weladennerien',
185
+    'icone_arret_discussion' => 'Paouez da gemer perzh er gaoz-mañ',
186
+    'icone_calendrier' => 'Deiziataer',
187
+    'icone_configuration' => 'Kefluniad',
188
+    'icone_creer_auteur' => 'Krouiñ ur skridaozer nevez, hag e stagañ ouzh ar pennad-mañ',
189
+    'icone_creer_mot_cle' => 'Krouiñ ur ger-stur nevez hag e liammañ ouzh ar pennad-mañ',
190
+    'icone_creer_rubrique_2' => 'Krouiñ ur rubrikenn nevez',
191
+    'icone_developpement' => 'Diorenniñ',
192
+    'icone_edition' => 'Embannadur',
193
+    'icone_ma_langue' => 'Va yezh',
194
+    'icone_mes_infos' => 'Va stlennadoù',
195
+    'icone_mes_preferences' => 'Va dibaboù',
196
+    'icone_modifier_article' => 'Kemmañ ar pennad-mañ',
197
+    'icone_modifier_rubrique' => 'Kemmañ ar rubrikenn-mañ',
198
+    'icone_publication' => 'Embann',
199
+    'icone_relancer_signataire' => 'Adlañsañ ar siner',
200
+    'icone_retour' => 'Distro',
201
+    'icone_retour_article' => 'Distreiñ d’ar pennad',
202
+    'icone_squelette' => 'Frammoù',
203
+    'icone_suivi_publication' => 'Heuliañ an embann',
204
+    'icone_supprimer_cookie' => 'Diverkañ an toupin heuliañ',
205
+    'icone_supprimer_rubrique' => 'Diverkañ ar rummad-mañ',
206
+    'icone_supprimer_signature' => 'Diverkañ ar sinadur-mañ',
207
+    'icone_valider_signature' => 'Aprouiñ ar sinadur-mañ',
208
+    'image_administrer_rubrique' => 'Gallout a rit merañ ar rubrikenn-mañ',
209
+    'impossible_modifier_login_auteur' => ' Login digemm',
210
+    'impossible_modifier_pass_auteur' => 'Ger-tremen digemm.',
211
+    'info_1_article' => '1 pennad',
212
+    'info_1_auteur' => '1 aozer',
213
+    'info_1_message' => '1 kemennad',
214
+    'info_1_mot_cle' => '1 ger-alc’hwez',
215
+    'info_1_rubrique' => '1 rubrikenn',
216
+    'info_1_visiteur' => '1 gweladenner',
217
+    'info_activer_cookie' => 'Gallout a rit implijout un <b>toupin heuliañ</b>, ar pezh a dalvezo deoc’h da dremen en un doare aes eus al lec’hienn brevez d’an hini foran.',
218
+    'info_activer_menu_developpement' => 'Diskouez al roll Diorrenniñ',
219
+    'info_admin_etre_webmestre' => 'Reiñ din gwirioù ur mestr-gwiad ',
220
+    'info_admin_je_suis_webmestre' => 'mestr-gwiad <b>ez on</b>',
221
+    'info_admin_statuer_webmestre' => 'Reiñ gwirioù ur mestr-gwiad d’an amaezhier-mañ',
222
+    'info_admin_webmestre' => 'An amaezhier-mañ zo<b>mestr-gwiad</b>',
223
+    'info_administrateur' => 'Merour',
224
+    'info_administrateur_1' => 'Merour',
225
+    'info_administrateur_2' => 'al lec’hienn (<i>diwallit en ur implijout se</i>)',
226
+    'info_administrateur_site_01' => 'Ma’z oc’h merour al lec’hienn,',
227
+    'info_administrateur_site_02' => 'klikit war al liamm-mañ',
228
+    'info_administrateurs' => 'Merourien',
229
+    'info_administrer_rubrique' => 'Gallout a rit merañ ar rubrikenn-mañ',
230
+    'info_adresse' => 'er chomlec’h :',
231
+    'info_adresse_desinscription' => 'Postel evit en em zisenskrivañ : ',
232
+    'info_adresse_url' => 'Chomlec’h (URL) al lec’hienn foran',
233
+    'info_afficher_par_nb' => 'Diskouez dre',
234
+    'info_aide_en_ligne' => 'Skoazell enlinenn SPIP',
235
+    'info_ajout_image' => 'Pa ouzhpennit skeudennoù evel restroù stag ouzh ur pennad 
236 236
   e c’hell SPIP krouiñ ent emgefre evidoc’h skeudennoùigoù (bihanaet) eus
237 237
 ar skeudennoù enframmet. Evel-se e c’heller krouiñ, da skouer,
238 238
   ur skeudennaoueg pe ur portofolio.',
239
-	'info_ajouter_rubrique' => 'Ouzhpennañ ur rubrikenn all da vezañ meret :',
240
-	'info_annonce_nouveautes' => 'Kemenn an nevezenti',
241
-	'info_article' => 'pennad',
242
-	'info_article_2' => 'pennad',
243
-	'info_article_a_paraitre' => 'Ar pennadoù goude-deiziataet da zont',
244
-	'info_articles_02' => 'pennad',
245
-	'info_articles_2' => 'Pennad',
246
-	'info_articles_auteur' => 'Pennadoù ar skridaozer-mañ',
247
-	'info_articles_miens' => 'Va fennadoù-skrid',
248
-	'info_articles_tous' => 'An holl bennadoù-skrid',
249
-	'info_articles_trouves' => 'Pennadoù kavet',
250
-	'info_attente_validation' => 'Ho pennadoù a chom da vezañ aprouet',
251
-	'info_aucun_article' => 'Pennad-skrid ebet',
252
-	'info_aucun_auteur' => 'Aozer ebet',
253
-	'info_aucun_message' => 'kemennad ebet',
254
-	'info_aucun_rubrique' => 'Rubrikenn ebet',
255
-	'info_aujourdhui' => 'hiziv :',
256
-	'info_auteur_gere_rubriques' => 'Ar skrivagner-mañ a ver ar rubrikennoù a-heul :',
257
-	'info_auteur_gere_toutes_rubriques' => 'Ar skrivagner-mañ a ra war-dro <b>an holl rubrikennoù</b>',
258
-	'info_auteur_gere_toutes_rubriques_2' => 'Merañ a ran <b>pep rubrikenn</b>',
259
-	'info_auteurs' => 'Ar skridaozerien',
260
-	'info_auteurs_par_tri' => 'Skridaozerien@partri@',
261
-	'info_auteurs_trouves' => 'Skridaozerien kavet',
262
-	'info_authentification_externe' => 'Gwiriekadur diavaez',
263
-	'info_avertissement' => 'Kemenn diwall',
264
-	'info_barre_outils' => 'gant e varrenn ostilhoù ?',
265
-	'info_base_installee' => 'Staliet eo framm ho tiaz-titouroù.',
266
-	'info_bio' => 'Buhezskrid',
267
-	'info_cache_desactive' => 'Diwerekaet eo bet ar grubuilh evit ur pennad.',
268
-	'info_chapeau' => 'Tog',
269
-	'info_chapeau_2' => 'Tog :',
270
-	'info_chemin_acces_1' => 'Dibarzhioù : <b>hent moned er rollad tud</b>',
271
-	'info_chemin_acces_2' => 'Bremañ e rankit kefluniañ anhent moned a-benn tizhout titouroù ar rollad tud. Ezhomm zo eus an titour-se evit gallout lenn profiloù an implijerien a gaver er rollad tud.',
272
-	'info_chemin_acces_annuaire' => 'Dibarzhioù : <b>Hent moned er rollad tud</b>',
273
-	'info_choix_base' => 'Trede lankad :',
274
-	'info_classement_1' => '<sup>añ</sup> war @liste@',
275
-	'info_classement_2' => '<sup>vet</sup> war @liste@',
276
-	'info_code_acces' => 'N’ankouait ket ho kodoù moned !',
277
-	'info_config_suivi' => 'Ma’z eo ar chomlec’h-mañ hini ur roll-skignañ e c’hellit skrivañ amañ ar chomlec’h evit en em enrollañ. Gallout a ra ar chomlec’h-se bezañ un URL (hini ar bajenn Web m’en em enroller warni), pe ur postel diwar-benn un danvez bennak (da skouer : <tt>@adresse_suivi@?subject=subscribe</tt>):',
278
-	'info_config_suivi_explication' => 'Gallout a rit en em enrollañ war roll-skignañ al lec’hienn-mañ. Degaset e vo deoc’h kemennoù dre bostel pa vo kinniget pennadoù pe berrskridoù nevez neuze.',
279
-	'info_confirmer_passe' => 'Gwiriañ ar ger-tremen :',
280
-	'info_conflit_edition_avis_non_sauvegarde' => 'Diwallit, kemmet eo bet an maeziennoù-mañ e lec’h all. Setu ma n’eo ket bet enrollet ho kemmoù warno.',
281
-	'info_conflit_edition_differences' => 'Diforc’hioù :',
282
-	'info_conflit_edition_version_enregistree' => 'Ar stumm bet enrollet :',
283
-	'info_conflit_edition_votre_version' => 'Ho stumm :',
284
-	'info_connexion_base' => 'O klask kevreañ ouzh an diaz titouroù',
285
-	'info_connexion_base_donnee' => 'Kevreañ ouzh ho tiaz titouroù',
286
-	'info_connexion_ldap_ok' => 'Kevreet oc’h dre LDAP.</b><p>Gallout a rit tremen d’al lankad war-lerc’h.</p>',
287
-	'info_connexion_mysql' => 'Ho kevreadenn SQL',
288
-	'info_connexion_ok' => 'Kevreet oc’h.',
289
-	'info_contact' => 'Darempred',
290
-	'info_contenu_articles' => 'Danvez ar pennadoù',
291
-	'info_contributions' => 'Degasadennoù',
292
-	'info_creation_paragraphe' => '(Evit krouiñ rannbennadoù, lezit goullo linennoù zo traken)',
293
-	'info_creation_rubrique' => 'A-benn gallout skrivañ pennadoù <br />e rankit bezañ krouet ur rubrikenn da nebeutañ.<br />',
294
-	'info_creation_tables' => 'Krouiñ taolennoù an diaz titouroù',
295
-	'info_creer_base' => '<b>Krouiñ</b> un diaz titouroù nevez :',
296
-	'info_dans_rubrique' => 'Er rubrikenn :',
297
-	'info_date_publication_anterieure' => 'Deiziad skridaozañ kent :',
298
-	'info_date_referencement' => 'DEIZIAD MENEGERIÑ AL LEC’HIENN-MAÑ :',
299
-	'info_derniere_etape' => 'Echuet eo !',
300
-	'info_descriptif' => 'Deskrivadur :',
301
-	'info_desinstaller_plugin' => 'diverkañ a ra ar roadoù, ha diweredekaat a ra an adveziant',
302
-	'info_discussion_cours' => 'Kaozeadennoù digor',
303
-	'info_ecrire_article' => 'A-benn gallout skrivañ pennadoù e rankit bezañ krouet ur rubrikenn da nebeutañ.',
304
-	'info_email_envoi' => 'Postel kas (diret)',
305
-	'info_email_envoi_txt' => 'Skrivit amañ chomlec’h kas ar postelioù (ma ne skrivit netra e vo implijet chomlec’h an degemererien) :',
306
-	'info_email_webmestre' => 'Postel ar webmestr (diret)',
307
-	'info_envoi_email_automatique' => 'Kas postelioù emgefre',
308
-	'info_envoyer_maintenant' => 'Kas bremañ',
309
-	'info_etape_suivante' => 'Tremen d’al lankad war-lerc’h',
310
-	'info_etape_suivante_1' => 'Gallout a rit tremen d’al lankad war-lerc’h.',
311
-	'info_etape_suivante_2' => 'Gallout a rit tremen d’ar lankad war-lerc’h.',
312
-	'info_exceptions_proxy' => 'Nemedennoù evit ar proxy',
313
-	'info_exportation_base' => 'Oc’h ezporzhiañ an diaz davet @archive@',
314
-	'info_facilite_suivi_activite' => 'A-benn heuliañ aesoc’h an oberererezh e c’hell SPIP kas dre bostel,
239
+    'info_ajouter_rubrique' => 'Ouzhpennañ ur rubrikenn all da vezañ meret :',
240
+    'info_annonce_nouveautes' => 'Kemenn an nevezenti',
241
+    'info_article' => 'pennad',
242
+    'info_article_2' => 'pennad',
243
+    'info_article_a_paraitre' => 'Ar pennadoù goude-deiziataet da zont',
244
+    'info_articles_02' => 'pennad',
245
+    'info_articles_2' => 'Pennad',
246
+    'info_articles_auteur' => 'Pennadoù ar skridaozer-mañ',
247
+    'info_articles_miens' => 'Va fennadoù-skrid',
248
+    'info_articles_tous' => 'An holl bennadoù-skrid',
249
+    'info_articles_trouves' => 'Pennadoù kavet',
250
+    'info_attente_validation' => 'Ho pennadoù a chom da vezañ aprouet',
251
+    'info_aucun_article' => 'Pennad-skrid ebet',
252
+    'info_aucun_auteur' => 'Aozer ebet',
253
+    'info_aucun_message' => 'kemennad ebet',
254
+    'info_aucun_rubrique' => 'Rubrikenn ebet',
255
+    'info_aujourdhui' => 'hiziv :',
256
+    'info_auteur_gere_rubriques' => 'Ar skrivagner-mañ a ver ar rubrikennoù a-heul :',
257
+    'info_auteur_gere_toutes_rubriques' => 'Ar skrivagner-mañ a ra war-dro <b>an holl rubrikennoù</b>',
258
+    'info_auteur_gere_toutes_rubriques_2' => 'Merañ a ran <b>pep rubrikenn</b>',
259
+    'info_auteurs' => 'Ar skridaozerien',
260
+    'info_auteurs_par_tri' => 'Skridaozerien@partri@',
261
+    'info_auteurs_trouves' => 'Skridaozerien kavet',
262
+    'info_authentification_externe' => 'Gwiriekadur diavaez',
263
+    'info_avertissement' => 'Kemenn diwall',
264
+    'info_barre_outils' => 'gant e varrenn ostilhoù ?',
265
+    'info_base_installee' => 'Staliet eo framm ho tiaz-titouroù.',
266
+    'info_bio' => 'Buhezskrid',
267
+    'info_cache_desactive' => 'Diwerekaet eo bet ar grubuilh evit ur pennad.',
268
+    'info_chapeau' => 'Tog',
269
+    'info_chapeau_2' => 'Tog :',
270
+    'info_chemin_acces_1' => 'Dibarzhioù : <b>hent moned er rollad tud</b>',
271
+    'info_chemin_acces_2' => 'Bremañ e rankit kefluniañ anhent moned a-benn tizhout titouroù ar rollad tud. Ezhomm zo eus an titour-se evit gallout lenn profiloù an implijerien a gaver er rollad tud.',
272
+    'info_chemin_acces_annuaire' => 'Dibarzhioù : <b>Hent moned er rollad tud</b>',
273
+    'info_choix_base' => 'Trede lankad :',
274
+    'info_classement_1' => '<sup>añ</sup> war @liste@',
275
+    'info_classement_2' => '<sup>vet</sup> war @liste@',
276
+    'info_code_acces' => 'N’ankouait ket ho kodoù moned !',
277
+    'info_config_suivi' => 'Ma’z eo ar chomlec’h-mañ hini ur roll-skignañ e c’hellit skrivañ amañ ar chomlec’h evit en em enrollañ. Gallout a ra ar chomlec’h-se bezañ un URL (hini ar bajenn Web m’en em enroller warni), pe ur postel diwar-benn un danvez bennak (da skouer : <tt>@adresse_suivi@?subject=subscribe</tt>):',
278
+    'info_config_suivi_explication' => 'Gallout a rit en em enrollañ war roll-skignañ al lec’hienn-mañ. Degaset e vo deoc’h kemennoù dre bostel pa vo kinniget pennadoù pe berrskridoù nevez neuze.',
279
+    'info_confirmer_passe' => 'Gwiriañ ar ger-tremen :',
280
+    'info_conflit_edition_avis_non_sauvegarde' => 'Diwallit, kemmet eo bet an maeziennoù-mañ e lec’h all. Setu ma n’eo ket bet enrollet ho kemmoù warno.',
281
+    'info_conflit_edition_differences' => 'Diforc’hioù :',
282
+    'info_conflit_edition_version_enregistree' => 'Ar stumm bet enrollet :',
283
+    'info_conflit_edition_votre_version' => 'Ho stumm :',
284
+    'info_connexion_base' => 'O klask kevreañ ouzh an diaz titouroù',
285
+    'info_connexion_base_donnee' => 'Kevreañ ouzh ho tiaz titouroù',
286
+    'info_connexion_ldap_ok' => 'Kevreet oc’h dre LDAP.</b><p>Gallout a rit tremen d’al lankad war-lerc’h.</p>',
287
+    'info_connexion_mysql' => 'Ho kevreadenn SQL',
288
+    'info_connexion_ok' => 'Kevreet oc’h.',
289
+    'info_contact' => 'Darempred',
290
+    'info_contenu_articles' => 'Danvez ar pennadoù',
291
+    'info_contributions' => 'Degasadennoù',
292
+    'info_creation_paragraphe' => '(Evit krouiñ rannbennadoù, lezit goullo linennoù zo traken)',
293
+    'info_creation_rubrique' => 'A-benn gallout skrivañ pennadoù <br />e rankit bezañ krouet ur rubrikenn da nebeutañ.<br />',
294
+    'info_creation_tables' => 'Krouiñ taolennoù an diaz titouroù',
295
+    'info_creer_base' => '<b>Krouiñ</b> un diaz titouroù nevez :',
296
+    'info_dans_rubrique' => 'Er rubrikenn :',
297
+    'info_date_publication_anterieure' => 'Deiziad skridaozañ kent :',
298
+    'info_date_referencement' => 'DEIZIAD MENEGERIÑ AL LEC’HIENN-MAÑ :',
299
+    'info_derniere_etape' => 'Echuet eo !',
300
+    'info_descriptif' => 'Deskrivadur :',
301
+    'info_desinstaller_plugin' => 'diverkañ a ra ar roadoù, ha diweredekaat a ra an adveziant',
302
+    'info_discussion_cours' => 'Kaozeadennoù digor',
303
+    'info_ecrire_article' => 'A-benn gallout skrivañ pennadoù e rankit bezañ krouet ur rubrikenn da nebeutañ.',
304
+    'info_email_envoi' => 'Postel kas (diret)',
305
+    'info_email_envoi_txt' => 'Skrivit amañ chomlec’h kas ar postelioù (ma ne skrivit netra e vo implijet chomlec’h an degemererien) :',
306
+    'info_email_webmestre' => 'Postel ar webmestr (diret)',
307
+    'info_envoi_email_automatique' => 'Kas postelioù emgefre',
308
+    'info_envoyer_maintenant' => 'Kas bremañ',
309
+    'info_etape_suivante' => 'Tremen d’al lankad war-lerc’h',
310
+    'info_etape_suivante_1' => 'Gallout a rit tremen d’al lankad war-lerc’h.',
311
+    'info_etape_suivante_2' => 'Gallout a rit tremen d’ar lankad war-lerc’h.',
312
+    'info_exceptions_proxy' => 'Nemedennoù evit ar proxy',
313
+    'info_exportation_base' => 'Oc’h ezporzhiañ an diaz davet @archive@',
314
+    'info_facilite_suivi_activite' => 'A-benn heuliañ aesoc’h an oberererezh e c’hell SPIP kas dre bostel,
315 315
   d’ul roll-skignañ enni ar skridaozerien da skouer,
316 316
   ar goulennoù embann ha kadarnaat ar pennadoù.',
317
-	'info_fichiers_authent' => 'Restroù gwiriekaat « .htpasswd »',
318
-	'info_forums_abo_invites' => 'Foromoù dre goumanant zo war ho lec’hienn ; pedet e vez ar weladennerien d’en em enrollañ war lodenn foran al lec’hienn neuze.',
319
-	'info_gauche_admin_tech' => '<b>N’eus nemet an dud e-karg eus al lec’hienn a c’hall mont war ar bajenn-mañ.</b><p> Warni e reer al labourioù kempenn. Evit traoù zo ez eus ezhomm eus un argerzh testeniekaat dibar a c’houlenn kaout ur moned FTP ouzh al lec’hienn.</p>',
320
-	'info_gauche_admin_vider' => '<b>N’eus nemet an dud e-karg a c’hall mont war ar bajenn-mañ.</b><p>Warni e reer al labourioù kempenn. Evit traoù zo ez eus ezhomm eus un argerzh testeniekaat dibar a c’houlenn kaout ur moned FTP ouzh al lec’hienn.</p>',
321
-	'info_gauche_auteurs' => 'Amañ e kavot an holl dud a skriv war al lec’hienn.
317
+    'info_fichiers_authent' => 'Restroù gwiriekaat « .htpasswd »',
318
+    'info_forums_abo_invites' => 'Foromoù dre goumanant zo war ho lec’hienn ; pedet e vez ar weladennerien d’en em enrollañ war lodenn foran al lec’hienn neuze.',
319
+    'info_gauche_admin_tech' => '<b>N’eus nemet an dud e-karg eus al lec’hienn a c’hall mont war ar bajenn-mañ.</b><p> Warni e reer al labourioù kempenn. Evit traoù zo ez eus ezhomm eus un argerzh testeniekaat dibar a c’houlenn kaout ur moned FTP ouzh al lec’hienn.</p>',
320
+    'info_gauche_admin_vider' => '<b>N’eus nemet an dud e-karg a c’hall mont war ar bajenn-mañ.</b><p>Warni e reer al labourioù kempenn. Evit traoù zo ez eus ezhomm eus un argerzh testeniekaat dibar a c’houlenn kaout ur moned FTP ouzh al lec’hienn.</p>',
321
+    'info_gauche_auteurs' => 'Amañ e kavot an holl dud a skriv war al lec’hienn.
322 322
  Diouzh liv o skeudennig e c’hellit gouzout o c’harg resis (merour=gwer; skridaozer=melen).',
323
-	'info_gauche_auteurs_exterieurs' => 'E glaz emañ diskouezet ar skridaozerien diavaez, hep moned ouzh al lec’hienn ;
323
+    'info_gauche_auteurs_exterieurs' => 'E glaz emañ diskouezet ar skridaozerien diavaez, hep moned ouzh al lec’hienn ;
324 324
   Gant ur pod-lastez eo aroueziet ar re bet diverket.',
325
-	'info_gauche_messagerie' => 'Dre ar postelerezh e c’hellit eskemm kemennadennoù gant skridaozerien all, derc’hel notennigoù-eñvor, pe, ma’z oc’h merour, skignañ kemennoù war bajenn degemer al lodenn brevez.',
326
-	'info_gauche_statistiques_referers' => 'War ar bajenn-mañ emañ roll ar <i>referers</i>, da lavaret eo al lec’hiennoù enno liammoù a gas davet ho lec’hienn deoc’h, evit dec’h hag hiziv hepken. Riñset e vez ar roll-mañ bemdez.',
327
-	'info_gauche_visiteurs_enregistres' => 'Amañ emañ ar weladennerien enrollet evit gallout kemer perzh e foromoù dre goumanant lodenn foran al lec’hienn.',
328
-	'info_generation_miniatures_images' => 'Krouiñ skeudennoùigoù',
329
-	'info_gerer_trad_objets' => '@objets@ : merañ liammoù an troidigezh',
330
-	'info_hebergeur_desactiver_envoi_email' => 'Herberc’herien zo a nac’h ma vefe kaset postelioù emgedre adal o servijerioù. En deoguezh-se, ne’z aio ket ar servijoù-se en-dro.',
331
-	'info_hier' => 'dec’h :',
332
-	'info_identification_publique' => 'Hoc’h anv foran...',
333
-	'info_image_process' => 'Diuzit an hentenn wellañ da sevel skeudennoùigoù o klikañ war ar skeudenn a zere.',
334
-	'info_image_process2' => '<b>Evezh.</b> <i>Ma ne weler skeudenn ebet e talvez n’eo ket bet kefluniet an dafariad a ro bod deoc’h evit ober gant seurt binvioù. Mar fell deoc’h implijout ar servijoù-se, kit e darempred gant an dud e-karg, ha goulennit war-lerc’h an astennoù «GD» pe «Imagick».</i>',
335
-	'info_images_auto' => 'Skeudennoù jedet ent emgefre',
336
-	'info_informations_personnelles' => 'Titouroù personel',
337
-	'info_inscription' => 'enskrivadur el linenn',
338
-	'info_inscription_automatique' => 'Enskrivadur emgefreek ar skridaozerien nevez.',
339
-	'info_jeu_caractere' => 'Strobad arouezennoù al lec’hienn',
340
-	'info_jours' => 'deiz',
341
-	'info_laisser_champs_vides' => '(lezit ar maeziennoù-mañ goullo)',
342
-	'info_langues' => 'Yezhoù al lec’hienn',
343
-	'info_ldap_ok' => 'Staliet eo ar gwiriekaat LDAP.',
344
-	'info_lien_hypertexte' => 'Liamm gourskrid :',
345
-	'info_liste_nouveautes_envoyee' => 'Kaset eo bet roll an nevezentioù',
346
-	'info_liste_redacteurs_connectes' => 'Roll ar skridaozerien kevreet',
347
-	'info_login_existant' => 'C’hoazh ez eus eus ar ger kevreañ-mañ.',
348
-	'info_login_trop_court' => 'Re verr eo ar ger-kevreañ.',
349
-	'info_login_trop_court_car_pluriel' => 'Ret eo lakaat@nb@ arouezenn da vihanañ.',
350
-	'info_logos' => 'Al logoioù',
351
-	'info_maximum' => 'd’ar muiañ :',
352
-	'info_meme_rubrique' => 'En hevelep rubrikenn',
353
-	'info_message_en_redaction' => 'Ar c’hemennadennoù emaoc’h o skrivañ',
354
-	'info_message_technique' => 'Kemennadenn deknikel :',
355
-	'info_messagerie_interne' => 'Postelerezh diabarzh',
356
-	'info_mise_a_niveau_base' => 'lakaat ho tiaz titouroù SQL a-live',
357
-	'info_mise_a_niveau_base_2' => '{{Diwallit!}} Staliet ho peus ur stumm eus SPIP {koshoc’h} eget an hini a oa war al lec’hienn-mañ a-raok .
325
+    'info_gauche_messagerie' => 'Dre ar postelerezh e c’hellit eskemm kemennadennoù gant skridaozerien all, derc’hel notennigoù-eñvor, pe, ma’z oc’h merour, skignañ kemennoù war bajenn degemer al lodenn brevez.',
326
+    'info_gauche_statistiques_referers' => 'War ar bajenn-mañ emañ roll ar <i>referers</i>, da lavaret eo al lec’hiennoù enno liammoù a gas davet ho lec’hienn deoc’h, evit dec’h hag hiziv hepken. Riñset e vez ar roll-mañ bemdez.',
327
+    'info_gauche_visiteurs_enregistres' => 'Amañ emañ ar weladennerien enrollet evit gallout kemer perzh e foromoù dre goumanant lodenn foran al lec’hienn.',
328
+    'info_generation_miniatures_images' => 'Krouiñ skeudennoùigoù',
329
+    'info_gerer_trad_objets' => '@objets@ : merañ liammoù an troidigezh',
330
+    'info_hebergeur_desactiver_envoi_email' => 'Herberc’herien zo a nac’h ma vefe kaset postelioù emgedre adal o servijerioù. En deoguezh-se, ne’z aio ket ar servijoù-se en-dro.',
331
+    'info_hier' => 'dec’h :',
332
+    'info_identification_publique' => 'Hoc’h anv foran...',
333
+    'info_image_process' => 'Diuzit an hentenn wellañ da sevel skeudennoùigoù o klikañ war ar skeudenn a zere.',
334
+    'info_image_process2' => '<b>Evezh.</b> <i>Ma ne weler skeudenn ebet e talvez n’eo ket bet kefluniet an dafariad a ro bod deoc’h evit ober gant seurt binvioù. Mar fell deoc’h implijout ar servijoù-se, kit e darempred gant an dud e-karg, ha goulennit war-lerc’h an astennoù «GD» pe «Imagick».</i>',
335
+    'info_images_auto' => 'Skeudennoù jedet ent emgefre',
336
+    'info_informations_personnelles' => 'Titouroù personel',
337
+    'info_inscription' => 'enskrivadur el linenn',
338
+    'info_inscription_automatique' => 'Enskrivadur emgefreek ar skridaozerien nevez.',
339
+    'info_jeu_caractere' => 'Strobad arouezennoù al lec’hienn',
340
+    'info_jours' => 'deiz',
341
+    'info_laisser_champs_vides' => '(lezit ar maeziennoù-mañ goullo)',
342
+    'info_langues' => 'Yezhoù al lec’hienn',
343
+    'info_ldap_ok' => 'Staliet eo ar gwiriekaat LDAP.',
344
+    'info_lien_hypertexte' => 'Liamm gourskrid :',
345
+    'info_liste_nouveautes_envoyee' => 'Kaset eo bet roll an nevezentioù',
346
+    'info_liste_redacteurs_connectes' => 'Roll ar skridaozerien kevreet',
347
+    'info_login_existant' => 'C’hoazh ez eus eus ar ger kevreañ-mañ.',
348
+    'info_login_trop_court' => 'Re verr eo ar ger-kevreañ.',
349
+    'info_login_trop_court_car_pluriel' => 'Ret eo lakaat@nb@ arouezenn da vihanañ.',
350
+    'info_logos' => 'Al logoioù',
351
+    'info_maximum' => 'd’ar muiañ :',
352
+    'info_meme_rubrique' => 'En hevelep rubrikenn',
353
+    'info_message_en_redaction' => 'Ar c’hemennadennoù emaoc’h o skrivañ',
354
+    'info_message_technique' => 'Kemennadenn deknikel :',
355
+    'info_messagerie_interne' => 'Postelerezh diabarzh',
356
+    'info_mise_a_niveau_base' => 'lakaat ho tiaz titouroù SQL a-live',
357
+    'info_mise_a_niveau_base_2' => '{{Diwallit!}} Staliet ho peus ur stumm eus SPIP {koshoc’h} eget an hini a oa war al lec’hienn-mañ a-raok .
358 358
 Riskloù zo e vefe distrujet ho tiaz titouroù pe ne’z afe ket en-dro ken.<br />{{Adstailhit restroù SPIP.}}',
359
-	'info_modification_enregistree' => 'lerc’hwezet eo bet ho taskemm',
360
-	'info_modifier_auteur' => 'Kemmañ an aozer :',
361
-	'info_modifier_rubrique' => 'Kemmañ ar rubrikenn :',
362
-	'info_modifier_titre' => 'Kemmañ : @titre@',
363
-	'info_mon_site_spip' => 'Ma lec’hienn SPIP',
364
-	'info_moyenne' => 'Keidenn :',
365
-	'info_multi_cet_article' => 'Yezh ar pennad-mañ :',
366
-	'info_multi_langues_choisies' => 'Dibabit amañ dindan ar yezhoù a c’hell skridaozerien ho lec’hienn skrivañ enno.
359
+    'info_modification_enregistree' => 'lerc’hwezet eo bet ho taskemm',
360
+    'info_modifier_auteur' => 'Kemmañ an aozer :',
361
+    'info_modifier_rubrique' => 'Kemmañ ar rubrikenn :',
362
+    'info_modifier_titre' => 'Kemmañ : @titre@',
363
+    'info_mon_site_spip' => 'Ma lec’hienn SPIP',
364
+    'info_moyenne' => 'Keidenn :',
365
+    'info_multi_cet_article' => 'Yezh ar pennad-mañ :',
366
+    'info_multi_langues_choisies' => 'Dibabit amañ dindan ar yezhoù a c’hell skridaozerien ho lec’hienn skrivañ enno.
367 367
   Ar yezhoù bet implijet betek-henn (diskouezet da gentañ) n’hallont ket bezañ lamet kuit.',
368
-	'info_multi_objets' => '@objets@ : gweredekaat lañser ar yezh',
369
-	'info_multi_secteurs' => '...evit rubrikennoù ar wrizienn hepken ?',
370
-	'info_nb_articles' => '@nb@ pennadoù-skrid',
371
-	'info_nb_auteurs' => '@nb@ aozerion',
372
-	'info_nb_messages' => '@nb@ kemennadoù',
373
-	'info_nb_mots_cles' => '@nb@ gerioù-alc’hwez',
374
-	'info_nb_rubriques' => '@nb@ rubrikennoù',
375
-	'info_nb_visiteurs' => '@nb@ gweladennerion',
376
-	'info_nom' => 'Anv',
377
-	'info_nom_destinataire' => 'Anv an degemerer',
378
-	'info_nom_pas_conforme' => 'n’eo ket aotreet an tagoù html ',
379
-	'info_nom_site' => 'Anv ho lec’hienn',
380
-	'info_nombre_articles' => '@nb_articles@ pennad,',
381
-	'info_nombre_rubriques' => '@nb_rubriques@ rubrikenn,',
382
-	'info_nombre_sites' => '@nb_sites@ lec’hienn,',
383
-	'info_non_deplacer' => 'Na zilec’hiañ...',
384
-	'info_non_envoi_annonce_dernieres_nouveautes' => 'Gallout a ra SPIP kelaouiñ en un doare reoliek war nevezenti al lec’hienn
368
+    'info_multi_objets' => '@objets@ : gweredekaat lañser ar yezh',
369
+    'info_multi_secteurs' => '...evit rubrikennoù ar wrizienn hepken ?',
370
+    'info_nb_articles' => '@nb@ pennadoù-skrid',
371
+    'info_nb_auteurs' => '@nb@ aozerion',
372
+    'info_nb_messages' => '@nb@ kemennadoù',
373
+    'info_nb_mots_cles' => '@nb@ gerioù-alc’hwez',
374
+    'info_nb_rubriques' => '@nb@ rubrikennoù',
375
+    'info_nb_visiteurs' => '@nb@ gweladennerion',
376
+    'info_nom' => 'Anv',
377
+    'info_nom_destinataire' => 'Anv an degemerer',
378
+    'info_nom_pas_conforme' => 'n’eo ket aotreet an tagoù html ',
379
+    'info_nom_site' => 'Anv ho lec’hienn',
380
+    'info_nombre_articles' => '@nb_articles@ pennad,',
381
+    'info_nombre_rubriques' => '@nb_rubriques@ rubrikenn,',
382
+    'info_nombre_sites' => '@nb_sites@ lec’hienn,',
383
+    'info_non_deplacer' => 'Na zilec’hiañ...',
384
+    'info_non_envoi_annonce_dernieres_nouveautes' => 'Gallout a ra SPIP kelaouiñ en un doare reoliek war nevezenti al lec’hienn
385 385
   (pennadoù ha berrskridoù embannet nevez zo).',
386
-	'info_non_envoi_liste_nouveautes' => 'Chom hep kas roll an nevezenti',
387
-	'info_non_modifiable' => 'n’hall ket bezañ kemmet',
388
-	'info_non_suppression_mot_cle' => 'ne fell ket din diverkañ ar ger-stur-mañ.',
389
-	'info_notes' => 'Notennoù',
390
-	'info_nouvel_article' => 'Pennad nevez',
391
-	'info_nouvelle_traduction' => 'Troidigezh nevez :',
392
-	'info_numero_article' => 'PENNAD NIVERENN :',
393
-	'info_obligatoire_02' => '[Rekis]',
394
-	'info_option_accepter_visiteurs' => 'Aotren enrolladennoù gweladennerien al lec’hienn foran',
395
-	'info_option_ne_pas_accepter_visiteurs' => 'Nac’hañ enrolladennoù ar weladennerien',
396
-	'info_options_avancees' => 'DIBARZHIOÙ PISHOC’H',
397
-	'info_ou' => 'pe...',
398
-	'info_page_interdite' => 'Pajenn difennet',
399
-	'info_par_nom' => 'dre anv',
400
-	'info_par_nombre_article' => 'dre an niver a bennadoù',
401
-	'info_par_statut' => 'dre statud',
402
-	'info_par_tri' => '’(dre @tri@)’',
403
-	'info_passe_trop_court' => 'Ger-tremen re verr.',
404
-	'info_passe_trop_court_car_pluriel' => 'Lakait d’’ar vihanañ @nb@ arouezenn er ger-tremen.',
405
-	'info_passes_identiques' => 'Ne glot ket an daou c’her-tremen.',
406
-	'info_plus_cinq_car' => 'ouzhpenn pemp arouezenn',
407
-	'info_plus_cinq_car_2' => '(Ouzhpenn 5 arouezenn)',
408
-	'info_plus_trois_car' => '(Ouzhpenn 3 arouezenn)',
409
-	'info_popularite' => 'brud; : @popularite@ ; gweladennoù : @visites@',
410
-	'info_post_scriptum' => 'Goude-skrid',
411
-	'info_post_scriptum_2' => 'Goude-skrid :',
412
-	'info_pour' => 'evit',
413
-	'info_preview_texte' => 'Posupl eo rakwelet  holl bennadoù al lec’h gant ar statud « kinniget » d’an nebeutañ, hag an holl verrskridoù a vezer an oberour anezho. Daoust ha dleout a rafe an holl verourien gallout en ober, pe ar skridaozerien, pe den ebet ?',
414
-	'info_procedez_par_etape' => 'kit war-raok pazenn-ha-pazenn',
415
-	'info_procedure_maj_version' => 'rankout a ra al labour hizivaat bezañ lañset a-benn azasaat 
386
+    'info_non_envoi_liste_nouveautes' => 'Chom hep kas roll an nevezenti',
387
+    'info_non_modifiable' => 'n’hall ket bezañ kemmet',
388
+    'info_non_suppression_mot_cle' => 'ne fell ket din diverkañ ar ger-stur-mañ.',
389
+    'info_notes' => 'Notennoù',
390
+    'info_nouvel_article' => 'Pennad nevez',
391
+    'info_nouvelle_traduction' => 'Troidigezh nevez :',
392
+    'info_numero_article' => 'PENNAD NIVERENN :',
393
+    'info_obligatoire_02' => '[Rekis]',
394
+    'info_option_accepter_visiteurs' => 'Aotren enrolladennoù gweladennerien al lec’hienn foran',
395
+    'info_option_ne_pas_accepter_visiteurs' => 'Nac’hañ enrolladennoù ar weladennerien',
396
+    'info_options_avancees' => 'DIBARZHIOÙ PISHOC’H',
397
+    'info_ou' => 'pe...',
398
+    'info_page_interdite' => 'Pajenn difennet',
399
+    'info_par_nom' => 'dre anv',
400
+    'info_par_nombre_article' => 'dre an niver a bennadoù',
401
+    'info_par_statut' => 'dre statud',
402
+    'info_par_tri' => '’(dre @tri@)’',
403
+    'info_passe_trop_court' => 'Ger-tremen re verr.',
404
+    'info_passe_trop_court_car_pluriel' => 'Lakait d’’ar vihanañ @nb@ arouezenn er ger-tremen.',
405
+    'info_passes_identiques' => 'Ne glot ket an daou c’her-tremen.',
406
+    'info_plus_cinq_car' => 'ouzhpenn pemp arouezenn',
407
+    'info_plus_cinq_car_2' => '(Ouzhpenn 5 arouezenn)',
408
+    'info_plus_trois_car' => '(Ouzhpenn 3 arouezenn)',
409
+    'info_popularite' => 'brud; : @popularite@ ; gweladennoù : @visites@',
410
+    'info_post_scriptum' => 'Goude-skrid',
411
+    'info_post_scriptum_2' => 'Goude-skrid :',
412
+    'info_pour' => 'evit',
413
+    'info_preview_texte' => 'Posupl eo rakwelet  holl bennadoù al lec’h gant ar statud « kinniget » d’an nebeutañ, hag an holl verrskridoù a vezer an oberour anezho. Daoust ha dleout a rafe an holl verourien gallout en ober, pe ar skridaozerien, pe den ebet ?',
414
+    'info_procedez_par_etape' => 'kit war-raok pazenn-ha-pazenn',
415
+    'info_procedure_maj_version' => 'rankout a ra al labour hizivaat bezañ lañset a-benn azasaat 
416 416
  an diaz titouroù ouzh stumm nevez SPIP.',
417
-	'info_proxy_ok' => 'Mat eo bet disoc’h arnod ar proksi.',
418
-	'info_ps' => 'G.S.',
419
-	'info_publier' => 'embann',
420
-	'info_publies' => 'Ho pennadoù bet embannet',
421
-	'info_question_accepter_visiteurs' => 'M’eo resisaet e frammoù ho lec’hienn e c’hall ar weladennerien en em enrollañ hep moned ouzh al lodenn brevez, gweredekait an dibarzh a-is :',
422
-	'info_question_inscription_nouveaux_redacteurs' => 'Hag aotren a rit e c’hallfe skridaozerien nevez en em enrollañ adalek al lec’hienn foran ?
417
+    'info_proxy_ok' => 'Mat eo bet disoc’h arnod ar proksi.',
418
+    'info_ps' => 'G.S.',
419
+    'info_publier' => 'embann',
420
+    'info_publies' => 'Ho pennadoù bet embannet',
421
+    'info_question_accepter_visiteurs' => 'M’eo resisaet e frammoù ho lec’hienn e c’hall ar weladennerien en em enrollañ hep moned ouzh al lodenn brevez, gweredekait an dibarzh a-is :',
422
+    'info_question_inscription_nouveaux_redacteurs' => 'Hag aotren a rit e c’hallfe skridaozerien nevez en em enrollañ adalek al lec’hienn foran ?
423 423
   Ma asantit e c’hallo ar weladennerien en em enskrivañ adalek ur furmskrid emgefreek, 
424 424
   ha gouest e vint neuze da dizhout al lodenn brevez evit kinnig o fennadoù dezho o-unan.
425 425
   <blockquote><i>Da vare an enrollañ e vez kaset ur postel emgefreek d’ar skridaozerien
426 426
   ennañ ar c’hodoù da c’hallout dont tre el lec’hienn.
427 427
   Gant herberc’herien zo e vez difennet kas postelioù adalek o servijerioù,
428 428
   en degouezh-se ne vo ket tu en em enrollañ ent emgefre.</i></blockquote>',
429
-	'info_qui_edite' => '@nom_auteur_modif@ en deus labouret war an danvez-se @date_diff@ minutes zo',
430
-	'info_racine_site' => 'Gwrizienn al lec’hienn',
431
-	'info_recharger_page' => 'Adkargit ar-bajenn-mañ a-raok pell, mar plij.',
432
-	'info_recherche_auteur_zero' => 'N’eus bet kavet disoc’h ebet evit « @cherche_auteur@ ».',
433
-	'info_recommencer' => 'Klaskit en-dro mar plij.',
434
-	'info_redacteur_1' => 'Skridaozer',
435
-	'info_redacteur_2' => 'aotreet da vont war al lodenn brevez (<i>erbedet</i>)',
436
-	'info_redacteurs' => 'Skridaozerien',
437
-	'info_redaction_en_cours' => 'O VEZAÑ SKRIDAOZET',
438
-	'info_redirection' => 'Adheñchañ',
439
-	'info_redirection_activee' => 'War adwerediñ',
440
-	'info_redirection_boucle' => 'Emaoc’h o klask adkas ur pennad-skrid warnañ e-unan.',
441
-	'info_redirection_desactivee' => 'Torret eo bet an adwerediñ.',
442
-	'info_refuses' => 'Ho pennadoù bet nac’het',
443
-	'info_reglage_ldap' => 'Dibarzhioù : <b>Reizhañ an enporzhiañ LDAP</b>',
444
-	'info_renvoi_article' => '<b>Adheñchañ.</b> Adkas a ra ar pennad-mañ d’ar bajenn :',
445
-	'info_reserve_admin' => 'N’eus nemet ar verourien a c’hall kemmañ ar chomlec’h-mañ.',
446
-	'info_restreindre_rubrique' => 'Strishaat ar merañ d’ar rubrikenn-mañ :',
447
-	'info_resultat_recherche' => 'Disoc’hoù an enklask :',
448
-	'info_rubriques' => 'Rubrikennoù',
449
-	'info_rubriques_02' => 'rubrikennoù',
450
-	'info_rubriques_trouvees' => 'Rubrikennoù bet kavet',
451
-	'info_sans_titre' => 'Titl ebet',
452
-	'info_selection_chemin_acces' => '<b>Diuzit</b> amañ dindan an hent evit tizhout ar rollad tud :',
453
-	'info_signatures' => 'sinadurioù',
454
-	'info_site' => 'Lec’hienn',
455
-	'info_site_2' => 'lec’hienn :',
456
-	'info_site_min' => 'lec’hienn',
457
-	'info_site_reference_2' => 'Lec’hienn menegeret',
458
-	'info_site_web' => 'Load internet :',
459
-	'info_sites' => 'lec’hiennoù',
460
-	'info_sites_lies_mot' => 'Al lec’hiennoù menegeret liammet ouzh ar ger-stur-mañ',
461
-	'info_sites_proxy' => 'Implijout ur proksi',
462
-	'info_sites_trouves' => 'Lec’hiennoù bet kavet',
463
-	'info_sous_titre' => 'Istitl :',
464
-	'info_statut_administrateur' => 'Merour',
465
-	'info_statut_auteur' => 'Statud ar skridaozer-mañ :',
466
-	'info_statut_auteur_2' => 'Me a zo',
467
-	'info_statut_auteur_a_confirmer' => 'Enskrivadur da gadarnaat',
468
-	'info_statut_auteur_autre' => 'Statud all :',
469
-	'info_statut_redacteur' => 'Skridaozer',
470
-	'info_statut_utilisateurs_1' => 'Staelad dre ziouer an implijerion enporzhiet',
471
-	'info_statut_utilisateurs_2' => 'Dibabit ar statud da reiñ da dud ar rollad tud LDAP pa gevreont evit ar wech kentañ. Gallout a reoo da c’houde kemmañ ar statud-se unan evit pep aozer unan hag unan.',
472
-	'info_suivi_activite' => 'Heuliañ an embannerezh',
473
-	'info_surtitre' => 'Ustitl :',
474
-	'info_syndication_integrale_1' => 'Kinnig a ra ho lec’hienn restroù sindikadañ (gwelet « <a href="@url@">@titre@</a> »).',
475
-	'info_syndication_integrale_2' => 'Ha c’hoant hoc’h eus da ginnig ar pennadoù penn-da-benn, pe embann un diverrañ anezho, ennañ un nebeud kantadoù a arouezennoù ?',
476
-	'info_table_prefix' => 'Ma staliit meur a lec’hienn war ar memes diaz titouroù e c’hellit kemmañ ar rakgerioù zo e penn-kentañ anv an diazoù titouroù; ret eo deoc’h skrivañ gant lizherennoù bihan hep tired warno (ñ, ù, é, à, ...) hag hep esaouenn.',
477
-	'info_taille_maximale_images' => 'Emañ SPIP o vont da arnodiñ ment vrasañ posupl ar skeudennoù a c’hell bezañ meret gantañ (e milionoù a bikseloù).<br />Ne vo ket bihanaet ar skeudennoù brasoc’h.',
478
-	'info_taille_maximale_vignette' => 'Ment vrasañ ar skeudennoùigoù krouet gant ar reizhiad :',
479
-	'info_terminer_installation' => 'Bremañ e c’hellit echuiñ gant an argerzh staliañ standard.',
480
-	'info_texte' => 'Testenn',
481
-	'info_texte_explicatif' => 'Testenn displegañ',
482
-	'info_texte_long' => '(Dre ma’z eo hir an destenn eo bet rannet e meur a lodenn, a vo adpeget asambles goude ma vo bet aprouet an destenn)',
483
-	'info_texte_message' => 'Testenn ho kemennadenn :',
484
-	'info_texte_message_02' => 'Testenn ar gemennadenn',
485
-	'info_titre' => 'Titl :',
486
-	'info_total' => 'hollad :',
487
-	'info_tous_articles_en_redaction' => 'An holl bennadoù emeur o skridaozañ',
488
-	'info_tous_articles_presents' => 'An holl pennadoù bet embannet er rubrikenn-mañ',
489
-	'info_tous_articles_refuses' => 'An holl bennadoù distaolet',
490
-	'info_tous_les' => 'an holl :',
491
-	'info_tout_site' => 'Al lec’hienn a-bezh',
492
-	'info_tout_site2' => 'N’eo ket bet troet ar pennad er yezh-mañ.',
493
-	'info_tout_site3' => 'Troet eo bet ar pennad, met abaoe eo bet kemmet ar pennad orin. Ret eo nevesaat an droidigezh.',
494
-	'info_tout_site4' => 'Troet eo bet ar pennad er yezh-mañ, ha n’eus ket ezhomm da nevesaat an droidigezh.',
495
-	'info_tout_site5' => 'Pennad orin.',
496
-	'info_tout_site6' => '<b>Diwallit :</b>Ne vez diskouezet nemet ar pennadoù orin.
429
+    'info_qui_edite' => '@nom_auteur_modif@ en deus labouret war an danvez-se @date_diff@ minutes zo',
430
+    'info_racine_site' => 'Gwrizienn al lec’hienn',
431
+    'info_recharger_page' => 'Adkargit ar-bajenn-mañ a-raok pell, mar plij.',
432
+    'info_recherche_auteur_zero' => 'N’eus bet kavet disoc’h ebet evit « @cherche_auteur@ ».',
433
+    'info_recommencer' => 'Klaskit en-dro mar plij.',
434
+    'info_redacteur_1' => 'Skridaozer',
435
+    'info_redacteur_2' => 'aotreet da vont war al lodenn brevez (<i>erbedet</i>)',
436
+    'info_redacteurs' => 'Skridaozerien',
437
+    'info_redaction_en_cours' => 'O VEZAÑ SKRIDAOZET',
438
+    'info_redirection' => 'Adheñchañ',
439
+    'info_redirection_activee' => 'War adwerediñ',
440
+    'info_redirection_boucle' => 'Emaoc’h o klask adkas ur pennad-skrid warnañ e-unan.',
441
+    'info_redirection_desactivee' => 'Torret eo bet an adwerediñ.',
442
+    'info_refuses' => 'Ho pennadoù bet nac’het',
443
+    'info_reglage_ldap' => 'Dibarzhioù : <b>Reizhañ an enporzhiañ LDAP</b>',
444
+    'info_renvoi_article' => '<b>Adheñchañ.</b> Adkas a ra ar pennad-mañ d’ar bajenn :',
445
+    'info_reserve_admin' => 'N’eus nemet ar verourien a c’hall kemmañ ar chomlec’h-mañ.',
446
+    'info_restreindre_rubrique' => 'Strishaat ar merañ d’ar rubrikenn-mañ :',
447
+    'info_resultat_recherche' => 'Disoc’hoù an enklask :',
448
+    'info_rubriques' => 'Rubrikennoù',
449
+    'info_rubriques_02' => 'rubrikennoù',
450
+    'info_rubriques_trouvees' => 'Rubrikennoù bet kavet',
451
+    'info_sans_titre' => 'Titl ebet',
452
+    'info_selection_chemin_acces' => '<b>Diuzit</b> amañ dindan an hent evit tizhout ar rollad tud :',
453
+    'info_signatures' => 'sinadurioù',
454
+    'info_site' => 'Lec’hienn',
455
+    'info_site_2' => 'lec’hienn :',
456
+    'info_site_min' => 'lec’hienn',
457
+    'info_site_reference_2' => 'Lec’hienn menegeret',
458
+    'info_site_web' => 'Load internet :',
459
+    'info_sites' => 'lec’hiennoù',
460
+    'info_sites_lies_mot' => 'Al lec’hiennoù menegeret liammet ouzh ar ger-stur-mañ',
461
+    'info_sites_proxy' => 'Implijout ur proksi',
462
+    'info_sites_trouves' => 'Lec’hiennoù bet kavet',
463
+    'info_sous_titre' => 'Istitl :',
464
+    'info_statut_administrateur' => 'Merour',
465
+    'info_statut_auteur' => 'Statud ar skridaozer-mañ :',
466
+    'info_statut_auteur_2' => 'Me a zo',
467
+    'info_statut_auteur_a_confirmer' => 'Enskrivadur da gadarnaat',
468
+    'info_statut_auteur_autre' => 'Statud all :',
469
+    'info_statut_redacteur' => 'Skridaozer',
470
+    'info_statut_utilisateurs_1' => 'Staelad dre ziouer an implijerion enporzhiet',
471
+    'info_statut_utilisateurs_2' => 'Dibabit ar statud da reiñ da dud ar rollad tud LDAP pa gevreont evit ar wech kentañ. Gallout a reoo da c’houde kemmañ ar statud-se unan evit pep aozer unan hag unan.',
472
+    'info_suivi_activite' => 'Heuliañ an embannerezh',
473
+    'info_surtitre' => 'Ustitl :',
474
+    'info_syndication_integrale_1' => 'Kinnig a ra ho lec’hienn restroù sindikadañ (gwelet « <a href="@url@">@titre@</a> »).',
475
+    'info_syndication_integrale_2' => 'Ha c’hoant hoc’h eus da ginnig ar pennadoù penn-da-benn, pe embann un diverrañ anezho, ennañ un nebeud kantadoù a arouezennoù ?',
476
+    'info_table_prefix' => 'Ma staliit meur a lec’hienn war ar memes diaz titouroù e c’hellit kemmañ ar rakgerioù zo e penn-kentañ anv an diazoù titouroù; ret eo deoc’h skrivañ gant lizherennoù bihan hep tired warno (ñ, ù, é, à, ...) hag hep esaouenn.',
477
+    'info_taille_maximale_images' => 'Emañ SPIP o vont da arnodiñ ment vrasañ posupl ar skeudennoù a c’hell bezañ meret gantañ (e milionoù a bikseloù).<br />Ne vo ket bihanaet ar skeudennoù brasoc’h.',
478
+    'info_taille_maximale_vignette' => 'Ment vrasañ ar skeudennoùigoù krouet gant ar reizhiad :',
479
+    'info_terminer_installation' => 'Bremañ e c’hellit echuiñ gant an argerzh staliañ standard.',
480
+    'info_texte' => 'Testenn',
481
+    'info_texte_explicatif' => 'Testenn displegañ',
482
+    'info_texte_long' => '(Dre ma’z eo hir an destenn eo bet rannet e meur a lodenn, a vo adpeget asambles goude ma vo bet aprouet an destenn)',
483
+    'info_texte_message' => 'Testenn ho kemennadenn :',
484
+    'info_texte_message_02' => 'Testenn ar gemennadenn',
485
+    'info_titre' => 'Titl :',
486
+    'info_total' => 'hollad :',
487
+    'info_tous_articles_en_redaction' => 'An holl bennadoù emeur o skridaozañ',
488
+    'info_tous_articles_presents' => 'An holl pennadoù bet embannet er rubrikenn-mañ',
489
+    'info_tous_articles_refuses' => 'An holl bennadoù distaolet',
490
+    'info_tous_les' => 'an holl :',
491
+    'info_tout_site' => 'Al lec’hienn a-bezh',
492
+    'info_tout_site2' => 'N’eo ket bet troet ar pennad er yezh-mañ.',
493
+    'info_tout_site3' => 'Troet eo bet ar pennad, met abaoe eo bet kemmet ar pennad orin. Ret eo nevesaat an droidigezh.',
494
+    'info_tout_site4' => 'Troet eo bet ar pennad er yezh-mañ, ha n’eus ket ezhomm da nevesaat an droidigezh.',
495
+    'info_tout_site5' => 'Pennad orin.',
496
+    'info_tout_site6' => '<b>Diwallit :</b>Ne vez diskouezet nemet ar pennadoù orin.
497 497
 Stag eo an troidigezhioù outo,
498 498
 diskouezet en ul liv disheñvel, diouzh o stad :',
499
-	'info_traductions' => 'Troidigezhioù',
500
-	'info_travail_colaboratif' => 'Labour a-stroll war ar pennadoù',
501
-	'info_un_article' => 'ur pennad,',
502
-	'info_un_site' => 'ul load',
503
-	'info_une_rubrique' => 'ur rubrikenn,',
504
-	'info_une_rubrique_02' => '1 rubrikenn',
505
-	'info_url' => 'URL :',
506
-	'info_url_proxy' => 'URL ar proksi',
507
-	'info_url_proxy_pas_conforme' => 'Direizh eo an URL proxy',
508
-	'info_url_site_pas_conforme' => 'n’eo ket reizh URL al lec’hien.',
509
-	'info_url_test_proxy' => 'URL prouata',
510
-	'info_urlref' => 'Liamm gourskrid :',
511
-	'info_utilisation_spip' => 'Bremañ e c’hellit kregiñ da implijout ar reizhiad embann ameilet...',
512
-	'info_visites_par_mois' => 'Diskouez dre viz :',
513
-	'info_visiteur_1' => 'Gweladenner',
514
-	'info_visiteur_2' => 'Mont d’al lec’hienn foran',
515
-	'info_visiteurs' => 'Gweladennerion',
516
-	'info_visiteurs_02' => 'Gweladenner al lec’hienn foran',
517
-	'info_webmestre_forces' => 'termenet eo ar vistri-gwiad bremañ e <tt>@file_options@</tt>.',
518
-	'install_adresse_base_hebergeur' => 'Chomlec’h an diaz titouroù roet gant an herberc’hier',
519
-	'install_connect_ok' => 'Disklêriet eo bet ar bon nevez dindan anv an dafariad @connect@.',
520
-	'install_echec_annonce' => 'Moarvat e c’hwito ar staliadur pe e kaso d’ul lec’hienn na’z aio ket en-dro...',
521
-	'install_extension_mbstring' => 'Ne’z a ket SPIP en-dro gant :',
522
-	'install_extension_php_obligatoire' => 'Ezhomm en deus SPIP eus an astenn php :',
523
-	'install_login_base_hebergeur' => 'Kod kevreañ roet gant an herberc’hier',
524
-	'install_nom_base_hebergeur' => 'Anv an diaz roet gant an herberc’hier :',
525
-	'install_pas_table' => 'Taolenn ebet en diaz evit poent',
526
-	'install_pass_base_hebergeur' => 'Ger-tremen kevreañ roet gant an herberc’hier',
527
-	'install_php_version' => 'n’eo ket trawalc’h stumm @version@ PHP (@minimum@ d’an nebeutañ)',
528
-	'install_select_langue' => 'Diuzit ur yezh, ha klikit war « War-lerc’h » evit kregiñ gant ar staliañ.',
529
-	'install_select_type_db' => 'Merkit ar seurt diaz titouroù :',
530
-	'install_select_type_mysql' => 'MySQL',
531
-	'install_select_type_pg' => 'PostgreSQL',
532
-	'install_select_type_sqlite2' => 'SQLite 2',
533
-	'install_select_type_sqlite3' => 'SQLite 3',
534
-	'install_serveur_hebergeur' => 'Servijer diaz titouroù lakaet gant an herberc’hier',
535
-	'install_table_prefix_hebergeur' => 'Rakger an diaz roet gant an herberc’hier :',
536
-	'install_tables_base' => 'Taolennoù er reizhiad',
537
-	'install_types_db_connus' => 'Gallout a ra SPIP ober gant <b>MySQL</b> (an hini implijetañ), <b>PostgreSQL</b> ha <b>SQLite</b>.',
538
-	'install_types_db_connus_avertissement' => 'Diwallit : meur a adveziant ne’z eont en-dro nemet gant MySQL',
539
-	'instituer_erreur_statut_a_change' => 'Daskemmet eo bet ar staelad endeo',
540
-	'instituer_erreur_statut_non_autorise' => 'Ne c’hallit ket dibab ar staelad-se',
541
-	'intem_redacteur' => 'skridaozer',
542
-	'intitule_licence' => 'Aotre',
543
-	'item_accepter_inscriptions' => 'Degemer an enskrivadurioù',
544
-	'item_activer_messages_avertissement' => 'Gweredekaat ar c’hemennoù diwall',
545
-	'item_administrateur_2' => 'merour',
546
-	'item_afficher_calendrier' => 'Diskouez en deiziataer',
547
-	'item_autoriser_syndication_integrale' => 'Skignañ an holl bennadoù er restroù sindikadañ',
548
-	'item_choix_administrateurs' => 'ar verourion',
549
-	'item_choix_generation_miniature' => 'Krouiñ arlunioù ar skeudennoù en un doare emgefre.',
550
-	'item_choix_non_generation_miniature' => 'Chom hep krouiñ arlunioù diwar skeudennoù.',
551
-	'item_choix_redacteurs' => 'ar skridaozerion',
552
-	'item_choix_visiteurs' => 'gweladennerien al lec’hienn foran',
553
-	'item_creer_fichiers_authent' => 'Krouiñ ar restroù .htpasswd',
554
-	'item_login' => 'Kod kevreañ',
555
-	'item_messagerie_agenda' => 'Gweredekaat ar postelerezh hag an deiziataer',
556
-	'item_mots_cles_association_articles' => 'ouzh ar pennadoù',
557
-	'item_mots_cles_association_rubriques' => 'ouzh ar rubrikennoù',
558
-	'item_mots_cles_association_sites' => 'ouzh al lec’hiennoù rollet pe sindikadet.',
559
-	'item_non' => 'Ket',
560
-	'item_non_accepter_inscriptions' => 'Chom hep degemer an enskrivadurioù',
561
-	'item_non_activer_messages_avertissement' => 'Kemenn diwall ebet',
562
-	'item_non_afficher_calendrier' => 'Chom hep diskouez en deiziataer',
563
-	'item_non_autoriser_syndication_integrale' => 'Embann un diverrañ hepken',
564
-	'item_non_creer_fichiers_authent' => 'Arabat krouiñ ar restroù-se',
565
-	'item_non_messagerie_agenda' => 'Diweredekaat ar postelerezh hag an deiziataer',
566
-	'item_non_publier_articles' => 'Na embann ar pennadoù a-raok an deiziad embann lakaet.',
567
-	'item_nouvel_auteur' => 'Skridaozer nevez',
568
-	'item_nouvelle_rubrique' => 'Rubrikenn nevez',
569
-	'item_oui' => 'Ya',
570
-	'item_publier_articles' => 'Embann ar pennadoù, ne vern an deiziad embann lakaet dezho.',
571
-	'item_reponse_article' => 'Respont d’ar pennad',
572
-	'item_visiteur' => 'gweladenner',
499
+    'info_traductions' => 'Troidigezhioù',
500
+    'info_travail_colaboratif' => 'Labour a-stroll war ar pennadoù',
501
+    'info_un_article' => 'ur pennad,',
502
+    'info_un_site' => 'ul load',
503
+    'info_une_rubrique' => 'ur rubrikenn,',
504
+    'info_une_rubrique_02' => '1 rubrikenn',
505
+    'info_url' => 'URL :',
506
+    'info_url_proxy' => 'URL ar proksi',
507
+    'info_url_proxy_pas_conforme' => 'Direizh eo an URL proxy',
508
+    'info_url_site_pas_conforme' => 'n’eo ket reizh URL al lec’hien.',
509
+    'info_url_test_proxy' => 'URL prouata',
510
+    'info_urlref' => 'Liamm gourskrid :',
511
+    'info_utilisation_spip' => 'Bremañ e c’hellit kregiñ da implijout ar reizhiad embann ameilet...',
512
+    'info_visites_par_mois' => 'Diskouez dre viz :',
513
+    'info_visiteur_1' => 'Gweladenner',
514
+    'info_visiteur_2' => 'Mont d’al lec’hienn foran',
515
+    'info_visiteurs' => 'Gweladennerion',
516
+    'info_visiteurs_02' => 'Gweladenner al lec’hienn foran',
517
+    'info_webmestre_forces' => 'termenet eo ar vistri-gwiad bremañ e <tt>@file_options@</tt>.',
518
+    'install_adresse_base_hebergeur' => 'Chomlec’h an diaz titouroù roet gant an herberc’hier',
519
+    'install_connect_ok' => 'Disklêriet eo bet ar bon nevez dindan anv an dafariad @connect@.',
520
+    'install_echec_annonce' => 'Moarvat e c’hwito ar staliadur pe e kaso d’ul lec’hienn na’z aio ket en-dro...',
521
+    'install_extension_mbstring' => 'Ne’z a ket SPIP en-dro gant :',
522
+    'install_extension_php_obligatoire' => 'Ezhomm en deus SPIP eus an astenn php :',
523
+    'install_login_base_hebergeur' => 'Kod kevreañ roet gant an herberc’hier',
524
+    'install_nom_base_hebergeur' => 'Anv an diaz roet gant an herberc’hier :',
525
+    'install_pas_table' => 'Taolenn ebet en diaz evit poent',
526
+    'install_pass_base_hebergeur' => 'Ger-tremen kevreañ roet gant an herberc’hier',
527
+    'install_php_version' => 'n’eo ket trawalc’h stumm @version@ PHP (@minimum@ d’an nebeutañ)',
528
+    'install_select_langue' => 'Diuzit ur yezh, ha klikit war « War-lerc’h » evit kregiñ gant ar staliañ.',
529
+    'install_select_type_db' => 'Merkit ar seurt diaz titouroù :',
530
+    'install_select_type_mysql' => 'MySQL',
531
+    'install_select_type_pg' => 'PostgreSQL',
532
+    'install_select_type_sqlite2' => 'SQLite 2',
533
+    'install_select_type_sqlite3' => 'SQLite 3',
534
+    'install_serveur_hebergeur' => 'Servijer diaz titouroù lakaet gant an herberc’hier',
535
+    'install_table_prefix_hebergeur' => 'Rakger an diaz roet gant an herberc’hier :',
536
+    'install_tables_base' => 'Taolennoù er reizhiad',
537
+    'install_types_db_connus' => 'Gallout a ra SPIP ober gant <b>MySQL</b> (an hini implijetañ), <b>PostgreSQL</b> ha <b>SQLite</b>.',
538
+    'install_types_db_connus_avertissement' => 'Diwallit : meur a adveziant ne’z eont en-dro nemet gant MySQL',
539
+    'instituer_erreur_statut_a_change' => 'Daskemmet eo bet ar staelad endeo',
540
+    'instituer_erreur_statut_non_autorise' => 'Ne c’hallit ket dibab ar staelad-se',
541
+    'intem_redacteur' => 'skridaozer',
542
+    'intitule_licence' => 'Aotre',
543
+    'item_accepter_inscriptions' => 'Degemer an enskrivadurioù',
544
+    'item_activer_messages_avertissement' => 'Gweredekaat ar c’hemennoù diwall',
545
+    'item_administrateur_2' => 'merour',
546
+    'item_afficher_calendrier' => 'Diskouez en deiziataer',
547
+    'item_autoriser_syndication_integrale' => 'Skignañ an holl bennadoù er restroù sindikadañ',
548
+    'item_choix_administrateurs' => 'ar verourion',
549
+    'item_choix_generation_miniature' => 'Krouiñ arlunioù ar skeudennoù en un doare emgefre.',
550
+    'item_choix_non_generation_miniature' => 'Chom hep krouiñ arlunioù diwar skeudennoù.',
551
+    'item_choix_redacteurs' => 'ar skridaozerion',
552
+    'item_choix_visiteurs' => 'gweladennerien al lec’hienn foran',
553
+    'item_creer_fichiers_authent' => 'Krouiñ ar restroù .htpasswd',
554
+    'item_login' => 'Kod kevreañ',
555
+    'item_messagerie_agenda' => 'Gweredekaat ar postelerezh hag an deiziataer',
556
+    'item_mots_cles_association_articles' => 'ouzh ar pennadoù',
557
+    'item_mots_cles_association_rubriques' => 'ouzh ar rubrikennoù',
558
+    'item_mots_cles_association_sites' => 'ouzh al lec’hiennoù rollet pe sindikadet.',
559
+    'item_non' => 'Ket',
560
+    'item_non_accepter_inscriptions' => 'Chom hep degemer an enskrivadurioù',
561
+    'item_non_activer_messages_avertissement' => 'Kemenn diwall ebet',
562
+    'item_non_afficher_calendrier' => 'Chom hep diskouez en deiziataer',
563
+    'item_non_autoriser_syndication_integrale' => 'Embann un diverrañ hepken',
564
+    'item_non_creer_fichiers_authent' => 'Arabat krouiñ ar restroù-se',
565
+    'item_non_messagerie_agenda' => 'Diweredekaat ar postelerezh hag an deiziataer',
566
+    'item_non_publier_articles' => 'Na embann ar pennadoù a-raok an deiziad embann lakaet.',
567
+    'item_nouvel_auteur' => 'Skridaozer nevez',
568
+    'item_nouvelle_rubrique' => 'Rubrikenn nevez',
569
+    'item_oui' => 'Ya',
570
+    'item_publier_articles' => 'Embann ar pennadoù, ne vern an deiziad embann lakaet dezho.',
571
+    'item_reponse_article' => 'Respont d’ar pennad',
572
+    'item_visiteur' => 'gweladenner',
573 573
 
574
-	// J
575
-	'jour_non_connu_nc' => 'dianav',
574
+    // J
575
+    'jour_non_connu_nc' => 'dianav',
576 576
 
577
-	// L
578
-	'label_bando_outils' => 'Barrenn ostilhoù',
579
-	'label_bando_outils_afficher' => 'Diskouez an ostilhoù',
580
-	'label_bando_outils_masquer' => 'Kuzhat an ostilhoù',
581
-	'label_choix_langue' => 'Dibabit ho yezh',
582
-	'label_nom_fichier_connect' => 'Lakait anv an dafariad-mañ',
583
-	'label_slogan_site' => 'Lugan al load internet',
584
-	'label_taille_ecran' => 'Ledander ar skramm',
585
-	'label_texte_et_icones_navigation' => 'Lañser gwedeiñ',
586
-	'label_texte_et_icones_page' => 'Diskouez er bajenn',
587
-	'ldap_correspondance' => 'hêrezh ar vaezienn @champ@',
588
-	'ldap_correspondance_1' => 'Hêrezh ar maeziennoù LDAP',
589
-	'ldap_correspondance_2' => 'Merkañ anv ar vaezienn LDAP evit pep hini eus ar maeziennoù SPIP da-heul. Lezel goullo kuit na vefe leuniet pa dispartiañ dre skejoù evit esaeañ meur a vaezienn LDAP.',
590
-	'lien_ajouter_auteur' => 'Ouzhpennañ ar skridaozer-mañ',
591
-	'lien_ajouter_une_rubrique' => 'Ouzhpennañ ar rubrikenn-mañ',
592
-	'lien_email' => 'postel',
593
-	'lien_nom_site' => 'ANV AL LEC’HIENN :',
594
-	'lien_rapide_contenu' => 'Mont d’an endalc’had',
595
-	'lien_rapide_navigation' => 'Mont da verdeiñ',
596
-	'lien_rapide_recherche' => 'Mont d’an enklask',
597
-	'lien_retirer_auteur' => 'Lemel ar skridaozer',
598
-	'lien_retirer_rubrique' => 'Tennañ kuit ar rubrikenn',
599
-	'lien_retirer_tous_auteurs' => 'Tennañ kuit an holl aozerion',
600
-	'lien_retirer_toutes_rubriques' => 'Tennañ kuit holl ar rubrikennoù',
601
-	'lien_site' => 'lec’hienn',
602
-	'lien_tout_decocher' => 'Diaskañ an holl',
603
-	'lien_tout_deplier' => 'Dispakañ pep tra',
604
-	'lien_tout_replier' => 'Adpakañ pep tra',
605
-	'lien_tout_supprimer' => 'Diverkañ pep tra',
606
-	'lien_trier_nom' => 'Renkañ diouzh an anv',
607
-	'lien_trier_nombre_articles' => 'Renkañ diouzh an niver a bennadoù',
608
-	'lien_trier_statut' => 'Renkañ diouzh ar statud',
609
-	'lien_voir_en_ligne' => 'GWELET ENLINENN :',
610
-	'logo_article' => 'LOGO AR PENNAD',
611
-	'logo_auteur' => 'LOGO AR SKRIDAOZER',
612
-	'logo_rubrique' => 'LOGO AR RUBRIKENN',
613
-	'logo_site' => 'LOGO AL LOAD INTERNET-MAÑ',
614
-	'logo_standard_rubrique' => 'LOGO BOAS AR RUBRIKENNOÙ',
615
-	'logo_survol' => 'LOGO RIKLAÑ AL LOGODENN',
577
+    // L
578
+    'label_bando_outils' => 'Barrenn ostilhoù',
579
+    'label_bando_outils_afficher' => 'Diskouez an ostilhoù',
580
+    'label_bando_outils_masquer' => 'Kuzhat an ostilhoù',
581
+    'label_choix_langue' => 'Dibabit ho yezh',
582
+    'label_nom_fichier_connect' => 'Lakait anv an dafariad-mañ',
583
+    'label_slogan_site' => 'Lugan al load internet',
584
+    'label_taille_ecran' => 'Ledander ar skramm',
585
+    'label_texte_et_icones_navigation' => 'Lañser gwedeiñ',
586
+    'label_texte_et_icones_page' => 'Diskouez er bajenn',
587
+    'ldap_correspondance' => 'hêrezh ar vaezienn @champ@',
588
+    'ldap_correspondance_1' => 'Hêrezh ar maeziennoù LDAP',
589
+    'ldap_correspondance_2' => 'Merkañ anv ar vaezienn LDAP evit pep hini eus ar maeziennoù SPIP da-heul. Lezel goullo kuit na vefe leuniet pa dispartiañ dre skejoù evit esaeañ meur a vaezienn LDAP.',
590
+    'lien_ajouter_auteur' => 'Ouzhpennañ ar skridaozer-mañ',
591
+    'lien_ajouter_une_rubrique' => 'Ouzhpennañ ar rubrikenn-mañ',
592
+    'lien_email' => 'postel',
593
+    'lien_nom_site' => 'ANV AL LEC’HIENN :',
594
+    'lien_rapide_contenu' => 'Mont d’an endalc’had',
595
+    'lien_rapide_navigation' => 'Mont da verdeiñ',
596
+    'lien_rapide_recherche' => 'Mont d’an enklask',
597
+    'lien_retirer_auteur' => 'Lemel ar skridaozer',
598
+    'lien_retirer_rubrique' => 'Tennañ kuit ar rubrikenn',
599
+    'lien_retirer_tous_auteurs' => 'Tennañ kuit an holl aozerion',
600
+    'lien_retirer_toutes_rubriques' => 'Tennañ kuit holl ar rubrikennoù',
601
+    'lien_site' => 'lec’hienn',
602
+    'lien_tout_decocher' => 'Diaskañ an holl',
603
+    'lien_tout_deplier' => 'Dispakañ pep tra',
604
+    'lien_tout_replier' => 'Adpakañ pep tra',
605
+    'lien_tout_supprimer' => 'Diverkañ pep tra',
606
+    'lien_trier_nom' => 'Renkañ diouzh an anv',
607
+    'lien_trier_nombre_articles' => 'Renkañ diouzh an niver a bennadoù',
608
+    'lien_trier_statut' => 'Renkañ diouzh ar statud',
609
+    'lien_voir_en_ligne' => 'GWELET ENLINENN :',
610
+    'logo_article' => 'LOGO AR PENNAD',
611
+    'logo_auteur' => 'LOGO AR SKRIDAOZER',
612
+    'logo_rubrique' => 'LOGO AR RUBRIKENN',
613
+    'logo_site' => 'LOGO AL LOAD INTERNET-MAÑ',
614
+    'logo_standard_rubrique' => 'LOGO BOAS AR RUBRIKENNOÙ',
615
+    'logo_survol' => 'LOGO RIKLAÑ AL LOGODENN',
616 616
 
617
-	// M
618
-	'menu_aide_installation_choix_base' => 'dibab ho tiaz',
619
-	'module_fichier_langue' => 'Restr yezh',
620
-	'module_raccourci' => 'Berradenn',
621
-	'module_texte_affiche' => 'Testenn diskouezet',
622
-	'module_texte_explicatif' => 'Gallout a rit ouzhpennañ ar berradennoù da-heul e frammoù al lec’hienn foran. En un doare emgefreek e vint troet er yezhoù ma’z eus ur restr yezh.',
623
-	'module_texte_traduction' => 'Gallout a reer kaout ar restr yezh « @module@ » e :',
624
-	'mois_non_connu' => 'dianav',
617
+    // M
618
+    'menu_aide_installation_choix_base' => 'dibab ho tiaz',
619
+    'module_fichier_langue' => 'Restr yezh',
620
+    'module_raccourci' => 'Berradenn',
621
+    'module_texte_affiche' => 'Testenn diskouezet',
622
+    'module_texte_explicatif' => 'Gallout a rit ouzhpennañ ar berradennoù da-heul e frammoù al lec’hienn foran. En un doare emgefreek e vint troet er yezhoù ma’z eus ur restr yezh.',
623
+    'module_texte_traduction' => 'Gallout a reer kaout ar restr yezh « @module@ » e :',
624
+    'mois_non_connu' => 'dianav',
625 625
 
626
-	// N
627
-	'nouvelle_version_spip' => 'Prest eo an hizivaat @version@ SPIP ',
628
-	'nouvelle_version_spip_majeure' => 'Prest eo ur stumm SPIP @version@',
626
+    // N
627
+    'nouvelle_version_spip' => 'Prest eo an hizivaat @version@ SPIP ',
628
+    'nouvelle_version_spip_majeure' => 'Prest eo ur stumm SPIP @version@',
629 629
 
630
-	// O
631
-	'onglet_contenu' => 'Endalc’had',
632
-	'onglet_declarer_une_autre_base' => 'Disklêriañ un diaz all',
633
-	'onglet_discuter' => 'Flapiñ',
634
-	'onglet_interactivite' => 'Etreobererezh',
635
-	'onglet_proprietes' => 'Perzhioù',
636
-	'onglet_repartition_actuelle' => 'betek-henn',
637
-	'onglet_sous_rubriques' => 'Isrummadoù',
630
+    // O
631
+    'onglet_contenu' => 'Endalc’had',
632
+    'onglet_declarer_une_autre_base' => 'Disklêriañ un diaz all',
633
+    'onglet_discuter' => 'Flapiñ',
634
+    'onglet_interactivite' => 'Etreobererezh',
635
+    'onglet_proprietes' => 'Perzhioù',
636
+    'onglet_repartition_actuelle' => 'betek-henn',
637
+    'onglet_sous_rubriques' => 'Isrummadoù',
638 638
 
639
-	// P
640
-	'page_pas_proxy' => 'Arabat d’ar bajenn-mañ tremen dre ar proksi',
641
-	'pas_de_proxy_pour' => 'Ma vez ezhomm merkit ar mekanikoù pe domanioù na zle ket ar proksi-mañ mont en-dro evito (da skouer : @exemple@)',
642
-	'phpinfo' => 'Kefluniadur PHP',
643
-	'plugin_charge_paquet' => 'Kargañ ar pakad @name@',
644
-	'plugin_charger' => 'Pellgargañ',
645
-	'plugin_erreur_charger' => 'fazi : dibosupl eo kargañ @zip@',
646
-	'plugin_erreur_droit1' => 'N’haller ket skrivañ war ar c’havlec’h <code>@dest@</code>.',
647
-	'plugin_erreur_droit2' => 'Gwiriit an aotreoù war ar c’havlec’h-mañ (ha kempennit anezho diouzh ret), pe stailhit ar restroù dre FTP.',
648
-	'plugin_erreur_zip' => 'fazi pclzip : fazi @status@',
649
-	'plugin_etat_developpement' => 'o tiorren',
650
-	'plugin_etat_experimental' => 'arnodel',
651
-	'plugin_etat_stable' => 'stabil',
652
-	'plugin_etat_test' => 'o vezañ amprouet',
653
-	'plugin_impossible_activer' => 'Dibosupl eo gweredekaat an adveziant @plugin@',
654
-	'plugin_info_automatique1' => 'Mar fell deoc’h aotren staliadur emgefre an adveziantoù, setu penaos :',
655
-	'plugin_info_automatique1_lib' => 'Mard oc’h a-du da zesezañ emgefreek al levraoueg-mañ, teurvezit:',
656
-	'plugin_info_automatique2' => 'krouit ur c’havlec’h <code>@rep@</code> ;',
657
-	'plugin_info_automatique3' => 'Gwiriit eo aotreet-mat ar servijer da skrivañ er c’havlec’h-se.',
658
-	'plugin_info_automatique_creer' => 'da grouiñ e gwrizienn al lec’hienn.',
659
-	'plugin_info_automatique_exemples' => 'da skouer :',
660
-	'plugin_info_automatique_ftp' => 'Gallout a rit staliañ adveziantoù dre FTP er c’havlec’h <tt>@rep@</tt>',
661
-	'plugin_info_automatique_lib' => 'Adveziantoù zo a c’houlenn gellout pellgargañ restroù er c’havlec’h <code>lib/</code>. Da vezañ krouet, diouzh an dro, e gwrizienn al lec’hienn.',
662
-	'plugin_info_automatique_liste' => 'Ho rolloù adveziantoù :',
663
-	'plugin_info_automatique_liste_officielle' => 'An adveziantoù ofisiel',
664
-	'plugin_info_automatique_liste_update' => 'Hizivaat ar rolloù',
665
-	'plugin_info_automatique_ou' => 'pe...',
666
-	'plugin_info_automatique_select' => 'Diuzit un adveziant amañ a-is : pellgarget e vo gant SPIP ha staliet er c’havlec’h <code>@rep@</code> ; ma’z eus eus an adveziant-mañ c’hoazh e vo hizivaet.',
667
-	'plugin_info_credit' => 'Diwar',
668
-	'plugin_info_erreur_xml' => 'Direizh eo disklêriadur an askouez plugin-mañ',
669
-	'plugin_info_install_ok' => 'Desezañ deuet da vat !',
670
-	'plugin_info_necessite' => 'Ret :',
671
-	'plugin_info_non_compatible_spip' => 'Ne glot ket ar plugin-mañ gant an handelv SPIP-mañ',
672
-	'plugin_info_plugins_dist_1' => 'Karget ha gweredek eo an askouezioù-mañ er c’havlec’h @plugins_dist@.',
673
-	'plugin_info_plugins_dist_2' => 'Diweredekaus ez int',
674
-	'plugin_info_telecharger' => 'da bellgargañ adal @url@ ha da staliañ e @rep@',
675
-	'plugin_info_upgrade_ok' => 'Hizivaat bet kaset da benn',
676
-	'plugin_librairies_installees' => 'Levraouegoù bet staliet',
677
-	'plugin_necessite_extension_php' => 'Ezhomm en deus astenn PHP @plugin@ en version @version@.',
678
-	'plugin_necessite_extension_php_sans_version' => 'Ezhomm en deus astenn PHP @plugin@',
679
-	'plugin_necessite_lib' => 'Ezhomm en deus an adveziant-mañ eus al levraoueg @lib@',
680
-	'plugin_necessite_php' => 'Ezhomm en deus @plugin@ en version @version@.',
681
-	'plugin_necessite_plugin' => 'Ezhomm en deus eus an adveziant @plugin@ e stumm @version@.',
682
-	'plugin_necessite_plugin_sans_version' => 'Askouez @plugin@ ret',
683
-	'plugin_necessite_spip' => 'Ezhomm zo eus stumm @version@ SPIP da nebeutañ.',
684
-	'plugin_source' => 'orin: ',
685
-	'plugin_titre_automatique' => 'Staliadur emgefre',
686
-	'plugin_titre_automatique_ajouter' => 'Ouzhpennañ adveziantoù',
687
-	'plugin_titre_installation' => 'Desezañ an askouez @plugin@',
688
-	'plugin_titre_modifier' => 'Va askouezioù plugin',
689
-	'plugin_utilise_extension_php' => 'An astenn PHP @plugin@ rank bezañ e stumm @version@.',
690
-	'plugin_utilise_php' => ' @plugin@ a rank bezañ @version@.',
691
-	'plugin_utilise_plugin' => 'Ar plugin @plugin@ rank bezañ e doare @version@.',
692
-	'plugin_zip_active' => 'Kendalc’hit evit e weredekaat',
693
-	'plugin_zip_adresse' => 'merkit amañ a-is chomlec’h restr zip un adveziant da bellgargañ, pe hini ul rollad adveziantoù.',
694
-	'plugin_zip_adresse_champ' => 'Chomlec’h an adveziant pe hini ar roll ',
695
-	'plugin_zip_content' => 'Ennañ emañ ar restroù (@taille@),<br />prest da vezañ staliet er c’havlec’h <code>@rep@</code>',
696
-	'plugin_zip_installe_finie' => 'Diwasket ha staliet eo bet ar restr @zip@ .',
697
-	'plugin_zip_installe_rep_finie' => 'Diwasket eo bet ar restr @zip@ ha staliet er c’havlec’h @rep@',
698
-	'plugin_zip_installer' => 'Bremañ e c’hellit staliañ anezhañ.',
699
-	'plugin_zip_telecharge' => 'Pellgarget eo bet ar restr @zip@',
700
-	'plugins_actif_aucun' => 'Askouez plugin gweredek ebet',
701
-	'plugins_actif_un' => 'Un askouez plugin gweredek',
702
-	'plugins_actifs' => '@count@ adveziant gweredekaet.',
703
-	'plugins_actifs_liste' => 'Gweredek',
704
-	'plugins_compte' => '@count@ adveziant',
705
-	'plugins_disponible_un' => 'Un askouez plugin prest',
706
-	'plugins_disponibles' => '@count@ adveziant hegerz.',
707
-	'plugins_erreur' => 'Fazi en adveziantoù : @plugins@',
708
-	'plugins_liste' => 'Roll an adveziantoù',
709
-	'plugins_liste_dist' => 'Askouezioù plugin prennet',
710
-	'plugins_recents' => 'Askouezioù Plugin nevez',
711
-	'plugins_tous_liste' => 'Holl',
712
-	'plugins_vue_hierarchie' => 'Urzhaz',
713
-	'plugins_vue_liste' => 'Roll',
714
-	'protocole_ldap' => 'Stumm ar protokol :',
639
+    // P
640
+    'page_pas_proxy' => 'Arabat d’ar bajenn-mañ tremen dre ar proksi',
641
+    'pas_de_proxy_pour' => 'Ma vez ezhomm merkit ar mekanikoù pe domanioù na zle ket ar proksi-mañ mont en-dro evito (da skouer : @exemple@)',
642
+    'phpinfo' => 'Kefluniadur PHP',
643
+    'plugin_charge_paquet' => 'Kargañ ar pakad @name@',
644
+    'plugin_charger' => 'Pellgargañ',
645
+    'plugin_erreur_charger' => 'fazi : dibosupl eo kargañ @zip@',
646
+    'plugin_erreur_droit1' => 'N’haller ket skrivañ war ar c’havlec’h <code>@dest@</code>.',
647
+    'plugin_erreur_droit2' => 'Gwiriit an aotreoù war ar c’havlec’h-mañ (ha kempennit anezho diouzh ret), pe stailhit ar restroù dre FTP.',
648
+    'plugin_erreur_zip' => 'fazi pclzip : fazi @status@',
649
+    'plugin_etat_developpement' => 'o tiorren',
650
+    'plugin_etat_experimental' => 'arnodel',
651
+    'plugin_etat_stable' => 'stabil',
652
+    'plugin_etat_test' => 'o vezañ amprouet',
653
+    'plugin_impossible_activer' => 'Dibosupl eo gweredekaat an adveziant @plugin@',
654
+    'plugin_info_automatique1' => 'Mar fell deoc’h aotren staliadur emgefre an adveziantoù, setu penaos :',
655
+    'plugin_info_automatique1_lib' => 'Mard oc’h a-du da zesezañ emgefreek al levraoueg-mañ, teurvezit:',
656
+    'plugin_info_automatique2' => 'krouit ur c’havlec’h <code>@rep@</code> ;',
657
+    'plugin_info_automatique3' => 'Gwiriit eo aotreet-mat ar servijer da skrivañ er c’havlec’h-se.',
658
+    'plugin_info_automatique_creer' => 'da grouiñ e gwrizienn al lec’hienn.',
659
+    'plugin_info_automatique_exemples' => 'da skouer :',
660
+    'plugin_info_automatique_ftp' => 'Gallout a rit staliañ adveziantoù dre FTP er c’havlec’h <tt>@rep@</tt>',
661
+    'plugin_info_automatique_lib' => 'Adveziantoù zo a c’houlenn gellout pellgargañ restroù er c’havlec’h <code>lib/</code>. Da vezañ krouet, diouzh an dro, e gwrizienn al lec’hienn.',
662
+    'plugin_info_automatique_liste' => 'Ho rolloù adveziantoù :',
663
+    'plugin_info_automatique_liste_officielle' => 'An adveziantoù ofisiel',
664
+    'plugin_info_automatique_liste_update' => 'Hizivaat ar rolloù',
665
+    'plugin_info_automatique_ou' => 'pe...',
666
+    'plugin_info_automatique_select' => 'Diuzit un adveziant amañ a-is : pellgarget e vo gant SPIP ha staliet er c’havlec’h <code>@rep@</code> ; ma’z eus eus an adveziant-mañ c’hoazh e vo hizivaet.',
667
+    'plugin_info_credit' => 'Diwar',
668
+    'plugin_info_erreur_xml' => 'Direizh eo disklêriadur an askouez plugin-mañ',
669
+    'plugin_info_install_ok' => 'Desezañ deuet da vat !',
670
+    'plugin_info_necessite' => 'Ret :',
671
+    'plugin_info_non_compatible_spip' => 'Ne glot ket ar plugin-mañ gant an handelv SPIP-mañ',
672
+    'plugin_info_plugins_dist_1' => 'Karget ha gweredek eo an askouezioù-mañ er c’havlec’h @plugins_dist@.',
673
+    'plugin_info_plugins_dist_2' => 'Diweredekaus ez int',
674
+    'plugin_info_telecharger' => 'da bellgargañ adal @url@ ha da staliañ e @rep@',
675
+    'plugin_info_upgrade_ok' => 'Hizivaat bet kaset da benn',
676
+    'plugin_librairies_installees' => 'Levraouegoù bet staliet',
677
+    'plugin_necessite_extension_php' => 'Ezhomm en deus astenn PHP @plugin@ en version @version@.',
678
+    'plugin_necessite_extension_php_sans_version' => 'Ezhomm en deus astenn PHP @plugin@',
679
+    'plugin_necessite_lib' => 'Ezhomm en deus an adveziant-mañ eus al levraoueg @lib@',
680
+    'plugin_necessite_php' => 'Ezhomm en deus @plugin@ en version @version@.',
681
+    'plugin_necessite_plugin' => 'Ezhomm en deus eus an adveziant @plugin@ e stumm @version@.',
682
+    'plugin_necessite_plugin_sans_version' => 'Askouez @plugin@ ret',
683
+    'plugin_necessite_spip' => 'Ezhomm zo eus stumm @version@ SPIP da nebeutañ.',
684
+    'plugin_source' => 'orin: ',
685
+    'plugin_titre_automatique' => 'Staliadur emgefre',
686
+    'plugin_titre_automatique_ajouter' => 'Ouzhpennañ adveziantoù',
687
+    'plugin_titre_installation' => 'Desezañ an askouez @plugin@',
688
+    'plugin_titre_modifier' => 'Va askouezioù plugin',
689
+    'plugin_utilise_extension_php' => 'An astenn PHP @plugin@ rank bezañ e stumm @version@.',
690
+    'plugin_utilise_php' => ' @plugin@ a rank bezañ @version@.',
691
+    'plugin_utilise_plugin' => 'Ar plugin @plugin@ rank bezañ e doare @version@.',
692
+    'plugin_zip_active' => 'Kendalc’hit evit e weredekaat',
693
+    'plugin_zip_adresse' => 'merkit amañ a-is chomlec’h restr zip un adveziant da bellgargañ, pe hini ul rollad adveziantoù.',
694
+    'plugin_zip_adresse_champ' => 'Chomlec’h an adveziant pe hini ar roll ',
695
+    'plugin_zip_content' => 'Ennañ emañ ar restroù (@taille@),<br />prest da vezañ staliet er c’havlec’h <code>@rep@</code>',
696
+    'plugin_zip_installe_finie' => 'Diwasket ha staliet eo bet ar restr @zip@ .',
697
+    'plugin_zip_installe_rep_finie' => 'Diwasket eo bet ar restr @zip@ ha staliet er c’havlec’h @rep@',
698
+    'plugin_zip_installer' => 'Bremañ e c’hellit staliañ anezhañ.',
699
+    'plugin_zip_telecharge' => 'Pellgarget eo bet ar restr @zip@',
700
+    'plugins_actif_aucun' => 'Askouez plugin gweredek ebet',
701
+    'plugins_actif_un' => 'Un askouez plugin gweredek',
702
+    'plugins_actifs' => '@count@ adveziant gweredekaet.',
703
+    'plugins_actifs_liste' => 'Gweredek',
704
+    'plugins_compte' => '@count@ adveziant',
705
+    'plugins_disponible_un' => 'Un askouez plugin prest',
706
+    'plugins_disponibles' => '@count@ adveziant hegerz.',
707
+    'plugins_erreur' => 'Fazi en adveziantoù : @plugins@',
708
+    'plugins_liste' => 'Roll an adveziantoù',
709
+    'plugins_liste_dist' => 'Askouezioù plugin prennet',
710
+    'plugins_recents' => 'Askouezioù Plugin nevez',
711
+    'plugins_tous_liste' => 'Holl',
712
+    'plugins_vue_hierarchie' => 'Urzhaz',
713
+    'plugins_vue_liste' => 'Roll',
714
+    'protocole_ldap' => 'Stumm ar protokol :',
715 715
 
716
-	// Q
717
-	'queue_executer_maintenant' => 'Seveniñ bremañ',
718
-	'queue_info_purger' => 'Bez e c’hallit lemel an holl labourioù o c’hortoz, ha nevesaat roll al labourioù mareadek',
719
-	'queue_nb_jobs_in_queue' => '@nb@ labourioù o c’hortoz',
720
-	'queue_next_job_in_nb_sec' => 'Labour-all a-benn @nb@ eilenn',
721
-	'queue_no_job_in_queue' => 'Labour ebet o chom a-ispilh',
722
-	'queue_one_job_in_queue' => '1 labour o chom a-ispilh',
723
-	'queue_priorite_tache' => 'prioriezh',
724
-	'queue_purger_queue' => 'Nevesaat roll al labourioù',
725
-	'queue_titre' => 'Roll al labourioù en-adreñv',
716
+    // Q
717
+    'queue_executer_maintenant' => 'Seveniñ bremañ',
718
+    'queue_info_purger' => 'Bez e c’hallit lemel an holl labourioù o c’hortoz, ha nevesaat roll al labourioù mareadek',
719
+    'queue_nb_jobs_in_queue' => '@nb@ labourioù o c’hortoz',
720
+    'queue_next_job_in_nb_sec' => 'Labour-all a-benn @nb@ eilenn',
721
+    'queue_no_job_in_queue' => 'Labour ebet o chom a-ispilh',
722
+    'queue_one_job_in_queue' => '1 labour o chom a-ispilh',
723
+    'queue_priorite_tache' => 'prioriezh',
724
+    'queue_purger_queue' => 'Nevesaat roll al labourioù',
725
+    'queue_titre' => 'Roll al labourioù en-adreñv',
726 726
 
727
-	// R
728
-	'repertoire_plugins' => 'Kavlec’h :',
729
-	'required' => '[Rekis]',
727
+    // R
728
+    'repertoire_plugins' => 'Kavlec’h :',
729
+    'required' => '[Rekis]',
730 730
 
731
-	// S
732
-	'sans_heure' => 'hep eur',
733
-	'statut_admin_restreint' => 'merour strishaet',
734
-	'statut_webmestre' => 'mestr-gwiad',
731
+    // S
732
+    'sans_heure' => 'hep eur',
733
+    'statut_admin_restreint' => 'merour strishaet',
734
+    'statut_webmestre' => 'mestr-gwiad',
735 735
 
736
-	// T
737
-	'tache_cron_asap' => 'Lodenn labour CRON @function@ (ASAP)',
738
-	'tache_cron_secondes' => 'Lodenn labour CRON @function@ (bep @nb@ eilenn)',
739
-	'taille_cache_image' => '@taille@ eo hollad ar skeudennoù jedet gant ent emgefre gant SPIP (skeudennigoù an teulioù, an titloù kinniget dindan ur stumm grafek, ar fonksionoù jedoniezh er stumm TeX...) hag a zo er c’havlec’h @dir@.',
740
-	'taille_cache_infinie' => 'N’eo ket bevennet ment kavlec’h ar grubuilh war al lec’hienn-mañ.',
741
-	'taille_cache_maxi' => 'Klask a ra SPIP bevenniñ ment kavlec’h krubuilh al lec’hienn-mañ e-tro <b>@octets@</b> a roadennoù.',
742
-	'taille_cache_moins_de' => 'Ment ar c’huzh@octets@.',
743
-	'taille_cache_octets' => '@octets@ eo ment ar grubuilh evit ar mare.',
744
-	'taille_cache_vide' => 'Goullo eo ar grubuilh',
745
-	'taille_repertoire_cache' => 'Ment kavlec’h ar grubuilh',
746
-	'text_article_propose_publication' => 'Pennad kinniget evit an embann.',
747
-	'texte_acces_ldap_anonyme_1' => 'Servijerioù LDAP zo ne aotreont ket ar monedoù dizanv. En degouezh-se e vo ret deoc’h merkañ un anv moned a-raok gallout klask titouroù er rollad. Peurliesañ e c’hallot lezel goullo ar maeziennoù-se koulskoude.',
748
-	'texte_admin_effacer_01' => 'Diverkañ a raio an urzhad-se <i>PEP TRA</i> en ho tiaz titouroù,
736
+    // T
737
+    'tache_cron_asap' => 'Lodenn labour CRON @function@ (ASAP)',
738
+    'tache_cron_secondes' => 'Lodenn labour CRON @function@ (bep @nb@ eilenn)',
739
+    'taille_cache_image' => '@taille@ eo hollad ar skeudennoù jedet gant ent emgefre gant SPIP (skeudennigoù an teulioù, an titloù kinniget dindan ur stumm grafek, ar fonksionoù jedoniezh er stumm TeX...) hag a zo er c’havlec’h @dir@.',
740
+    'taille_cache_infinie' => 'N’eo ket bevennet ment kavlec’h ar grubuilh war al lec’hienn-mañ.',
741
+    'taille_cache_maxi' => 'Klask a ra SPIP bevenniñ ment kavlec’h krubuilh al lec’hienn-mañ e-tro <b>@octets@</b> a roadennoù.',
742
+    'taille_cache_moins_de' => 'Ment ar c’huzh@octets@.',
743
+    'taille_cache_octets' => '@octets@ eo ment ar grubuilh evit ar mare.',
744
+    'taille_cache_vide' => 'Goullo eo ar grubuilh',
745
+    'taille_repertoire_cache' => 'Ment kavlec’h ar grubuilh',
746
+    'text_article_propose_publication' => 'Pennad kinniget evit an embann.',
747
+    'texte_acces_ldap_anonyme_1' => 'Servijerioù LDAP zo ne aotreont ket ar monedoù dizanv. En degouezh-se e vo ret deoc’h merkañ un anv moned a-raok gallout klask titouroù er rollad. Peurliesañ e c’hallot lezel goullo ar maeziennoù-se koulskoude.',
748
+    'texte_admin_effacer_01' => 'Diverkañ a raio an urzhad-se <i>PEP TRA</i> en ho tiaz titouroù,
749 749
 da lavaret eo <i>holl</i> aotreoù ar verourien hag ar skridaozerien. Goude bezañ bet graet se e rankot
750 750
 adstaliañ SPIP hag adkrouiñ un diaz titouroù nevez hag ur moned merour kentañ nevez.',
751
-	'texte_adresse_annuaire_1' => '(M’eo staliet ar roll tud war an hevelep mekanik hag al lec’hienn-mañ, e tle bezañ «localhost».)',
752
-	'texte_ajout_auteur' => 'Ouzhpennet eo bet ar skridaozer-mañ d’ar pennad :',
753
-	'texte_annuaire_ldap_1' => 'M’hoc’h eus tro d’ober gant ur roll tud (LDAP) e c’hellit e implijout evit enporzhiañ implijerien war SPIP ent emgefre.',
754
-	'texte_article_statut' => 'Ar pennad-mañ zo :',
755
-	'texte_article_virtuel' => 'Pennad galloudel',
756
-	'texte_article_virtuel_reference' => '<b>pennad galloudel :</b> pennad menegeret en ho lec’hienn SPIP, met adkaset war-du un URL all. Evit paouez gant an adkas, diverkañ an URL a-us.',
757
-	'texte_aucun_resultat_auteur' => 'Disoc’h ebet evit "@cherche_auteur@"',
758
-	'texte_auteur_messagerie' => 'Gallout a ra al lec’hienn-mañ diskouez deoc’h roll ar skridaozerien kevreet a-hed an amzer, ar pezh a aotren ac’hanoc’h da eskemm ganto war ar prim. Gallout a rit dibab chom hep dont war wel war ar roll-mañ (« diwelus » oc’h neuze evit an implijerien all).',
759
-	'texte_auteurs' => 'AR SKRIDAOZERIEN',
760
-	'texte_choix_base_1' => 'Dibabit ho tiaz :',
761
-	'texte_choix_base_2' => 'Er servijer SQL ez eus meur a ziaz titouroù.',
762
-	'texte_choix_base_3' => '<b>Diuzit</b> amañ dindan an hini zo bet lakaet deoc’h gant an herberc’hier :',
763
-	'texte_choix_table_prefix' => 'Rakger an taolennoù :',
764
-	'texte_compte_element' => '@count@ elfenn',
765
-	'texte_compte_elements' => '@count@ elfenn',
766
-	'texte_conflit_edition_correction' => 'Gwiriit amañ dindan an diforc’hioù etre daou stumm an destenn. Gallout a rit ivez eilañ ho kemmoù, hag adkregiñ.',
767
-	'texte_connexion_mysql' => 'Sellit ouzh an titouroù roet gant an herberc’hier : Enno e tlefec’h kavout ar servijer diazoù titouroù a vez kinniget gantañ hag ar c’hodoù kevreañ personel.',
768
-	'texte_contenu_article' => '(Kinnig ar pennad berr-ha-berr.)',
769
-	'texte_contenu_articles' => 'Hevez ar vaketenn dibabet evit sevel ho lec’hienn e c’hellit divizout
751
+    'texte_adresse_annuaire_1' => '(M’eo staliet ar roll tud war an hevelep mekanik hag al lec’hienn-mañ, e tle bezañ «localhost».)',
752
+    'texte_ajout_auteur' => 'Ouzhpennet eo bet ar skridaozer-mañ d’ar pennad :',
753
+    'texte_annuaire_ldap_1' => 'M’hoc’h eus tro d’ober gant ur roll tud (LDAP) e c’hellit e implijout evit enporzhiañ implijerien war SPIP ent emgefre.',
754
+    'texte_article_statut' => 'Ar pennad-mañ zo :',
755
+    'texte_article_virtuel' => 'Pennad galloudel',
756
+    'texte_article_virtuel_reference' => '<b>pennad galloudel :</b> pennad menegeret en ho lec’hienn SPIP, met adkaset war-du un URL all. Evit paouez gant an adkas, diverkañ an URL a-us.',
757
+    'texte_aucun_resultat_auteur' => 'Disoc’h ebet evit "@cherche_auteur@"',
758
+    'texte_auteur_messagerie' => 'Gallout a ra al lec’hienn-mañ diskouez deoc’h roll ar skridaozerien kevreet a-hed an amzer, ar pezh a aotren ac’hanoc’h da eskemm ganto war ar prim. Gallout a rit dibab chom hep dont war wel war ar roll-mañ (« diwelus » oc’h neuze evit an implijerien all).',
759
+    'texte_auteurs' => 'AR SKRIDAOZERIEN',
760
+    'texte_choix_base_1' => 'Dibabit ho tiaz :',
761
+    'texte_choix_base_2' => 'Er servijer SQL ez eus meur a ziaz titouroù.',
762
+    'texte_choix_base_3' => '<b>Diuzit</b> amañ dindan an hini zo bet lakaet deoc’h gant an herberc’hier :',
763
+    'texte_choix_table_prefix' => 'Rakger an taolennoù :',
764
+    'texte_compte_element' => '@count@ elfenn',
765
+    'texte_compte_elements' => '@count@ elfenn',
766
+    'texte_conflit_edition_correction' => 'Gwiriit amañ dindan an diforc’hioù etre daou stumm an destenn. Gallout a rit ivez eilañ ho kemmoù, hag adkregiñ.',
767
+    'texte_connexion_mysql' => 'Sellit ouzh an titouroù roet gant an herberc’hier : Enno e tlefec’h kavout ar servijer diazoù titouroù a vez kinniget gantañ hag ar c’hodoù kevreañ personel.',
768
+    'texte_contenu_article' => '(Kinnig ar pennad berr-ha-berr.)',
769
+    'texte_contenu_articles' => 'Hevez ar vaketenn dibabet evit sevel ho lec’hienn e c’hellit divizout
770 770
   ne vo ket implijet elfennoù zo er pennadoù.
771 771
   Implijit al listenn amañ dindan evit merkañ pere eo an elfennoù a c’heller ober ganto.',
772
-	'texte_crash_base' => 'Ma’z eo sac’het ho tiaz titouroù e c’hellit klask ratreañ en un doare emgefreek.',
773
-	'texte_creer_rubrique' => 'A-raok gallout skrivañ pennadoù<br /> e rankit krouiñ ur rubrikenn.',
774
-	'texte_date_creation_article' => 'DEIZIAD KROUIÑ AR PENNAD :',
775
-	'texte_date_creation_objet' => 'Deiziad krouiñ :', # on ajoute le ":"
776
-	'texte_date_publication_anterieure' => 'DEIZIAD EMBANN KENT :',
777
-	'texte_date_publication_anterieure_nonaffichee' => 'Na ziskouez an deiziad embann kent.',
778
-	'texte_date_publication_article' => 'DEIZIAD EMBANN ENLINENN :',
779
-	'texte_date_publication_objet' => 'Deiziad embann enlinenn :',
780
-	'texte_definir_comme_traduction_rubrique' => 'Ur droidigezh eo ar rubrikenn-mañ deus ar rubrikenn niverenn :',
781
-	'texte_descriptif_rapide' => 'Berr-ha-berr',
782
-	'texte_effacer_base' => 'Diverkañ diaz titouroù SPIP',
783
-	'texte_effacer_statistiques' => 'Diverkañ ar stadegoù',
784
-	'texte_en_cours_validation' => 'Kinniget eo ar pennadoù ha berrskridoù amañ dindan d’an embann.',
785
-	'texte_enrichir_mise_a_jour' => 'Gallout a rit bravaat pajennaozañ ho testenn en ur implijout « berradennoù tipografek ».',
786
-	'texte_fichier_authent' => '<b>Ha rankout a ra SPIP krouiñ ar restroù dibar <tt>.htpasswd</tt>
772
+    'texte_crash_base' => 'Ma’z eo sac’het ho tiaz titouroù e c’hellit klask ratreañ en un doare emgefreek.',
773
+    'texte_creer_rubrique' => 'A-raok gallout skrivañ pennadoù<br /> e rankit krouiñ ur rubrikenn.',
774
+    'texte_date_creation_article' => 'DEIZIAD KROUIÑ AR PENNAD :',
775
+    'texte_date_creation_objet' => 'Deiziad krouiñ :', # on ajoute le ":"
776
+    'texte_date_publication_anterieure' => 'DEIZIAD EMBANN KENT :',
777
+    'texte_date_publication_anterieure_nonaffichee' => 'Na ziskouez an deiziad embann kent.',
778
+    'texte_date_publication_article' => 'DEIZIAD EMBANN ENLINENN :',
779
+    'texte_date_publication_objet' => 'Deiziad embann enlinenn :',
780
+    'texte_definir_comme_traduction_rubrique' => 'Ur droidigezh eo ar rubrikenn-mañ deus ar rubrikenn niverenn :',
781
+    'texte_descriptif_rapide' => 'Berr-ha-berr',
782
+    'texte_effacer_base' => 'Diverkañ diaz titouroù SPIP',
783
+    'texte_effacer_statistiques' => 'Diverkañ ar stadegoù',
784
+    'texte_en_cours_validation' => 'Kinniget eo ar pennadoù ha berrskridoù amañ dindan d’an embann.',
785
+    'texte_enrichir_mise_a_jour' => 'Gallout a rit bravaat pajennaozañ ho testenn en ur implijout « berradennoù tipografek ».',
786
+    'texte_fichier_authent' => '<b>Ha rankout a ra SPIP krouiñ ar restroù dibar <tt>.htpasswd</tt>
787 787
   ha <tt>.htpasswd-admin</tt> er c’havlec’h @dossier@ ?</b><p>
788 788
   Gant ar restroù-se e c’hallit herzel ouzh ar re n’int ket skridaozer pe merour da vont war bajenoù all zo
789 789
   (programm stadegoù diavaez, da skouer).</p><p>
790 790
   Ma n’hoc’h eus ket ezhomm d’hen ober e c’hellit lezel an traoù evel m’emaint lakaet dre-ziouer
791 791
   (ne vo ket krouet ar restroù).</p>',
792
-	'texte_informations_personnelles_1' => 'Bremañ e vo krouet gant ar reizhiad ur moned personel d’al lec’hienn evidoc’h.',
793
-	'texte_informations_personnelles_2' => '(Notenn : m’emaoc’h oc’h adstaliañ SPIP hag ez a c’hoazh ho moned kozh en-dro e c’hallit ',
794
-	'texte_introductif_article' => '(Testenn digeriñ ar pennad)',
795
-	'texte_jeu_caractere' => 'Gant al lizherenneg hollvedel (<tt>utf-8</tt>) oc’h aliet d’ober : aotren a ra diskwel testennoù en holl yezhoù, ha ne sav kudenn kenglotañ ebet ken gant ar merdeerioù a-vremañ.',
796
-	'texte_jeu_caractere_3' => 'Gant ar strobad arouezennoù-mañ e ra ho lec’hienn :',
797
-	'texte_jeu_caractere_4' => 'Ma ne glot ket gant gwirvoud ho roadennoù (da skouer, m’emaoc’h o paouez assevel un diaz titouroù), pe ma <em>loc’hit gant al lec’hienn-mañ</em> hag hoc’h eus c’hoant d’ober gant ur strobad arouezennoù all, resisait se amañ dindan :',
798
-	'texte_login_ldap_1' => '(Na skrivit netra evit ur moned dizanv, pe skrivit an hent klok, da skouer « <tt>uid=anv, ou=users, dc=ma-zomani, dc=com</tt> ».)',
799
-	'texte_login_precaution' => 'Diwallit ! Setu ar c’hod kevreañ a dalvez deoc’h da gevreañ evit ar mare.
792
+    'texte_informations_personnelles_1' => 'Bremañ e vo krouet gant ar reizhiad ur moned personel d’al lec’hienn evidoc’h.',
793
+    'texte_informations_personnelles_2' => '(Notenn : m’emaoc’h oc’h adstaliañ SPIP hag ez a c’hoazh ho moned kozh en-dro e c’hallit ',
794
+    'texte_introductif_article' => '(Testenn digeriñ ar pennad)',
795
+    'texte_jeu_caractere' => 'Gant al lizherenneg hollvedel (<tt>utf-8</tt>) oc’h aliet d’ober : aotren a ra diskwel testennoù en holl yezhoù, ha ne sav kudenn kenglotañ ebet ken gant ar merdeerioù a-vremañ.',
796
+    'texte_jeu_caractere_3' => 'Gant ar strobad arouezennoù-mañ e ra ho lec’hienn :',
797
+    'texte_jeu_caractere_4' => 'Ma ne glot ket gant gwirvoud ho roadennoù (da skouer, m’emaoc’h o paouez assevel un diaz titouroù), pe ma <em>loc’hit gant al lec’hienn-mañ</em> hag hoc’h eus c’hoant d’ober gant ur strobad arouezennoù all, resisait se amañ dindan :',
798
+    'texte_login_ldap_1' => '(Na skrivit netra evit ur moned dizanv, pe skrivit an hent klok, da skouer « <tt>uid=anv, ou=users, dc=ma-zomani, dc=com</tt> ».)',
799
+    'texte_login_precaution' => 'Diwallit ! Setu ar c’hod kevreañ a dalvez deoc’h da gevreañ evit ar mare.
800 800
  Taolit evezh gant ar furmskrid-mañ...',
801
-	'texte_messagerie_agenda' => 'Gant ur postelerezh e c’hell ar skridaozerien eskemm an eil gant egile dre lodenn brevez al lec’hienn. Un deiziataer zo stag outañ.',
802
-	'texte_mise_a_niveau_base_1' => 'O paouez hizivaat restroù SPIP emaoc’h. Bremañ eo dav ober kemend-all evit an diaz titouroù.',
803
-	'texte_modifier_article' => 'Kemmañ ar pennad :',
804
-	'texte_multilinguisme' => 'Mar fell deoc’h merañ pennadoù e meur a yezh, dre un doare merdeiñ kemplezh, e c’hallit ouzhpennañ ul lañser dibab yezhoù war ar pennadoù ha/pe war ar rubrikennoù, hervez ar mod m’eo aozet ho load internet.',
805
-	'texte_multilinguisme_trad' => 'Gallout a rit gweredekaat ur reizhiad merañ liammoù etre troidigezhioù disheñvel ar pennadoù ivez.',
806
-	'texte_non_compresse' => '<i>ket gwasket</i> (ne vez ket skoret an arc’hwel-se gant ho servijer)',
807
-	'texte_nouvelle_version_spip_1' => 'Ur stumm nevez eus SPIP zo bet staliet ganeoc’h.',
808
-	'texte_nouvelle_version_spip_2' => 'Evit peurstaliañ anezhañ ez eus ezhomm un hizivadenn glokoc’h eget boaz. Ma’z oc’h webmestr al lec’hienn, diverkit ar restr @connect@ hag adkrogit gant ar staliadur a-benn hizivaat an arventennoù kevreañ ouzh an diaz titouroù.<p> (NM. M’hoc’h eus ankouaet ho titouroù kevreañ , taolit ur sell ouzh ar restr @connect@ a-raok he diverkañ...)</p>',
809
-	'texte_operation_echec' => 'Distroit d’ar bajenn kent, diuzit un diaz all, pe krouit unan nevez. Gwiriit an titouroù bet roet deoc’h gant an herberc’hier.',
810
-	'texte_plus_trois_car' => 'ouzhpenn 3 arouezenn',
811
-	'texte_plusieurs_articles' => 'Meur a skridaozer bet kavet evit "@cherche_auteur@":',
812
-	'texte_port_annuaire' => '(Peurliesañ e tegouezh an talvoud roet dre ziouer.)',
813
-	'texte_presente_plugin' => 'War ar bajenn-mañ emañ rollet an adveziantoù hegerz evit al lec’hienn-mañ. Gallout a rit gweredekaat an adveziantoù a fell deoc’h, en ur askañ al log a zere',
814
-	'texte_proposer_publication' => 'Ur wech echu ho pennad <br /> e c’hellit kinnig ma vo embannet.',
815
-	'texte_proxy' => 'E degouezhioù zo (enrouedad, rouedadoù gwarezet,...), n’hallo al lec’hiennoù pell (teuliad skoazell SPIP, lec’hiennoù sindikadet, ...) bezañ tizhet nemet dre ur <i>proksi HTTP</i>. Diouzh ma vez, skrivit amañ dindan ar chomlec’h anezhañ, er stumm @proxy_en_cours@. Peurliesañ ne vo skrivet netra amañ.',
816
-	'texte_publication_articles_post_dates' => 'Peseurt emzalc’h a zle SPIP kaout gant ar pennadoù zo bet lakaet dezho un deiziad embann en amzer da zont ?',
817
-	'texte_rappel_selection_champs' => '[N’ankouait ket diuzañ mat ar vaezienn-mañ.]',
818
-	'texte_recalcul_page' => 'Mar fell deoc’h adjediñ ur bajenn hepken, tremenit kentoc’h dre al lodenn foran hag implijit an nozelenn « adjediñ ».',
819
-	'texte_recuperer_base' => 'Ratreañ an diaz titouroù',
820
-	'texte_reference_mais_redirige' => 'pennad menegeret en ho lec’hienn SPIP, met adkaset davet un URL all.',
821
-	'texte_requetes_echouent' => '<b>Pa chom sac’het ingal pe hep abeg rekedoù SQL,
801
+    'texte_messagerie_agenda' => 'Gant ur postelerezh e c’hell ar skridaozerien eskemm an eil gant egile dre lodenn brevez al lec’hienn. Un deiziataer zo stag outañ.',
802
+    'texte_mise_a_niveau_base_1' => 'O paouez hizivaat restroù SPIP emaoc’h. Bremañ eo dav ober kemend-all evit an diaz titouroù.',
803
+    'texte_modifier_article' => 'Kemmañ ar pennad :',
804
+    'texte_multilinguisme' => 'Mar fell deoc’h merañ pennadoù e meur a yezh, dre un doare merdeiñ kemplezh, e c’hallit ouzhpennañ ul lañser dibab yezhoù war ar pennadoù ha/pe war ar rubrikennoù, hervez ar mod m’eo aozet ho load internet.',
805
+    'texte_multilinguisme_trad' => 'Gallout a rit gweredekaat ur reizhiad merañ liammoù etre troidigezhioù disheñvel ar pennadoù ivez.',
806
+    'texte_non_compresse' => '<i>ket gwasket</i> (ne vez ket skoret an arc’hwel-se gant ho servijer)',
807
+    'texte_nouvelle_version_spip_1' => 'Ur stumm nevez eus SPIP zo bet staliet ganeoc’h.',
808
+    'texte_nouvelle_version_spip_2' => 'Evit peurstaliañ anezhañ ez eus ezhomm un hizivadenn glokoc’h eget boaz. Ma’z oc’h webmestr al lec’hienn, diverkit ar restr @connect@ hag adkrogit gant ar staliadur a-benn hizivaat an arventennoù kevreañ ouzh an diaz titouroù.<p> (NM. M’hoc’h eus ankouaet ho titouroù kevreañ , taolit ur sell ouzh ar restr @connect@ a-raok he diverkañ...)</p>',
809
+    'texte_operation_echec' => 'Distroit d’ar bajenn kent, diuzit un diaz all, pe krouit unan nevez. Gwiriit an titouroù bet roet deoc’h gant an herberc’hier.',
810
+    'texte_plus_trois_car' => 'ouzhpenn 3 arouezenn',
811
+    'texte_plusieurs_articles' => 'Meur a skridaozer bet kavet evit "@cherche_auteur@":',
812
+    'texte_port_annuaire' => '(Peurliesañ e tegouezh an talvoud roet dre ziouer.)',
813
+    'texte_presente_plugin' => 'War ar bajenn-mañ emañ rollet an adveziantoù hegerz evit al lec’hienn-mañ. Gallout a rit gweredekaat an adveziantoù a fell deoc’h, en ur askañ al log a zere',
814
+    'texte_proposer_publication' => 'Ur wech echu ho pennad <br /> e c’hellit kinnig ma vo embannet.',
815
+    'texte_proxy' => 'E degouezhioù zo (enrouedad, rouedadoù gwarezet,...), n’hallo al lec’hiennoù pell (teuliad skoazell SPIP, lec’hiennoù sindikadet, ...) bezañ tizhet nemet dre ur <i>proksi HTTP</i>. Diouzh ma vez, skrivit amañ dindan ar chomlec’h anezhañ, er stumm @proxy_en_cours@. Peurliesañ ne vo skrivet netra amañ.',
816
+    'texte_publication_articles_post_dates' => 'Peseurt emzalc’h a zle SPIP kaout gant ar pennadoù zo bet lakaet dezho un deiziad embann en amzer da zont ?',
817
+    'texte_rappel_selection_champs' => '[N’ankouait ket diuzañ mat ar vaezienn-mañ.]',
818
+    'texte_recalcul_page' => 'Mar fell deoc’h adjediñ ur bajenn hepken, tremenit kentoc’h dre al lodenn foran hag implijit an nozelenn « adjediñ ».',
819
+    'texte_recuperer_base' => 'Ratreañ an diaz titouroù',
820
+    'texte_reference_mais_redirige' => 'pennad menegeret en ho lec’hienn SPIP, met adkaset davet un URL all.',
821
+    'texte_requetes_echouent' => '<b>Pa chom sac’het ingal pe hep abeg rekedoù SQL,
822 822
   e c’hell bezañ abalamour d’an diaz titouroù</b><p>
823 823
   Gant SQL e c’hell an taolennnoù en em gempenn o-unan p’int bet nodet dre zegouezh.
824 824
   Amañ e c’hallit klask adgempenn anezho. Ma c’hwit, mirit un eilenn eus an doare diskwel, e ken kaz ma vefe titouroù talvoudus ennañ.</p><p>
825 825
   Kit e darempred gant an herberc’hier ma c’hoarvez ar gudenn adarre.</p>',
826
-	'texte_selection_langue_principale' => 'Amañ dindan e c’hellit diuzañ « yezh pennañ » al lec’hienn. Ne dalvez ket e viot rediet da skrivañ ho pennadoù er yezh-se, met servijout a ra da resisaat :
826
+    'texte_selection_langue_principale' => 'Amañ dindan e c’hellit diuzañ « yezh pennañ » al lec’hienn. Ne dalvez ket e viot rediet da skrivañ ho pennadoù er yezh-se, met servijout a ra da resisaat :
827 827
  <ul><li> ar furmad dre ziouer da ziskouez an deiziadoù war al lec’hienn foran ;</li>
828 828
  <li> peseurt lusker skrivañ a rank bezañ implijet gant SPIP evit diskouez an testennoù ;</li>
829 829
  <li> ar yezh implijet e furmskridoù al lodenn foran ;</li>
830 830
  <li> ar yezh implijet dre ziouer el lodenn brevez.</li></ul>',
831
-	'texte_sous_titre' => 'Istitl',
832
-	'texte_statistiques_visites' => '(barrennoù teñval :  Sul / krommenn deñval : emdroadur ar geidenn)',
833
-	'texte_statut_attente_validation' => 'o c’hortoz bezañ asantet',
834
-	'texte_statut_publies' => 'embannet enlinenn',
835
-	'texte_statut_refuses' => 'nac’het',
836
-	'texte_suppression_fichiers' => 'Implijit an urzhiad-se evit diverkañ an holl restroù krubuilhet e SPIP. An dra-se a c’hell servijout evit ma vo adjedet ho holl pajennoù, dre heg, m’hoc’h eus graet kemmoù bras e neuz pe e framm al lec’hienn.',
837
-	'texte_sur_titre' => 'Ustitl',
838
-	'texte_table_ok' => ': kudenn ebet gant an daolenn-mañ.',
839
-	'texte_tentative_recuperation' => 'Taol-esa evit ratreañ',
840
-	'texte_tenter_reparation' => 'Klask ratreañ an diaz roadennoù',
841
-	'texte_test_proxy' => 'Evit amprouiñ ar proksi-mañ, skrivit amañ dindan chomlec’h al lec’hienn a fell deoc’h arnodiñ.',
842
-	'texte_titre_02' => 'Titl :',
843
-	'texte_titre_obligatoire' => '<b>Titl</b> [Rekis]',
844
-	'texte_travail_article' => '@nom_auteur_modif@ en deus labouret war ar pennad-mañ @date_diff@ munutenn zo',
845
-	'texte_travail_collaboratif' => 'Ma c’hoarvez alies e labourfe meur a zen war an hevelep pennad 
831
+    'texte_sous_titre' => 'Istitl',
832
+    'texte_statistiques_visites' => '(barrennoù teñval :  Sul / krommenn deñval : emdroadur ar geidenn)',
833
+    'texte_statut_attente_validation' => 'o c’hortoz bezañ asantet',
834
+    'texte_statut_publies' => 'embannet enlinenn',
835
+    'texte_statut_refuses' => 'nac’het',
836
+    'texte_suppression_fichiers' => 'Implijit an urzhiad-se evit diverkañ an holl restroù krubuilhet e SPIP. An dra-se a c’hell servijout evit ma vo adjedet ho holl pajennoù, dre heg, m’hoc’h eus graet kemmoù bras e neuz pe e framm al lec’hienn.',
837
+    'texte_sur_titre' => 'Ustitl',
838
+    'texte_table_ok' => ': kudenn ebet gant an daolenn-mañ.',
839
+    'texte_tentative_recuperation' => 'Taol-esa evit ratreañ',
840
+    'texte_tenter_reparation' => 'Klask ratreañ an diaz roadennoù',
841
+    'texte_test_proxy' => 'Evit amprouiñ ar proksi-mañ, skrivit amañ dindan chomlec’h al lec’hienn a fell deoc’h arnodiñ.',
842
+    'texte_titre_02' => 'Titl :',
843
+    'texte_titre_obligatoire' => '<b>Titl</b> [Rekis]',
844
+    'texte_travail_article' => '@nom_auteur_modif@ en deus labouret war ar pennad-mañ @date_diff@ munutenn zo',
845
+    'texte_travail_collaboratif' => 'Ma c’hoarvez alies e labourfe meur a zen war an hevelep pennad 
846 846
   e c’hell ar reizhiad diskouez ar pennadoù bet « digoret » nevez zo
847 847
   a-benn herzel ma vo graet meur a gemm war un dro.
848 848
   Diweredekaet eo an dibarzh-mañ dre ziouer kuit da gaout kemennoù diwall a-hed an amzer.',
849
-	'texte_vide' => 'goullo',
850
-	'texte_vider_cache' => 'Goullonderiñ ar grubuilh',
851
-	'titre_admin_tech' => 'Trezalc’h teknikel',
852
-	'titre_admin_vider' => 'Trezalc’h teknikel',
853
-	'titre_ajouter_un_auteur' => 'Ouzhpennañ un aozer',
854
-	'titre_ajouter_un_mot' => 'Ouzhpennañ ur ger-alc’hwez',
855
-	'titre_cadre_afficher_article' => 'Diskouez ar pennadoù',
856
-	'titre_cadre_afficher_traductions' => 'Diskouez stad an troidigezhioù evit ar yezhoù-mañ :',
857
-	'titre_cadre_ajouter_auteur' => 'OUZHPENNAÑ UR SKRIDAOZER :',
858
-	'titre_cadre_interieur_rubrique' => 'Er rubrikenn',
859
-	'titre_cadre_numero_auteur' => 'SKRIDAOZER NIVERENN',
860
-	'titre_cadre_numero_objet' => '@objet@ NIVERENN :',
861
-	'titre_cadre_signature_obligatoire' => '<b>Sinadur</b> [Rekis]<br />',
862
-	'titre_config_contenu_notifications' => 'Kemennoù nevezinti',
863
-	'titre_config_contenu_prive' => 'El lodenn brevez',
864
-	'titre_config_contenu_public' => 'War al lec’hienn foran',
865
-	'titre_config_fonctions' => 'Kefluniadur al lec’hienn',
866
-	'titre_config_langage' => 'Kefluniañ ar yezh',
867
-	'titre_configuration' => 'Kefluniañ al lec’hienn',
868
-	'titre_configurer_preferences' => 'Kefluniañ ho tibaboù',
869
-	'titre_configurer_preferences_menus' => 'Kefluniañ an dibarzhoù er pennroll',
870
-	'titre_conflit_edition' => 'Bec’h e-ser embann',
871
-	'titre_connexion_ldap' => 'Dibarzhioù : <b>Ho kevreadenn LDAP</b>',
872
-	'titre_groupe_mots' => 'STROLLAD GERIOÙ :',
873
-	'titre_identite_site' => 'Merk hennadiñ al load internet',
874
-	'titre_langue_article' => 'Yezh ar pennad-skrid',
875
-	'titre_langue_rubrique' => 'YEZH AR RUBRIKENN',
876
-	'titre_langue_trad_article' => 'YEZH HA TROIDIGEZHIOÙ AR PENNAD',
877
-	'titre_les_articles' => 'AR PENNADOÙ',
878
-	'titre_messagerie_agenda' => 'Postelerezh ha deiziataer',
879
-	'titre_naviguer_dans_le_site' => 'Merdeiñ el lec’hienn...',
880
-	'titre_nouvelle_rubrique' => 'Rubrikenn nevez',
881
-	'titre_numero_rubrique' => 'RUBRIKENN NIVERENN :',
882
-	'titre_page_articles_edit' => 'Kemmañ : @titre@',
883
-	'titre_page_articles_page' => 'Ar pennadoù',
884
-	'titre_page_articles_tous' => 'Al lec’hienn a-bezh',
885
-	'titre_page_calendrier' => 'Deiziataer @nom_mois@ @annee@',
886
-	'titre_page_config_contenu' => 'Kefluniañ al lec’hienn',
887
-	'titre_page_delete_all' => 'diverket e vo pep tra, ne vo ket tu da zont war-gil',
888
-	'titre_page_recherche' => 'Disoc’hoù an enklask @recherche@',
889
-	'titre_page_statistiques_referers' => 'Stadegoù (liammoù davet al lec’hienn-mañ)',
890
-	'titre_page_upgrade' => 'Hizivaat SPIP',
891
-	'titre_preference_menus_favoris' => 'Pennrolloù',
892
-	'titre_publication_articles_post_dates' => 'Embann ar pennadoù deiziataet a-c’houde',
893
-	'titre_reparation' => 'Kempenn',
894
-	'titre_suivi_petition' => 'Heuliañ ar sinadegoù',
895
-	'tls_ldap' => 'Surentez Treuzdougen a-Wiskadoù :',
896
-	'trad_article_traduction' => 'Holl stummoù ar pennad-mañ :',
897
-	'trad_delier' => 'Paouez da liammañ ar pennad-mañ ouzh an troidigezhioù anezhañ',
898
-	'trad_lier' => 'Un droidigezh eo ar pennad-mañ. Setu niverenn ar pennad orin :',
899
-	'trad_new' => 'Skrivañ un droidigezh nevez evit ar pennad-mañ',
849
+    'texte_vide' => 'goullo',
850
+    'texte_vider_cache' => 'Goullonderiñ ar grubuilh',
851
+    'titre_admin_tech' => 'Trezalc’h teknikel',
852
+    'titre_admin_vider' => 'Trezalc’h teknikel',
853
+    'titre_ajouter_un_auteur' => 'Ouzhpennañ un aozer',
854
+    'titre_ajouter_un_mot' => 'Ouzhpennañ ur ger-alc’hwez',
855
+    'titre_cadre_afficher_article' => 'Diskouez ar pennadoù',
856
+    'titre_cadre_afficher_traductions' => 'Diskouez stad an troidigezhioù evit ar yezhoù-mañ :',
857
+    'titre_cadre_ajouter_auteur' => 'OUZHPENNAÑ UR SKRIDAOZER :',
858
+    'titre_cadre_interieur_rubrique' => 'Er rubrikenn',
859
+    'titre_cadre_numero_auteur' => 'SKRIDAOZER NIVERENN',
860
+    'titre_cadre_numero_objet' => '@objet@ NIVERENN :',
861
+    'titre_cadre_signature_obligatoire' => '<b>Sinadur</b> [Rekis]<br />',
862
+    'titre_config_contenu_notifications' => 'Kemennoù nevezinti',
863
+    'titre_config_contenu_prive' => 'El lodenn brevez',
864
+    'titre_config_contenu_public' => 'War al lec’hienn foran',
865
+    'titre_config_fonctions' => 'Kefluniadur al lec’hienn',
866
+    'titre_config_langage' => 'Kefluniañ ar yezh',
867
+    'titre_configuration' => 'Kefluniañ al lec’hienn',
868
+    'titre_configurer_preferences' => 'Kefluniañ ho tibaboù',
869
+    'titre_configurer_preferences_menus' => 'Kefluniañ an dibarzhoù er pennroll',
870
+    'titre_conflit_edition' => 'Bec’h e-ser embann',
871
+    'titre_connexion_ldap' => 'Dibarzhioù : <b>Ho kevreadenn LDAP</b>',
872
+    'titre_groupe_mots' => 'STROLLAD GERIOÙ :',
873
+    'titre_identite_site' => 'Merk hennadiñ al load internet',
874
+    'titre_langue_article' => 'Yezh ar pennad-skrid',
875
+    'titre_langue_rubrique' => 'YEZH AR RUBRIKENN',
876
+    'titre_langue_trad_article' => 'YEZH HA TROIDIGEZHIOÙ AR PENNAD',
877
+    'titre_les_articles' => 'AR PENNADOÙ',
878
+    'titre_messagerie_agenda' => 'Postelerezh ha deiziataer',
879
+    'titre_naviguer_dans_le_site' => 'Merdeiñ el lec’hienn...',
880
+    'titre_nouvelle_rubrique' => 'Rubrikenn nevez',
881
+    'titre_numero_rubrique' => 'RUBRIKENN NIVERENN :',
882
+    'titre_page_articles_edit' => 'Kemmañ : @titre@',
883
+    'titre_page_articles_page' => 'Ar pennadoù',
884
+    'titre_page_articles_tous' => 'Al lec’hienn a-bezh',
885
+    'titre_page_calendrier' => 'Deiziataer @nom_mois@ @annee@',
886
+    'titre_page_config_contenu' => 'Kefluniañ al lec’hienn',
887
+    'titre_page_delete_all' => 'diverket e vo pep tra, ne vo ket tu da zont war-gil',
888
+    'titre_page_recherche' => 'Disoc’hoù an enklask @recherche@',
889
+    'titre_page_statistiques_referers' => 'Stadegoù (liammoù davet al lec’hienn-mañ)',
890
+    'titre_page_upgrade' => 'Hizivaat SPIP',
891
+    'titre_preference_menus_favoris' => 'Pennrolloù',
892
+    'titre_publication_articles_post_dates' => 'Embann ar pennadoù deiziataet a-c’houde',
893
+    'titre_reparation' => 'Kempenn',
894
+    'titre_suivi_petition' => 'Heuliañ ar sinadegoù',
895
+    'tls_ldap' => 'Surentez Treuzdougen a-Wiskadoù :',
896
+    'trad_article_traduction' => 'Holl stummoù ar pennad-mañ :',
897
+    'trad_delier' => 'Paouez da liammañ ar pennad-mañ ouzh an troidigezhioù anezhañ',
898
+    'trad_lier' => 'Un droidigezh eo ar pennad-mañ. Setu niverenn ar pennad orin :',
899
+    'trad_new' => 'Skrivañ un droidigezh nevez evit ar pennad-mañ',
900 900
 
901
-	// U
902
-	'utf8_convert_erreur_orig' => 'Fazi : n’eo ket skoret ar strobad arouezennoù @charset@',
901
+    // U
902
+    'utf8_convert_erreur_orig' => 'Fazi : n’eo ket skoret ar strobad arouezennoù @charset@',
903 903
 
904
-	// V
905
-	'version' => 'Stumm :'
904
+    // V
905
+    'version' => 'Stumm :'
906 906
 );
Please login to merge, or discard this patch.
ecrire/public/tracer.php 3 patches
Braces   +3 added lines, -6 removed lines patch added patch discarded remove patch
@@ -20,15 +20,13 @@  discard block
 block discarded – undo
20 20
 	if ($trace === '?' or defined('_DEBUG_TRACE_QUERIES')) {
21 21
 		if (defined('_DEBUG_TRACE_QUERIES') and _DEBUG_TRACE_QUERIES) {
22 22
 			$trace = true;
23
-		}
24
-		else {
23
+		} else {
25 24
 			if (empty($GLOBALS['visiteur_session'])) {
26 25
 				// si un anonyme fait un var_profile on est oblige de remplir le tableau des temps en attendant de savoir
27 26
 				// car ici on ne sait pas si c'est un hit anonyme
28 27
 				// ou une requete SQL faite avant chargement de la session
29 28
 				$trace = (!empty($_GET['var_profile']) ? '?' : false);
30
-			}
31
-			else {
29
+			} else {
32 30
 				include_spip('inc/autoriser');
33 31
 				// gare au bouclage sur calcul de droits au premier appel
34 32
 				// A fortiori quand on demande une trace
@@ -50,8 +48,7 @@  discard block
 block discarded – undo
50 48
 			// car ici on ne sait pas si c'est un hit anonyme
51 49
 			// ou une requete SQL faite avant chargement de la session
52 50
 			$trace = (!empty($_GET['var_profile']) ? '?' : false);
53
-		}
54
-		else {
51
+		} else {
55 52
 			include_spip('inc/autoriser');
56 53
 			// gare au bouclage sur calcul de droits au premier appel
57 54
 			// A fortiori quand on demande une trace
Please login to merge, or discard this patch.
Indentation   +170 added lines, -170 removed lines patch added patch discarded remove patch
@@ -11,190 +11,190 @@
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 // https://code.spip.net/@trace_query_start
18 18
 function trace_query_start() {
19
-	static $trace = '?';
20
-	if ($trace === '?' or defined('_DEBUG_TRACE_QUERIES')) {
21
-		if (defined('_DEBUG_TRACE_QUERIES') and _DEBUG_TRACE_QUERIES) {
22
-			$trace = true;
23
-		}
24
-		else {
25
-			if (empty($GLOBALS['visiteur_session'])) {
26
-				// si un anonyme fait un var_profile on est oblige de remplir le tableau des temps en attendant de savoir
27
-				// car ici on ne sait pas si c'est un hit anonyme
28
-				// ou une requete SQL faite avant chargement de la session
29
-				$trace = (!empty($_GET['var_profile']) ? '?' : false);
30
-			}
31
-			else {
32
-				include_spip('inc/autoriser');
33
-				// gare au bouclage sur calcul de droits au premier appel
34
-				// A fortiori quand on demande une trace
35
-				$trace = false; // on ne trace pas la requete provoquee par autoriser('debug')
36
-				$trace = (!empty($_GET['var_profile']) and autoriser('debug'));
37
-			}
38
-		}
39
-	}
40
-
41
-	return $trace ? microtime() : 0;
19
+    static $trace = '?';
20
+    if ($trace === '?' or defined('_DEBUG_TRACE_QUERIES')) {
21
+        if (defined('_DEBUG_TRACE_QUERIES') and _DEBUG_TRACE_QUERIES) {
22
+            $trace = true;
23
+        }
24
+        else {
25
+            if (empty($GLOBALS['visiteur_session'])) {
26
+                // si un anonyme fait un var_profile on est oblige de remplir le tableau des temps en attendant de savoir
27
+                // car ici on ne sait pas si c'est un hit anonyme
28
+                // ou une requete SQL faite avant chargement de la session
29
+                $trace = (!empty($_GET['var_profile']) ? '?' : false);
30
+            }
31
+            else {
32
+                include_spip('inc/autoriser');
33
+                // gare au bouclage sur calcul de droits au premier appel
34
+                // A fortiori quand on demande une trace
35
+                $trace = false; // on ne trace pas la requete provoquee par autoriser('debug')
36
+                $trace = (!empty($_GET['var_profile']) and autoriser('debug'));
37
+            }
38
+        }
39
+    }
40
+
41
+    return $trace ? microtime() : 0;
42 42
 }
43 43
 
44 44
 // https://code.spip.net/@trace_query_end
45 45
 function trace_query_end($query, $start, $result, $erreur, $serveur = '') {
46
-	static $trace = '?';
47
-	if ($trace === '?') {
48
-		if (empty($GLOBALS['visiteur_session'])) {
49
-			// si un anonyme fait un var_profile on est oblige de remplir le tableau des temps en attendant de savoir
50
-			// car ici on ne sait pas si c'est un hit anonyme
51
-			// ou une requete SQL faite avant chargement de la session
52
-			$trace = (!empty($_GET['var_profile']) ? '?' : false);
53
-		}
54
-		else {
55
-			include_spip('inc/autoriser');
56
-			// gare au bouclage sur calcul de droits au premier appel
57
-			// A fortiori quand on demande une trace
58
-			$trace = false; // on ne trace pas la requete provoquee par autoriser('debug')
59
-			$trace = (!empty($_GET['var_profile']) and autoriser('debug'));
60
-		}
61
-	}
62
-	if ($start) {
63
-		$end = microtime();
64
-		list($usec, $sec) = explode(' ', $start);
65
-		list($usec2, $sec2) = explode(' ', $end);
66
-		$dt = $sec2 + $usec2 - $sec - $usec;
67
-		pipeline('trig_trace_query', ['query' => $query, 'start' => $start, 'end' => $end, 'time' => $dt, 'result' => $result, 'erreur' => $erreur, 'serveur' => $serveur]);
68
-		if ($trace) {
69
-			trace_query_chrono($dt, $query, $result, $serveur);
70
-		}
71
-	}
72
-	// tracer les erreurs, sauf pour select, c'est fait dans abstract_sql
73
-	if ($trace and $erreur and !preg_match('/^select\b/i', $query)) {
74
-		erreur_squelette([sql_errno($serveur), $erreur, $query]);
75
-	}
76
-
77
-	return $result;
46
+    static $trace = '?';
47
+    if ($trace === '?') {
48
+        if (empty($GLOBALS['visiteur_session'])) {
49
+            // si un anonyme fait un var_profile on est oblige de remplir le tableau des temps en attendant de savoir
50
+            // car ici on ne sait pas si c'est un hit anonyme
51
+            // ou une requete SQL faite avant chargement de la session
52
+            $trace = (!empty($_GET['var_profile']) ? '?' : false);
53
+        }
54
+        else {
55
+            include_spip('inc/autoriser');
56
+            // gare au bouclage sur calcul de droits au premier appel
57
+            // A fortiori quand on demande une trace
58
+            $trace = false; // on ne trace pas la requete provoquee par autoriser('debug')
59
+            $trace = (!empty($_GET['var_profile']) and autoriser('debug'));
60
+        }
61
+    }
62
+    if ($start) {
63
+        $end = microtime();
64
+        list($usec, $sec) = explode(' ', $start);
65
+        list($usec2, $sec2) = explode(' ', $end);
66
+        $dt = $sec2 + $usec2 - $sec - $usec;
67
+        pipeline('trig_trace_query', ['query' => $query, 'start' => $start, 'end' => $end, 'time' => $dt, 'result' => $result, 'erreur' => $erreur, 'serveur' => $serveur]);
68
+        if ($trace) {
69
+            trace_query_chrono($dt, $query, $result, $serveur);
70
+        }
71
+    }
72
+    // tracer les erreurs, sauf pour select, c'est fait dans abstract_sql
73
+    if ($trace and $erreur and !preg_match('/^select\b/i', $query)) {
74
+        erreur_squelette([sql_errno($serveur), $erreur, $query]);
75
+    }
76
+
77
+    return $result;
78 78
 }
79 79
 
80 80
 // https://code.spip.net/@trace_query_chrono
81 81
 function trace_query_chrono($dt, $query, $result, $serveur = '') {
82
-	include_spip('inc/filtres_mini');
83
-	static $tt = 0, $nb = 0;
84
-
85
-	$x = _request('var_mode_objet');
86
-	if (isset($GLOBALS['debug']['aucasou'])) {
87
-		list(, $boucle, $serveur, $contexte) = $GLOBALS['debug']['aucasou'];
88
-		if ($x and !preg_match("/$boucle\$/", $x)) {
89
-			return;
90
-		}
91
-		if ($serveur) {
92
-			$boucle .= " ($serveur)";
93
-		}
94
-		$boucle = "<b>$boucle</b>";
95
-	} else {
96
-		if ($x) {
97
-			return;
98
-		}
99
-		$boucle = $contexte = '';
100
-	}
101
-
102
-	$tt += $dt;
103
-	$nb++;
104
-
105
-	$q = preg_replace('/([a-z)`])\s+([A-Z])/', "$1\n<br />$2", spip_htmlentities($query));
106
-	$e = sql_explain($query, $serveur);
107
-	$r = str_replace('Resource id ', '', (is_object($result) ? get_class($result) : $result));
108
-	$GLOBALS['tableau_des_temps'][] = [$dt, $nb, $boucle, $q, $e, $r, $contexte];
82
+    include_spip('inc/filtres_mini');
83
+    static $tt = 0, $nb = 0;
84
+
85
+    $x = _request('var_mode_objet');
86
+    if (isset($GLOBALS['debug']['aucasou'])) {
87
+        list(, $boucle, $serveur, $contexte) = $GLOBALS['debug']['aucasou'];
88
+        if ($x and !preg_match("/$boucle\$/", $x)) {
89
+            return;
90
+        }
91
+        if ($serveur) {
92
+            $boucle .= " ($serveur)";
93
+        }
94
+        $boucle = "<b>$boucle</b>";
95
+    } else {
96
+        if ($x) {
97
+            return;
98
+        }
99
+        $boucle = $contexte = '';
100
+    }
101
+
102
+    $tt += $dt;
103
+    $nb++;
104
+
105
+    $q = preg_replace('/([a-z)`])\s+([A-Z])/', "$1\n<br />$2", spip_htmlentities($query));
106
+    $e = sql_explain($query, $serveur);
107
+    $r = str_replace('Resource id ', '', (is_object($result) ? get_class($result) : $result));
108
+    $GLOBALS['tableau_des_temps'][] = [$dt, $nb, $boucle, $q, $e, $r, $contexte];
109 109
 }
110 110
 
111 111
 
112 112
 function chrono_requete($temps) {
113
-	$total = 0;
114
-	$hors = '<i>' . _T('zbug_hors_compilation') . '</i>';
115
-	$t = $q = $n = $d = [];
116
-	// Totaliser les temps et completer le Explain
117
-	foreach ($temps as $key => $v) {
118
-		list($dt, $nb, $boucle, $query, $explain, $res, $contexte) = $v;
119
-		if (is_array($contexte)) {
120
-			$k = ($contexte[0] . " $boucle");
121
-			include_spip('public/compiler');
122
-			$env = reconstruire_contexte_compil($contexte);
123
-		} else {
124
-			$k = $env = $boucle;
125
-		}
126
-
127
-		$total += $dt;
128
-		$t[$key] = $dt;
129
-		$q[$key] = $nb;
130
-		if (!isset($d[$k])) {
131
-			$d[$k] = 0;
132
-			$n[$k] = 0;
133
-		}
134
-		$d[$k] += $dt;
135
-		++$n[$k];
136
-
137
-		if (!is_array($explain)) {
138
-			$explain = [];
139
-		}
140
-		foreach ($explain as $j => $v) {
141
-			$explain[$j] = "<tr><th>$j</th><td>"
142
-				. str_replace(';', '<br />', $v)
143
-				. '</td></tr>';
144
-		}
145
-		$e = "<table class='explain'>"
146
-			. '<caption>'
147
-			. $query
148
-			. '</caption>'
149
-			. "<tr><th>Time</th><td>$dt</td></tr>"
150
-			. "<tr><th>Order</th><td>$nb</td></tr>"
151
-			. "<tr><th>Res</th><td>$res</td></tr>"
152
-			. join('', $explain)
153
-			. '</table>';
154
-
155
-		$temps[$key] = [$e, $env, $k];
156
-	}
157
-	// Trier par temps d'execution decroissant
158
-	array_multisort($t, SORT_DESC, $q, $temps);
159
-	arsort($d);
160
-	$i = 1;
161
-	$t = [];
162
-	// Fabriquer les liens de navigations dans le tableau des temps
163
-	foreach ($temps as $k => $v) {
164
-		$titre = strip_tags($v[2]);
165
-		$href = quote_amp($GLOBALS['REQUEST_URI']) . "#req$i";
166
-		$href = str_replace("\\'", '&#39;', $href);
167
-
168
-		if (!isset($t[$v[2]])) {
169
-			$t[$v[2]] = [];
170
-		}
171
-		$t[$v[2]][] = "<span class='spip-debug-arg'> "
172
-			. "<a title='$titre' href='$href'>$i</a>"
173
-			. '</span>'
174
-			. ((count($t[$v[2]]) % 10 == 9) ? '<br />' : '');
175
-		$i++;
176
-	}
177
-
178
-	if ($d['']) {
179
-		$d[$hors] = $d[''];
180
-		$n[$hors] = $n[''];
181
-		$t[$hors] = $t[''];
182
-	}
183
-	unset($d['']);
184
-	// Fabriquer le tableau des liens de navigation dans le grand tableau
185
-	foreach ($d as $k => $v) {
186
-		$d[$k] = $n[$k] . "</td><td>$k</td><td class='time'>$v</td><td class='liste-reqs'>"
187
-			. join('', $t[$k]);
188
-	}
189
-
190
-	$navigation = [
191
-		_T('zbug_statistiques'),
192
-		'<tr><td>'
193
-		. join("</td></tr>\n<tr><td>", $d)
194
-		. "</td></tr>\n"
195
-		. (# _request('var_mode_objet') ? '' :
196
-		('<tr><td>' . count($temps) . '</td><td>' . _T('info_total') . '</td><td class="time">' . $total . '</td><td></td></tr>'))
197
-	];
198
-
199
-	return [$temps, $navigation];
113
+    $total = 0;
114
+    $hors = '<i>' . _T('zbug_hors_compilation') . '</i>';
115
+    $t = $q = $n = $d = [];
116
+    // Totaliser les temps et completer le Explain
117
+    foreach ($temps as $key => $v) {
118
+        list($dt, $nb, $boucle, $query, $explain, $res, $contexte) = $v;
119
+        if (is_array($contexte)) {
120
+            $k = ($contexte[0] . " $boucle");
121
+            include_spip('public/compiler');
122
+            $env = reconstruire_contexte_compil($contexte);
123
+        } else {
124
+            $k = $env = $boucle;
125
+        }
126
+
127
+        $total += $dt;
128
+        $t[$key] = $dt;
129
+        $q[$key] = $nb;
130
+        if (!isset($d[$k])) {
131
+            $d[$k] = 0;
132
+            $n[$k] = 0;
133
+        }
134
+        $d[$k] += $dt;
135
+        ++$n[$k];
136
+
137
+        if (!is_array($explain)) {
138
+            $explain = [];
139
+        }
140
+        foreach ($explain as $j => $v) {
141
+            $explain[$j] = "<tr><th>$j</th><td>"
142
+                . str_replace(';', '<br />', $v)
143
+                . '</td></tr>';
144
+        }
145
+        $e = "<table class='explain'>"
146
+            . '<caption>'
147
+            . $query
148
+            . '</caption>'
149
+            . "<tr><th>Time</th><td>$dt</td></tr>"
150
+            . "<tr><th>Order</th><td>$nb</td></tr>"
151
+            . "<tr><th>Res</th><td>$res</td></tr>"
152
+            . join('', $explain)
153
+            . '</table>';
154
+
155
+        $temps[$key] = [$e, $env, $k];
156
+    }
157
+    // Trier par temps d'execution decroissant
158
+    array_multisort($t, SORT_DESC, $q, $temps);
159
+    arsort($d);
160
+    $i = 1;
161
+    $t = [];
162
+    // Fabriquer les liens de navigations dans le tableau des temps
163
+    foreach ($temps as $k => $v) {
164
+        $titre = strip_tags($v[2]);
165
+        $href = quote_amp($GLOBALS['REQUEST_URI']) . "#req$i";
166
+        $href = str_replace("\\'", '&#39;', $href);
167
+
168
+        if (!isset($t[$v[2]])) {
169
+            $t[$v[2]] = [];
170
+        }
171
+        $t[$v[2]][] = "<span class='spip-debug-arg'> "
172
+            . "<a title='$titre' href='$href'>$i</a>"
173
+            . '</span>'
174
+            . ((count($t[$v[2]]) % 10 == 9) ? '<br />' : '');
175
+        $i++;
176
+    }
177
+
178
+    if ($d['']) {
179
+        $d[$hors] = $d[''];
180
+        $n[$hors] = $n[''];
181
+        $t[$hors] = $t[''];
182
+    }
183
+    unset($d['']);
184
+    // Fabriquer le tableau des liens de navigation dans le grand tableau
185
+    foreach ($d as $k => $v) {
186
+        $d[$k] = $n[$k] . "</td><td>$k</td><td class='time'>$v</td><td class='liste-reqs'>"
187
+            . join('', $t[$k]);
188
+    }
189
+
190
+    $navigation = [
191
+        _T('zbug_statistiques'),
192
+        '<tr><td>'
193
+        . join("</td></tr>\n<tr><td>", $d)
194
+        . "</td></tr>\n"
195
+        . (# _request('var_mode_objet') ? '' :
196
+        ('<tr><td>' . count($temps) . '</td><td>' . _T('info_total') . '</td><td class="time">' . $total . '</td><td></td></tr>'))
197
+    ];
198
+
199
+    return [$temps, $navigation];
200 200
 }
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -111,13 +111,13 @@  discard block
 block discarded – undo
111 111
 
112 112
 function chrono_requete($temps) {
113 113
 	$total = 0;
114
-	$hors = '<i>' . _T('zbug_hors_compilation') . '</i>';
114
+	$hors = '<i>'._T('zbug_hors_compilation').'</i>';
115 115
 	$t = $q = $n = $d = [];
116 116
 	// Totaliser les temps et completer le Explain
117 117
 	foreach ($temps as $key => $v) {
118 118
 		list($dt, $nb, $boucle, $query, $explain, $res, $contexte) = $v;
119 119
 		if (is_array($contexte)) {
120
-			$k = ($contexte[0] . " $boucle");
120
+			$k = ($contexte[0]." $boucle");
121 121
 			include_spip('public/compiler');
122 122
 			$env = reconstruire_contexte_compil($contexte);
123 123
 		} else {
@@ -162,7 +162,7 @@  discard block
 block discarded – undo
162 162
 	// Fabriquer les liens de navigations dans le tableau des temps
163 163
 	foreach ($temps as $k => $v) {
164 164
 		$titre = strip_tags($v[2]);
165
-		$href = quote_amp($GLOBALS['REQUEST_URI']) . "#req$i";
165
+		$href = quote_amp($GLOBALS['REQUEST_URI'])."#req$i";
166 166
 		$href = str_replace("\\'", '&#39;', $href);
167 167
 
168 168
 		if (!isset($t[$v[2]])) {
@@ -183,7 +183,7 @@  discard block
 block discarded – undo
183 183
 	unset($d['']);
184 184
 	// Fabriquer le tableau des liens de navigation dans le grand tableau
185 185
 	foreach ($d as $k => $v) {
186
-		$d[$k] = $n[$k] . "</td><td>$k</td><td class='time'>$v</td><td class='liste-reqs'>"
186
+		$d[$k] = $n[$k]."</td><td>$k</td><td class='time'>$v</td><td class='liste-reqs'>"
187 187
 			. join('', $t[$k]);
188 188
 	}
189 189
 
@@ -193,7 +193,7 @@  discard block
 block discarded – undo
193 193
 		. join("</td></tr>\n<tr><td>", $d)
194 194
 		. "</td></tr>\n"
195 195
 		. (# _request('var_mode_objet') ? '' :
196
-		('<tr><td>' . count($temps) . '</td><td>' . _T('info_total') . '</td><td class="time">' . $total . '</td><td></td></tr>'))
196
+		('<tr><td>'.count($temps).'</td><td>'._T('info_total').'</td><td class="time">'.$total.'</td><td></td></tr>'))
197 197
 	];
198 198
 
199 199
 	return [$temps, $navigation];
Please login to merge, or discard this patch.
ecrire/req/sqlite_generique.php 3 patches
Braces   +2 added lines, -4 removed lines patch added patch discarded remove patch
@@ -2006,8 +2006,7 @@  discard block
 block discarded – undo
2006 2006
 		// si on ne connait pas le type on le deduit de $v autant que possible
2007 2007
 		if (is_bool($v)) {
2008 2008
 			return strval(intval($v));
2009
-		}
2010
-		elseif (is_numeric($v)) {
2009
+		} elseif (is_numeric($v)) {
2011 2010
 			return strval($v);
2012 2011
 		}
2013 2012
 	}
@@ -2633,8 +2632,7 @@  discard block
 block discarded – undo
2633 2632
 				$tables[$table]['valeur'][$k] = _sqlite_calculer_cite($now, $tables[$table]['desc'][$k]);
2634 2633
 			}
2635 2634
 		}
2636
-	}
2637
-	else {
2635
+	} else {
2638 2636
 		$now = _sqlite_func_now(true);
2639 2637
 		foreach (array_keys($tables[$table]['desc']) as $k) {
2640 2638
 			$tables[$table]['valeur'][$k] = _sqlite_calculer_cite($now, $tables[$table]['desc'][$k]);
Please login to merge, or discard this patch.
Indentation   +1985 added lines, -1985 removed lines patch added patch discarded remove patch
@@ -18,7 +18,7 @@  discard block
 block discarded – undo
18 18
  */
19 19
 
20 20
 if (!defined('_ECRIRE_INC_VERSION')) {
21
-	return;
21
+    return;
22 22
 }
23 23
 
24 24
 // TODO: get/set_caracteres ?
@@ -42,91 +42,91 @@  discard block
 block discarded – undo
42 42
  * @return array|bool
43 43
  */
44 44
 function req_sqlite_dist($addr, $port, $login, $pass, $db = '', $prefixe = '', $sqlite_version = '') {
45
-	static $last_connect = [];
46
-
47
-	// si provient de selectdb
48
-	// un code pour etre sur que l'on vient de select_db()
49
-	if (strpos($db, $code = '@selectdb@') !== false) {
50
-		foreach (['addr', 'port', 'login', 'pass', 'prefixe'] as $a) {
51
-			$$a = $last_connect[$a];
52
-		}
53
-		$db = str_replace($code, '', $db);
54
-	}
55
-
56
-	/*
45
+    static $last_connect = [];
46
+
47
+    // si provient de selectdb
48
+    // un code pour etre sur que l'on vient de select_db()
49
+    if (strpos($db, $code = '@selectdb@') !== false) {
50
+        foreach (['addr', 'port', 'login', 'pass', 'prefixe'] as $a) {
51
+            $$a = $last_connect[$a];
52
+        }
53
+        $db = str_replace($code, '', $db);
54
+    }
55
+
56
+    /*
57 57
 	 * En sqlite, seule l'adresse du fichier est importante.
58 58
 	 * Ce sera $db le nom,
59 59
 	 * le path est $addr
60 60
 	 * (_DIR_DB si $addr est vide)
61 61
 	 */
62
-	_sqlite_init();
63
-
64
-	// determiner le dossier de la base : $addr ou _DIR_DB
65
-	$f = _DIR_DB;
66
-	if ($addr and strpos($addr, '/') !== false) {
67
-		$f = rtrim($addr, '/') . '/';
68
-	}
69
-
70
-	// un nom de base demande et impossible d'obtenir la base, on s'en va :
71
-	// il faut que la base existe ou que le repertoire parent soit writable
72
-	if ($db and !is_file($f .= $db . '.sqlite') and !is_writable(dirname($f))) {
73
-		spip_log("base $f non trouvee ou droits en ecriture manquants", 'sqlite.' . _LOG_HS);
74
-
75
-		return false;
76
-	}
77
-
78
-	// charger les modules sqlite au besoin
79
-	if (!_sqlite_charger_version($sqlite_version)) {
80
-		spip_log("Impossible de trouver/charger le module SQLite ($sqlite_version)!", 'sqlite.' . _LOG_HS);
81
-
82
-		return false;
83
-	}
84
-
85
-	// chargement des constantes
86
-	// il ne faut pas definir les constantes avant d'avoir charge les modules sqlite
87
-	$define = 'spip_sqlite' . $sqlite_version . '_constantes';
88
-	$define();
89
-
90
-	$ok = false;
91
-	if (!$db) {
92
-		// si pas de db ->
93
-		// base temporaire tant qu'on ne connait pas son vrai nom
94
-		// pour tester la connexion
95
-		$db = '_sqlite' . $sqlite_version . '_install';
96
-		$tmp = _DIR_DB . $db . '.sqlite';
97
-		$ok = $link = new \PDO("sqlite:$tmp");
98
-	} else {
99
-		// Ouvrir (eventuellement creer la base)
100
-		$ok = $link = new \PDO("sqlite:$f");
101
-	}
102
-
103
-	if (!$ok) {
104
-		$e = _sqlite_last_error_from_link($link);
105
-		spip_log("Impossible d'ouvrir la base SQLite($sqlite_version) $f : $e", 'sqlite.' . _LOG_HS);
106
-
107
-		return false;
108
-	}
109
-
110
-	if ($link) {
111
-		$last_connect = [
112
-			'addr' => $addr,
113
-			'port' => $port,
114
-			'login' => $login,
115
-			'pass' => $pass,
116
-			'db' => $db,
117
-			'prefixe' => $prefixe,
118
-		];
119
-		// etre sur qu'on definit bien les fonctions a chaque nouvelle connexion
120
-		include_spip('req/sqlite_fonctions');
121
-		_sqlite_init_functions($link);
122
-	}
123
-
124
-	return [
125
-		'db' => $db,
126
-		'prefixe' => $prefixe ? $prefixe : $db,
127
-		'link' => $link,
128
-		'total_requetes' => 0,
129
-	];
62
+    _sqlite_init();
63
+
64
+    // determiner le dossier de la base : $addr ou _DIR_DB
65
+    $f = _DIR_DB;
66
+    if ($addr and strpos($addr, '/') !== false) {
67
+        $f = rtrim($addr, '/') . '/';
68
+    }
69
+
70
+    // un nom de base demande et impossible d'obtenir la base, on s'en va :
71
+    // il faut que la base existe ou que le repertoire parent soit writable
72
+    if ($db and !is_file($f .= $db . '.sqlite') and !is_writable(dirname($f))) {
73
+        spip_log("base $f non trouvee ou droits en ecriture manquants", 'sqlite.' . _LOG_HS);
74
+
75
+        return false;
76
+    }
77
+
78
+    // charger les modules sqlite au besoin
79
+    if (!_sqlite_charger_version($sqlite_version)) {
80
+        spip_log("Impossible de trouver/charger le module SQLite ($sqlite_version)!", 'sqlite.' . _LOG_HS);
81
+
82
+        return false;
83
+    }
84
+
85
+    // chargement des constantes
86
+    // il ne faut pas definir les constantes avant d'avoir charge les modules sqlite
87
+    $define = 'spip_sqlite' . $sqlite_version . '_constantes';
88
+    $define();
89
+
90
+    $ok = false;
91
+    if (!$db) {
92
+        // si pas de db ->
93
+        // base temporaire tant qu'on ne connait pas son vrai nom
94
+        // pour tester la connexion
95
+        $db = '_sqlite' . $sqlite_version . '_install';
96
+        $tmp = _DIR_DB . $db . '.sqlite';
97
+        $ok = $link = new \PDO("sqlite:$tmp");
98
+    } else {
99
+        // Ouvrir (eventuellement creer la base)
100
+        $ok = $link = new \PDO("sqlite:$f");
101
+    }
102
+
103
+    if (!$ok) {
104
+        $e = _sqlite_last_error_from_link($link);
105
+        spip_log("Impossible d'ouvrir la base SQLite($sqlite_version) $f : $e", 'sqlite.' . _LOG_HS);
106
+
107
+        return false;
108
+    }
109
+
110
+    if ($link) {
111
+        $last_connect = [
112
+            'addr' => $addr,
113
+            'port' => $port,
114
+            'login' => $login,
115
+            'pass' => $pass,
116
+            'db' => $db,
117
+            'prefixe' => $prefixe,
118
+        ];
119
+        // etre sur qu'on definit bien les fonctions a chaque nouvelle connexion
120
+        include_spip('req/sqlite_fonctions');
121
+        _sqlite_init_functions($link);
122
+    }
123
+
124
+    return [
125
+        'db' => $db,
126
+        'prefixe' => $prefixe ? $prefixe : $db,
127
+        'link' => $link,
128
+        'total_requetes' => 0,
129
+    ];
130 130
 }
131 131
 
132 132
 
@@ -145,14 +145,14 @@  discard block
 block discarded – undo
145 145
  *    Resultat de la requete
146 146
  */
147 147
 function spip_sqlite_query($query, $serveur = '', $requeter = true) {
148
-	#spip_log("spip_sqlite_query() > $query",'sqlite.'._LOG_DEBUG);
149
-	#_sqlite_init(); // fait la premiere fois dans spip_sqlite
150
-	$query = spip_sqlite::traduire_requete($query, $serveur);
151
-	if (!$requeter) {
152
-		return $query;
153
-	}
148
+    #spip_log("spip_sqlite_query() > $query",'sqlite.'._LOG_DEBUG);
149
+    #_sqlite_init(); // fait la premiere fois dans spip_sqlite
150
+    $query = spip_sqlite::traduire_requete($query, $serveur);
151
+    if (!$requeter) {
152
+        return $query;
153
+    }
154 154
 
155
-	return spip_sqlite::executer_requete($query, $serveur);
155
+    return spip_sqlite::executer_requete($query, $serveur);
156 156
 }
157 157
 
158 158
 
@@ -169,11 +169,11 @@  discard block
 block discarded – undo
169 169
  */
170 170
 function spip_sqlite_alter($query, $serveur = '', $requeter = true) {
171 171
 
172
-	$query = spip_sqlite_query("ALTER $query", $serveur, false);
173
-	// traduire la requete pour recuperer les bons noms de table
174
-	$query = spip_sqlite::traduire_requete($query, $serveur);
172
+    $query = spip_sqlite_query("ALTER $query", $serveur, false);
173
+    // traduire la requete pour recuperer les bons noms de table
174
+    $query = spip_sqlite::traduire_requete($query, $serveur);
175 175
 
176
-	/*
176
+    /*
177 177
 		 * la il faut faire les transformations
178 178
 		 * si ALTER TABLE x (DROP|CHANGE) y
179 179
 		 *
@@ -182,251 +182,251 @@  discard block
 block discarded – undo
182 182
 		 * 3) faire chaque requete independemment
183 183
 		 */
184 184
 
185
-	// 1
186
-	if (preg_match('/\s*(ALTER(\s*IGNORE)?\s*TABLE\s*([^\s]*))\s*(.*)?/is', $query, $regs)) {
187
-		$debut = $regs[1];
188
-		$table = $regs[3];
189
-		$suite = $regs[4];
190
-	} else {
191
-		spip_log("SQLite : Probleme de ALTER TABLE mal forme dans $query", 'sqlite.' . _LOG_ERREUR);
192
-
193
-		return false;
194
-	}
195
-
196
-	// 2
197
-	// il faudrait une regexp pour eviter de spliter ADD PRIMARY KEY (colA, colB)
198
-	// tout en cassant "ADD PRIMARY KEY (colA, colB), ADD INDEX (chose)"... en deux
199
-	// ou revoir l'api de sql_alter en creant un
200
-	// sql_alter_table($table,array($actions));
201
-	$todo = explode(',', $suite);
202
-
203
-	// on remet les morceaux dechires ensembles... que c'est laid !
204
-	$todo2 = [];
205
-	$i = 0;
206
-	$ouverte = false;
207
-	while ($do = array_shift($todo)) {
208
-		$todo2[$i] = isset($todo2[$i]) ? $todo2[$i] . ',' . $do : $do;
209
-		$o = (false !== strpos($do, '('));
210
-		$f = (false !== strpos($do, ')'));
211
-		if ($o and !$f) {
212
-			$ouverte = true;
213
-		} elseif ($f) {
214
-			$ouverte = false;
215
-		}
216
-		if (!$ouverte) {
217
-			$i++;
218
-		}
219
-	}
220
-
221
-	// 3
222
-	$resultats = [];
223
-	foreach ($todo2 as $do) {
224
-		$do = trim($do);
225
-		if (
226
-			!preg_match('/(DROP PRIMARY KEY|DROP KEY|DROP INDEX|DROP COLUMN|DROP'
227
-			. '|CHANGE COLUMN|CHANGE|MODIFY|RENAME TO|RENAME'
228
-			. '|ADD PRIMARY KEY|ADD KEY|ADD INDEX|ADD UNIQUE KEY|ADD UNIQUE'
229
-			. '|ADD COLUMN|ADD'
230
-			. ')\s*([^\s]*)\s*(.*)?/i', $do, $matches)
231
-		) {
232
-			spip_log(
233
-				"SQLite : Probleme de ALTER TABLE, utilisation non reconnue dans : $do \n(requete d'origine : $query)",
234
-				'sqlite.' . _LOG_ERREUR
235
-			);
236
-
237
-			return false;
238
-		}
239
-
240
-		$cle = strtoupper($matches[1]);
241
-		$colonne_origine = $matches[2];
242
-		$colonne_destination = '';
243
-
244
-		$def = $matches[3];
245
-
246
-		// eluder une eventuelle clause before|after|first inutilisable
247
-		$defr = rtrim(preg_replace('/(BEFORE|AFTER|FIRST)(.*)$/is', '', $def));
248
-		$defo = $defr; // garder la def d'origine pour certains cas
249
-		// remplacer les definitions venant de mysql
250
-		$defr = _sqlite_remplacements_definitions_table($defr);
251
-
252
-		// reinjecter dans le do
253
-		$do = str_replace($def, $defr, $do);
254
-		$def = $defr;
255
-
256
-		switch ($cle) {
257
-			// suppression d'un index
258
-			case 'DROP KEY':
259
-			case 'DROP INDEX':
260
-				$nom_index = $colonne_origine;
261
-				spip_sqlite_drop_index($nom_index, $table, $serveur);
262
-				break;
263
-
264
-			// suppression d'une pk
265
-			case 'DROP PRIMARY KEY':
266
-				if (
267
-					!_sqlite_modifier_table(
268
-						$table,
269
-						$colonne_origine,
270
-						['key' => ['PRIMARY KEY' => '']],
271
-						$serveur
272
-					)
273
-				) {
274
-					return false;
275
-				}
276
-				break;
277
-			// suppression d'une colonne
278
-			case 'DROP COLUMN':
279
-			case 'DROP':
280
-				if (
281
-					!_sqlite_modifier_table(
282
-						$table,
283
-						[$colonne_origine => ''],
284
-						[],
285
-						$serveur
286
-					)
287
-				) {
288
-					return false;
289
-				}
290
-				break;
291
-
292
-			case 'CHANGE COLUMN':
293
-			case 'CHANGE':
294
-				// recuperer le nom de la future colonne
295
-				// on reprend la def d'origine car _sqlite_modifier_table va refaire la translation
296
-				// en tenant compte de la cle primaire (ce qui est mieux)
297
-				$def = trim($defo);
298
-				$colonne_destination = substr($def, 0, strpos($def, ' '));
299
-				$def = substr($def, strlen($colonne_destination) + 1);
300
-
301
-				if (
302
-					!_sqlite_modifier_table(
303
-						$table,
304
-						[$colonne_origine => $colonne_destination],
305
-						['field' => [$colonne_destination => $def]],
306
-						$serveur
307
-					)
308
-				) {
309
-					return false;
310
-				}
311
-				break;
312
-
313
-			case 'MODIFY':
314
-				// on reprend la def d'origine car _sqlite_modifier_table va refaire la translation
315
-				// en tenant compte de la cle primaire (ce qui est mieux)
316
-				if (
317
-					!_sqlite_modifier_table(
318
-						$table,
319
-						$colonne_origine,
320
-						['field' => [$colonne_origine => $defo]],
321
-						$serveur
322
-					)
323
-				) {
324
-					return false;
325
-				}
326
-				break;
327
-
328
-			// pas geres en sqlite2
329
-			case 'RENAME':
330
-				$do = 'RENAME TO' . substr($do, 6);
331
-			case 'RENAME TO':
332
-				if (!spip_sqlite::executer_requete("$debut $do", $serveur)) {
333
-					spip_log("SQLite : Erreur ALTER TABLE / RENAME : $query", 'sqlite.' . _LOG_ERREUR);
334
-
335
-					return false;
336
-				}
337
-				break;
338
-
339
-			// ajout d'une pk
340
-			case 'ADD PRIMARY KEY':
341
-				$pk = trim(substr($do, 16));
342
-				$pk = ($pk[0] == '(') ? substr($pk, 1, -1) : $pk;
343
-				if (
344
-					!_sqlite_modifier_table(
345
-						$table,
346
-						$colonne_origine,
347
-						['key' => ['PRIMARY KEY' => $pk]],
348
-						$serveur
349
-					)
350
-				) {
351
-					return false;
352
-				}
353
-				break;
354
-			// ajout d'un index
355
-			case 'ADD UNIQUE KEY':
356
-			case 'ADD UNIQUE':
357
-				$unique = true;
358
-			case 'ADD INDEX':
359
-			case 'ADD KEY':
360
-				if (!isset($unique)) {
361
-					$unique = false;
362
-				}
363
-				// peut etre "(colonne)" ou "nom_index (colonnes)"
364
-				// bug potentiel si qqn met "(colonne, colonne)"
365
-				//
366
-				// nom_index (colonnes)
367
-				if ($def) {
368
-					$colonnes = substr($def, 1, -1);
369
-					$nom_index = $colonne_origine;
370
-				} else {
371
-					// (colonne)
372
-					if ($colonne_origine[0] == '(') {
373
-						$colonnes = substr($colonne_origine, 1, -1);
374
-						if (false !== strpos(',', $colonnes)) {
375
-							spip_log('SQLite : Erreur, impossible de creer un index sur plusieurs colonnes'
376
-								. " sans qu'il ait de nom ($table, ($colonnes))", 'sqlite.' . _LOG_ERREUR);
377
-							break;
378
-						} else {
379
-							$nom_index = $colonnes;
380
-						}
381
-					} // nom_index
382
-					else {
383
-						$nom_index = $colonnes = $colonne_origine;
384
-					}
385
-				}
386
-				spip_sqlite_create_index($nom_index, $table, $colonnes, $unique, $serveur);
387
-				break;
388
-
389
-			// pas geres en sqlite2
390
-			case 'ADD COLUMN':
391
-				$do = 'ADD' . substr($do, 10);
392
-			case 'ADD':
393
-			default:
394
-				if (!preg_match(',primary\s+key,i', $do)) {
395
-					if (!spip_sqlite::executer_requete("$debut $do", $serveur)) {
396
-						spip_log("SQLite : Erreur ALTER TABLE / ADD : $query", 'sqlite.' . _LOG_ERREUR);
397
-
398
-						return false;
399
-					}
400
-					break;
401
-				}
402
-				// ou si la colonne est aussi primary key
403
-				// cas du add id_truc int primary key
404
-				// ajout d'une colonne qui passe en primary key directe
405
-				else {
406
-					$def = trim(substr($do, 3));
407
-					$colonne_ajoutee = substr($def, 0, strpos($def, ' '));
408
-					$def = substr($def, strlen($colonne_ajoutee) + 1);
409
-					$opts = [];
410
-					if (preg_match(',primary\s+key,i', $def)) {
411
-						$opts['key'] = ['PRIMARY KEY' => $colonne_ajoutee];
412
-						$def = preg_replace(',primary\s+key,i', '', $def);
413
-					}
414
-					$opts['field'] = [$colonne_ajoutee => $def];
415
-					if (!_sqlite_modifier_table($table, [$colonne_ajoutee], $opts, $serveur)) {
416
-						spip_log("SQLite : Erreur ALTER TABLE / ADD : $query", 'sqlite.' . _LOG_ERREUR);
417
-
418
-						return false;
419
-					}
420
-				}
421
-				break;
422
-		}
423
-		// tout est bon, ouf !
424
-		spip_log("SQLite ($serveur) : Changements OK : $debut $do", 'sqlite.' . _LOG_INFO);
425
-	}
426
-
427
-	spip_log("SQLite ($serveur) : fin ALTER TABLE OK !", 'sqlite.' . _LOG_INFO);
428
-
429
-	return true;
185
+    // 1
186
+    if (preg_match('/\s*(ALTER(\s*IGNORE)?\s*TABLE\s*([^\s]*))\s*(.*)?/is', $query, $regs)) {
187
+        $debut = $regs[1];
188
+        $table = $regs[3];
189
+        $suite = $regs[4];
190
+    } else {
191
+        spip_log("SQLite : Probleme de ALTER TABLE mal forme dans $query", 'sqlite.' . _LOG_ERREUR);
192
+
193
+        return false;
194
+    }
195
+
196
+    // 2
197
+    // il faudrait une regexp pour eviter de spliter ADD PRIMARY KEY (colA, colB)
198
+    // tout en cassant "ADD PRIMARY KEY (colA, colB), ADD INDEX (chose)"... en deux
199
+    // ou revoir l'api de sql_alter en creant un
200
+    // sql_alter_table($table,array($actions));
201
+    $todo = explode(',', $suite);
202
+
203
+    // on remet les morceaux dechires ensembles... que c'est laid !
204
+    $todo2 = [];
205
+    $i = 0;
206
+    $ouverte = false;
207
+    while ($do = array_shift($todo)) {
208
+        $todo2[$i] = isset($todo2[$i]) ? $todo2[$i] . ',' . $do : $do;
209
+        $o = (false !== strpos($do, '('));
210
+        $f = (false !== strpos($do, ')'));
211
+        if ($o and !$f) {
212
+            $ouverte = true;
213
+        } elseif ($f) {
214
+            $ouverte = false;
215
+        }
216
+        if (!$ouverte) {
217
+            $i++;
218
+        }
219
+    }
220
+
221
+    // 3
222
+    $resultats = [];
223
+    foreach ($todo2 as $do) {
224
+        $do = trim($do);
225
+        if (
226
+            !preg_match('/(DROP PRIMARY KEY|DROP KEY|DROP INDEX|DROP COLUMN|DROP'
227
+            . '|CHANGE COLUMN|CHANGE|MODIFY|RENAME TO|RENAME'
228
+            . '|ADD PRIMARY KEY|ADD KEY|ADD INDEX|ADD UNIQUE KEY|ADD UNIQUE'
229
+            . '|ADD COLUMN|ADD'
230
+            . ')\s*([^\s]*)\s*(.*)?/i', $do, $matches)
231
+        ) {
232
+            spip_log(
233
+                "SQLite : Probleme de ALTER TABLE, utilisation non reconnue dans : $do \n(requete d'origine : $query)",
234
+                'sqlite.' . _LOG_ERREUR
235
+            );
236
+
237
+            return false;
238
+        }
239
+
240
+        $cle = strtoupper($matches[1]);
241
+        $colonne_origine = $matches[2];
242
+        $colonne_destination = '';
243
+
244
+        $def = $matches[3];
245
+
246
+        // eluder une eventuelle clause before|after|first inutilisable
247
+        $defr = rtrim(preg_replace('/(BEFORE|AFTER|FIRST)(.*)$/is', '', $def));
248
+        $defo = $defr; // garder la def d'origine pour certains cas
249
+        // remplacer les definitions venant de mysql
250
+        $defr = _sqlite_remplacements_definitions_table($defr);
251
+
252
+        // reinjecter dans le do
253
+        $do = str_replace($def, $defr, $do);
254
+        $def = $defr;
255
+
256
+        switch ($cle) {
257
+            // suppression d'un index
258
+            case 'DROP KEY':
259
+            case 'DROP INDEX':
260
+                $nom_index = $colonne_origine;
261
+                spip_sqlite_drop_index($nom_index, $table, $serveur);
262
+                break;
263
+
264
+            // suppression d'une pk
265
+            case 'DROP PRIMARY KEY':
266
+                if (
267
+                    !_sqlite_modifier_table(
268
+                        $table,
269
+                        $colonne_origine,
270
+                        ['key' => ['PRIMARY KEY' => '']],
271
+                        $serveur
272
+                    )
273
+                ) {
274
+                    return false;
275
+                }
276
+                break;
277
+            // suppression d'une colonne
278
+            case 'DROP COLUMN':
279
+            case 'DROP':
280
+                if (
281
+                    !_sqlite_modifier_table(
282
+                        $table,
283
+                        [$colonne_origine => ''],
284
+                        [],
285
+                        $serveur
286
+                    )
287
+                ) {
288
+                    return false;
289
+                }
290
+                break;
291
+
292
+            case 'CHANGE COLUMN':
293
+            case 'CHANGE':
294
+                // recuperer le nom de la future colonne
295
+                // on reprend la def d'origine car _sqlite_modifier_table va refaire la translation
296
+                // en tenant compte de la cle primaire (ce qui est mieux)
297
+                $def = trim($defo);
298
+                $colonne_destination = substr($def, 0, strpos($def, ' '));
299
+                $def = substr($def, strlen($colonne_destination) + 1);
300
+
301
+                if (
302
+                    !_sqlite_modifier_table(
303
+                        $table,
304
+                        [$colonne_origine => $colonne_destination],
305
+                        ['field' => [$colonne_destination => $def]],
306
+                        $serveur
307
+                    )
308
+                ) {
309
+                    return false;
310
+                }
311
+                break;
312
+
313
+            case 'MODIFY':
314
+                // on reprend la def d'origine car _sqlite_modifier_table va refaire la translation
315
+                // en tenant compte de la cle primaire (ce qui est mieux)
316
+                if (
317
+                    !_sqlite_modifier_table(
318
+                        $table,
319
+                        $colonne_origine,
320
+                        ['field' => [$colonne_origine => $defo]],
321
+                        $serveur
322
+                    )
323
+                ) {
324
+                    return false;
325
+                }
326
+                break;
327
+
328
+            // pas geres en sqlite2
329
+            case 'RENAME':
330
+                $do = 'RENAME TO' . substr($do, 6);
331
+            case 'RENAME TO':
332
+                if (!spip_sqlite::executer_requete("$debut $do", $serveur)) {
333
+                    spip_log("SQLite : Erreur ALTER TABLE / RENAME : $query", 'sqlite.' . _LOG_ERREUR);
334
+
335
+                    return false;
336
+                }
337
+                break;
338
+
339
+            // ajout d'une pk
340
+            case 'ADD PRIMARY KEY':
341
+                $pk = trim(substr($do, 16));
342
+                $pk = ($pk[0] == '(') ? substr($pk, 1, -1) : $pk;
343
+                if (
344
+                    !_sqlite_modifier_table(
345
+                        $table,
346
+                        $colonne_origine,
347
+                        ['key' => ['PRIMARY KEY' => $pk]],
348
+                        $serveur
349
+                    )
350
+                ) {
351
+                    return false;
352
+                }
353
+                break;
354
+            // ajout d'un index
355
+            case 'ADD UNIQUE KEY':
356
+            case 'ADD UNIQUE':
357
+                $unique = true;
358
+            case 'ADD INDEX':
359
+            case 'ADD KEY':
360
+                if (!isset($unique)) {
361
+                    $unique = false;
362
+                }
363
+                // peut etre "(colonne)" ou "nom_index (colonnes)"
364
+                // bug potentiel si qqn met "(colonne, colonne)"
365
+                //
366
+                // nom_index (colonnes)
367
+                if ($def) {
368
+                    $colonnes = substr($def, 1, -1);
369
+                    $nom_index = $colonne_origine;
370
+                } else {
371
+                    // (colonne)
372
+                    if ($colonne_origine[0] == '(') {
373
+                        $colonnes = substr($colonne_origine, 1, -1);
374
+                        if (false !== strpos(',', $colonnes)) {
375
+                            spip_log('SQLite : Erreur, impossible de creer un index sur plusieurs colonnes'
376
+                                . " sans qu'il ait de nom ($table, ($colonnes))", 'sqlite.' . _LOG_ERREUR);
377
+                            break;
378
+                        } else {
379
+                            $nom_index = $colonnes;
380
+                        }
381
+                    } // nom_index
382
+                    else {
383
+                        $nom_index = $colonnes = $colonne_origine;
384
+                    }
385
+                }
386
+                spip_sqlite_create_index($nom_index, $table, $colonnes, $unique, $serveur);
387
+                break;
388
+
389
+            // pas geres en sqlite2
390
+            case 'ADD COLUMN':
391
+                $do = 'ADD' . substr($do, 10);
392
+            case 'ADD':
393
+            default:
394
+                if (!preg_match(',primary\s+key,i', $do)) {
395
+                    if (!spip_sqlite::executer_requete("$debut $do", $serveur)) {
396
+                        spip_log("SQLite : Erreur ALTER TABLE / ADD : $query", 'sqlite.' . _LOG_ERREUR);
397
+
398
+                        return false;
399
+                    }
400
+                    break;
401
+                }
402
+                // ou si la colonne est aussi primary key
403
+                // cas du add id_truc int primary key
404
+                // ajout d'une colonne qui passe en primary key directe
405
+                else {
406
+                    $def = trim(substr($do, 3));
407
+                    $colonne_ajoutee = substr($def, 0, strpos($def, ' '));
408
+                    $def = substr($def, strlen($colonne_ajoutee) + 1);
409
+                    $opts = [];
410
+                    if (preg_match(',primary\s+key,i', $def)) {
411
+                        $opts['key'] = ['PRIMARY KEY' => $colonne_ajoutee];
412
+                        $def = preg_replace(',primary\s+key,i', '', $def);
413
+                    }
414
+                    $opts['field'] = [$colonne_ajoutee => $def];
415
+                    if (!_sqlite_modifier_table($table, [$colonne_ajoutee], $opts, $serveur)) {
416
+                        spip_log("SQLite : Erreur ALTER TABLE / ADD : $query", 'sqlite.' . _LOG_ERREUR);
417
+
418
+                        return false;
419
+                    }
420
+                }
421
+                break;
422
+        }
423
+        // tout est bon, ouf !
424
+        spip_log("SQLite ($serveur) : Changements OK : $debut $do", 'sqlite.' . _LOG_INFO);
425
+    }
426
+
427
+    spip_log("SQLite ($serveur) : fin ALTER TABLE OK !", 'sqlite.' . _LOG_INFO);
428
+
429
+    return true;
430 430
 }
431 431
 
432 432
 
@@ -449,38 +449,38 @@  discard block
 block discarded – undo
449 449
  *     - true si la requête réussie, false sinon.
450 450
  */
451 451
 function spip_sqlite_create(
452
-	$nom,
453
-	$champs,
454
-	$cles,
455
-	$autoinc = false,
456
-	$temporary = false,
457
-	$serveur = '',
458
-	$requeter = true
452
+    $nom,
453
+    $champs,
454
+    $cles,
455
+    $autoinc = false,
456
+    $temporary = false,
457
+    $serveur = '',
458
+    $requeter = true
459 459
 ) {
460
-	$query = _sqlite_requete_create($nom, $champs, $cles, $autoinc, $temporary, $ifnotexists = true, $serveur, $requeter);
461
-	if (!$query) {
462
-		return false;
463
-	}
464
-	$res = spip_sqlite_query($query, $serveur, $requeter);
465
-
466
-	// SQLite ne cree pas les KEY sur les requetes CREATE TABLE
467
-	// il faut donc les faire creer ensuite
468
-	if (!$requeter) {
469
-		return $res;
470
-	}
471
-
472
-	$ok = $res ? true : false;
473
-	if ($ok) {
474
-		foreach ($cles as $k => $v) {
475
-			if (preg_match(',^(UNIQUE KEY|KEY|UNIQUE)\s,i', $k, $m)) {
476
-				$index = trim(substr($k, strlen($m[1])));
477
-				$unique = (strlen($m[1]) > 3);
478
-				$ok &= spip_sqlite_create_index($index, $nom, $v, $unique, $serveur);
479
-			}
480
-		}
481
-	}
482
-
483
-	return $ok ? true : false;
460
+    $query = _sqlite_requete_create($nom, $champs, $cles, $autoinc, $temporary, $ifnotexists = true, $serveur, $requeter);
461
+    if (!$query) {
462
+        return false;
463
+    }
464
+    $res = spip_sqlite_query($query, $serveur, $requeter);
465
+
466
+    // SQLite ne cree pas les KEY sur les requetes CREATE TABLE
467
+    // il faut donc les faire creer ensuite
468
+    if (!$requeter) {
469
+        return $res;
470
+    }
471
+
472
+    $ok = $res ? true : false;
473
+    if ($ok) {
474
+        foreach ($cles as $k => $v) {
475
+            if (preg_match(',^(UNIQUE KEY|KEY|UNIQUE)\s,i', $k, $m)) {
476
+                $index = trim(substr($k, strlen($m[1])));
477
+                $unique = (strlen($m[1]) > 3);
478
+                $ok &= spip_sqlite_create_index($index, $nom, $v, $unique, $serveur);
479
+            }
480
+        }
481
+    }
482
+
483
+    return $ok ? true : false;
484 484
 }
485 485
 
486 486
 /**
@@ -493,21 +493,21 @@  discard block
 block discarded – undo
493 493
  * @return bool true si la base est créee.
494 494
  **/
495 495
 function spip_sqlite_create_base($nom, $serveur = '', $option = true) {
496
-	$f = $nom . '.sqlite';
497
-	if (strpos($nom, '/') === false) {
498
-		$f = _DIR_DB . $f;
499
-	}
496
+    $f = $nom . '.sqlite';
497
+    if (strpos($nom, '/') === false) {
498
+        $f = _DIR_DB . $f;
499
+    }
500 500
 
501
-	$ok = new \PDO("sqlite:$f");
501
+    $ok = new \PDO("sqlite:$f");
502 502
 
503
-	if ($ok) {
504
-		unset($ok);
503
+    if ($ok) {
504
+        unset($ok);
505 505
 
506
-		return true;
507
-	}
508
-	unset($ok);
506
+        return true;
507
+    }
508
+    unset($ok);
509 509
 
510
-	return false;
510
+    return false;
511 511
 }
512 512
 
513 513
 
@@ -528,22 +528,22 @@  discard block
 block discarded – undo
528 528
  *     - string texte de la requête si $requeter vaut false
529 529
  */
530 530
 function spip_sqlite_create_view($nom, $query_select, $serveur = '', $requeter = true) {
531
-	if (!$query_select) {
532
-		return false;
533
-	}
534
-	// vue deja presente
535
-	if (sql_showtable($nom, false, $serveur)) {
536
-		spip_log(
537
-			"Echec creation d'une vue sql ($nom) car celle-ci existe deja (serveur:$serveur)",
538
-			'sqlite.' . _LOG_ERREUR
539
-		);
531
+    if (!$query_select) {
532
+        return false;
533
+    }
534
+    // vue deja presente
535
+    if (sql_showtable($nom, false, $serveur)) {
536
+        spip_log(
537
+            "Echec creation d'une vue sql ($nom) car celle-ci existe deja (serveur:$serveur)",
538
+            'sqlite.' . _LOG_ERREUR
539
+        );
540 540
 
541
-		return false;
542
-	}
541
+        return false;
542
+    }
543 543
 
544
-	$query = "CREATE VIEW $nom AS " . $query_select;
544
+    $query = "CREATE VIEW $nom AS " . $query_select;
545 545
 
546
-	return spip_sqlite_query($query, $serveur, $requeter);
546
+    return spip_sqlite_query($query, $serveur, $requeter);
547 547
 }
548 548
 
549 549
 /**
@@ -565,54 +565,54 @@  discard block
 block discarded – undo
565 565
  *    string : requête, false si erreur, true sinon.
566 566
  */
567 567
 function spip_sqlite_create_index($nom, $table, $champs, $unique = '', $serveur = '', $requeter = true) {
568
-	if (!($nom or $table or $champs)) {
569
-		spip_log(
570
-			"Champ manquant pour creer un index sqlite ($nom, $table, (" . join(',', $champs) . '))',
571
-			'sqlite.' . _LOG_ERREUR
572
-		);
573
-
574
-		return false;
575
-	}
576
-
577
-	// SQLite ne differentie pas noms des index en fonction des tables
578
-	// il faut donc creer des noms uniques d'index pour une base sqlite
579
-	$nom = $table . '_' . $nom;
580
-	// enlever d'eventuelles parentheses deja presentes sur champs
581
-	if (!is_array($champs)) {
582
-		if ($champs[0] == '(') {
583
-			$champs = substr($champs, 1, -1);
584
-		}
585
-		$champs = [$champs];
586
-		// supprimer l'info de longueur d'index mysql en fin de champ
587
-		$champs = preg_replace(',\(\d+\)$,', '', $champs);
588
-	}
589
-
590
-	$ifnotexists = '';
591
-	$version = spip_sqlite_fetch(spip_sqlite_query('select sqlite_version() AS sqlite_version', $serveur), '', $serveur);
592
-	if (!function_exists('spip_version_compare')) {
593
-		include_spip('plugins/installer');
594
-	}
595
-
596
-	if ($version and spip_version_compare($version['sqlite_version'], '3.3.0', '>=')) {
597
-		$ifnotexists = ' IF NOT EXISTS';
598
-	} else {
599
-		/* simuler le IF EXISTS - version 2 et sqlite < 3.3a */
600
-		$a = spip_sqlite_showtable($table, $serveur);
601
-		if (isset($a['key']['KEY ' . $nom])) {
602
-			return true;
603
-		}
604
-	}
605
-
606
-	$query = 'CREATE ' . ($unique ? 'UNIQUE ' : '') . "INDEX$ifnotexists $nom ON $table (" . join(',', $champs) . ')';
607
-	$res = spip_sqlite_query($query, $serveur, $requeter);
608
-	if (!$requeter) {
609
-		return $res;
610
-	}
611
-	if ($res) {
612
-		return true;
613
-	} else {
614
-		return false;
615
-	}
568
+    if (!($nom or $table or $champs)) {
569
+        spip_log(
570
+            "Champ manquant pour creer un index sqlite ($nom, $table, (" . join(',', $champs) . '))',
571
+            'sqlite.' . _LOG_ERREUR
572
+        );
573
+
574
+        return false;
575
+    }
576
+
577
+    // SQLite ne differentie pas noms des index en fonction des tables
578
+    // il faut donc creer des noms uniques d'index pour une base sqlite
579
+    $nom = $table . '_' . $nom;
580
+    // enlever d'eventuelles parentheses deja presentes sur champs
581
+    if (!is_array($champs)) {
582
+        if ($champs[0] == '(') {
583
+            $champs = substr($champs, 1, -1);
584
+        }
585
+        $champs = [$champs];
586
+        // supprimer l'info de longueur d'index mysql en fin de champ
587
+        $champs = preg_replace(',\(\d+\)$,', '', $champs);
588
+    }
589
+
590
+    $ifnotexists = '';
591
+    $version = spip_sqlite_fetch(spip_sqlite_query('select sqlite_version() AS sqlite_version', $serveur), '', $serveur);
592
+    if (!function_exists('spip_version_compare')) {
593
+        include_spip('plugins/installer');
594
+    }
595
+
596
+    if ($version and spip_version_compare($version['sqlite_version'], '3.3.0', '>=')) {
597
+        $ifnotexists = ' IF NOT EXISTS';
598
+    } else {
599
+        /* simuler le IF EXISTS - version 2 et sqlite < 3.3a */
600
+        $a = spip_sqlite_showtable($table, $serveur);
601
+        if (isset($a['key']['KEY ' . $nom])) {
602
+            return true;
603
+        }
604
+    }
605
+
606
+    $query = 'CREATE ' . ($unique ? 'UNIQUE ' : '') . "INDEX$ifnotexists $nom ON $table (" . join(',', $champs) . ')';
607
+    $res = spip_sqlite_query($query, $serveur, $requeter);
608
+    if (!$requeter) {
609
+        return $res;
610
+    }
611
+    if ($res) {
612
+        return true;
613
+    } else {
614
+        return false;
615
+    }
616 616
 }
617 617
 
618 618
 /**
@@ -629,31 +629,31 @@  discard block
 block discarded – undo
629 629
  * @return int                 Nombre de lignes
630 630
  */
631 631
 function spip_sqlite_count($r, $serveur = '', $requeter = true) {
632
-	if (!$r) {
633
-		return 0;
634
-	}
635
-
636
-	// select ou autre (insert, update,...) ?
637
-	// (link,requete) a compter
638
-	if (is_array($r->spipSqliteRowCount)) {
639
-		list($link, $query) = $r->spipSqliteRowCount;
640
-		// amelioration possible a tester intensivement : pas de order by pour compter !
641
-		// $query = preg_replace(",ORDER BY .+(LIMIT\s|HAVING\s|GROUP BY\s|$),Uims","\\1",$query);
642
-		$query = "SELECT count(*) as zzzzsqlitecount FROM ($query)";
643
-		$l = $link->query($query);
644
-		$i = 0;
645
-		if ($l and $z = $l->fetch()) {
646
-			$i = $z['zzzzsqlitecount'];
647
-		}
648
-		$r->spipSqliteRowCount = $i;
649
-	}
650
-	if (isset($r->spipSqliteRowCount)) {
651
-		// Ce compte est faux s'il y a des limit dans la requete :(
652
-		// il retourne le nombre d'enregistrements sans le limit
653
-		return $r->spipSqliteRowCount;
654
-	} else {
655
-		return $r->rowCount();
656
-	}
632
+    if (!$r) {
633
+        return 0;
634
+    }
635
+
636
+    // select ou autre (insert, update,...) ?
637
+    // (link,requete) a compter
638
+    if (is_array($r->spipSqliteRowCount)) {
639
+        list($link, $query) = $r->spipSqliteRowCount;
640
+        // amelioration possible a tester intensivement : pas de order by pour compter !
641
+        // $query = preg_replace(",ORDER BY .+(LIMIT\s|HAVING\s|GROUP BY\s|$),Uims","\\1",$query);
642
+        $query = "SELECT count(*) as zzzzsqlitecount FROM ($query)";
643
+        $l = $link->query($query);
644
+        $i = 0;
645
+        if ($l and $z = $l->fetch()) {
646
+            $i = $z['zzzzsqlitecount'];
647
+        }
648
+        $r->spipSqliteRowCount = $i;
649
+    }
650
+    if (isset($r->spipSqliteRowCount)) {
651
+        // Ce compte est faux s'il y a des limit dans la requete :(
652
+        // il retourne le nombre d'enregistrements sans le limit
653
+        return $r->spipSqliteRowCount;
654
+    } else {
655
+        return $r->rowCount();
656
+    }
657 657
 }
658 658
 
659 659
 
@@ -672,30 +672,30 @@  discard block
 block discarded – undo
672 672
  *     - false si la requête a échouée
673 673
  **/
674 674
 function spip_sqlite_countsel(
675
-	$from = [],
676
-	$where = [],
677
-	$groupby = '',
678
-	$having = [],
679
-	$serveur = '',
680
-	$requeter = true
675
+    $from = [],
676
+    $where = [],
677
+    $groupby = '',
678
+    $having = [],
679
+    $serveur = '',
680
+    $requeter = true
681 681
 ) {
682
-	$c = !$groupby ? '*' : ('DISTINCT ' . (is_string($groupby) ? $groupby : join(',', $groupby)));
683
-	$r = spip_sqlite_select(
684
-		"COUNT($c)",
685
-		$from,
686
-		$where,
687
-		'',
688
-		'',
689
-		'',
690
-		$having,
691
-		$serveur,
692
-		$requeter
693
-	);
694
-	if ((is_resource($r) or is_object($r)) && $requeter) { // ressource : sqlite2, object : sqlite3
695
-		list($r) = spip_sqlite_fetch($r, SPIP_SQLITE3_NUM, $serveur);
696
-	}
697
-
698
-	return $r;
682
+    $c = !$groupby ? '*' : ('DISTINCT ' . (is_string($groupby) ? $groupby : join(',', $groupby)));
683
+    $r = spip_sqlite_select(
684
+        "COUNT($c)",
685
+        $from,
686
+        $where,
687
+        '',
688
+        '',
689
+        '',
690
+        $having,
691
+        $serveur,
692
+        $requeter
693
+    );
694
+    if ((is_resource($r) or is_object($r)) && $requeter) { // ressource : sqlite2, object : sqlite3
695
+        list($r) = spip_sqlite_fetch($r, SPIP_SQLITE3_NUM, $serveur);
696
+    }
697
+
698
+    return $r;
699 699
 }
700 700
 
701 701
 
@@ -712,24 +712,24 @@  discard block
 block discarded – undo
712 712
  *     - False en cas d'erreur.
713 713
  **/
714 714
 function spip_sqlite_delete($table, $where = '', $serveur = '', $requeter = true) {
715
-	$res = spip_sqlite_query(
716
-		_sqlite_calculer_expression('DELETE FROM', $table, ',')
717
-		. _sqlite_calculer_expression('WHERE', $where),
718
-		$serveur,
719
-		$requeter
720
-	);
715
+    $res = spip_sqlite_query(
716
+        _sqlite_calculer_expression('DELETE FROM', $table, ',')
717
+        . _sqlite_calculer_expression('WHERE', $where),
718
+        $serveur,
719
+        $requeter
720
+    );
721 721
 
722
-	// renvoyer la requete inerte si demandee
723
-	if (!$requeter) {
724
-		return $res;
725
-	}
722
+    // renvoyer la requete inerte si demandee
723
+    if (!$requeter) {
724
+        return $res;
725
+    }
726 726
 
727
-	if ($res) {
728
-		$link = _sqlite_link($serveur);
729
-		return $res->rowCount();
730
-	} else {
731
-		return false;
732
-	}
727
+    if ($res) {
728
+        $link = _sqlite_link($serveur);
729
+        return $res->rowCount();
730
+    } else {
731
+        return false;
732
+    }
733 733
 }
734 734
 
735 735
 
@@ -745,15 +745,15 @@  discard block
 block discarded – undo
745 745
  *     - true si la requête a réussie, false sinon
746 746
  */
747 747
 function spip_sqlite_drop_table($table, $exist = '', $serveur = '', $requeter = true) {
748
-	if ($exist) {
749
-		$exist = ' IF EXISTS';
750
-	}
748
+    if ($exist) {
749
+        $exist = ' IF EXISTS';
750
+    }
751 751
 
752
-	if (spip_sqlite_query("DROP TABLE$exist $table", $serveur, $requeter)) {
753
-		return true;
754
-	} else {
755
-		return false;
756
-	}
752
+    if (spip_sqlite_query("DROP TABLE$exist $table", $serveur, $requeter)) {
753
+        return true;
754
+    } else {
755
+        return false;
756
+    }
757 757
 }
758 758
 
759 759
 
@@ -769,11 +769,11 @@  discard block
 block discarded – undo
769 769
  *     - true si la requête a réussie, false sinon
770 770
  */
771 771
 function spip_sqlite_drop_view($view, $exist = '', $serveur = '', $requeter = true) {
772
-	if ($exist) {
773
-		$exist = ' IF EXISTS';
774
-	}
772
+    if ($exist) {
773
+        $exist = ' IF EXISTS';
774
+    }
775 775
 
776
-	return spip_sqlite_query("DROP VIEW$exist $view", $serveur, $requeter);
776
+    return spip_sqlite_query("DROP VIEW$exist $view", $serveur, $requeter);
777 777
 }
778 778
 
779 779
 /**
@@ -787,20 +787,20 @@  discard block
 block discarded – undo
787 787
  * @return bool ou requete
788 788
  */
789 789
 function spip_sqlite_drop_index($nom, $table, $serveur = '', $requeter = true) {
790
-	if (!($nom or $table)) {
791
-		spip_log("Champ manquant pour supprimer un index sqlite ($nom, $table)", 'sqlite.' . _LOG_ERREUR);
790
+    if (!($nom or $table)) {
791
+        spip_log("Champ manquant pour supprimer un index sqlite ($nom, $table)", 'sqlite.' . _LOG_ERREUR);
792 792
 
793
-		return false;
794
-	}
793
+        return false;
794
+    }
795 795
 
796
-	// SQLite ne differentie pas noms des index en fonction des tables
797
-	// il faut donc creer des noms uniques d'index pour une base sqlite
798
-	$index = $table . '_' . $nom;
799
-	$exist = ' IF EXISTS';
796
+    // SQLite ne differentie pas noms des index en fonction des tables
797
+    // il faut donc creer des noms uniques d'index pour une base sqlite
798
+    $index = $table . '_' . $nom;
799
+    $exist = ' IF EXISTS';
800 800
 
801
-	$query = "DROP INDEX$exist $index";
801
+    $query = "DROP INDEX$exist $index";
802 802
 
803
-	return spip_sqlite_query($query, $serveur, $requeter);
803
+    return spip_sqlite_query($query, $serveur, $requeter);
804 804
 }
805 805
 
806 806
 /**
@@ -816,28 +816,28 @@  discard block
 block discarded – undo
816 816
  *     Erreur eventuelle
817 817
  **/
818 818
 function spip_sqlite_error($query = '', $serveur = '') {
819
-	$link = _sqlite_link($serveur);
819
+    $link = _sqlite_link($serveur);
820 820
 
821
-	if ($link) {
822
-		$errs = $link->errorInfo();
823
-		$s = _sqlite_last_error_from_link($link);
824
-	} else {
825
-		$s = ': aucune ressource sqlite (link)';
826
-	}
827
-	if ($s) {
828
-		$trace = debug_backtrace();
829
-		if ($trace[0]['function'] != 'spip_sqlite_error') {
830
-			spip_log("$s - $query - " . sql_error_backtrace(), 'sqlite.' . _LOG_ERREUR);
831
-		}
832
-	}
821
+    if ($link) {
822
+        $errs = $link->errorInfo();
823
+        $s = _sqlite_last_error_from_link($link);
824
+    } else {
825
+        $s = ': aucune ressource sqlite (link)';
826
+    }
827
+    if ($s) {
828
+        $trace = debug_backtrace();
829
+        if ($trace[0]['function'] != 'spip_sqlite_error') {
830
+            spip_log("$s - $query - " . sql_error_backtrace(), 'sqlite.' . _LOG_ERREUR);
831
+        }
832
+    }
833 833
 
834
-	return $s;
834
+    return $s;
835 835
 }
836 836
 
837 837
 function _sqlite_last_error_from_link($link) {
838
-	if ($link) {
839
-		$errs = $link->errorInfo();
840
-		/*
838
+    if ($link) {
839
+        $errs = $link->errorInfo();
840
+        /*
841 841
 			$errs[0]
842 842
 				numero SQLState ('HY000' souvent lors d'une erreur)
843 843
 				http://www.easysoft.com/developer/interfaces/odbc/sqlstate_status_return_codes.html
@@ -847,11 +847,11 @@  discard block
 block discarded – undo
847 847
 			$errs[2]
848 848
 				Le texte du message d'erreur
849 849
 		*/
850
-		if (ltrim($errs[0], '0')) { // 00000 si pas d'erreur
851
-			return "$errs[2]";
852
-		}
853
-	}
854
-	return '';
850
+        if (ltrim($errs[0], '0')) { // 00000 si pas d'erreur
851
+            return "$errs[2]";
852
+        }
853
+    }
854
+    return '';
855 855
 }
856 856
 
857 857
 /**
@@ -868,23 +868,23 @@  discard block
 block discarded – undo
868 868
  *    'HY000/1' : numéro de l'erreur SQLState / numéro d'erreur interne SQLite (en sqlite 3)
869 869
  **/
870 870
 function spip_sqlite_errno($serveur = '') {
871
-	$link = _sqlite_link($serveur);
871
+    $link = _sqlite_link($serveur);
872 872
 
873
-	if ($link) {
874
-		$t = $link->errorInfo();
875
-		$s = ltrim($t[0], '0'); // 00000 si pas d'erreur
876
-		if ($s) {
877
-			$s .= ' / ' . $t[1];
878
-		} // ajoute l'erreur du moteur SQLite
879
-	} else {
880
-		$s = ': aucune ressource sqlite (link)';
881
-	}
873
+    if ($link) {
874
+        $t = $link->errorInfo();
875
+        $s = ltrim($t[0], '0'); // 00000 si pas d'erreur
876
+        if ($s) {
877
+            $s .= ' / ' . $t[1];
878
+        } // ajoute l'erreur du moteur SQLite
879
+    } else {
880
+        $s = ': aucune ressource sqlite (link)';
881
+    }
882 882
 
883
-	if ($s) {
884
-		spip_log("Erreur sqlite $s", 'sqlite.' . _LOG_ERREUR);
885
-	}
883
+    if ($s) {
884
+        spip_log("Erreur sqlite $s", 'sqlite.' . _LOG_ERREUR);
885
+    }
886 886
 
887
-	return $s ? $s : 0;
887
+    return $s ? $s : 0;
888 888
 }
889 889
 
890 890
 
@@ -900,19 +900,19 @@  discard block
 block discarded – undo
900 900
  *     - false si on a pas pu avoir d'explication
901 901
  */
902 902
 function spip_sqlite_explain($query, $serveur = '', $requeter = true) {
903
-	if (strpos(ltrim($query), 'SELECT') !== 0) {
904
-		return [];
905
-	}
903
+    if (strpos(ltrim($query), 'SELECT') !== 0) {
904
+        return [];
905
+    }
906 906
 
907
-	$query = spip_sqlite::traduire_requete($query, $serveur);
908
-	$query = 'EXPLAIN ' . $query;
909
-	if (!$requeter) {
910
-		return $query;
911
-	}
912
-	// on ne trace pas ces requetes, sinon on obtient un tracage sans fin...
913
-	$r = spip_sqlite::executer_requete($query, $serveur, false);
907
+    $query = spip_sqlite::traduire_requete($query, $serveur);
908
+    $query = 'EXPLAIN ' . $query;
909
+    if (!$requeter) {
910
+        return $query;
911
+    }
912
+    // on ne trace pas ces requetes, sinon on obtient un tracage sans fin...
913
+    $r = spip_sqlite::executer_requete($query, $serveur, false);
914 914
 
915
-	return $r ? spip_sqlite_fetch($r, null, $serveur) : false; // hum ? etrange ca... a verifier
915
+    return $r ? spip_sqlite_fetch($r, null, $serveur) : false; // hum ? etrange ca... a verifier
916 916
 }
917 917
 
918 918
 
@@ -929,30 +929,30 @@  discard block
 block discarded – undo
929 929
  */
930 930
 function spip_sqlite_fetch($r, $t = '', $serveur = '', $requeter = true) {
931 931
 
932
-	$link = _sqlite_link($serveur);
933
-	$t = $t ? $t : SPIP_SQLITE3_ASSOC;
932
+    $link = _sqlite_link($serveur);
933
+    $t = $t ? $t : SPIP_SQLITE3_ASSOC;
934 934
 
935
-	$retour = false;
936
-	if ($r) {
937
-		$retour = $r->fetch($t);
938
-	}
935
+    $retour = false;
936
+    if ($r) {
937
+        $retour = $r->fetch($t);
938
+    }
939 939
 
940
-	// Renvoie des 'table.titre' au lieu de 'titre' tout court ! pff !
941
-	// suppression de 'table.' pour toutes les cles (c'est un peu violent !)
942
-	// c'est couteux : on ne verifie que la premiere ligne pour voir si on le fait ou non
943
-	if (
944
-		$retour
945
-		and strpos(implode('', array_keys($retour)), '.') !== false
946
-	) {
947
-		foreach ($retour as $cle => $val) {
948
-			if (($pos = strpos($cle, '.')) !== false) {
949
-				$retour[substr($cle, $pos + 1)] = &$retour[$cle];
950
-				unset($retour[$cle]);
951
-			}
952
-		}
953
-	}
940
+    // Renvoie des 'table.titre' au lieu de 'titre' tout court ! pff !
941
+    // suppression de 'table.' pour toutes les cles (c'est un peu violent !)
942
+    // c'est couteux : on ne verifie que la premiere ligne pour voir si on le fait ou non
943
+    if (
944
+        $retour
945
+        and strpos(implode('', array_keys($retour)), '.') !== false
946
+    ) {
947
+        foreach ($retour as $cle => $val) {
948
+            if (($pos = strpos($cle, '.')) !== false) {
949
+                $retour[substr($cle, $pos + 1)] = &$retour[$cle];
950
+                unset($retour[$cle]);
951
+            }
952
+        }
953
+    }
954 954
 
955
-	return $retour;
955
+    return $retour;
956 956
 }
957 957
 
958 958
 /**
@@ -965,8 +965,8 @@  discard block
 block discarded – undo
965 965
  * @return bool True si déplacement réussi, false sinon.
966 966
  **/
967 967
 function spip_sqlite_seek($r, $row_number, $serveur = '', $requeter = true) {
968
-	// encore un truc de bien fichu : PDO ne PEUT PAS faire de seek ou de rewind...
969
-	return false;
968
+    // encore un truc de bien fichu : PDO ne PEUT PAS faire de seek ou de rewind...
969
+    return false;
970 970
 }
971 971
 
972 972
 
@@ -982,10 +982,10 @@  discard block
 block discarded – undo
982 982
  * @return bool                True si réussi
983 983
  */
984 984
 function spip_sqlite_free(&$r, $serveur = '', $requeter = true) {
985
-	unset($r);
985
+    unset($r);
986 986
 
987
-	return true;
988
-	//return sqlite_free_result($r);
987
+    return true;
988
+    //return sqlite_free_result($r);
989 989
 }
990 990
 
991 991
 
@@ -1000,8 +1000,8 @@  discard block
 block discarded – undo
1000 1000
  * @return void
1001 1001
  */
1002 1002
 function spip_sqlite_get_charset($charset = [], $serveur = '', $requeter = true) {
1003
-	//$c = !$charset ? '' : (" LIKE "._q($charset['charset']));
1004
-	//return spip_sqlite_fetch(sqlite_query(_sqlite_link($serveur), "SHOW CHARACTER SET$c"), NULL, $serveur);
1003
+    //$c = !$charset ? '' : (" LIKE "._q($charset['charset']));
1004
+    //return spip_sqlite_fetch(sqlite_query(_sqlite_link($serveur), "SHOW CHARACTER SET$c"), NULL, $serveur);
1005 1005
 }
1006 1006
 
1007 1007
 
@@ -1016,7 +1016,7 @@  discard block
 block discarded – undo
1016 1016
  *     Valeur hexadécimale pour SQLite
1017 1017
  **/
1018 1018
 function spip_sqlite_hex($v) {
1019
-	return hexdec($v);
1019
+    return hexdec($v);
1020 1020
 }
1021 1021
 
1022 1022
 
@@ -1038,7 +1038,7 @@  discard block
 block discarded – undo
1038 1038
  *     Expression de requête SQL
1039 1039
  **/
1040 1040
 function spip_sqlite_in($val, $valeurs, $not = '', $serveur = '', $requeter = true) {
1041
-	return "($val $not IN ($valeurs))";
1041
+    return "($val $not IN ($valeurs))";
1042 1042
 }
1043 1043
 
1044 1044
 
@@ -1066,20 +1066,20 @@  discard block
 block discarded – undo
1066 1066
  **/
1067 1067
 function spip_sqlite_insert($table, $champs, $valeurs, $desc = [], $serveur = '', $requeter = true) {
1068 1068
 
1069
-	$query = "INSERT INTO $table " . ($champs ? "$champs VALUES $valeurs" : 'DEFAULT VALUES');
1070
-	if ($r = spip_sqlite_query($query, $serveur, $requeter)) {
1071
-		if (!$requeter) {
1072
-			return $r;
1073
-		}
1074
-		$nb = spip_sqlite::last_insert_id($serveur);
1075
-	} else {
1076
-		$nb = false;
1077
-	}
1069
+    $query = "INSERT INTO $table " . ($champs ? "$champs VALUES $valeurs" : 'DEFAULT VALUES');
1070
+    if ($r = spip_sqlite_query($query, $serveur, $requeter)) {
1071
+        if (!$requeter) {
1072
+            return $r;
1073
+        }
1074
+        $nb = spip_sqlite::last_insert_id($serveur);
1075
+    } else {
1076
+        $nb = false;
1077
+    }
1078 1078
 
1079
-	$err = spip_sqlite_error($query, $serveur);
1079
+    $err = spip_sqlite_error($query, $serveur);
1080 1080
 
1081
-	// cas particulier : ne pas substituer la reponse spip_sqlite_query si on est en profilage
1082
-	return isset($_GET['var_profile']) ? $r : $nb;
1081
+    // cas particulier : ne pas substituer la reponse spip_sqlite_query si on est en profilage
1082
+    return isset($_GET['var_profile']) ? $r : $nb;
1083 1083
 }
1084 1084
 
1085 1085
 
@@ -1104,28 +1104,28 @@  discard block
 block discarded – undo
1104 1104
  *     - Tableau de description de la requête et du temps d'exécution, si var_profile activé
1105 1105
  **/
1106 1106
 function spip_sqlite_insertq($table, $couples = [], $desc = [], $serveur = '', $requeter = true) {
1107
-	if (!$desc) {
1108
-		$desc = description_table($table, $serveur);
1109
-	}
1110
-	if (!$desc) {
1111
-		die("$table insertion sans description");
1112
-	}
1113
-	$fields = isset($desc['field']) ? $desc['field'] : [];
1107
+    if (!$desc) {
1108
+        $desc = description_table($table, $serveur);
1109
+    }
1110
+    if (!$desc) {
1111
+        die("$table insertion sans description");
1112
+    }
1113
+    $fields = isset($desc['field']) ? $desc['field'] : [];
1114 1114
 
1115
-	foreach ($couples as $champ => $val) {
1116
-		$couples[$champ] = _sqlite_calculer_cite($val, $fields[$champ]);
1117
-	}
1115
+    foreach ($couples as $champ => $val) {
1116
+        $couples[$champ] = _sqlite_calculer_cite($val, $fields[$champ]);
1117
+    }
1118 1118
 
1119
-	// recherche de champs 'timestamp' pour mise a jour auto de ceux-ci
1120
-	$couples = _sqlite_ajouter_champs_timestamp($table, $couples, $desc, $serveur);
1119
+    // recherche de champs 'timestamp' pour mise a jour auto de ceux-ci
1120
+    $couples = _sqlite_ajouter_champs_timestamp($table, $couples, $desc, $serveur);
1121 1121
 
1122
-	$cles = $valeurs = '';
1123
-	if (count($couples)) {
1124
-		$cles = '(' . join(',', array_keys($couples)) . ')';
1125
-		$valeurs = '(' . join(',', $couples) . ')';
1126
-	}
1122
+    $cles = $valeurs = '';
1123
+    if (count($couples)) {
1124
+        $cles = '(' . join(',', array_keys($couples)) . ')';
1125
+        $valeurs = '(' . join(',', $couples) . ')';
1126
+    }
1127 1127
 
1128
-	return spip_sqlite_insert($table, $cles, $valeurs, $desc, $serveur, $requeter);
1128
+    return spip_sqlite_insert($table, $cles, $valeurs, $desc, $serveur, $requeter);
1129 1129
 }
1130 1130
 
1131 1131
 
@@ -1149,70 +1149,70 @@  discard block
 block discarded – undo
1149 1149
  *     - False en cas d'erreur.
1150 1150
  **/
1151 1151
 function spip_sqlite_insertq_multi($table, $tab_couples = [], $desc = [], $serveur = '', $requeter = true) {
1152
-	if (!$desc) {
1153
-		$desc = description_table($table, $serveur);
1154
-	}
1155
-	if (!$desc) {
1156
-		die("$table insertion sans description");
1157
-	}
1158
-	if (!isset($desc['field'])) {
1159
-		$desc['field'] = [];
1160
-	}
1161
-
1162
-	// recuperer les champs 'timestamp' pour mise a jour auto de ceux-ci
1163
-	$maj = _sqlite_ajouter_champs_timestamp($table, [], $desc, $serveur);
1164
-
1165
-	// seul le nom de la table est a traduire ici :
1166
-	// le faire une seule fois au debut
1167
-	$query_start = "INSERT INTO $table ";
1168
-	$query_start = spip_sqlite::traduire_requete($query_start, $serveur);
1169
-
1170
-	// ouvrir une transaction
1171
-	if ($requeter) {
1172
-		spip_sqlite::demarrer_transaction($serveur);
1173
-	}
1174
-
1175
-	while ($couples = array_shift($tab_couples)) {
1176
-		foreach ($couples as $champ => $val) {
1177
-			$couples[$champ] = _sqlite_calculer_cite($val, $desc['field'][$champ]);
1178
-		}
1179
-
1180
-		// inserer les champs timestamp par defaut
1181
-		$couples = array_merge($maj, $couples);
1182
-
1183
-		$champs = $valeurs = '';
1184
-		if (count($couples)) {
1185
-			$champs = '(' . join(',', array_keys($couples)) . ')';
1186
-			$valeurs = '(' . join(',', $couples) . ')';
1187
-			$query = $query_start . "$champs VALUES $valeurs";
1188
-		} else {
1189
-			$query = $query_start . 'DEFAULT VALUES';
1190
-		}
1191
-
1192
-		if ($requeter) {
1193
-			$retour = spip_sqlite::executer_requete($query, $serveur);
1194
-		}
1195
-
1196
-		// sur le dernier couple uniquement
1197
-		if (!count($tab_couples)) {
1198
-			$nb = 0;
1199
-			if ($requeter) {
1200
-				$nb = spip_sqlite::last_insert_id($serveur);
1201
-			} else {
1202
-				return $query;
1203
-			}
1204
-		}
1205
-
1206
-		$err = spip_sqlite_error($query, $serveur);
1207
-	}
1208
-
1209
-	if ($requeter) {
1210
-		spip_sqlite::finir_transaction($serveur);
1211
-	}
1212
-
1213
-	// renvoie le dernier id d'autoincrement ajoute
1214
-	// cas particulier : ne pas substituer la reponse spip_sqlite_query si on est en profilage
1215
-	return isset($_GET['var_profile']) ? $retour : $nb;
1152
+    if (!$desc) {
1153
+        $desc = description_table($table, $serveur);
1154
+    }
1155
+    if (!$desc) {
1156
+        die("$table insertion sans description");
1157
+    }
1158
+    if (!isset($desc['field'])) {
1159
+        $desc['field'] = [];
1160
+    }
1161
+
1162
+    // recuperer les champs 'timestamp' pour mise a jour auto de ceux-ci
1163
+    $maj = _sqlite_ajouter_champs_timestamp($table, [], $desc, $serveur);
1164
+
1165
+    // seul le nom de la table est a traduire ici :
1166
+    // le faire une seule fois au debut
1167
+    $query_start = "INSERT INTO $table ";
1168
+    $query_start = spip_sqlite::traduire_requete($query_start, $serveur);
1169
+
1170
+    // ouvrir une transaction
1171
+    if ($requeter) {
1172
+        spip_sqlite::demarrer_transaction($serveur);
1173
+    }
1174
+
1175
+    while ($couples = array_shift($tab_couples)) {
1176
+        foreach ($couples as $champ => $val) {
1177
+            $couples[$champ] = _sqlite_calculer_cite($val, $desc['field'][$champ]);
1178
+        }
1179
+
1180
+        // inserer les champs timestamp par defaut
1181
+        $couples = array_merge($maj, $couples);
1182
+
1183
+        $champs = $valeurs = '';
1184
+        if (count($couples)) {
1185
+            $champs = '(' . join(',', array_keys($couples)) . ')';
1186
+            $valeurs = '(' . join(',', $couples) . ')';
1187
+            $query = $query_start . "$champs VALUES $valeurs";
1188
+        } else {
1189
+            $query = $query_start . 'DEFAULT VALUES';
1190
+        }
1191
+
1192
+        if ($requeter) {
1193
+            $retour = spip_sqlite::executer_requete($query, $serveur);
1194
+        }
1195
+
1196
+        // sur le dernier couple uniquement
1197
+        if (!count($tab_couples)) {
1198
+            $nb = 0;
1199
+            if ($requeter) {
1200
+                $nb = spip_sqlite::last_insert_id($serveur);
1201
+            } else {
1202
+                return $query;
1203
+            }
1204
+        }
1205
+
1206
+        $err = spip_sqlite_error($query, $serveur);
1207
+    }
1208
+
1209
+    if ($requeter) {
1210
+        spip_sqlite::finir_transaction($serveur);
1211
+    }
1212
+
1213
+    // renvoie le dernier id d'autoincrement ajoute
1214
+    // cas particulier : ne pas substituer la reponse spip_sqlite_query si on est en profilage
1215
+    return isset($_GET['var_profile']) ? $retour : $nb;
1216 1216
 }
1217 1217
 
1218 1218
 
@@ -1227,7 +1227,7 @@  discard block
 block discarded – undo
1227 1227
  *     Toujours true.
1228 1228
  **/
1229 1229
 function spip_sqlite_preferer_transaction($serveur = '', $requeter = true) {
1230
-	return true;
1230
+    return true;
1231 1231
 }
1232 1232
 
1233 1233
 /**
@@ -1244,12 +1244,12 @@  discard block
 block discarded – undo
1244 1244
  *     string si texte de la requête demandé, true sinon
1245 1245
  **/
1246 1246
 function spip_sqlite_demarrer_transaction($serveur = '', $requeter = true) {
1247
-	if (!$requeter) {
1248
-		return 'BEGIN TRANSACTION';
1249
-	}
1250
-	spip_sqlite::demarrer_transaction($serveur);
1247
+    if (!$requeter) {
1248
+        return 'BEGIN TRANSACTION';
1249
+    }
1250
+    spip_sqlite::demarrer_transaction($serveur);
1251 1251
 
1252
-	return true;
1252
+    return true;
1253 1253
 }
1254 1254
 
1255 1255
 /**
@@ -1263,12 +1263,12 @@  discard block
 block discarded – undo
1263 1263
  *     string si texte de la requête demandé, true sinon
1264 1264
  **/
1265 1265
 function spip_sqlite_terminer_transaction($serveur = '', $requeter = true) {
1266
-	if (!$requeter) {
1267
-		return 'COMMIT';
1268
-	}
1269
-	spip_sqlite::finir_transaction($serveur);
1266
+    if (!$requeter) {
1267
+        return 'COMMIT';
1268
+    }
1269
+    spip_sqlite::finir_transaction($serveur);
1270 1270
 
1271
-	return true;
1271
+    return true;
1272 1272
 }
1273 1273
 
1274 1274
 
@@ -1283,27 +1283,27 @@  discard block
 block discarded – undo
1283 1283
  *     Liste des noms de bases
1284 1284
  **/
1285 1285
 function spip_sqlite_listdbs($serveur = '', $requeter = true) {
1286
-	_sqlite_init();
1286
+    _sqlite_init();
1287 1287
 
1288
-	if (!is_dir($d = substr(_DIR_DB, 0, -1))) {
1289
-		return [];
1290
-	}
1288
+    if (!is_dir($d = substr(_DIR_DB, 0, -1))) {
1289
+        return [];
1290
+    }
1291 1291
 
1292
-	include_spip('inc/flock');
1293
-	$bases = preg_files($d, $pattern = '(.*)\.sqlite$');
1294
-	$bds = [];
1292
+    include_spip('inc/flock');
1293
+    $bases = preg_files($d, $pattern = '(.*)\.sqlite$');
1294
+    $bds = [];
1295 1295
 
1296
-	foreach ($bases as $b) {
1297
-		// pas de bases commencant pas sqlite
1298
-		// (on s'en sert pour l'installation pour simuler la presence d'un serveur)
1299
-		// les bases sont de la forme _sqliteX_tmp_spip_install.sqlite
1300
-		if (strpos($b, '_sqlite')) {
1301
-			continue;
1302
-		}
1303
-		$bds[] = preg_replace(";.*/$pattern;iS", '$1', $b);
1304
-	}
1296
+    foreach ($bases as $b) {
1297
+        // pas de bases commencant pas sqlite
1298
+        // (on s'en sert pour l'installation pour simuler la presence d'un serveur)
1299
+        // les bases sont de la forme _sqliteX_tmp_spip_install.sqlite
1300
+        if (strpos($b, '_sqlite')) {
1301
+            continue;
1302
+        }
1303
+        $bds[] = preg_replace(";.*/$pattern;iS", '$1', $b);
1304
+    }
1305 1305
 
1306
-	return $bds;
1306
+    return $bds;
1307 1307
 }
1308 1308
 
1309 1309
 
@@ -1318,9 +1318,9 @@  discard block
 block discarded – undo
1318 1318
  * @return string       Texte de sélection pour la requête
1319 1319
  */
1320 1320
 function spip_sqlite_multi($objet, $lang) {
1321
-	$r = 'EXTRAIRE_MULTI(' . $objet . ", '" . $lang . "') AS multi";
1321
+    $r = 'EXTRAIRE_MULTI(' . $objet . ", '" . $lang . "') AS multi";
1322 1322
 
1323
-	return $r;
1323
+    return $r;
1324 1324
 }
1325 1325
 
1326 1326
 
@@ -1337,15 +1337,15 @@  discard block
 block discarded – undo
1337 1337
  * @return bool|string true / false / requete
1338 1338
  **/
1339 1339
 function spip_sqlite_optimize($table, $serveur = '', $requeter = true) {
1340
-	static $do = false;
1341
-	if ($requeter and $do) {
1342
-		return true;
1343
-	}
1344
-	if ($requeter) {
1345
-		$do = true;
1346
-	}
1340
+    static $do = false;
1341
+    if ($requeter and $do) {
1342
+        return true;
1343
+    }
1344
+    if ($requeter) {
1345
+        $do = true;
1346
+    }
1347 1347
 
1348
-	return spip_sqlite_query('VACUUM', $serveur, $requeter);
1348
+    return spip_sqlite_query('VACUUM', $serveur, $requeter);
1349 1349
 }
1350 1350
 
1351 1351
 
@@ -1362,15 +1362,15 @@  discard block
 block discarded – undo
1362 1362
  *    Donnée prête à être utilisée par le gestionnaire SQL
1363 1363
  */
1364 1364
 function spip_sqlite_quote($v, $type = '') {
1365
-	if (!is_array($v)) {
1366
-		return _sqlite_calculer_cite($v, $type);
1367
-	}
1368
-	// si c'est un tableau, le parcourir en propageant le type
1369
-	foreach ($v as $k => $r) {
1370
-		$v[$k] = spip_sqlite_quote($r, $type);
1371
-	}
1365
+    if (!is_array($v)) {
1366
+        return _sqlite_calculer_cite($v, $type);
1367
+    }
1368
+    // si c'est un tableau, le parcourir en propageant le type
1369
+    foreach ($v as $k => $r) {
1370
+        $v[$k] = spip_sqlite_quote($r, $type);
1371
+    }
1372 1372
 
1373
-	return join(',', $v);
1373
+    return join(',', $v);
1374 1374
 }
1375 1375
 
1376 1376
 
@@ -1387,9 +1387,9 @@  discard block
 block discarded – undo
1387 1387
  *     Expression SQL
1388 1388
  **/
1389 1389
 function spip_sqlite_date_proche($champ, $interval, $unite) {
1390
-	$op = (($interval <= 0) ? '>' : '<');
1390
+    $op = (($interval <= 0) ? '>' : '<');
1391 1391
 
1392
-	return "($champ $op datetime('" . date('Y-m-d H:i:s') . "', '$interval $unite'))";
1392
+    return "($champ $op datetime('" . date('Y-m-d H:i:s') . "', '$interval $unite'))";
1393 1393
 }
1394 1394
 
1395 1395
 
@@ -1407,48 +1407,48 @@  discard block
 block discarded – undo
1407 1407
  *     l'état de la table après la réparation
1408 1408
  */
1409 1409
 function spip_sqlite_repair($table, $serveur = '', $requeter = true) {
1410
-	if (
1411
-		$desc = spip_sqlite_showtable($table, $serveur)
1412
-		and isset($desc['field'])
1413
-		and is_array($desc['field'])
1414
-	) {
1415
-		foreach ($desc['field'] as $c => $d) {
1416
-			if (
1417
-				preg_match(',^(tinytext|mediumtext|text|longtext|varchar|char),i', $d)
1418
-				and stripos($d, 'NOT NULL') !== false
1419
-				and stripos($d, 'DEFAULT') === false
1420
-				/* pas touche aux cles primaires */
1421
-				and (!isset($desc['key']['PRIMARY KEY']) or $desc['key']['PRIMARY KEY'] !== $c)
1422
-			) {
1423
-				spip_sqlite_alter($q = "TABLE $table CHANGE $c $c $d DEFAULT ''", $serveur);
1424
-				spip_log("ALTER $q", 'repair' . _LOG_INFO_IMPORTANTE);
1425
-			}
1426
-			if (
1427
-				preg_match(',^(INTEGER),i', $d)
1428
-				and stripos($d, 'NOT NULL') !== false
1429
-				and stripos($d, 'DEFAULT') === false
1430
-				/* pas touche aux cles primaires */
1431
-				and (!isset($desc['key']['PRIMARY KEY']) or $desc['key']['PRIMARY KEY'] !== $c)
1432
-			) {
1433
-				spip_sqlite_alter($q = "TABLE $table CHANGE $c $c $d DEFAULT '0'", $serveur);
1434
-				spip_log("ALTER $q", 'repair' . _LOG_INFO_IMPORTANTE);
1435
-			}
1436
-			if (
1437
-				preg_match(',^(datetime),i', $d)
1438
-				and stripos($d, 'NOT NULL') !== false
1439
-				and stripos($d, 'DEFAULT') === false
1440
-				/* pas touche aux cles primaires */
1441
-				and (!isset($desc['key']['PRIMARY KEY']) or $desc['key']['PRIMARY KEY'] !== $c)
1442
-			) {
1443
-				spip_sqlite_alter($q = "TABLE $table CHANGE $c $c $d DEFAULT '0000-00-00 00:00:00'", $serveur);
1444
-				spip_log("ALTER $q", 'repair' . _LOG_INFO_IMPORTANTE);
1445
-			}
1446
-		}
1447
-
1448
-		return [' OK '];
1449
-	}
1450
-
1451
-	return [' ERROR '];
1410
+    if (
1411
+        $desc = spip_sqlite_showtable($table, $serveur)
1412
+        and isset($desc['field'])
1413
+        and is_array($desc['field'])
1414
+    ) {
1415
+        foreach ($desc['field'] as $c => $d) {
1416
+            if (
1417
+                preg_match(',^(tinytext|mediumtext|text|longtext|varchar|char),i', $d)
1418
+                and stripos($d, 'NOT NULL') !== false
1419
+                and stripos($d, 'DEFAULT') === false
1420
+                /* pas touche aux cles primaires */
1421
+                and (!isset($desc['key']['PRIMARY KEY']) or $desc['key']['PRIMARY KEY'] !== $c)
1422
+            ) {
1423
+                spip_sqlite_alter($q = "TABLE $table CHANGE $c $c $d DEFAULT ''", $serveur);
1424
+                spip_log("ALTER $q", 'repair' . _LOG_INFO_IMPORTANTE);
1425
+            }
1426
+            if (
1427
+                preg_match(',^(INTEGER),i', $d)
1428
+                and stripos($d, 'NOT NULL') !== false
1429
+                and stripos($d, 'DEFAULT') === false
1430
+                /* pas touche aux cles primaires */
1431
+                and (!isset($desc['key']['PRIMARY KEY']) or $desc['key']['PRIMARY KEY'] !== $c)
1432
+            ) {
1433
+                spip_sqlite_alter($q = "TABLE $table CHANGE $c $c $d DEFAULT '0'", $serveur);
1434
+                spip_log("ALTER $q", 'repair' . _LOG_INFO_IMPORTANTE);
1435
+            }
1436
+            if (
1437
+                preg_match(',^(datetime),i', $d)
1438
+                and stripos($d, 'NOT NULL') !== false
1439
+                and stripos($d, 'DEFAULT') === false
1440
+                /* pas touche aux cles primaires */
1441
+                and (!isset($desc['key']['PRIMARY KEY']) or $desc['key']['PRIMARY KEY'] !== $c)
1442
+            ) {
1443
+                spip_sqlite_alter($q = "TABLE $table CHANGE $c $c $d DEFAULT '0000-00-00 00:00:00'", $serveur);
1444
+                spip_log("ALTER $q", 'repair' . _LOG_INFO_IMPORTANTE);
1445
+            }
1446
+        }
1447
+
1448
+        return [' OK '];
1449
+    }
1450
+
1451
+    return [' ERROR '];
1452 1452
 }
1453 1453
 
1454 1454
 
@@ -1477,25 +1477,25 @@  discard block
 block discarded – undo
1477 1477
  *     - False en cas d'erreur.
1478 1478
  **/
1479 1479
 function spip_sqlite_replace($table, $couples, $desc = [], $serveur = '', $requeter = true) {
1480
-	if (!$desc) {
1481
-		$desc = description_table($table, $serveur);
1482
-	}
1483
-	if (!$desc) {
1484
-		die("$table insertion sans description");
1485
-	}
1486
-	$fields = isset($desc['field']) ? $desc['field'] : [];
1480
+    if (!$desc) {
1481
+        $desc = description_table($table, $serveur);
1482
+    }
1483
+    if (!$desc) {
1484
+        die("$table insertion sans description");
1485
+    }
1486
+    $fields = isset($desc['field']) ? $desc['field'] : [];
1487 1487
 
1488
-	foreach ($couples as $champ => $val) {
1489
-		$couples[$champ] = _sqlite_calculer_cite($val, $fields[$champ]);
1490
-	}
1488
+    foreach ($couples as $champ => $val) {
1489
+        $couples[$champ] = _sqlite_calculer_cite($val, $fields[$champ]);
1490
+    }
1491 1491
 
1492
-	// recherche de champs 'timestamp' pour mise a jour auto de ceux-ci
1493
-	$couples = _sqlite_ajouter_champs_timestamp($table, $couples, $desc, $serveur);
1492
+    // recherche de champs 'timestamp' pour mise a jour auto de ceux-ci
1493
+    $couples = _sqlite_ajouter_champs_timestamp($table, $couples, $desc, $serveur);
1494 1494
 
1495
-	return spip_sqlite_query("REPLACE INTO $table (" . join(',', array_keys($couples)) . ') VALUES (' . join(
1496
-		',',
1497
-		$couples
1498
-	) . ')', $serveur);
1495
+    return spip_sqlite_query("REPLACE INTO $table (" . join(',', array_keys($couples)) . ') VALUES (' . join(
1496
+        ',',
1497
+        $couples
1498
+    ) . ')', $serveur);
1499 1499
 }
1500 1500
 
1501 1501
 
@@ -1525,13 +1525,13 @@  discard block
 block discarded – undo
1525 1525
  **/
1526 1526
 function spip_sqlite_replace_multi($table, $tab_couples, $desc = [], $serveur = '', $requeter = true) {
1527 1527
 
1528
-	// boucler pour trainter chaque requete independemment
1529
-	foreach ($tab_couples as $couples) {
1530
-		$retour = spip_sqlite_replace($table, $couples, $desc, $serveur, $requeter);
1531
-	}
1528
+    // boucler pour trainter chaque requete independemment
1529
+    foreach ($tab_couples as $couples) {
1530
+        $retour = spip_sqlite_replace($table, $couples, $desc, $serveur, $requeter);
1531
+    }
1532 1532
 
1533
-	// renvoie le dernier id
1534
-	return $retour;
1533
+    // renvoie le dernier id
1534
+    return $retour;
1535 1535
 }
1536 1536
 
1537 1537
 
@@ -1558,44 +1558,44 @@  discard block
 block discarded – undo
1558 1558
  *     - array  : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.
1559 1559
  */
1560 1560
 function spip_sqlite_select(
1561
-	$select,
1562
-	$from,
1563
-	$where = '',
1564
-	$groupby = '',
1565
-	$orderby = '',
1566
-	$limit = '',
1567
-	$having = '',
1568
-	$serveur = '',
1569
-	$requeter = true
1561
+    $select,
1562
+    $from,
1563
+    $where = '',
1564
+    $groupby = '',
1565
+    $orderby = '',
1566
+    $limit = '',
1567
+    $having = '',
1568
+    $serveur = '',
1569
+    $requeter = true
1570 1570
 ) {
1571 1571
 
1572
-	// version() n'est pas connu de sqlite
1573
-	$select = str_replace('version()', 'sqlite_version()', $select);
1572
+    // version() n'est pas connu de sqlite
1573
+    $select = str_replace('version()', 'sqlite_version()', $select);
1574 1574
 
1575
-	// recomposer from
1576
-	$from = (!is_array($from) ? $from : _sqlite_calculer_select_as($from));
1575
+    // recomposer from
1576
+    $from = (!is_array($from) ? $from : _sqlite_calculer_select_as($from));
1577 1577
 
1578
-	$query =
1579
-		_sqlite_calculer_expression('SELECT', $select, ', ')
1580
-		. _sqlite_calculer_expression('FROM', $from, ', ')
1581
-		. _sqlite_calculer_expression('WHERE', $where)
1582
-		. _sqlite_calculer_expression('GROUP BY', $groupby, ',')
1583
-		. _sqlite_calculer_expression('HAVING', $having)
1584
-		. ($orderby ? ("\nORDER BY " . _sqlite_calculer_order($orderby)) : '')
1585
-		. ($limit ? "\nLIMIT $limit" : '');
1578
+    $query =
1579
+        _sqlite_calculer_expression('SELECT', $select, ', ')
1580
+        . _sqlite_calculer_expression('FROM', $from, ', ')
1581
+        . _sqlite_calculer_expression('WHERE', $where)
1582
+        . _sqlite_calculer_expression('GROUP BY', $groupby, ',')
1583
+        . _sqlite_calculer_expression('HAVING', $having)
1584
+        . ($orderby ? ("\nORDER BY " . _sqlite_calculer_order($orderby)) : '')
1585
+        . ($limit ? "\nLIMIT $limit" : '');
1586 1586
 
1587
-	// dans un select, on doit renvoyer la requête en cas d'erreur
1588
-	$res = spip_sqlite_query($query, $serveur, $requeter);
1589
-	// texte de la requete demande ?
1590
-	if (!$requeter) {
1591
-		return $res;
1592
-	}
1593
-	// erreur survenue ?
1594
-	if ($res === false) {
1595
-		return spip_sqlite::traduire_requete($query, $serveur);
1596
-	}
1587
+    // dans un select, on doit renvoyer la requête en cas d'erreur
1588
+    $res = spip_sqlite_query($query, $serveur, $requeter);
1589
+    // texte de la requete demande ?
1590
+    if (!$requeter) {
1591
+        return $res;
1592
+    }
1593
+    // erreur survenue ?
1594
+    if ($res === false) {
1595
+        return spip_sqlite::traduire_requete($query, $serveur);
1596
+    }
1597 1597
 
1598
-	return $res;
1598
+    return $res;
1599 1599
 }
1600 1600
 
1601 1601
 
@@ -1614,32 +1614,32 @@  discard block
 block discarded – undo
1614 1614
  *     - False en cas d'erreur.
1615 1615
  **/
1616 1616
 function spip_sqlite_selectdb($db, $serveur = '', $requeter = true) {
1617
-	_sqlite_init();
1617
+    _sqlite_init();
1618 1618
 
1619
-	// interdire la creation d'une nouvelle base,
1620
-	// sauf si on est dans l'installation
1621
-	if (
1622
-		!is_file($f = _DIR_DB . $db . '.sqlite')
1623
-		&& (!defined('_ECRIRE_INSTALL') || !_ECRIRE_INSTALL)
1624
-	) {
1625
-		spip_log("Il est interdit de creer la base $db", 'sqlite.' . _LOG_HS);
1619
+    // interdire la creation d'une nouvelle base,
1620
+    // sauf si on est dans l'installation
1621
+    if (
1622
+        !is_file($f = _DIR_DB . $db . '.sqlite')
1623
+        && (!defined('_ECRIRE_INSTALL') || !_ECRIRE_INSTALL)
1624
+    ) {
1625
+        spip_log("Il est interdit de creer la base $db", 'sqlite.' . _LOG_HS);
1626 1626
 
1627
-		return false;
1628
-	}
1627
+        return false;
1628
+    }
1629 1629
 
1630
-	// se connecter a la base indiquee
1631
-	// avec les identifiants connus
1632
-	$index = $serveur ? $serveur : 0;
1630
+    // se connecter a la base indiquee
1631
+    // avec les identifiants connus
1632
+    $index = $serveur ? $serveur : 0;
1633 1633
 
1634
-	if ($link = spip_connect_db('', '', '', '', '@selectdb@' . $db, $serveur, '', '')) {
1635
-		if (($db == $link['db']) && $GLOBALS['connexions'][$index] = $link) {
1636
-			return $db;
1637
-		}
1638
-	} else {
1639
-		spip_log("Impossible de selectionner la base $db", 'sqlite.' . _LOG_HS);
1634
+    if ($link = spip_connect_db('', '', '', '', '@selectdb@' . $db, $serveur, '', '')) {
1635
+        if (($db == $link['db']) && $GLOBALS['connexions'][$index] = $link) {
1636
+            return $db;
1637
+        }
1638
+    } else {
1639
+        spip_log("Impossible de selectionner la base $db", 'sqlite.' . _LOG_HS);
1640 1640
 
1641
-		return false;
1642
-	}
1641
+        return false;
1642
+    }
1643 1643
 }
1644 1644
 
1645 1645
 
@@ -1654,8 +1654,8 @@  discard block
 block discarded – undo
1654 1654
  * @return void
1655 1655
  */
1656 1656
 function spip_sqlite_set_charset($charset, $serveur = '', $requeter = true) {
1657
-	# spip_log("Gestion charset sql a ecrire : "."SET NAMES "._q($charset), 'sqlite.'._LOG_ERREUR);
1658
-	# return spip_sqlite_query("SET NAMES ". spip_sqlite_quote($charset), $serveur); //<-- Passe pas !
1657
+    # spip_log("Gestion charset sql a ecrire : "."SET NAMES "._q($charset), 'sqlite.'._LOG_ERREUR);
1658
+    # return spip_sqlite_query("SET NAMES ". spip_sqlite_quote($charset), $serveur); //<-- Passe pas !
1659 1659
 }
1660 1660
 
1661 1661
 
@@ -1673,24 +1673,24 @@  discard block
 block discarded – undo
1673 1673
  *     Ressource à utiliser avec sql_fetch()
1674 1674
  **/
1675 1675
 function spip_sqlite_showbase($match, $serveur = '', $requeter = true) {
1676
-	// type est le type d'entrée : table / index / view
1677
-	// on ne retourne que les tables (?) et non les vues...
1678
-	# ESCAPE non supporte par les versions sqlite <3
1679
-	#	return spip_sqlite_query("SELECT name FROM sqlite_master WHERE type='table' AND tbl_name LIKE "._q($match)." ESCAPE '\'", $serveur, $requeter);
1680
-	$match = preg_quote($match);
1681
-	$match = str_replace('\\\_', '[[TIRETBAS]]', $match);
1682
-	$match = str_replace('\\\%', '[[POURCENT]]', $match);
1683
-	$match = str_replace('_', '.', $match);
1684
-	$match = str_replace('%', '.*', $match);
1685
-	$match = str_replace('[[TIRETBAS]]', '_', $match);
1686
-	$match = str_replace('[[POURCENT]]', '%', $match);
1687
-	$match = "^$match$";
1688
-
1689
-	return spip_sqlite_query(
1690
-		"SELECT name FROM sqlite_master WHERE type='table' AND tbl_name REGEXP " . _q($match),
1691
-		$serveur,
1692
-		$requeter
1693
-	);
1676
+    // type est le type d'entrée : table / index / view
1677
+    // on ne retourne que les tables (?) et non les vues...
1678
+    # ESCAPE non supporte par les versions sqlite <3
1679
+    #	return spip_sqlite_query("SELECT name FROM sqlite_master WHERE type='table' AND tbl_name LIKE "._q($match)." ESCAPE '\'", $serveur, $requeter);
1680
+    $match = preg_quote($match);
1681
+    $match = str_replace('\\\_', '[[TIRETBAS]]', $match);
1682
+    $match = str_replace('\\\%', '[[POURCENT]]', $match);
1683
+    $match = str_replace('_', '.', $match);
1684
+    $match = str_replace('%', '.*', $match);
1685
+    $match = str_replace('[[TIRETBAS]]', '_', $match);
1686
+    $match = str_replace('[[POURCENT]]', '%', $match);
1687
+    $match = "^$match$";
1688
+
1689
+    return spip_sqlite_query(
1690
+        "SELECT name FROM sqlite_master WHERE type='table' AND tbl_name REGEXP " . _q($match),
1691
+        $serveur,
1692
+        $requeter
1693
+    );
1694 1694
 }
1695 1695
 
1696 1696
 define('_SQLITE_RE_SHOW_TABLE', '/^[^(),]*\(((?:[^()]*\((?:[^()]*\([^()]*\))?[^()]*\)[^()]*)*[^()]*)\)[^()]*$/');
@@ -1713,129 +1713,129 @@  discard block
 block discarded – undo
1713 1713
  *     - array description de la table sinon
1714 1714
  */
1715 1715
 function spip_sqlite_showtable($nom_table, $serveur = '', $requeter = true) {
1716
-	$query =
1717
-		'SELECT sql, type FROM'
1718
-		. ' (SELECT * FROM sqlite_master UNION ALL'
1719
-		. ' SELECT * FROM sqlite_temp_master)'
1720
-		. " WHERE tbl_name LIKE '$nom_table'"
1721
-		. " AND type!='meta' AND sql NOT NULL AND name NOT LIKE 'sqlite_%'"
1722
-		. ' ORDER BY substr(type,2,1), name';
1723
-
1724
-	$a = spip_sqlite_query($query, $serveur, $requeter);
1725
-	if (!$a) {
1726
-		return '';
1727
-	}
1728
-	if (!$requeter) {
1729
-		return $a;
1730
-	}
1731
-	if (!($a = spip_sqlite_fetch($a, null, $serveur))) {
1732
-		return '';
1733
-	}
1734
-	$vue = ($a['type'] == 'view'); // table | vue
1735
-
1736
-	// c'est une table
1737
-	// il faut parser le create
1738
-	if (!$vue) {
1739
-		if (!preg_match(_SQLITE_RE_SHOW_TABLE, array_shift($a), $r)) {
1740
-			return '';
1741
-		} else {
1742
-			$desc = $r[1];
1743
-			// extraction d'une KEY éventuelle en prenant garde de ne pas
1744
-			// relever un champ dont le nom contient KEY (ex. ID_WHISKEY)
1745
-			if (preg_match('/^(.*?),([^,]*\sKEY[ (].*)$/s', $desc, $r)) {
1746
-				$namedkeys = $r[2];
1747
-				$desc = $r[1];
1748
-			} else {
1749
-				$namedkeys = '';
1750
-			}
1751
-
1752
-			$fields = [];
1753
-			$keys = [];
1754
-
1755
-			// enlever les contenus des valeurs DEFAULT 'xxx' qui pourraient perturber
1756
-			// par exemple s'il contiennent une virgule.
1757
-			// /!\ cela peut aussi echapper le nom des champs si la table a eu des operations avec SQLite Manager !
1758
-			list($desc, $echaps) = query_echappe_textes($desc);
1759
-
1760
-			// separer toutes les descriptions de champs, separes par des virgules
1761
-			# /!\ explode peut exploser aussi DECIMAL(10,2) !
1762
-			$k_precedent = null;
1763
-			foreach (explode(',', $desc) as $v) {
1764
-				preg_match('/^\s*([^\s]+)\s+(.*)/', $v, $r);
1765
-				// Les cles de champs peuvent etre entourees
1766
-				// de guillements doubles " , simples ', graves ` ou de crochets [ ],  ou rien.
1767
-				// http://www.sqlite.org/lang_keywords.html
1768
-				$k = strtolower(query_reinjecte_textes($r[1], $echaps)); // champ, "champ", [champ]...
1769
-				if ($char = strpbrk($k[0], '\'"[`')) {
1770
-					$k = trim($k, $char);
1771
-					if ($char == '[') {
1772
-						$k = rtrim($k, ']');
1773
-					}
1774
-				}
1775
-				$def = query_reinjecte_textes($r[2], $echaps); // valeur du champ
1776
-
1777
-				// rustine pour DECIMAL(10,2)
1778
-				// s'il y a une parenthèse fermante dans la clé
1779
-				// ou dans la définition sans qu'il n'y ait une ouverture avant
1780
-				if (false !== strpos($k, ')') or preg_match('/^[^\(]*\)/', $def)) {
1781
-					$fields[$k_precedent] .= ',' . $k . ' ' . $def;
1782
-					continue;
1783
-				}
1784
-
1785
-				// la primary key peut etre dans une des descriptions de champs
1786
-				// et non en fin de table, cas encore decouvert avec Sqlite Manager
1787
-				if (stripos($r[2], 'PRIMARY KEY') !== false) {
1788
-					$keys['PRIMARY KEY'] = $k;
1789
-				}
1790
-
1791
-				$fields[$k] = $def;
1792
-				$k_precedent = $k;
1793
-			}
1794
-			// key inclues dans la requete
1795
-			foreach (preg_split('/\)\s*(,|$)/', $namedkeys) as $v) {
1796
-				if (preg_match('/^\s*([^(]*)\(([^(]*(\(\d+\))?)$/', $v, $r)) {
1797
-					$k = str_replace('`', '', trim($r[1]));
1798
-					$t = trim(strtolower(str_replace('`', '', $r[2])), '"');
1799
-					if ($k && !isset($keys[$k])) {
1800
-						$keys[$k] = $t;
1801
-					} else {
1802
-						$keys[] = $t;
1803
-					}
1804
-				}
1805
-			}
1806
-			// sinon ajouter les key index
1807
-			$query =
1808
-				'SELECT name,sql FROM'
1809
-				. ' (SELECT * FROM sqlite_master UNION ALL'
1810
-				. ' SELECT * FROM sqlite_temp_master)'
1811
-				. " WHERE tbl_name LIKE '$nom_table'"
1812
-				. " AND type='index' AND name NOT LIKE 'sqlite_%'"
1813
-				. 'ORDER BY substr(type,2,1), name';
1814
-			$a = spip_sqlite_query($query, $serveur, $requeter);
1815
-			while ($r = spip_sqlite_fetch($a, null, $serveur)) {
1816
-				$key = str_replace($nom_table . '_', '', $r['name']); // enlever le nom de la table ajoute a l'index
1817
-				$keytype = 'KEY';
1818
-				if (strpos($r['sql'], 'UNIQUE INDEX') !== false) {
1819
-					$keytype = 'UNIQUE KEY';
1820
-				}
1821
-				$colonnes = preg_replace(',.*\((.*)\).*,', '$1', $r['sql']);
1822
-				$keys[$keytype . ' ' . $key] = $colonnes;
1823
-			}
1824
-		}
1825
-	} // c'est une vue, on liste les champs disponibles simplement
1826
-	else {
1827
-		if ($res = sql_fetsel('*', $nom_table, '', '', '', '1', '', $serveur)) { // limit 1
1828
-			$fields = [];
1829
-			foreach ($res as $c => $v) {
1830
-				$fields[$c] = '';
1831
-			}
1832
-			$keys = [];
1833
-		} else {
1834
-			return '';
1835
-		}
1836
-	}
1837
-
1838
-	return ['field' => $fields, 'key' => $keys];
1716
+    $query =
1717
+        'SELECT sql, type FROM'
1718
+        . ' (SELECT * FROM sqlite_master UNION ALL'
1719
+        . ' SELECT * FROM sqlite_temp_master)'
1720
+        . " WHERE tbl_name LIKE '$nom_table'"
1721
+        . " AND type!='meta' AND sql NOT NULL AND name NOT LIKE 'sqlite_%'"
1722
+        . ' ORDER BY substr(type,2,1), name';
1723
+
1724
+    $a = spip_sqlite_query($query, $serveur, $requeter);
1725
+    if (!$a) {
1726
+        return '';
1727
+    }
1728
+    if (!$requeter) {
1729
+        return $a;
1730
+    }
1731
+    if (!($a = spip_sqlite_fetch($a, null, $serveur))) {
1732
+        return '';
1733
+    }
1734
+    $vue = ($a['type'] == 'view'); // table | vue
1735
+
1736
+    // c'est une table
1737
+    // il faut parser le create
1738
+    if (!$vue) {
1739
+        if (!preg_match(_SQLITE_RE_SHOW_TABLE, array_shift($a), $r)) {
1740
+            return '';
1741
+        } else {
1742
+            $desc = $r[1];
1743
+            // extraction d'une KEY éventuelle en prenant garde de ne pas
1744
+            // relever un champ dont le nom contient KEY (ex. ID_WHISKEY)
1745
+            if (preg_match('/^(.*?),([^,]*\sKEY[ (].*)$/s', $desc, $r)) {
1746
+                $namedkeys = $r[2];
1747
+                $desc = $r[1];
1748
+            } else {
1749
+                $namedkeys = '';
1750
+            }
1751
+
1752
+            $fields = [];
1753
+            $keys = [];
1754
+
1755
+            // enlever les contenus des valeurs DEFAULT 'xxx' qui pourraient perturber
1756
+            // par exemple s'il contiennent une virgule.
1757
+            // /!\ cela peut aussi echapper le nom des champs si la table a eu des operations avec SQLite Manager !
1758
+            list($desc, $echaps) = query_echappe_textes($desc);
1759
+
1760
+            // separer toutes les descriptions de champs, separes par des virgules
1761
+            # /!\ explode peut exploser aussi DECIMAL(10,2) !
1762
+            $k_precedent = null;
1763
+            foreach (explode(',', $desc) as $v) {
1764
+                preg_match('/^\s*([^\s]+)\s+(.*)/', $v, $r);
1765
+                // Les cles de champs peuvent etre entourees
1766
+                // de guillements doubles " , simples ', graves ` ou de crochets [ ],  ou rien.
1767
+                // http://www.sqlite.org/lang_keywords.html
1768
+                $k = strtolower(query_reinjecte_textes($r[1], $echaps)); // champ, "champ", [champ]...
1769
+                if ($char = strpbrk($k[0], '\'"[`')) {
1770
+                    $k = trim($k, $char);
1771
+                    if ($char == '[') {
1772
+                        $k = rtrim($k, ']');
1773
+                    }
1774
+                }
1775
+                $def = query_reinjecte_textes($r[2], $echaps); // valeur du champ
1776
+
1777
+                // rustine pour DECIMAL(10,2)
1778
+                // s'il y a une parenthèse fermante dans la clé
1779
+                // ou dans la définition sans qu'il n'y ait une ouverture avant
1780
+                if (false !== strpos($k, ')') or preg_match('/^[^\(]*\)/', $def)) {
1781
+                    $fields[$k_precedent] .= ',' . $k . ' ' . $def;
1782
+                    continue;
1783
+                }
1784
+
1785
+                // la primary key peut etre dans une des descriptions de champs
1786
+                // et non en fin de table, cas encore decouvert avec Sqlite Manager
1787
+                if (stripos($r[2], 'PRIMARY KEY') !== false) {
1788
+                    $keys['PRIMARY KEY'] = $k;
1789
+                }
1790
+
1791
+                $fields[$k] = $def;
1792
+                $k_precedent = $k;
1793
+            }
1794
+            // key inclues dans la requete
1795
+            foreach (preg_split('/\)\s*(,|$)/', $namedkeys) as $v) {
1796
+                if (preg_match('/^\s*([^(]*)\(([^(]*(\(\d+\))?)$/', $v, $r)) {
1797
+                    $k = str_replace('`', '', trim($r[1]));
1798
+                    $t = trim(strtolower(str_replace('`', '', $r[2])), '"');
1799
+                    if ($k && !isset($keys[$k])) {
1800
+                        $keys[$k] = $t;
1801
+                    } else {
1802
+                        $keys[] = $t;
1803
+                    }
1804
+                }
1805
+            }
1806
+            // sinon ajouter les key index
1807
+            $query =
1808
+                'SELECT name,sql FROM'
1809
+                . ' (SELECT * FROM sqlite_master UNION ALL'
1810
+                . ' SELECT * FROM sqlite_temp_master)'
1811
+                . " WHERE tbl_name LIKE '$nom_table'"
1812
+                . " AND type='index' AND name NOT LIKE 'sqlite_%'"
1813
+                . 'ORDER BY substr(type,2,1), name';
1814
+            $a = spip_sqlite_query($query, $serveur, $requeter);
1815
+            while ($r = spip_sqlite_fetch($a, null, $serveur)) {
1816
+                $key = str_replace($nom_table . '_', '', $r['name']); // enlever le nom de la table ajoute a l'index
1817
+                $keytype = 'KEY';
1818
+                if (strpos($r['sql'], 'UNIQUE INDEX') !== false) {
1819
+                    $keytype = 'UNIQUE KEY';
1820
+                }
1821
+                $colonnes = preg_replace(',.*\((.*)\).*,', '$1', $r['sql']);
1822
+                $keys[$keytype . ' ' . $key] = $colonnes;
1823
+            }
1824
+        }
1825
+    } // c'est une vue, on liste les champs disponibles simplement
1826
+    else {
1827
+        if ($res = sql_fetsel('*', $nom_table, '', '', '', '1', '', $serveur)) { // limit 1
1828
+            $fields = [];
1829
+            foreach ($res as $c => $v) {
1830
+                $fields[$c] = '';
1831
+            }
1832
+            $keys = [];
1833
+        } else {
1834
+            return '';
1835
+        }
1836
+    }
1837
+
1838
+    return ['field' => $fields, 'key' => $keys];
1839 1839
 }
1840 1840
 
1841 1841
 
@@ -1861,22 +1861,22 @@  discard block
 block discarded – undo
1861 1861
  *     - array Tableau décrivant la requête et son temps d'exécution si var_profile est actif
1862 1862
  */
1863 1863
 function spip_sqlite_update($table, $champs, $where = '', $desc = '', $serveur = '', $requeter = true) {
1864
-	// recherche de champs 'timestamp' pour mise a jour auto de ceux-ci
1865
-	$champs = _sqlite_ajouter_champs_timestamp($table, $champs, $desc, $serveur);
1864
+    // recherche de champs 'timestamp' pour mise a jour auto de ceux-ci
1865
+    $champs = _sqlite_ajouter_champs_timestamp($table, $champs, $desc, $serveur);
1866 1866
 
1867
-	$set = [];
1868
-	foreach ($champs as $champ => $val) {
1869
-		$set[] = $champ . "=$val";
1870
-	}
1871
-	if (!empty($set)) {
1872
-		return spip_sqlite_query(
1873
-			_sqlite_calculer_expression('UPDATE', $table, ',')
1874
-			. _sqlite_calculer_expression('SET', $set, ',')
1875
-			. _sqlite_calculer_expression('WHERE', $where),
1876
-			$serveur,
1877
-			$requeter
1878
-		);
1879
-	}
1867
+    $set = [];
1868
+    foreach ($champs as $champ => $val) {
1869
+        $set[] = $champ . "=$val";
1870
+    }
1871
+    if (!empty($set)) {
1872
+        return spip_sqlite_query(
1873
+            _sqlite_calculer_expression('UPDATE', $table, ',')
1874
+            . _sqlite_calculer_expression('SET', $set, ',')
1875
+            . _sqlite_calculer_expression('WHERE', $where),
1876
+            $serveur,
1877
+            $requeter
1878
+        );
1879
+    }
1880 1880
 }
1881 1881
 
1882 1882
 
@@ -1906,38 +1906,38 @@  discard block
 block discarded – undo
1906 1906
  */
1907 1907
 function spip_sqlite_updateq($table, $champs, $where = '', $desc = [], $serveur = '', $requeter = true) {
1908 1908
 
1909
-	if (!$champs) {
1910
-		return;
1911
-	}
1912
-	if (!$desc) {
1913
-		$desc = description_table($table, $serveur);
1914
-	}
1915
-	if (!$desc) {
1916
-		die("$table insertion sans description");
1917
-	}
1918
-	$fields = $desc['field'];
1919
-
1920
-	$set = [];
1921
-	foreach ($champs as $champ => $val) {
1922
-		$set[$champ] = $champ . '=' . _sqlite_calculer_cite($val, isset($fields[$champ]) ? $fields[$champ] : '');
1923
-	}
1924
-
1925
-	// recherche de champs 'timestamp' pour mise a jour auto de ceux-ci
1926
-	// attention ils sont deja quotes
1927
-	$maj = _sqlite_ajouter_champs_timestamp($table, [], $desc, $serveur);
1928
-	foreach ($maj as $champ => $val) {
1929
-		if (!isset($set[$champ])) {
1930
-			$set[$champ] = $champ . '=' . $val;
1931
-		}
1932
-	}
1933
-
1934
-	return spip_sqlite_query(
1935
-		_sqlite_calculer_expression('UPDATE', $table, ',')
1936
-		. _sqlite_calculer_expression('SET', $set, ',')
1937
-		. _sqlite_calculer_expression('WHERE', $where),
1938
-		$serveur,
1939
-		$requeter
1940
-	);
1909
+    if (!$champs) {
1910
+        return;
1911
+    }
1912
+    if (!$desc) {
1913
+        $desc = description_table($table, $serveur);
1914
+    }
1915
+    if (!$desc) {
1916
+        die("$table insertion sans description");
1917
+    }
1918
+    $fields = $desc['field'];
1919
+
1920
+    $set = [];
1921
+    foreach ($champs as $champ => $val) {
1922
+        $set[$champ] = $champ . '=' . _sqlite_calculer_cite($val, isset($fields[$champ]) ? $fields[$champ] : '');
1923
+    }
1924
+
1925
+    // recherche de champs 'timestamp' pour mise a jour auto de ceux-ci
1926
+    // attention ils sont deja quotes
1927
+    $maj = _sqlite_ajouter_champs_timestamp($table, [], $desc, $serveur);
1928
+    foreach ($maj as $champ => $val) {
1929
+        if (!isset($set[$champ])) {
1930
+            $set[$champ] = $champ . '=' . $val;
1931
+        }
1932
+    }
1933
+
1934
+    return spip_sqlite_query(
1935
+        _sqlite_calculer_expression('UPDATE', $table, ',')
1936
+        . _sqlite_calculer_expression('SET', $set, ',')
1937
+        . _sqlite_calculer_expression('WHERE', $where),
1938
+        $serveur,
1939
+        $requeter
1940
+    );
1941 1941
 }
1942 1942
 
1943 1943
 
@@ -1955,17 +1955,17 @@  discard block
 block discarded – undo
1955 1955
  * @return void
1956 1956
  */
1957 1957
 function _sqlite_init() {
1958
-	if (!defined('_DIR_DB')) {
1959
-		define('_DIR_DB', _DIR_ETC . 'bases/');
1960
-	}
1961
-	if (!defined('_SQLITE_CHMOD')) {
1962
-		define('_SQLITE_CHMOD', _SPIP_CHMOD);
1963
-	}
1958
+    if (!defined('_DIR_DB')) {
1959
+        define('_DIR_DB', _DIR_ETC . 'bases/');
1960
+    }
1961
+    if (!defined('_SQLITE_CHMOD')) {
1962
+        define('_SQLITE_CHMOD', _SPIP_CHMOD);
1963
+    }
1964 1964
 
1965
-	if (!is_dir($d = _DIR_DB)) {
1966
-		include_spip('inc/flock');
1967
-		sous_repertoire($d);
1968
-	}
1965
+    if (!is_dir($d = _DIR_DB)) {
1966
+        include_spip('inc/flock');
1967
+        sous_repertoire($d);
1968
+    }
1969 1969
 }
1970 1970
 
1971 1971
 
@@ -1979,20 +1979,20 @@  discard block
 block discarded – undo
1979 1979
  * @return bool|int
1980 1980
  */
1981 1981
 function _sqlite_is_version($version = '', $link = '', $serveur = '', $requeter = true) {
1982
-	if ($link === '') {
1983
-		$link = _sqlite_link($serveur);
1984
-	}
1985
-	if (!$link) {
1986
-		return false;
1987
-	}
1982
+    if ($link === '') {
1983
+        $link = _sqlite_link($serveur);
1984
+    }
1985
+    if (!$link) {
1986
+        return false;
1987
+    }
1988 1988
 
1989
-	$v = 3;
1989
+    $v = 3;
1990 1990
 
1991
-	if (!$version) {
1992
-		return $v;
1993
-	}
1991
+    if (!$version) {
1992
+        return $v;
1993
+    }
1994 1994
 
1995
-	return ($version == $v);
1995
+    return ($version == $v);
1996 1996
 }
1997 1997
 
1998 1998
 
@@ -2003,9 +2003,9 @@  discard block
 block discarded – undo
2003 2003
  * @return Object Information de connexion pour SQLite
2004 2004
  */
2005 2005
 function _sqlite_link($serveur = '') {
2006
-	$link = &$GLOBALS['connexions'][$serveur ? $serveur : 0]['link'];
2006
+    $link = &$GLOBALS['connexions'][$serveur ? $serveur : 0]['link'];
2007 2007
 
2008
-	return $link;
2008
+    return $link;
2009 2009
 }
2010 2010
 
2011 2011
 
@@ -2020,52 +2020,52 @@  discard block
 block discarded – undo
2020 2020
  * @return string|number     Texte ou nombre échappé
2021 2021
  */
2022 2022
 function _sqlite_calculer_cite($v, $type) {
2023
-	if ($type) {
2024
-		if (
2025
-			is_null($v)
2026
-			and stripos($type, 'NOT NULL') === false
2027
-		) {
2028
-			return 'NULL';
2029
-		} // null php se traduit en NULL SQL
2030
-
2031
-		if (sql_test_date($type) and preg_match('/^\w+\(/', $v)) {
2032
-			return $v;
2033
-		}
2034
-		if (sql_test_int($type)) {
2035
-			if (is_numeric($v)) {
2036
-				return $v;
2037
-			} elseif (ctype_xdigit(substr($v, 2)) and strncmp($v, '0x', 2) == 0) {
2038
-				return hexdec(substr($v, 2));
2039
-			} else {
2040
-				return intval($v);
2041
-			}
2042
-		}
2043
-	} else {
2044
-		// si on ne connait pas le type on le deduit de $v autant que possible
2045
-		if (is_bool($v)) {
2046
-			return strval(intval($v));
2047
-		}
2048
-		elseif (is_numeric($v)) {
2049
-			return strval($v);
2050
-		}
2051
-	}
2052
-
2053
-	// trouver un link sqlite pour faire l'echappement
2054
-	foreach ($GLOBALS['connexions'] as $s) {
2055
-		if (
2056
-			$l = $s['link']
2057
-			and is_object($l)
2058
-			and $l instanceof \PDO
2059
-			and $l->getAttribute(\PDO::ATTR_DRIVER_NAME) === 'sqlite'
2060
-		) {
2061
-			return $l->quote($v);
2062
-		}
2063
-	}
2064
-
2065
-	// echapper les ' en ''
2066
-	spip_log('Pas de methode ->quote pour echapper', 'sqlite.' . _LOG_INFO_IMPORTANTE);
2067
-
2068
-	return ("'" . str_replace("'", "''", $v) . "'");
2023
+    if ($type) {
2024
+        if (
2025
+            is_null($v)
2026
+            and stripos($type, 'NOT NULL') === false
2027
+        ) {
2028
+            return 'NULL';
2029
+        } // null php se traduit en NULL SQL
2030
+
2031
+        if (sql_test_date($type) and preg_match('/^\w+\(/', $v)) {
2032
+            return $v;
2033
+        }
2034
+        if (sql_test_int($type)) {
2035
+            if (is_numeric($v)) {
2036
+                return $v;
2037
+            } elseif (ctype_xdigit(substr($v, 2)) and strncmp($v, '0x', 2) == 0) {
2038
+                return hexdec(substr($v, 2));
2039
+            } else {
2040
+                return intval($v);
2041
+            }
2042
+        }
2043
+    } else {
2044
+        // si on ne connait pas le type on le deduit de $v autant que possible
2045
+        if (is_bool($v)) {
2046
+            return strval(intval($v));
2047
+        }
2048
+        elseif (is_numeric($v)) {
2049
+            return strval($v);
2050
+        }
2051
+    }
2052
+
2053
+    // trouver un link sqlite pour faire l'echappement
2054
+    foreach ($GLOBALS['connexions'] as $s) {
2055
+        if (
2056
+            $l = $s['link']
2057
+            and is_object($l)
2058
+            and $l instanceof \PDO
2059
+            and $l->getAttribute(\PDO::ATTR_DRIVER_NAME) === 'sqlite'
2060
+        ) {
2061
+            return $l->quote($v);
2062
+        }
2063
+    }
2064
+
2065
+    // echapper les ' en ''
2066
+    spip_log('Pas de methode ->quote pour echapper', 'sqlite.' . _LOG_INFO_IMPORTANTE);
2067
+
2068
+    return ("'" . str_replace("'", "''", $v) . "'");
2069 2069
 }
2070 2070
 
2071 2071
 
@@ -2081,21 +2081,21 @@  discard block
 block discarded – undo
2081 2081
  * @return string            Texte de l'expression, une partie donc, du texte la requête.
2082 2082
  */
2083 2083
 function _sqlite_calculer_expression($expression, $v, $join = 'AND') {
2084
-	if (empty($v)) {
2085
-		return '';
2086
-	}
2084
+    if (empty($v)) {
2085
+        return '';
2086
+    }
2087 2087
 
2088
-	$exp = "\n$expression ";
2088
+    $exp = "\n$expression ";
2089 2089
 
2090
-	if (!is_array($v)) {
2091
-		return $exp . $v;
2092
-	} else {
2093
-		if (strtoupper($join) === 'AND') {
2094
-			return $exp . join("\n\t$join ", array_map('_sqlite_calculer_where', $v));
2095
-		} else {
2096
-			return $exp . join($join, $v);
2097
-		}
2098
-	}
2090
+    if (!is_array($v)) {
2091
+        return $exp . $v;
2092
+    } else {
2093
+        if (strtoupper($join) === 'AND') {
2094
+            return $exp . join("\n\t$join ", array_map('_sqlite_calculer_where', $v));
2095
+        } else {
2096
+            return $exp . join($join, $v);
2097
+        }
2098
+    }
2099 2099
 }
2100 2100
 
2101 2101
 
@@ -2111,7 +2111,7 @@  discard block
 block discarded – undo
2111 2111
  * @return string Texte du orderby préparé
2112 2112
  */
2113 2113
 function _sqlite_calculer_order($orderby) {
2114
-	return (is_array($orderby)) ? join(', ', $orderby) : $orderby;
2114
+    return (is_array($orderby)) ? join(', ', $orderby) : $orderby;
2115 2115
 }
2116 2116
 
2117 2117
 
@@ -2122,26 +2122,26 @@  discard block
 block discarded – undo
2122 2122
  * @return string Sélection de colonnes pour une clause SELECT
2123 2123
  */
2124 2124
 function _sqlite_calculer_select_as($args) {
2125
-	$res = '';
2126
-	foreach ($args as $k => $v) {
2127
-		if (substr($k, -1) == '@') {
2128
-			// c'est une jointure qui se refere au from precedent
2129
-			// pas de virgule
2130
-			$res .= '  ' . $v;
2131
-		} else {
2132
-			if (!is_numeric($k)) {
2133
-				$p = strpos($v, ' ');
2134
-				if ($p) {
2135
-					$v = substr($v, 0, $p) . " AS '$k'" . substr($v, $p);
2136
-				} else {
2137
-					$v .= " AS '$k'";
2138
-				}
2139
-			}
2140
-			$res .= ', ' . $v;
2141
-		}
2142
-	}
2143
-
2144
-	return substr($res, 2);
2125
+    $res = '';
2126
+    foreach ($args as $k => $v) {
2127
+        if (substr($k, -1) == '@') {
2128
+            // c'est une jointure qui se refere au from precedent
2129
+            // pas de virgule
2130
+            $res .= '  ' . $v;
2131
+        } else {
2132
+            if (!is_numeric($k)) {
2133
+                $p = strpos($v, ' ');
2134
+                if ($p) {
2135
+                    $v = substr($v, 0, $p) . " AS '$k'" . substr($v, $p);
2136
+                } else {
2137
+                    $v .= " AS '$k'";
2138
+                }
2139
+            }
2140
+            $res .= ', ' . $v;
2141
+        }
2142
+    }
2143
+
2144
+    return substr($res, 2);
2145 2145
 }
2146 2146
 
2147 2147
 
@@ -2164,26 +2164,26 @@  discard block
 block discarded – undo
2164 2164
  *     Contrainte pour clause WHERE
2165 2165
  */
2166 2166
 function _sqlite_calculer_where($v) {
2167
-	if (!is_array($v)) {
2168
-		return $v;
2169
-	}
2170
-
2171
-	$op = array_shift($v);
2172
-	if (!($n = count($v))) {
2173
-		return $op;
2174
-	} else {
2175
-		$arg = _sqlite_calculer_where(array_shift($v));
2176
-		if ($n == 1) {
2177
-			return "$op($arg)";
2178
-		} else {
2179
-			$arg2 = _sqlite_calculer_where(array_shift($v));
2180
-			if ($n == 2) {
2181
-				return "($arg $op $arg2)";
2182
-			} else {
2183
-				return "($arg $op ($arg2) : $v[0])";
2184
-			}
2185
-		}
2186
-	}
2167
+    if (!is_array($v)) {
2168
+        return $v;
2169
+    }
2170
+
2171
+    $op = array_shift($v);
2172
+    if (!($n = count($v))) {
2173
+        return $op;
2174
+    } else {
2175
+        $arg = _sqlite_calculer_where(array_shift($v));
2176
+        if ($n == 1) {
2177
+            return "$op($arg)";
2178
+        } else {
2179
+            $arg2 = _sqlite_calculer_where(array_shift($v));
2180
+            if ($n == 2) {
2181
+                return "($arg $op $arg2)";
2182
+            } else {
2183
+                return "($arg $op ($arg2) : $v[0])";
2184
+            }
2185
+        }
2186
+    }
2187 2187
 }
2188 2188
 
2189 2189
 
@@ -2198,19 +2198,19 @@  discard block
 block discarded – undo
2198 2198
  * @return array|bool
2199 2199
  */
2200 2200
 function _sqlite_charger_version($version = '') {
2201
-	$versions = [];
2201
+    $versions = [];
2202 2202
 
2203
-	// version 3
2204
-	if (!$version || $version == 3) {
2205
-		if (extension_loaded('pdo') && extension_loaded('pdo_sqlite')) {
2206
-			$versions[] = 3;
2207
-		}
2208
-	}
2209
-	if ($version) {
2210
-		return in_array($version, $versions);
2211
-	}
2203
+    // version 3
2204
+    if (!$version || $version == 3) {
2205
+        if (extension_loaded('pdo') && extension_loaded('pdo_sqlite')) {
2206
+            $versions[] = 3;
2207
+        }
2208
+    }
2209
+    if ($version) {
2210
+        return in_array($version, $versions);
2211
+    }
2212 2212
 
2213
-	return $versions;
2213
+    return $versions;
2214 2214
 }
2215 2215
 
2216 2216
 
@@ -2248,147 +2248,147 @@  discard block
 block discarded – undo
2248 2248
  */
2249 2249
 function _sqlite_modifier_table($table, $colonne, $opt = [], $serveur = '') {
2250 2250
 
2251
-	if (is_array($table)) {
2252
-		$table_destination = reset($table);
2253
-		$table_origine = key($table);
2254
-	} else {
2255
-		$table_origine = $table_destination = $table;
2256
-	}
2257
-	// ne prend actuellement qu'un changement
2258
-	// mais pourra etre adapte pour changer plus qu'une colonne a la fois
2259
-	if (is_array($colonne)) {
2260
-		$colonne_destination = reset($colonne);
2261
-		$colonne_origine = key($colonne);
2262
-	} else {
2263
-		$colonne_origine = $colonne_destination = $colonne;
2264
-	}
2265
-	if (!isset($opt['field'])) {
2266
-		$opt['field'] = [];
2267
-	}
2268
-	if (!isset($opt['key'])) {
2269
-		$opt['key'] = [];
2270
-	}
2271
-
2272
-	// si les noms de tables sont differents, pas besoin de table temporaire
2273
-	// on prendra directement le nom de la future table
2274
-	$meme_table = ($table_origine == $table_destination);
2275
-
2276
-	$def_origine = sql_showtable($table_origine, false, $serveur);
2277
-	if (!$def_origine or !isset($def_origine['field'])) {
2278
-		spip_log("Alter table impossible sur $table_origine : table non trouvee", 'sqlite' . _LOG_ERREUR);
2279
-
2280
-		return false;
2281
-	}
2282
-
2283
-
2284
-	$table_tmp = $table_origine . '_tmp';
2285
-
2286
-	// 1) creer une table temporaire avec les modifications
2287
-	// - DROP : suppression de la colonne
2288
-	// - CHANGE : modification de la colonne
2289
-	// (foreach pour conserver l'ordre des champs)
2290
-
2291
-	// field
2292
-	$fields = [];
2293
-	// pour le INSERT INTO plus loin
2294
-	// stocker la correspondance nouvelles->anciennes colonnes
2295
-	$fields_correspondances = [];
2296
-	foreach ($def_origine['field'] as $c => $d) {
2297
-		if ($colonne_origine && ($c == $colonne_origine)) {
2298
-			// si pas DROP
2299
-			if ($colonne_destination) {
2300
-				$fields[$colonne_destination] = $opt['field'][$colonne_destination];
2301
-				$fields_correspondances[$colonne_destination] = $c;
2302
-			}
2303
-		} else {
2304
-			$fields[$c] = $d;
2305
-			$fields_correspondances[$c] = $c;
2306
-		}
2307
-	}
2308
-	// cas de ADD sqlite2 (ajout du champ en fin de table):
2309
-	if (!$colonne_origine && $colonne_destination) {
2310
-		$fields[$colonne_destination] = $opt['field'][$colonne_destination];
2311
-	}
2312
-
2313
-	// key...
2314
-	$keys = [];
2315
-	foreach ($def_origine['key'] as $c => $d) {
2316
-		$c = str_replace($colonne_origine, $colonne_destination, $c);
2317
-		$d = str_replace($colonne_origine, $colonne_destination, $d);
2318
-		// seulement si on ne supprime pas la colonne !
2319
-		if ($d) {
2320
-			$keys[$c] = $d;
2321
-		}
2322
-	}
2323
-
2324
-	// autres keys, on merge
2325
-	$keys = array_merge($keys, $opt['key']);
2326
-	$queries = [];
2327
-
2328
-	// copier dans destination (si differente de origine), sinon tmp
2329
-	$table_copie = ($meme_table) ? $table_tmp : $table_destination;
2330
-	$autoinc = (isset($keys['PRIMARY KEY'])
2331
-		and $keys['PRIMARY KEY']
2332
-		and stripos($keys['PRIMARY KEY'], ',') === false
2333
-		and stripos($fields[$keys['PRIMARY KEY']], 'default') === false);
2334
-
2335
-	if (
2336
-		$q = _sqlite_requete_create(
2337
-			$table_copie,
2338
-			$fields,
2339
-			$keys,
2340
-			$autoinc,
2341
-			$temporary = false,
2342
-			$ifnotexists = true,
2343
-			$serveur
2344
-		)
2345
-	) {
2346
-		$queries[] = $q;
2347
-	}
2348
-
2349
-
2350
-	// 2) y copier les champs qui vont bien
2351
-	$champs_dest = join(', ', array_keys($fields_correspondances));
2352
-	$champs_ori = join(', ', $fields_correspondances);
2353
-	$queries[] = "INSERT INTO $table_copie ($champs_dest) SELECT $champs_ori FROM $table_origine";
2354
-
2355
-	// 3) supprimer la table d'origine
2356
-	$queries[] = "DROP TABLE $table_origine";
2357
-
2358
-	// 4) renommer la table temporaire
2359
-	// avec le nom de la table destination
2360
-	// si necessaire
2361
-	if ($meme_table) {
2362
-		$queries[] = "ALTER TABLE $table_copie RENAME TO $table_destination";
2363
-	}
2364
-
2365
-	// 5) remettre les index !
2366
-	foreach ($keys as $k => $v) {
2367
-		if ($k == 'PRIMARY KEY') {
2368
-		} else {
2369
-			// enlever KEY
2370
-			$k = substr($k, 4);
2371
-			$queries[] = "CREATE INDEX $table_destination" . "_$k ON $table_destination ($v)";
2372
-		}
2373
-	}
2374
-
2375
-
2376
-	if (count($queries)) {
2377
-		spip_sqlite::demarrer_transaction($serveur);
2378
-		// il faut les faire une par une car $query = join('; ', $queries).";"; ne fonctionne pas
2379
-		foreach ($queries as $q) {
2380
-			if (!spip_sqlite::executer_requete($q, $serveur)) {
2381
-				spip_log('SQLite : ALTER TABLE table :'
2382
-					. " Erreur a l'execution de la requete : $q", 'sqlite.' . _LOG_ERREUR);
2383
-				spip_sqlite::annuler_transaction($serveur);
2384
-
2385
-				return false;
2386
-			}
2387
-		}
2388
-		spip_sqlite::finir_transaction($serveur);
2389
-	}
2390
-
2391
-	return true;
2251
+    if (is_array($table)) {
2252
+        $table_destination = reset($table);
2253
+        $table_origine = key($table);
2254
+    } else {
2255
+        $table_origine = $table_destination = $table;
2256
+    }
2257
+    // ne prend actuellement qu'un changement
2258
+    // mais pourra etre adapte pour changer plus qu'une colonne a la fois
2259
+    if (is_array($colonne)) {
2260
+        $colonne_destination = reset($colonne);
2261
+        $colonne_origine = key($colonne);
2262
+    } else {
2263
+        $colonne_origine = $colonne_destination = $colonne;
2264
+    }
2265
+    if (!isset($opt['field'])) {
2266
+        $opt['field'] = [];
2267
+    }
2268
+    if (!isset($opt['key'])) {
2269
+        $opt['key'] = [];
2270
+    }
2271
+
2272
+    // si les noms de tables sont differents, pas besoin de table temporaire
2273
+    // on prendra directement le nom de la future table
2274
+    $meme_table = ($table_origine == $table_destination);
2275
+
2276
+    $def_origine = sql_showtable($table_origine, false, $serveur);
2277
+    if (!$def_origine or !isset($def_origine['field'])) {
2278
+        spip_log("Alter table impossible sur $table_origine : table non trouvee", 'sqlite' . _LOG_ERREUR);
2279
+
2280
+        return false;
2281
+    }
2282
+
2283
+
2284
+    $table_tmp = $table_origine . '_tmp';
2285
+
2286
+    // 1) creer une table temporaire avec les modifications
2287
+    // - DROP : suppression de la colonne
2288
+    // - CHANGE : modification de la colonne
2289
+    // (foreach pour conserver l'ordre des champs)
2290
+
2291
+    // field
2292
+    $fields = [];
2293
+    // pour le INSERT INTO plus loin
2294
+    // stocker la correspondance nouvelles->anciennes colonnes
2295
+    $fields_correspondances = [];
2296
+    foreach ($def_origine['field'] as $c => $d) {
2297
+        if ($colonne_origine && ($c == $colonne_origine)) {
2298
+            // si pas DROP
2299
+            if ($colonne_destination) {
2300
+                $fields[$colonne_destination] = $opt['field'][$colonne_destination];
2301
+                $fields_correspondances[$colonne_destination] = $c;
2302
+            }
2303
+        } else {
2304
+            $fields[$c] = $d;
2305
+            $fields_correspondances[$c] = $c;
2306
+        }
2307
+    }
2308
+    // cas de ADD sqlite2 (ajout du champ en fin de table):
2309
+    if (!$colonne_origine && $colonne_destination) {
2310
+        $fields[$colonne_destination] = $opt['field'][$colonne_destination];
2311
+    }
2312
+
2313
+    // key...
2314
+    $keys = [];
2315
+    foreach ($def_origine['key'] as $c => $d) {
2316
+        $c = str_replace($colonne_origine, $colonne_destination, $c);
2317
+        $d = str_replace($colonne_origine, $colonne_destination, $d);
2318
+        // seulement si on ne supprime pas la colonne !
2319
+        if ($d) {
2320
+            $keys[$c] = $d;
2321
+        }
2322
+    }
2323
+
2324
+    // autres keys, on merge
2325
+    $keys = array_merge($keys, $opt['key']);
2326
+    $queries = [];
2327
+
2328
+    // copier dans destination (si differente de origine), sinon tmp
2329
+    $table_copie = ($meme_table) ? $table_tmp : $table_destination;
2330
+    $autoinc = (isset($keys['PRIMARY KEY'])
2331
+        and $keys['PRIMARY KEY']
2332
+        and stripos($keys['PRIMARY KEY'], ',') === false
2333
+        and stripos($fields[$keys['PRIMARY KEY']], 'default') === false);
2334
+
2335
+    if (
2336
+        $q = _sqlite_requete_create(
2337
+            $table_copie,
2338
+            $fields,
2339
+            $keys,
2340
+            $autoinc,
2341
+            $temporary = false,
2342
+            $ifnotexists = true,
2343
+            $serveur
2344
+        )
2345
+    ) {
2346
+        $queries[] = $q;
2347
+    }
2348
+
2349
+
2350
+    // 2) y copier les champs qui vont bien
2351
+    $champs_dest = join(', ', array_keys($fields_correspondances));
2352
+    $champs_ori = join(', ', $fields_correspondances);
2353
+    $queries[] = "INSERT INTO $table_copie ($champs_dest) SELECT $champs_ori FROM $table_origine";
2354
+
2355
+    // 3) supprimer la table d'origine
2356
+    $queries[] = "DROP TABLE $table_origine";
2357
+
2358
+    // 4) renommer la table temporaire
2359
+    // avec le nom de la table destination
2360
+    // si necessaire
2361
+    if ($meme_table) {
2362
+        $queries[] = "ALTER TABLE $table_copie RENAME TO $table_destination";
2363
+    }
2364
+
2365
+    // 5) remettre les index !
2366
+    foreach ($keys as $k => $v) {
2367
+        if ($k == 'PRIMARY KEY') {
2368
+        } else {
2369
+            // enlever KEY
2370
+            $k = substr($k, 4);
2371
+            $queries[] = "CREATE INDEX $table_destination" . "_$k ON $table_destination ($v)";
2372
+        }
2373
+    }
2374
+
2375
+
2376
+    if (count($queries)) {
2377
+        spip_sqlite::demarrer_transaction($serveur);
2378
+        // il faut les faire une par une car $query = join('; ', $queries).";"; ne fonctionne pas
2379
+        foreach ($queries as $q) {
2380
+            if (!spip_sqlite::executer_requete($q, $serveur)) {
2381
+                spip_log('SQLite : ALTER TABLE table :'
2382
+                    . " Erreur a l'execution de la requete : $q", 'sqlite.' . _LOG_ERREUR);
2383
+                spip_sqlite::annuler_transaction($serveur);
2384
+
2385
+                return false;
2386
+            }
2387
+        }
2388
+        spip_sqlite::finir_transaction($serveur);
2389
+    }
2390
+
2391
+    return true;
2392 2392
 }
2393 2393
 
2394 2394
 
@@ -2398,60 +2398,60 @@  discard block
 block discarded – undo
2398 2398
  * @return array
2399 2399
  */
2400 2400
 function _sqlite_ref_fonctions() {
2401
-	$fonctions = [
2402
-		'alter' => 'spip_sqlite_alter',
2403
-		'count' => 'spip_sqlite_count',
2404
-		'countsel' => 'spip_sqlite_countsel',
2405
-		'create' => 'spip_sqlite_create',
2406
-		'create_base' => 'spip_sqlite_create_base',
2407
-		'create_view' => 'spip_sqlite_create_view',
2408
-		'date_proche' => 'spip_sqlite_date_proche',
2409
-		'delete' => 'spip_sqlite_delete',
2410
-		'drop_table' => 'spip_sqlite_drop_table',
2411
-		'drop_view' => 'spip_sqlite_drop_view',
2412
-		'errno' => 'spip_sqlite_errno',
2413
-		'error' => 'spip_sqlite_error',
2414
-		'explain' => 'spip_sqlite_explain',
2415
-		'fetch' => 'spip_sqlite_fetch',
2416
-		'seek' => 'spip_sqlite_seek',
2417
-		'free' => 'spip_sqlite_free',
2418
-		'hex' => 'spip_sqlite_hex',
2419
-		'in' => 'spip_sqlite_in',
2420
-		'insert' => 'spip_sqlite_insert',
2421
-		'insertq' => 'spip_sqlite_insertq',
2422
-		'insertq_multi' => 'spip_sqlite_insertq_multi',
2423
-		'listdbs' => 'spip_sqlite_listdbs',
2424
-		'multi' => 'spip_sqlite_multi',
2425
-		'optimize' => 'spip_sqlite_optimize',
2426
-		'query' => 'spip_sqlite_query',
2427
-		'quote' => 'spip_sqlite_quote',
2428
-		'repair' => 'spip_sqlite_repair',
2429
-		'replace' => 'spip_sqlite_replace',
2430
-		'replace_multi' => 'spip_sqlite_replace_multi',
2431
-		'select' => 'spip_sqlite_select',
2432
-		'selectdb' => 'spip_sqlite_selectdb',
2433
-		'set_charset' => 'spip_sqlite_set_charset',
2434
-		'get_charset' => 'spip_sqlite_get_charset',
2435
-		'showbase' => 'spip_sqlite_showbase',
2436
-		'showtable' => 'spip_sqlite_showtable',
2437
-		'update' => 'spip_sqlite_update',
2438
-		'updateq' => 'spip_sqlite_updateq',
2439
-		'preferer_transaction' => 'spip_sqlite_preferer_transaction',
2440
-		'demarrer_transaction' => 'spip_sqlite_demarrer_transaction',
2441
-		'terminer_transaction' => 'spip_sqlite_terminer_transaction',
2442
-	];
2443
-
2444
-	// association de chaque nom http d'un charset aux couples sqlite
2445
-	// SQLite supporte utf-8 et utf-16 uniquement.
2446
-	$charsets = [
2447
-		'utf-8' => ['charset' => 'utf8', 'collation' => 'utf8_general_ci'],
2448
-		//'utf-16be'=>array('charset'=>'utf16be','collation'=>'UTF-16BE'),// aucune idee de quoi il faut remplir dans es champs la
2449
-		//'utf-16le'=>array('charset'=>'utf16le','collation'=>'UTF-16LE')
2450
-	];
2451
-
2452
-	$fonctions['charsets'] = $charsets;
2453
-
2454
-	return $fonctions;
2401
+    $fonctions = [
2402
+        'alter' => 'spip_sqlite_alter',
2403
+        'count' => 'spip_sqlite_count',
2404
+        'countsel' => 'spip_sqlite_countsel',
2405
+        'create' => 'spip_sqlite_create',
2406
+        'create_base' => 'spip_sqlite_create_base',
2407
+        'create_view' => 'spip_sqlite_create_view',
2408
+        'date_proche' => 'spip_sqlite_date_proche',
2409
+        'delete' => 'spip_sqlite_delete',
2410
+        'drop_table' => 'spip_sqlite_drop_table',
2411
+        'drop_view' => 'spip_sqlite_drop_view',
2412
+        'errno' => 'spip_sqlite_errno',
2413
+        'error' => 'spip_sqlite_error',
2414
+        'explain' => 'spip_sqlite_explain',
2415
+        'fetch' => 'spip_sqlite_fetch',
2416
+        'seek' => 'spip_sqlite_seek',
2417
+        'free' => 'spip_sqlite_free',
2418
+        'hex' => 'spip_sqlite_hex',
2419
+        'in' => 'spip_sqlite_in',
2420
+        'insert' => 'spip_sqlite_insert',
2421
+        'insertq' => 'spip_sqlite_insertq',
2422
+        'insertq_multi' => 'spip_sqlite_insertq_multi',
2423
+        'listdbs' => 'spip_sqlite_listdbs',
2424
+        'multi' => 'spip_sqlite_multi',
2425
+        'optimize' => 'spip_sqlite_optimize',
2426
+        'query' => 'spip_sqlite_query',
2427
+        'quote' => 'spip_sqlite_quote',
2428
+        'repair' => 'spip_sqlite_repair',
2429
+        'replace' => 'spip_sqlite_replace',
2430
+        'replace_multi' => 'spip_sqlite_replace_multi',
2431
+        'select' => 'spip_sqlite_select',
2432
+        'selectdb' => 'spip_sqlite_selectdb',
2433
+        'set_charset' => 'spip_sqlite_set_charset',
2434
+        'get_charset' => 'spip_sqlite_get_charset',
2435
+        'showbase' => 'spip_sqlite_showbase',
2436
+        'showtable' => 'spip_sqlite_showtable',
2437
+        'update' => 'spip_sqlite_update',
2438
+        'updateq' => 'spip_sqlite_updateq',
2439
+        'preferer_transaction' => 'spip_sqlite_preferer_transaction',
2440
+        'demarrer_transaction' => 'spip_sqlite_demarrer_transaction',
2441
+        'terminer_transaction' => 'spip_sqlite_terminer_transaction',
2442
+    ];
2443
+
2444
+    // association de chaque nom http d'un charset aux couples sqlite
2445
+    // SQLite supporte utf-8 et utf-16 uniquement.
2446
+    $charsets = [
2447
+        'utf-8' => ['charset' => 'utf8', 'collation' => 'utf8_general_ci'],
2448
+        //'utf-16be'=>array('charset'=>'utf16be','collation'=>'UTF-16BE'),// aucune idee de quoi il faut remplir dans es champs la
2449
+        //'utf-16le'=>array('charset'=>'utf16le','collation'=>'UTF-16LE')
2450
+    ];
2451
+
2452
+    $fonctions['charsets'] = $charsets;
2453
+
2454
+    return $fonctions;
2455 2455
 }
2456 2456
 
2457 2457
 
@@ -2463,56 +2463,56 @@  discard block
 block discarded – undo
2463 2463
  * @return mixed
2464 2464
  */
2465 2465
 function _sqlite_remplacements_definitions_table($query, $autoinc = false) {
2466
-	// quelques remplacements
2467
-	$num = '(\s*\([0-9]*\))?';
2468
-	$enum = '(\s*\([^\)]*\))?';
2469
-
2470
-	$remplace = [
2471
-		'/enum' . $enum . '/is' => 'VARCHAR(255)',
2472
-		'/COLLATE \w+_bin/is' => 'COLLATE BINARY',
2473
-		'/COLLATE \w+_ci/is' => 'COLLATE NOCASE',
2474
-		'/auto_increment/is' => '',
2475
-		'/current_timestamp\(\)/is' => 'CURRENT_TIMESTAMP', // Fix export depuis mariaDB #4374
2476
-		'/(timestamp .* )ON .*$/is' => '\\1',
2477
-		'/character set \w+/is' => '',
2478
-		'/((big|small|medium|tiny)?int(eger)?)' . $num . '\s*unsigned/is' => '\\1 UNSIGNED',
2479
-		'/(text\s+not\s+null(\s+collate\s+\w+)?)\s*$/is' => "\\1 DEFAULT ''",
2480
-		'/((char|varchar)' . $num . '\s+not\s+null(\s+collate\s+\w+)?)\s*$/is' => "\\1 DEFAULT ''",
2481
-		'/(datetime\s+not\s+null)\s*$/is' => "\\1 DEFAULT '0000-00-00 00:00:00'",
2482
-		'/(date\s+not\s+null)\s*$/is' => "\\1 DEFAULT '0000-00-00'",
2483
-	];
2484
-
2485
-	// pour l'autoincrement, il faut des INTEGER NOT NULL PRIMARY KEY
2486
-	$remplace_autocinc = [
2487
-		'/(big|small|medium|tiny)?int(eger)?' . $num . '/is' => 'INTEGER'
2488
-	];
2489
-	// pour les int non autoincrement, il faut un DEFAULT
2490
-	$remplace_nonautocinc = [
2491
-		'/((big|small|medium|tiny)?int(eger)?' . $num . '\s+not\s+null)\s*$/is' => "\\1 DEFAULT 0",
2492
-	];
2493
-
2494
-	if (is_string($query)) {
2495
-		$query = preg_replace(array_keys($remplace), $remplace, $query);
2496
-		if ($autoinc or preg_match(',AUTO_INCREMENT,is', $query)) {
2497
-			$query = preg_replace(array_keys($remplace_autocinc), $remplace_autocinc, $query);
2498
-		} else {
2499
-			$query = preg_replace(array_keys($remplace_nonautocinc), $remplace_nonautocinc, $query);
2500
-			$query = _sqlite_collate_ci($query);
2501
-		}
2502
-	} elseif (is_array($query)) {
2503
-		foreach ($query as $k => $q) {
2504
-			$ai = ($autoinc ? $k == $autoinc : preg_match(',AUTO_INCREMENT,is', $q));
2505
-			$query[$k] = preg_replace(array_keys($remplace), $remplace, $query[$k]);
2506
-			if ($ai) {
2507
-				$query[$k] = preg_replace(array_keys($remplace_autocinc), $remplace_autocinc, $query[$k]);
2508
-			} else {
2509
-				$query[$k] = preg_replace(array_keys($remplace_nonautocinc), $remplace_nonautocinc, $query[$k]);
2510
-				$query[$k] = _sqlite_collate_ci($query[$k]);
2511
-			}
2512
-		}
2513
-	}
2514
-
2515
-	return $query;
2466
+    // quelques remplacements
2467
+    $num = '(\s*\([0-9]*\))?';
2468
+    $enum = '(\s*\([^\)]*\))?';
2469
+
2470
+    $remplace = [
2471
+        '/enum' . $enum . '/is' => 'VARCHAR(255)',
2472
+        '/COLLATE \w+_bin/is' => 'COLLATE BINARY',
2473
+        '/COLLATE \w+_ci/is' => 'COLLATE NOCASE',
2474
+        '/auto_increment/is' => '',
2475
+        '/current_timestamp\(\)/is' => 'CURRENT_TIMESTAMP', // Fix export depuis mariaDB #4374
2476
+        '/(timestamp .* )ON .*$/is' => '\\1',
2477
+        '/character set \w+/is' => '',
2478
+        '/((big|small|medium|tiny)?int(eger)?)' . $num . '\s*unsigned/is' => '\\1 UNSIGNED',
2479
+        '/(text\s+not\s+null(\s+collate\s+\w+)?)\s*$/is' => "\\1 DEFAULT ''",
2480
+        '/((char|varchar)' . $num . '\s+not\s+null(\s+collate\s+\w+)?)\s*$/is' => "\\1 DEFAULT ''",
2481
+        '/(datetime\s+not\s+null)\s*$/is' => "\\1 DEFAULT '0000-00-00 00:00:00'",
2482
+        '/(date\s+not\s+null)\s*$/is' => "\\1 DEFAULT '0000-00-00'",
2483
+    ];
2484
+
2485
+    // pour l'autoincrement, il faut des INTEGER NOT NULL PRIMARY KEY
2486
+    $remplace_autocinc = [
2487
+        '/(big|small|medium|tiny)?int(eger)?' . $num . '/is' => 'INTEGER'
2488
+    ];
2489
+    // pour les int non autoincrement, il faut un DEFAULT
2490
+    $remplace_nonautocinc = [
2491
+        '/((big|small|medium|tiny)?int(eger)?' . $num . '\s+not\s+null)\s*$/is' => "\\1 DEFAULT 0",
2492
+    ];
2493
+
2494
+    if (is_string($query)) {
2495
+        $query = preg_replace(array_keys($remplace), $remplace, $query);
2496
+        if ($autoinc or preg_match(',AUTO_INCREMENT,is', $query)) {
2497
+            $query = preg_replace(array_keys($remplace_autocinc), $remplace_autocinc, $query);
2498
+        } else {
2499
+            $query = preg_replace(array_keys($remplace_nonautocinc), $remplace_nonautocinc, $query);
2500
+            $query = _sqlite_collate_ci($query);
2501
+        }
2502
+    } elseif (is_array($query)) {
2503
+        foreach ($query as $k => $q) {
2504
+            $ai = ($autoinc ? $k == $autoinc : preg_match(',AUTO_INCREMENT,is', $q));
2505
+            $query[$k] = preg_replace(array_keys($remplace), $remplace, $query[$k]);
2506
+            if ($ai) {
2507
+                $query[$k] = preg_replace(array_keys($remplace_autocinc), $remplace_autocinc, $query[$k]);
2508
+            } else {
2509
+                $query[$k] = preg_replace(array_keys($remplace_nonautocinc), $remplace_nonautocinc, $query[$k]);
2510
+                $query[$k] = _sqlite_collate_ci($query[$k]);
2511
+            }
2512
+        }
2513
+    }
2514
+
2515
+    return $query;
2516 2516
 }
2517 2517
 
2518 2518
 /**
@@ -2523,17 +2523,17 @@  discard block
 block discarded – undo
2523 2523
  * @return string
2524 2524
  */
2525 2525
 function _sqlite_collate_ci($champ) {
2526
-	if (stripos($champ, 'COLLATE') !== false) {
2527
-		return $champ;
2528
-	}
2529
-	if (stripos($champ, 'BINARY') !== false) {
2530
-		return str_ireplace('BINARY', 'COLLATE BINARY', $champ);
2531
-	}
2532
-	if (preg_match(',^(char|varchar|(long|small|medium|tiny)?text),i', $champ)) {
2533
-		return $champ . ' COLLATE NOCASE';
2534
-	}
2526
+    if (stripos($champ, 'COLLATE') !== false) {
2527
+        return $champ;
2528
+    }
2529
+    if (stripos($champ, 'BINARY') !== false) {
2530
+        return str_ireplace('BINARY', 'COLLATE BINARY', $champ);
2531
+    }
2532
+    if (preg_match(',^(char|varchar|(long|small|medium|tiny)?text),i', $champ)) {
2533
+        return $champ . ' COLLATE NOCASE';
2534
+    }
2535 2535
 
2536
-	return $champ;
2536
+    return $champ;
2537 2537
 }
2538 2538
 
2539 2539
 
@@ -2552,84 +2552,84 @@  discard block
 block discarded – undo
2552 2552
  * @return bool|string
2553 2553
  */
2554 2554
 function _sqlite_requete_create(
2555
-	$nom,
2556
-	$champs,
2557
-	$cles,
2558
-	$autoinc = false,
2559
-	$temporary = false,
2560
-	$_ifnotexists = true,
2561
-	$serveur = '',
2562
-	$requeter = true
2555
+    $nom,
2556
+    $champs,
2557
+    $cles,
2558
+    $autoinc = false,
2559
+    $temporary = false,
2560
+    $_ifnotexists = true,
2561
+    $serveur = '',
2562
+    $requeter = true
2563 2563
 ) {
2564
-	$query = $keys = $s = $p = '';
2565
-
2566
-	// certains plugins declarent les tables  (permet leur inclusion dans le dump)
2567
-	// sans les renseigner (laisse le compilo recuperer la description)
2568
-	if (!is_array($champs) || !is_array($cles)) {
2569
-		return;
2570
-	}
2571
-
2572
-	// sqlite ne gere pas KEY tout court dans une requete CREATE TABLE
2573
-	// il faut passer par des create index
2574
-	// Il gere par contre primary key !
2575
-	// Soit la PK est definie dans les cles, soit dans un champs
2576
-	// soit faussement dans les 2 (et dans ce cas, il faut l’enlever à un des 2 endroits !)
2577
-	$pk = 'PRIMARY KEY';
2578
-	// le champ de cle primaire
2579
-	$champ_pk = !empty($cles[$pk]) ? $cles[$pk] : '';
2580
-
2581
-	foreach ($champs as $k => $v) {
2582
-		if (false !== stripos($v, $pk)) {
2583
-			$champ_pk = $k;
2584
-			// on n'en a plus besoin dans field, vu que defini dans key
2585
-			$champs[$k] = preg_replace("/$pk/is", '', $champs[$k]);
2586
-			break;
2587
-		}
2588
-	}
2589
-
2590
-	if ($champ_pk) {
2591
-		$keys = "\n\t\t$pk ($champ_pk)";
2592
-	}
2593
-	// Pas de DEFAULT 0 sur les cles primaires en auto-increment
2594
-	if (
2595
-		isset($champs[$champ_pk])
2596
-		and stripos($champs[$champ_pk], 'default 0') !== false
2597
-	) {
2598
-		$champs[$champ_pk] = trim(str_ireplace('default 0', '', $champs[$champ_pk]));
2599
-	}
2600
-
2601
-	$champs = _sqlite_remplacements_definitions_table($champs, $autoinc ? $champ_pk : false);
2602
-	foreach ($champs as $k => $v) {
2603
-		$query .= "$s\n\t\t$k $v";
2604
-		$s = ',';
2605
-	}
2606
-
2607
-	$ifnotexists = '';
2608
-	if ($_ifnotexists) {
2609
-		$version = spip_sqlite_fetch(
2610
-			spip_sqlite_query('select sqlite_version() AS sqlite_version', $serveur),
2611
-			'',
2612
-			$serveur
2613
-		);
2614
-		if (!function_exists('spip_version_compare')) {
2615
-			include_spip('plugins/installer');
2616
-		}
2617
-
2618
-		if ($version and spip_version_compare($version['sqlite_version'], '3.3.0', '>=')) {
2619
-			$ifnotexists = ' IF NOT EXISTS';
2620
-		} else {
2621
-			/* simuler le IF EXISTS - version 2 et sqlite < 3.3a */
2622
-			$a = spip_sqlite_showtable($nom, $serveur);
2623
-			if (isset($a['key']['KEY ' . $nom])) {
2624
-				return true;
2625
-			}
2626
-		}
2627
-	}
2628
-
2629
-	$temporary = $temporary ? ' TEMPORARY' : '';
2630
-	$q = "CREATE$temporary TABLE$ifnotexists $nom ($query" . ($keys ? ",$keys" : '') . ")\n";
2631
-
2632
-	return $q;
2564
+    $query = $keys = $s = $p = '';
2565
+
2566
+    // certains plugins declarent les tables  (permet leur inclusion dans le dump)
2567
+    // sans les renseigner (laisse le compilo recuperer la description)
2568
+    if (!is_array($champs) || !is_array($cles)) {
2569
+        return;
2570
+    }
2571
+
2572
+    // sqlite ne gere pas KEY tout court dans une requete CREATE TABLE
2573
+    // il faut passer par des create index
2574
+    // Il gere par contre primary key !
2575
+    // Soit la PK est definie dans les cles, soit dans un champs
2576
+    // soit faussement dans les 2 (et dans ce cas, il faut l’enlever à un des 2 endroits !)
2577
+    $pk = 'PRIMARY KEY';
2578
+    // le champ de cle primaire
2579
+    $champ_pk = !empty($cles[$pk]) ? $cles[$pk] : '';
2580
+
2581
+    foreach ($champs as $k => $v) {
2582
+        if (false !== stripos($v, $pk)) {
2583
+            $champ_pk = $k;
2584
+            // on n'en a plus besoin dans field, vu que defini dans key
2585
+            $champs[$k] = preg_replace("/$pk/is", '', $champs[$k]);
2586
+            break;
2587
+        }
2588
+    }
2589
+
2590
+    if ($champ_pk) {
2591
+        $keys = "\n\t\t$pk ($champ_pk)";
2592
+    }
2593
+    // Pas de DEFAULT 0 sur les cles primaires en auto-increment
2594
+    if (
2595
+        isset($champs[$champ_pk])
2596
+        and stripos($champs[$champ_pk], 'default 0') !== false
2597
+    ) {
2598
+        $champs[$champ_pk] = trim(str_ireplace('default 0', '', $champs[$champ_pk]));
2599
+    }
2600
+
2601
+    $champs = _sqlite_remplacements_definitions_table($champs, $autoinc ? $champ_pk : false);
2602
+    foreach ($champs as $k => $v) {
2603
+        $query .= "$s\n\t\t$k $v";
2604
+        $s = ',';
2605
+    }
2606
+
2607
+    $ifnotexists = '';
2608
+    if ($_ifnotexists) {
2609
+        $version = spip_sqlite_fetch(
2610
+            spip_sqlite_query('select sqlite_version() AS sqlite_version', $serveur),
2611
+            '',
2612
+            $serveur
2613
+        );
2614
+        if (!function_exists('spip_version_compare')) {
2615
+            include_spip('plugins/installer');
2616
+        }
2617
+
2618
+        if ($version and spip_version_compare($version['sqlite_version'], '3.3.0', '>=')) {
2619
+            $ifnotexists = ' IF NOT EXISTS';
2620
+        } else {
2621
+            /* simuler le IF EXISTS - version 2 et sqlite < 3.3a */
2622
+            $a = spip_sqlite_showtable($nom, $serveur);
2623
+            if (isset($a['key']['KEY ' . $nom])) {
2624
+                return true;
2625
+            }
2626
+        }
2627
+    }
2628
+
2629
+    $temporary = $temporary ? ' TEMPORARY' : '';
2630
+    $q = "CREATE$temporary TABLE$ifnotexists $nom ($query" . ($keys ? ",$keys" : '') . ")\n";
2631
+
2632
+    return $q;
2633 2633
 }
2634 2634
 
2635 2635
 
@@ -2648,41 +2648,41 @@  discard block
 block discarded – undo
2648 2648
  * @return
2649 2649
  */
2650 2650
 function _sqlite_ajouter_champs_timestamp($table, $couples, $desc = '', $serveur = '') {
2651
-	static $tables = [];
2652
-
2653
-	if (!isset($tables[$table])) {
2654
-		if (!$desc) {
2655
-			$trouver_table = charger_fonction('trouver_table', 'base');
2656
-			$desc = $trouver_table($table, $serveur);
2657
-			// si pas de description, on ne fait rien, ou on die() ?
2658
-			if (!$desc) {
2659
-				return $couples;
2660
-			}
2661
-		}
2662
-
2663
-		// recherche des champs avec simplement 'TIMESTAMP'
2664
-		// cependant, il faudra peut etre etendre
2665
-		// avec la gestion de DEFAULT et ON UPDATE
2666
-		// mais ceux-ci ne sont pas utilises dans le core
2667
-		$tables[$table] = ['valeur' => [], 'cite' => [], 'desc' => []];
2668
-
2669
-		$now = _sqlite_func_now(true);
2670
-		foreach ($desc['field'] as $k => $v) {
2671
-			if (strpos(strtolower(ltrim($v)), 'timestamp') === 0) {
2672
-				$tables[$table]['desc'][$k] = $v;
2673
-				$tables[$table]['valeur'][$k] = _sqlite_calculer_cite($now, $tables[$table]['desc'][$k]);
2674
-			}
2675
-		}
2676
-	}
2677
-	else {
2678
-		$now = _sqlite_func_now(true);
2679
-		foreach (array_keys($tables[$table]['desc']) as $k) {
2680
-			$tables[$table]['valeur'][$k] = _sqlite_calculer_cite($now, $tables[$table]['desc'][$k]);
2681
-		}
2682
-	}
2683
-
2684
-	// ajout des champs type 'timestamp' absents
2685
-	return array_merge($tables[$table]['valeur'], $couples);
2651
+    static $tables = [];
2652
+
2653
+    if (!isset($tables[$table])) {
2654
+        if (!$desc) {
2655
+            $trouver_table = charger_fonction('trouver_table', 'base');
2656
+            $desc = $trouver_table($table, $serveur);
2657
+            // si pas de description, on ne fait rien, ou on die() ?
2658
+            if (!$desc) {
2659
+                return $couples;
2660
+            }
2661
+        }
2662
+
2663
+        // recherche des champs avec simplement 'TIMESTAMP'
2664
+        // cependant, il faudra peut etre etendre
2665
+        // avec la gestion de DEFAULT et ON UPDATE
2666
+        // mais ceux-ci ne sont pas utilises dans le core
2667
+        $tables[$table] = ['valeur' => [], 'cite' => [], 'desc' => []];
2668
+
2669
+        $now = _sqlite_func_now(true);
2670
+        foreach ($desc['field'] as $k => $v) {
2671
+            if (strpos(strtolower(ltrim($v)), 'timestamp') === 0) {
2672
+                $tables[$table]['desc'][$k] = $v;
2673
+                $tables[$table]['valeur'][$k] = _sqlite_calculer_cite($now, $tables[$table]['desc'][$k]);
2674
+            }
2675
+        }
2676
+    }
2677
+    else {
2678
+        $now = _sqlite_func_now(true);
2679
+        foreach (array_keys($tables[$table]['desc']) as $k) {
2680
+            $tables[$table]['valeur'][$k] = _sqlite_calculer_cite($now, $tables[$table]['desc'][$k]);
2681
+        }
2682
+    }
2683
+
2684
+    // ajout des champs type 'timestamp' absents
2685
+    return array_merge($tables[$table]['valeur'], $couples);
2686 2686
 }
2687 2687
 
2688 2688
 
@@ -2693,7 +2693,7 @@  discard block
 block discarded – undo
2693 2693
  * @return array|bool
2694 2694
  */
2695 2695
 function spip_versions_sqlite() {
2696
-	return _sqlite_charger_version();
2696
+    return _sqlite_charger_version();
2697 2697
 }
2698 2698
 
2699 2699
 /**
@@ -2701,114 +2701,114 @@  discard block
 block discarded – undo
2701 2701
  * encadrées de transactions.
2702 2702
  **/
2703 2703
 class spip_sqlite {
2704
-	/** @var sqlite_requeteur[] Liste des instances de requêteurs créés */
2705
-	public static $requeteurs = [];
2706
-	/** @var bool[] Pour chaque connexion, flag pour savoir si une transaction est en cours */
2707
-	public static $transaction_en_cours = [];
2708
-
2709
-
2710
-	/**
2711
-	 * Retourne une unique instance du requêteur
2712
-	 *
2713
-	 * Retourne une instance unique du requêteur pour une connexion SQLite
2714
-	 * donnée
2715
-	 *
2716
-	 * @param string $serveur
2717
-	 *    Nom du connecteur
2718
-	 * @return sqlite_requeteur
2719
-	 *    Instance unique du requêteur
2720
-	 **/
2721
-	public static function requeteur($serveur) {
2722
-		if (!isset(spip_sqlite::$requeteurs[$serveur])) {
2723
-			spip_sqlite::$requeteurs[$serveur] = new sqlite_requeteur($serveur);
2724
-		}
2725
-
2726
-		return spip_sqlite::$requeteurs[$serveur];
2727
-	}
2728
-
2729
-	/**
2730
-	 * Prépare le texte d'une requête avant son exécution
2731
-	 *
2732
-	 * Adapte la requête au format plus ou moins MySQL par un format
2733
-	 * compris de SQLite.
2734
-	 *
2735
-	 * Change les préfixes de tables SPIP par ceux véritables
2736
-	 *
2737
-	 * @param string $query Requête à préparer
2738
-	 * @param string $serveur Nom de la connexion
2739
-	 * @return string           Requête préparée
2740
-	 */
2741
-	public static function traduire_requete($query, $serveur) {
2742
-		$requeteur = spip_sqlite::requeteur($serveur);
2743
-		$traducteur = new sqlite_traducteur($query, $requeteur->prefixe, $requeteur->sqlite_version);
2744
-
2745
-		return $traducteur->traduire_requete();
2746
-	}
2747
-
2748
-	/**
2749
-	 * Démarre une transaction
2750
-	 *
2751
-	 * @param string $serveur Nom de la connexion
2752
-	 **/
2753
-	public static function demarrer_transaction($serveur) {
2754
-		spip_sqlite::executer_requete('BEGIN TRANSACTION', $serveur);
2755
-		spip_sqlite::$transaction_en_cours[$serveur] = true;
2756
-	}
2757
-
2758
-	/**
2759
-	 * Exécute la requête donnée
2760
-	 *
2761
-	 * @param string $query Requête
2762
-	 * @param string $serveur Nom de la connexion
2763
-	 * @param null|bool $tracer Demander des statistiques (temps) ?
2764
-	 **/
2765
-	public static function executer_requete($query, $serveur, $tracer = null) {
2766
-		$requeteur = spip_sqlite::requeteur($serveur);
2767
-
2768
-		return $requeteur->executer_requete($query, $tracer);
2769
-	}
2770
-
2771
-	/**
2772
-	 * Obtient l'identifiant de la dernière ligne insérée ou modifiée
2773
-	 *
2774
-	 * @param string $serveur Nom de la connexion
2775
-	 * return int                Identifiant
2776
-	 **/
2777
-	public static function last_insert_id($serveur) {
2778
-		$requeteur = spip_sqlite::requeteur($serveur);
2779
-
2780
-		return $requeteur->last_insert_id($serveur);
2781
-	}
2782
-
2783
-	/**
2784
-	 * Annule une transaction
2785
-	 *
2786
-	 * @param string $serveur Nom de la connexion
2787
-	 **/
2788
-	public static function annuler_transaction($serveur) {
2789
-		spip_sqlite::executer_requete('ROLLBACK', $serveur);
2790
-		spip_sqlite::$transaction_en_cours[$serveur] = false;
2791
-	}
2792
-
2793
-	/**
2794
-	 * Termine une transaction
2795
-	 *
2796
-	 * @param string $serveur Nom de la connexion
2797
-	 **/
2798
-	public static function finir_transaction($serveur) {
2799
-		// si pas de transaction en cours, ne rien faire et le dire
2800
-		if (
2801
-			!isset(spip_sqlite::$transaction_en_cours[$serveur])
2802
-			or spip_sqlite::$transaction_en_cours[$serveur] == false
2803
-		) {
2804
-			return false;
2805
-		}
2806
-		// sinon fermer la transaction et retourner true
2807
-		spip_sqlite::executer_requete('COMMIT', $serveur);
2808
-		spip_sqlite::$transaction_en_cours[$serveur] = false;
2809
-
2810
-		return true;
2811
-	}
2704
+    /** @var sqlite_requeteur[] Liste des instances de requêteurs créés */
2705
+    public static $requeteurs = [];
2706
+    /** @var bool[] Pour chaque connexion, flag pour savoir si une transaction est en cours */
2707
+    public static $transaction_en_cours = [];
2708
+
2709
+
2710
+    /**
2711
+     * Retourne une unique instance du requêteur
2712
+     *
2713
+     * Retourne une instance unique du requêteur pour une connexion SQLite
2714
+     * donnée
2715
+     *
2716
+     * @param string $serveur
2717
+     *    Nom du connecteur
2718
+     * @return sqlite_requeteur
2719
+     *    Instance unique du requêteur
2720
+     **/
2721
+    public static function requeteur($serveur) {
2722
+        if (!isset(spip_sqlite::$requeteurs[$serveur])) {
2723
+            spip_sqlite::$requeteurs[$serveur] = new sqlite_requeteur($serveur);
2724
+        }
2725
+
2726
+        return spip_sqlite::$requeteurs[$serveur];
2727
+    }
2728
+
2729
+    /**
2730
+     * Prépare le texte d'une requête avant son exécution
2731
+     *
2732
+     * Adapte la requête au format plus ou moins MySQL par un format
2733
+     * compris de SQLite.
2734
+     *
2735
+     * Change les préfixes de tables SPIP par ceux véritables
2736
+     *
2737
+     * @param string $query Requête à préparer
2738
+     * @param string $serveur Nom de la connexion
2739
+     * @return string           Requête préparée
2740
+     */
2741
+    public static function traduire_requete($query, $serveur) {
2742
+        $requeteur = spip_sqlite::requeteur($serveur);
2743
+        $traducteur = new sqlite_traducteur($query, $requeteur->prefixe, $requeteur->sqlite_version);
2744
+
2745
+        return $traducteur->traduire_requete();
2746
+    }
2747
+
2748
+    /**
2749
+     * Démarre une transaction
2750
+     *
2751
+     * @param string $serveur Nom de la connexion
2752
+     **/
2753
+    public static function demarrer_transaction($serveur) {
2754
+        spip_sqlite::executer_requete('BEGIN TRANSACTION', $serveur);
2755
+        spip_sqlite::$transaction_en_cours[$serveur] = true;
2756
+    }
2757
+
2758
+    /**
2759
+     * Exécute la requête donnée
2760
+     *
2761
+     * @param string $query Requête
2762
+     * @param string $serveur Nom de la connexion
2763
+     * @param null|bool $tracer Demander des statistiques (temps) ?
2764
+     **/
2765
+    public static function executer_requete($query, $serveur, $tracer = null) {
2766
+        $requeteur = spip_sqlite::requeteur($serveur);
2767
+
2768
+        return $requeteur->executer_requete($query, $tracer);
2769
+    }
2770
+
2771
+    /**
2772
+     * Obtient l'identifiant de la dernière ligne insérée ou modifiée
2773
+     *
2774
+     * @param string $serveur Nom de la connexion
2775
+     * return int                Identifiant
2776
+     **/
2777
+    public static function last_insert_id($serveur) {
2778
+        $requeteur = spip_sqlite::requeteur($serveur);
2779
+
2780
+        return $requeteur->last_insert_id($serveur);
2781
+    }
2782
+
2783
+    /**
2784
+     * Annule une transaction
2785
+     *
2786
+     * @param string $serveur Nom de la connexion
2787
+     **/
2788
+    public static function annuler_transaction($serveur) {
2789
+        spip_sqlite::executer_requete('ROLLBACK', $serveur);
2790
+        spip_sqlite::$transaction_en_cours[$serveur] = false;
2791
+    }
2792
+
2793
+    /**
2794
+     * Termine une transaction
2795
+     *
2796
+     * @param string $serveur Nom de la connexion
2797
+     **/
2798
+    public static function finir_transaction($serveur) {
2799
+        // si pas de transaction en cours, ne rien faire et le dire
2800
+        if (
2801
+            !isset(spip_sqlite::$transaction_en_cours[$serveur])
2802
+            or spip_sqlite::$transaction_en_cours[$serveur] == false
2803
+        ) {
2804
+            return false;
2805
+        }
2806
+        // sinon fermer la transaction et retourner true
2807
+        spip_sqlite::executer_requete('COMMIT', $serveur);
2808
+        spip_sqlite::$transaction_en_cours[$serveur] = false;
2809
+
2810
+        return true;
2811
+    }
2812 2812
 }
2813 2813
 
2814 2814
 /*
@@ -2821,127 +2821,127 @@  discard block
 block discarded – undo
2821 2821
  */
2822 2822
 
2823 2823
 class sqlite_requeteur {
2824
-	/** @var string Texte de la requête */
2825
-	public $query = ''; // la requete
2826
-	/** @var string Nom de la connexion */
2827
-	public $serveur = '';
2828
-	/** @var Ressource Identifiant de la connexion SQLite */
2829
-	public $link = '';
2830
-	/** @var string Prefixe des tables SPIP */
2831
-	public $prefixe = '';
2832
-	/** @var string Nom de la base de donnée */
2833
-	public $db = '';
2834
-	/** @var bool Doit-on tracer les requetes (var_profile) ? */
2835
-	public $tracer = false; // doit-on tracer les requetes (var_profile)
2836
-
2837
-	/** @var string Version de SQLite (2 ou 3) */
2838
-	public $sqlite_version = '';
2839
-
2840
-	/**
2841
-	 * Constructeur
2842
-	 *
2843
-	 * @param string $serveur
2844
-	 * @return bool
2845
-	 */
2846
-	public function __construct($serveur = '') {
2847
-		_sqlite_init();
2848
-		$this->serveur = strtolower($serveur);
2849
-
2850
-		if (!($this->link = _sqlite_link($this->serveur)) && (!defined('_ECRIRE_INSTALL') || !_ECRIRE_INSTALL)) {
2851
-			spip_log('Aucune connexion sqlite (link)', 'sqlite.' . _LOG_ERREUR);
2852
-
2853
-			return false;
2854
-		}
2855
-
2856
-		$this->sqlite_version = _sqlite_is_version('', $this->link);
2857
-
2858
-		$this->prefixe = $GLOBALS['connexions'][$this->serveur ? $this->serveur : 0]['prefixe'];
2859
-		$this->db = $GLOBALS['connexions'][$this->serveur ? $this->serveur : 0]['db'];
2860
-
2861
-		// tracage des requetes ?
2862
-		$this->tracer = (isset($_GET['var_profile']) && $_GET['var_profile']);
2863
-	}
2864
-
2865
-	/**
2866
-	 * Lancer la requête transmise et faire le tracage si demandé
2867
-	 *
2868
-	 * @param string $query
2869
-	 *     Requête à exécuter
2870
-	 * @param bool|null $tracer
2871
-	 *     true pour tracer la requête
2872
-	 * @return bool|SQLiteResult
2873
-	 */
2874
-	public function executer_requete($query, $tracer = null) {
2875
-		if (is_null($tracer)) {
2876
-			$tracer = $this->tracer;
2877
-		}
2878
-		$err = '';
2879
-		$t = 0;
2880
-		if ($tracer or (defined('_DEBUG_TRACE_QUERIES') and _DEBUG_TRACE_QUERIES)) {
2881
-			include_spip('public/tracer');
2882
-			$t = trace_query_start();
2883
-		}
2884
-
2885
-		# spip_log("requete: $this->serveur >> $query",'sqlite.'._LOG_DEBUG); // boum ? pourquoi ?
2886
-		if ($this->link) {
2887
-			// memoriser la derniere erreur PHP vue
2888
-			$last_error = (function_exists('error_get_last') ? error_get_last() : '');
2889
-			$e = null;
2890
-			// sauver la derniere requete
2891
-			$GLOBALS['connexions'][$this->serveur ? $this->serveur : 0]['last'] = $query;
2892
-			$GLOBALS['connexions'][$this->serveur ? $this->serveur : 0]['total_requetes']++;
2893
-
2894
-			try {
2895
-				$r = $this->link->query($query);
2896
-			} catch (\PDOException $e) {
2897
-				spip_log('PDOException: ' . $e->getMessage(), 'sqlite.' . _LOG_DEBUG);
2898
-				$r = false;
2899
-			}
2900
-			// sauvegarde de la requete (elle y est deja dans $r->queryString)
2901
-			# $r->spipQueryString = $query;
2902
-
2903
-			// comptage : oblige de compter le nombre d'entrees retournees
2904
-			// par une requete SELECT
2905
-			// aucune autre solution ne donne le nombre attendu :( !
2906
-			// particulierement s'il y a des LIMIT dans la requete.
2907
-			if (strtoupper(substr(ltrim($query), 0, 6)) == 'SELECT') {
2908
-				if ($r) {
2909
-					// noter le link et la query pour faire le comptage *si* on en a besoin
2910
-					$r->spipSqliteRowCount = [$this->link, $query];
2911
-				} elseif ($r instanceof PDOStatement) {
2912
-					$r->spipSqliteRowCount = 0;
2913
-				}
2914
-			}
2915
-
2916
-			// loger les warnings/erreurs eventuels de sqlite remontant dans PHP
2917
-			if ($e and $e instanceof \PDOException) {
2918
-				$err = strip_tags($e->getMessage()) . ' in ' . $e->getFile() . ' line ' . $e->getLine();
2919
-				spip_log("$err - " . $query, 'sqlite.' . _LOG_ERREUR);
2920
-			} elseif ($err = (function_exists('error_get_last') ? error_get_last() : '') and $err != $last_error) {
2921
-				$err = strip_tags($err['message']) . ' in ' . $err['file'] . ' line ' . $err['line'];
2922
-				spip_log("$err - " . $query, 'sqlite.' . _LOG_ERREUR);
2923
-			} else {
2924
-				$err = '';
2925
-			}
2926
-		} else {
2927
-			$r = false;
2928
-		}
2929
-
2930
-		if (spip_sqlite_errno($this->serveur)) {
2931
-			$err .= spip_sqlite_error($query, $this->serveur);
2932
-		}
2933
-
2934
-		return $t ? trace_query_end($query, $t, $r, $err, $this->serveur) : $r;
2935
-	}
2936
-
2937
-	/**
2938
-	 * Obtient l'identifiant de la dernière ligne insérée ou modifiée
2939
-	 *
2940
-	 * @return int
2941
-	 **/
2942
-	public function last_insert_id() {
2943
-		return $this->link->lastInsertId();
2944
-	}
2824
+    /** @var string Texte de la requête */
2825
+    public $query = ''; // la requete
2826
+    /** @var string Nom de la connexion */
2827
+    public $serveur = '';
2828
+    /** @var Ressource Identifiant de la connexion SQLite */
2829
+    public $link = '';
2830
+    /** @var string Prefixe des tables SPIP */
2831
+    public $prefixe = '';
2832
+    /** @var string Nom de la base de donnée */
2833
+    public $db = '';
2834
+    /** @var bool Doit-on tracer les requetes (var_profile) ? */
2835
+    public $tracer = false; // doit-on tracer les requetes (var_profile)
2836
+
2837
+    /** @var string Version de SQLite (2 ou 3) */
2838
+    public $sqlite_version = '';
2839
+
2840
+    /**
2841
+     * Constructeur
2842
+     *
2843
+     * @param string $serveur
2844
+     * @return bool
2845
+     */
2846
+    public function __construct($serveur = '') {
2847
+        _sqlite_init();
2848
+        $this->serveur = strtolower($serveur);
2849
+
2850
+        if (!($this->link = _sqlite_link($this->serveur)) && (!defined('_ECRIRE_INSTALL') || !_ECRIRE_INSTALL)) {
2851
+            spip_log('Aucune connexion sqlite (link)', 'sqlite.' . _LOG_ERREUR);
2852
+
2853
+            return false;
2854
+        }
2855
+
2856
+        $this->sqlite_version = _sqlite_is_version('', $this->link);
2857
+
2858
+        $this->prefixe = $GLOBALS['connexions'][$this->serveur ? $this->serveur : 0]['prefixe'];
2859
+        $this->db = $GLOBALS['connexions'][$this->serveur ? $this->serveur : 0]['db'];
2860
+
2861
+        // tracage des requetes ?
2862
+        $this->tracer = (isset($_GET['var_profile']) && $_GET['var_profile']);
2863
+    }
2864
+
2865
+    /**
2866
+     * Lancer la requête transmise et faire le tracage si demandé
2867
+     *
2868
+     * @param string $query
2869
+     *     Requête à exécuter
2870
+     * @param bool|null $tracer
2871
+     *     true pour tracer la requête
2872
+     * @return bool|SQLiteResult
2873
+     */
2874
+    public function executer_requete($query, $tracer = null) {
2875
+        if (is_null($tracer)) {
2876
+            $tracer = $this->tracer;
2877
+        }
2878
+        $err = '';
2879
+        $t = 0;
2880
+        if ($tracer or (defined('_DEBUG_TRACE_QUERIES') and _DEBUG_TRACE_QUERIES)) {
2881
+            include_spip('public/tracer');
2882
+            $t = trace_query_start();
2883
+        }
2884
+
2885
+        # spip_log("requete: $this->serveur >> $query",'sqlite.'._LOG_DEBUG); // boum ? pourquoi ?
2886
+        if ($this->link) {
2887
+            // memoriser la derniere erreur PHP vue
2888
+            $last_error = (function_exists('error_get_last') ? error_get_last() : '');
2889
+            $e = null;
2890
+            // sauver la derniere requete
2891
+            $GLOBALS['connexions'][$this->serveur ? $this->serveur : 0]['last'] = $query;
2892
+            $GLOBALS['connexions'][$this->serveur ? $this->serveur : 0]['total_requetes']++;
2893
+
2894
+            try {
2895
+                $r = $this->link->query($query);
2896
+            } catch (\PDOException $e) {
2897
+                spip_log('PDOException: ' . $e->getMessage(), 'sqlite.' . _LOG_DEBUG);
2898
+                $r = false;
2899
+            }
2900
+            // sauvegarde de la requete (elle y est deja dans $r->queryString)
2901
+            # $r->spipQueryString = $query;
2902
+
2903
+            // comptage : oblige de compter le nombre d'entrees retournees
2904
+            // par une requete SELECT
2905
+            // aucune autre solution ne donne le nombre attendu :( !
2906
+            // particulierement s'il y a des LIMIT dans la requete.
2907
+            if (strtoupper(substr(ltrim($query), 0, 6)) == 'SELECT') {
2908
+                if ($r) {
2909
+                    // noter le link et la query pour faire le comptage *si* on en a besoin
2910
+                    $r->spipSqliteRowCount = [$this->link, $query];
2911
+                } elseif ($r instanceof PDOStatement) {
2912
+                    $r->spipSqliteRowCount = 0;
2913
+                }
2914
+            }
2915
+
2916
+            // loger les warnings/erreurs eventuels de sqlite remontant dans PHP
2917
+            if ($e and $e instanceof \PDOException) {
2918
+                $err = strip_tags($e->getMessage()) . ' in ' . $e->getFile() . ' line ' . $e->getLine();
2919
+                spip_log("$err - " . $query, 'sqlite.' . _LOG_ERREUR);
2920
+            } elseif ($err = (function_exists('error_get_last') ? error_get_last() : '') and $err != $last_error) {
2921
+                $err = strip_tags($err['message']) . ' in ' . $err['file'] . ' line ' . $err['line'];
2922
+                spip_log("$err - " . $query, 'sqlite.' . _LOG_ERREUR);
2923
+            } else {
2924
+                $err = '';
2925
+            }
2926
+        } else {
2927
+            $r = false;
2928
+        }
2929
+
2930
+        if (spip_sqlite_errno($this->serveur)) {
2931
+            $err .= spip_sqlite_error($query, $this->serveur);
2932
+        }
2933
+
2934
+        return $t ? trace_query_end($query, $t, $r, $err, $this->serveur) : $r;
2935
+    }
2936
+
2937
+    /**
2938
+     * Obtient l'identifiant de la dernière ligne insérée ou modifiée
2939
+     *
2940
+     * @return int
2941
+     **/
2942
+    public function last_insert_id() {
2943
+        return $this->link->lastInsertId();
2944
+    }
2945 2945
 }
2946 2946
 
2947 2947
 
@@ -2951,206 +2951,206 @@  discard block
 block discarded – undo
2951 2951
  * (fonction pour proteger les textes)
2952 2952
  */
2953 2953
 class sqlite_traducteur {
2954
-	/** @var string $query Texte de la requête */
2955
-	public $query = '';
2956
-	/** @var string $prefixe Préfixe des tables */
2957
-	public $prefixe = '';
2958
-	/** @var string $sqlite_version Version de sqlite (2 ou 3) */
2959
-	public $sqlite_version = '';
2960
-
2961
-	/** Pour les corrections à effectuer sur les requêtes : array(code=>'texte') trouvé
2962
-	 *
2963
-	 * @var array
2964
-	 */
2965
-	public $textes = [];
2966
-
2967
-	/**
2968
-	 * Constructeur
2969
-	 *
2970
-	 * @param string $query Requête à préparer
2971
-	 * @param string $prefixe Prefixe des tables à utiliser
2972
-	 * @param string $sqlite_version Version SQLite (2 ou 3)
2973
-	 */
2974
-	public function __construct($query, $prefixe, $sqlite_version) {
2975
-		$this->query = $query;
2976
-		$this->prefixe = $prefixe;
2977
-		$this->sqlite_version = $sqlite_version;
2978
-	}
2979
-
2980
-	/**
2981
-	 * Transformer la requete pour SQLite
2982
-	 *
2983
-	 * Enlève les textes, transforme la requête pour quelle soit
2984
-	 * bien interprétée par SQLite, puis remet les textes
2985
-	 * la fonction affecte `$this->query`
2986
-	 */
2987
-	public function traduire_requete() {
2988
-		//
2989
-		// 1) Protection des textes en les remplacant par des codes
2990
-		//
2991
-		// enlever les 'textes' et initialiser avec
2992
-		list($this->query, $textes) = query_echappe_textes($this->query);
2993
-
2994
-		//
2995
-		// 2) Corrections de la requete
2996
-		//
2997
-		// Correction Create Database
2998
-		// Create Database -> requete ignoree
2999
-		if (strpos($this->query, 'CREATE DATABASE') === 0) {
3000
-			spip_log("Sqlite : requete non executee -> $this->query", 'sqlite.' . _LOG_AVERTISSEMENT);
3001
-			$this->query = 'SELECT 1';
3002
-		}
3003
-
3004
-		// Correction Insert Ignore
3005
-		// INSERT IGNORE -> insert (tout court et pas 'insert or replace')
3006
-		if (strpos($this->query, 'INSERT IGNORE') === 0) {
3007
-			spip_log("Sqlite : requete transformee -> $this->query", 'sqlite.' . _LOG_DEBUG);
3008
-			$this->query = 'INSERT ' . substr($this->query, '13');
3009
-		}
3010
-
3011
-		// Correction des dates avec INTERVAL
3012
-		// utiliser sql_date_proche() de preference
3013
-		if (strpos($this->query, 'INTERVAL') !== false) {
3014
-			$this->query = preg_replace_callback(
3015
-				'/DATE_(ADD|SUB)(.*)INTERVAL\s+(\d+)\s+([a-zA-Z]+)\)/U',
3016
-				[&$this, '_remplacerDateParTime'],
3017
-				$this->query
3018
-			);
3019
-		}
3020
-
3021
-		if (strpos($this->query, 'LEFT(') !== false) {
3022
-			$this->query = str_replace('LEFT(', '_LEFT(', $this->query);
3023
-		}
3024
-
3025
-		if (strpos($this->query, 'TIMESTAMPDIFF(') !== false) {
3026
-			$this->query = preg_replace('/TIMESTAMPDIFF\(\s*([^,]*)\s*,/Uims', "TIMESTAMPDIFF('\\1',", $this->query);
3027
-		}
3028
-
3029
-
3030
-		// Correction Using
3031
-		// USING (non reconnu en sqlite2)
3032
-		// problematique car la jointure ne se fait pas du coup.
3033
-		if (($this->sqlite_version == 2) && (strpos($this->query, 'USING') !== false)) {
3034
-			spip_log(
3035
-				"'USING (champ)' n'est pas reconnu en SQLite 2. Utilisez 'ON table1.champ = table2.champ'",
3036
-				'sqlite.' . _LOG_ERREUR
3037
-			);
3038
-			$this->query = preg_replace('/USING\s*\([^\)]*\)/', '', $this->query);
3039
-		}
3040
-
3041
-		// Correction Field
3042
-		// remplace FIELD(table,i,j,k...) par CASE WHEN table=i THEN n ... ELSE 0 END
3043
-		if (strpos($this->query, 'FIELD') !== false) {
3044
-			$this->query = preg_replace_callback(
3045
-				'/FIELD\s*\(([^\)]*)\)/',
3046
-				[&$this, '_remplacerFieldParCase'],
3047
-				$this->query
3048
-			);
3049
-		}
3050
-
3051
-		// Correction des noms de tables FROM
3052
-		// mettre les bons noms de table dans from, update, insert, replace...
3053
-		if (preg_match('/\s(SET|VALUES|WHERE|DATABASE)\s/iS', $this->query, $regs)) {
3054
-			$suite = strstr($this->query, $regs[0]);
3055
-			$this->query = substr($this->query, 0, -strlen($suite));
3056
-		} else {
3057
-			$suite = '';
3058
-		}
3059
-		$pref = ($this->prefixe) ? $this->prefixe . '_' : '';
3060
-		$this->query = preg_replace('/([,\s])spip_/S', '\1' . $pref, $this->query) . $suite;
3061
-
3062
-		// Correction zero AS x
3063
-		// pg n'aime pas 0+x AS alias, sqlite, dans le meme style,
3064
-		// n'apprecie pas du tout SELECT 0 as x ... ORDER BY x
3065
-		// il dit que x ne doit pas être un integer dans le order by !
3066
-		// on remplace du coup x par vide() dans ce cas uniquement
3067
-		//
3068
-		// apparait dans public/vertebrer.php et dans le plugin menu aussi qui genere aussi ce genre de requete via un {par num #GET{tri_num}}
3069
-		// mais est-ce encore un soucis pour sqlite en 2021 ? (ie commenter le preg_replace marche très bien en sqlite 3.28)
3070
-		if ((strpos($this->query, '0 AS') !== false)) {
3071
-			// on ne remplace que dans ORDER BY ou GROUP BY
3072
-			if (preg_match('/\s(ORDER|GROUP) BY\s/i', $this->query, $regs)) {
3073
-				$suite = strstr($this->query, $regs[0]);
3074
-				$this->query = substr($this->query, 0, -strlen($suite));
3075
-
3076
-				// on cherche les noms des x dans 0 AS x
3077
-				// on remplace dans $suite le nom par vide()
3078
-				preg_match_all('/\b0 AS\s*([^\s,]+)/', $this->query, $matches, PREG_PATTERN_ORDER);
3079
-				foreach ($matches[1] as $m) {
3080
-					if (strpos($suite, $m) !== false) {
3081
-						$suite = preg_replace(",\b$m\b,", 'VIDE()', $suite);
3082
-					}
3083
-				}
3084
-				$this->query .= $suite;
3085
-			}
3086
-		}
3087
-
3088
-		// Correction possible des divisions entieres
3089
-		// Le standard SQL (lequel? ou?) semble indiquer que
3090
-		// a/b=c doit donner c entier si a et b sont entiers 4/3=1.
3091
-		// C'est ce que retournent effectivement SQL Server et SQLite
3092
-		// Ce n'est pas ce qu'applique MySQL qui retourne un reel : 4/3=1.333...
3093
-		//
3094
-		// On peut forcer la conversion en multipliant par 1.0 avant la division
3095
-		// /!\ SQLite 3.5.9 Debian/Ubuntu est victime d'un bug en plus !
3096
-		// cf. https://bugs.launchpad.net/ubuntu/+source/sqlite3/+bug/254228
3097
-		//     http://www.sqlite.org/cvstrac/tktview?tn=3202
3098
-		// (4*1.0/3) n'est pas rendu dans ce cas !
3099
-		# $this->query = str_replace('/','* 1.00 / ',$this->query);
3100
-
3101
-
3102
-		// Correction critere REGEXP, non reconnu en sqlite2
3103
-		if (($this->sqlite_version == 2) && (strpos($this->query, 'REGEXP') !== false)) {
3104
-			$this->query = preg_replace('/([^\s\(]*)(\s*)REGEXP(\s*)([^\s\)]*)/', 'REGEXP($4, $1)', $this->query);
3105
-		}
3106
-
3107
-		//
3108
-		// 3) Remise en place des textes d'origine
3109
-		//
3110
-		// Correction Antiquotes et echappements
3111
-		// ` => rien
3112
-		if (strpos($this->query, '`') !== false) {
3113
-			$this->query = str_replace('`', '', $this->query);
3114
-		}
3115
-
3116
-		$this->query = query_reinjecte_textes($this->query, $textes);
3117
-
3118
-		return $this->query;
3119
-	}
3120
-
3121
-
3122
-	/**
3123
-	 * Callback pour remplacer `DATE_` / `INTERVAL`
3124
-	 * par `DATE ... strtotime`
3125
-	 *
3126
-	 * @param array $matches Captures
3127
-	 * @return string Texte de date compris par SQLite
3128
-	 */
3129
-	public function _remplacerDateParTime($matches) {
3130
-		$op = strtoupper($matches[1] == 'ADD') ? '+' : '-';
3131
-
3132
-		return "datetime$matches[2] '$op$matches[3] $matches[4]')";
3133
-	}
3134
-
3135
-	/**
3136
-	 * Callback pour remplacer `FIELD(table,i,j,k...)`
3137
-	 * par `CASE WHEN table=i THEN n ... ELSE 0 END`
3138
-	 *
3139
-	 * @param array $matches Captures
3140
-	 * @return string Texte de liste ordonnée compris par SQLite
3141
-	 */
3142
-	public function _remplacerFieldParCase($matches) {
3143
-		$fields = substr($matches[0], 6, -1); // ne recuperer que l'interieur X de field(X)
3144
-		$t = explode(',', $fields);
3145
-		$index = array_shift($t);
3146
-
3147
-		$res = '';
3148
-		$n = 0;
3149
-		foreach ($t as $v) {
3150
-			$n++;
3151
-			$res .= "\nWHEN $index=$v THEN $n";
3152
-		}
3153
-
3154
-		return "CASE $res ELSE 0 END ";
3155
-	}
2954
+    /** @var string $query Texte de la requête */
2955
+    public $query = '';
2956
+    /** @var string $prefixe Préfixe des tables */
2957
+    public $prefixe = '';
2958
+    /** @var string $sqlite_version Version de sqlite (2 ou 3) */
2959
+    public $sqlite_version = '';
2960
+
2961
+    /** Pour les corrections à effectuer sur les requêtes : array(code=>'texte') trouvé
2962
+     *
2963
+     * @var array
2964
+     */
2965
+    public $textes = [];
2966
+
2967
+    /**
2968
+     * Constructeur
2969
+     *
2970
+     * @param string $query Requête à préparer
2971
+     * @param string $prefixe Prefixe des tables à utiliser
2972
+     * @param string $sqlite_version Version SQLite (2 ou 3)
2973
+     */
2974
+    public function __construct($query, $prefixe, $sqlite_version) {
2975
+        $this->query = $query;
2976
+        $this->prefixe = $prefixe;
2977
+        $this->sqlite_version = $sqlite_version;
2978
+    }
2979
+
2980
+    /**
2981
+     * Transformer la requete pour SQLite
2982
+     *
2983
+     * Enlève les textes, transforme la requête pour quelle soit
2984
+     * bien interprétée par SQLite, puis remet les textes
2985
+     * la fonction affecte `$this->query`
2986
+     */
2987
+    public function traduire_requete() {
2988
+        //
2989
+        // 1) Protection des textes en les remplacant par des codes
2990
+        //
2991
+        // enlever les 'textes' et initialiser avec
2992
+        list($this->query, $textes) = query_echappe_textes($this->query);
2993
+
2994
+        //
2995
+        // 2) Corrections de la requete
2996
+        //
2997
+        // Correction Create Database
2998
+        // Create Database -> requete ignoree
2999
+        if (strpos($this->query, 'CREATE DATABASE') === 0) {
3000
+            spip_log("Sqlite : requete non executee -> $this->query", 'sqlite.' . _LOG_AVERTISSEMENT);
3001
+            $this->query = 'SELECT 1';
3002
+        }
3003
+
3004
+        // Correction Insert Ignore
3005
+        // INSERT IGNORE -> insert (tout court et pas 'insert or replace')
3006
+        if (strpos($this->query, 'INSERT IGNORE') === 0) {
3007
+            spip_log("Sqlite : requete transformee -> $this->query", 'sqlite.' . _LOG_DEBUG);
3008
+            $this->query = 'INSERT ' . substr($this->query, '13');
3009
+        }
3010
+
3011
+        // Correction des dates avec INTERVAL
3012
+        // utiliser sql_date_proche() de preference
3013
+        if (strpos($this->query, 'INTERVAL') !== false) {
3014
+            $this->query = preg_replace_callback(
3015
+                '/DATE_(ADD|SUB)(.*)INTERVAL\s+(\d+)\s+([a-zA-Z]+)\)/U',
3016
+                [&$this, '_remplacerDateParTime'],
3017
+                $this->query
3018
+            );
3019
+        }
3020
+
3021
+        if (strpos($this->query, 'LEFT(') !== false) {
3022
+            $this->query = str_replace('LEFT(', '_LEFT(', $this->query);
3023
+        }
3024
+
3025
+        if (strpos($this->query, 'TIMESTAMPDIFF(') !== false) {
3026
+            $this->query = preg_replace('/TIMESTAMPDIFF\(\s*([^,]*)\s*,/Uims', "TIMESTAMPDIFF('\\1',", $this->query);
3027
+        }
3028
+
3029
+
3030
+        // Correction Using
3031
+        // USING (non reconnu en sqlite2)
3032
+        // problematique car la jointure ne se fait pas du coup.
3033
+        if (($this->sqlite_version == 2) && (strpos($this->query, 'USING') !== false)) {
3034
+            spip_log(
3035
+                "'USING (champ)' n'est pas reconnu en SQLite 2. Utilisez 'ON table1.champ = table2.champ'",
3036
+                'sqlite.' . _LOG_ERREUR
3037
+            );
3038
+            $this->query = preg_replace('/USING\s*\([^\)]*\)/', '', $this->query);
3039
+        }
3040
+
3041
+        // Correction Field
3042
+        // remplace FIELD(table,i,j,k...) par CASE WHEN table=i THEN n ... ELSE 0 END
3043
+        if (strpos($this->query, 'FIELD') !== false) {
3044
+            $this->query = preg_replace_callback(
3045
+                '/FIELD\s*\(([^\)]*)\)/',
3046
+                [&$this, '_remplacerFieldParCase'],
3047
+                $this->query
3048
+            );
3049
+        }
3050
+
3051
+        // Correction des noms de tables FROM
3052
+        // mettre les bons noms de table dans from, update, insert, replace...
3053
+        if (preg_match('/\s(SET|VALUES|WHERE|DATABASE)\s/iS', $this->query, $regs)) {
3054
+            $suite = strstr($this->query, $regs[0]);
3055
+            $this->query = substr($this->query, 0, -strlen($suite));
3056
+        } else {
3057
+            $suite = '';
3058
+        }
3059
+        $pref = ($this->prefixe) ? $this->prefixe . '_' : '';
3060
+        $this->query = preg_replace('/([,\s])spip_/S', '\1' . $pref, $this->query) . $suite;
3061
+
3062
+        // Correction zero AS x
3063
+        // pg n'aime pas 0+x AS alias, sqlite, dans le meme style,
3064
+        // n'apprecie pas du tout SELECT 0 as x ... ORDER BY x
3065
+        // il dit que x ne doit pas être un integer dans le order by !
3066
+        // on remplace du coup x par vide() dans ce cas uniquement
3067
+        //
3068
+        // apparait dans public/vertebrer.php et dans le plugin menu aussi qui genere aussi ce genre de requete via un {par num #GET{tri_num}}
3069
+        // mais est-ce encore un soucis pour sqlite en 2021 ? (ie commenter le preg_replace marche très bien en sqlite 3.28)
3070
+        if ((strpos($this->query, '0 AS') !== false)) {
3071
+            // on ne remplace que dans ORDER BY ou GROUP BY
3072
+            if (preg_match('/\s(ORDER|GROUP) BY\s/i', $this->query, $regs)) {
3073
+                $suite = strstr($this->query, $regs[0]);
3074
+                $this->query = substr($this->query, 0, -strlen($suite));
3075
+
3076
+                // on cherche les noms des x dans 0 AS x
3077
+                // on remplace dans $suite le nom par vide()
3078
+                preg_match_all('/\b0 AS\s*([^\s,]+)/', $this->query, $matches, PREG_PATTERN_ORDER);
3079
+                foreach ($matches[1] as $m) {
3080
+                    if (strpos($suite, $m) !== false) {
3081
+                        $suite = preg_replace(",\b$m\b,", 'VIDE()', $suite);
3082
+                    }
3083
+                }
3084
+                $this->query .= $suite;
3085
+            }
3086
+        }
3087
+
3088
+        // Correction possible des divisions entieres
3089
+        // Le standard SQL (lequel? ou?) semble indiquer que
3090
+        // a/b=c doit donner c entier si a et b sont entiers 4/3=1.
3091
+        // C'est ce que retournent effectivement SQL Server et SQLite
3092
+        // Ce n'est pas ce qu'applique MySQL qui retourne un reel : 4/3=1.333...
3093
+        //
3094
+        // On peut forcer la conversion en multipliant par 1.0 avant la division
3095
+        // /!\ SQLite 3.5.9 Debian/Ubuntu est victime d'un bug en plus !
3096
+        // cf. https://bugs.launchpad.net/ubuntu/+source/sqlite3/+bug/254228
3097
+        //     http://www.sqlite.org/cvstrac/tktview?tn=3202
3098
+        // (4*1.0/3) n'est pas rendu dans ce cas !
3099
+        # $this->query = str_replace('/','* 1.00 / ',$this->query);
3100
+
3101
+
3102
+        // Correction critere REGEXP, non reconnu en sqlite2
3103
+        if (($this->sqlite_version == 2) && (strpos($this->query, 'REGEXP') !== false)) {
3104
+            $this->query = preg_replace('/([^\s\(]*)(\s*)REGEXP(\s*)([^\s\)]*)/', 'REGEXP($4, $1)', $this->query);
3105
+        }
3106
+
3107
+        //
3108
+        // 3) Remise en place des textes d'origine
3109
+        //
3110
+        // Correction Antiquotes et echappements
3111
+        // ` => rien
3112
+        if (strpos($this->query, '`') !== false) {
3113
+            $this->query = str_replace('`', '', $this->query);
3114
+        }
3115
+
3116
+        $this->query = query_reinjecte_textes($this->query, $textes);
3117
+
3118
+        return $this->query;
3119
+    }
3120
+
3121
+
3122
+    /**
3123
+     * Callback pour remplacer `DATE_` / `INTERVAL`
3124
+     * par `DATE ... strtotime`
3125
+     *
3126
+     * @param array $matches Captures
3127
+     * @return string Texte de date compris par SQLite
3128
+     */
3129
+    public function _remplacerDateParTime($matches) {
3130
+        $op = strtoupper($matches[1] == 'ADD') ? '+' : '-';
3131
+
3132
+        return "datetime$matches[2] '$op$matches[3] $matches[4]')";
3133
+    }
3134
+
3135
+    /**
3136
+     * Callback pour remplacer `FIELD(table,i,j,k...)`
3137
+     * par `CASE WHEN table=i THEN n ... ELSE 0 END`
3138
+     *
3139
+     * @param array $matches Captures
3140
+     * @return string Texte de liste ordonnée compris par SQLite
3141
+     */
3142
+    public function _remplacerFieldParCase($matches) {
3143
+        $fields = substr($matches[0], 6, -1); // ne recuperer que l'interieur X de field(X)
3144
+        $t = explode(',', $fields);
3145
+        $index = array_shift($t);
3146
+
3147
+        $res = '';
3148
+        $n = 0;
3149
+        foreach ($t as $v) {
3150
+            $n++;
3151
+            $res .= "\nWHEN $index=$v THEN $n";
3152
+        }
3153
+
3154
+        return "CASE $res ELSE 0 END ";
3155
+    }
3156 3156
 }
Please login to merge, or discard this patch.
Spacing   +94 added lines, -94 removed lines patch added patch discarded remove patch
@@ -64,27 +64,27 @@  discard block
 block discarded – undo
64 64
 	// determiner le dossier de la base : $addr ou _DIR_DB
65 65
 	$f = _DIR_DB;
66 66
 	if ($addr and strpos($addr, '/') !== false) {
67
-		$f = rtrim($addr, '/') . '/';
67
+		$f = rtrim($addr, '/').'/';
68 68
 	}
69 69
 
70 70
 	// un nom de base demande et impossible d'obtenir la base, on s'en va :
71 71
 	// il faut que la base existe ou que le repertoire parent soit writable
72
-	if ($db and !is_file($f .= $db . '.sqlite') and !is_writable(dirname($f))) {
73
-		spip_log("base $f non trouvee ou droits en ecriture manquants", 'sqlite.' . _LOG_HS);
72
+	if ($db and !is_file($f .= $db.'.sqlite') and !is_writable(dirname($f))) {
73
+		spip_log("base $f non trouvee ou droits en ecriture manquants", 'sqlite.'._LOG_HS);
74 74
 
75 75
 		return false;
76 76
 	}
77 77
 
78 78
 	// charger les modules sqlite au besoin
79 79
 	if (!_sqlite_charger_version($sqlite_version)) {
80
-		spip_log("Impossible de trouver/charger le module SQLite ($sqlite_version)!", 'sqlite.' . _LOG_HS);
80
+		spip_log("Impossible de trouver/charger le module SQLite ($sqlite_version)!", 'sqlite.'._LOG_HS);
81 81
 
82 82
 		return false;
83 83
 	}
84 84
 
85 85
 	// chargement des constantes
86 86
 	// il ne faut pas definir les constantes avant d'avoir charge les modules sqlite
87
-	$define = 'spip_sqlite' . $sqlite_version . '_constantes';
87
+	$define = 'spip_sqlite'.$sqlite_version.'_constantes';
88 88
 	$define();
89 89
 
90 90
 	$ok = false;
@@ -92,8 +92,8 @@  discard block
 block discarded – undo
92 92
 		// si pas de db ->
93 93
 		// base temporaire tant qu'on ne connait pas son vrai nom
94 94
 		// pour tester la connexion
95
-		$db = '_sqlite' . $sqlite_version . '_install';
96
-		$tmp = _DIR_DB . $db . '.sqlite';
95
+		$db = '_sqlite'.$sqlite_version.'_install';
96
+		$tmp = _DIR_DB.$db.'.sqlite';
97 97
 		$ok = $link = new \PDO("sqlite:$tmp");
98 98
 	} else {
99 99
 		// Ouvrir (eventuellement creer la base)
@@ -102,7 +102,7 @@  discard block
 block discarded – undo
102 102
 
103 103
 	if (!$ok) {
104 104
 		$e = _sqlite_last_error_from_link($link);
105
-		spip_log("Impossible d'ouvrir la base SQLite($sqlite_version) $f : $e", 'sqlite.' . _LOG_HS);
105
+		spip_log("Impossible d'ouvrir la base SQLite($sqlite_version) $f : $e", 'sqlite.'._LOG_HS);
106 106
 
107 107
 		return false;
108 108
 	}
@@ -188,7 +188,7 @@  discard block
 block discarded – undo
188 188
 		$table = $regs[3];
189 189
 		$suite = $regs[4];
190 190
 	} else {
191
-		spip_log("SQLite : Probleme de ALTER TABLE mal forme dans $query", 'sqlite.' . _LOG_ERREUR);
191
+		spip_log("SQLite : Probleme de ALTER TABLE mal forme dans $query", 'sqlite.'._LOG_ERREUR);
192 192
 
193 193
 		return false;
194 194
 	}
@@ -205,7 +205,7 @@  discard block
 block discarded – undo
205 205
 	$i = 0;
206 206
 	$ouverte = false;
207 207
 	while ($do = array_shift($todo)) {
208
-		$todo2[$i] = isset($todo2[$i]) ? $todo2[$i] . ',' . $do : $do;
208
+		$todo2[$i] = isset($todo2[$i]) ? $todo2[$i].','.$do : $do;
209 209
 		$o = (false !== strpos($do, '('));
210 210
 		$f = (false !== strpos($do, ')'));
211 211
 		if ($o and !$f) {
@@ -231,7 +231,7 @@  discard block
 block discarded – undo
231 231
 		) {
232 232
 			spip_log(
233 233
 				"SQLite : Probleme de ALTER TABLE, utilisation non reconnue dans : $do \n(requete d'origine : $query)",
234
-				'sqlite.' . _LOG_ERREUR
234
+				'sqlite.'._LOG_ERREUR
235 235
 			);
236 236
 
237 237
 			return false;
@@ -327,10 +327,10 @@  discard block
 block discarded – undo
327 327
 
328 328
 			// pas geres en sqlite2
329 329
 			case 'RENAME':
330
-				$do = 'RENAME TO' . substr($do, 6);
330
+				$do = 'RENAME TO'.substr($do, 6);
331 331
 			case 'RENAME TO':
332 332
 				if (!spip_sqlite::executer_requete("$debut $do", $serveur)) {
333
-					spip_log("SQLite : Erreur ALTER TABLE / RENAME : $query", 'sqlite.' . _LOG_ERREUR);
333
+					spip_log("SQLite : Erreur ALTER TABLE / RENAME : $query", 'sqlite.'._LOG_ERREUR);
334 334
 
335 335
 					return false;
336 336
 				}
@@ -373,7 +373,7 @@  discard block
 block discarded – undo
373 373
 						$colonnes = substr($colonne_origine, 1, -1);
374 374
 						if (false !== strpos(',', $colonnes)) {
375 375
 							spip_log('SQLite : Erreur, impossible de creer un index sur plusieurs colonnes'
376
-								. " sans qu'il ait de nom ($table, ($colonnes))", 'sqlite.' . _LOG_ERREUR);
376
+								. " sans qu'il ait de nom ($table, ($colonnes))", 'sqlite.'._LOG_ERREUR);
377 377
 							break;
378 378
 						} else {
379 379
 							$nom_index = $colonnes;
@@ -388,12 +388,12 @@  discard block
 block discarded – undo
388 388
 
389 389
 			// pas geres en sqlite2
390 390
 			case 'ADD COLUMN':
391
-				$do = 'ADD' . substr($do, 10);
391
+				$do = 'ADD'.substr($do, 10);
392 392
 			case 'ADD':
393 393
 			default:
394 394
 				if (!preg_match(',primary\s+key,i', $do)) {
395 395
 					if (!spip_sqlite::executer_requete("$debut $do", $serveur)) {
396
-						spip_log("SQLite : Erreur ALTER TABLE / ADD : $query", 'sqlite.' . _LOG_ERREUR);
396
+						spip_log("SQLite : Erreur ALTER TABLE / ADD : $query", 'sqlite.'._LOG_ERREUR);
397 397
 
398 398
 						return false;
399 399
 					}
@@ -413,7 +413,7 @@  discard block
 block discarded – undo
413 413
 					}
414 414
 					$opts['field'] = [$colonne_ajoutee => $def];
415 415
 					if (!_sqlite_modifier_table($table, [$colonne_ajoutee], $opts, $serveur)) {
416
-						spip_log("SQLite : Erreur ALTER TABLE / ADD : $query", 'sqlite.' . _LOG_ERREUR);
416
+						spip_log("SQLite : Erreur ALTER TABLE / ADD : $query", 'sqlite.'._LOG_ERREUR);
417 417
 
418 418
 						return false;
419 419
 					}
@@ -421,10 +421,10 @@  discard block
 block discarded – undo
421 421
 				break;
422 422
 		}
423 423
 		// tout est bon, ouf !
424
-		spip_log("SQLite ($serveur) : Changements OK : $debut $do", 'sqlite.' . _LOG_INFO);
424
+		spip_log("SQLite ($serveur) : Changements OK : $debut $do", 'sqlite.'._LOG_INFO);
425 425
 	}
426 426
 
427
-	spip_log("SQLite ($serveur) : fin ALTER TABLE OK !", 'sqlite.' . _LOG_INFO);
427
+	spip_log("SQLite ($serveur) : fin ALTER TABLE OK !", 'sqlite.'._LOG_INFO);
428 428
 
429 429
 	return true;
430 430
 }
@@ -493,9 +493,9 @@  discard block
 block discarded – undo
493 493
  * @return bool true si la base est créee.
494 494
  **/
495 495
 function spip_sqlite_create_base($nom, $serveur = '', $option = true) {
496
-	$f = $nom . '.sqlite';
496
+	$f = $nom.'.sqlite';
497 497
 	if (strpos($nom, '/') === false) {
498
-		$f = _DIR_DB . $f;
498
+		$f = _DIR_DB.$f;
499 499
 	}
500 500
 
501 501
 	$ok = new \PDO("sqlite:$f");
@@ -535,13 +535,13 @@  discard block
 block discarded – undo
535 535
 	if (sql_showtable($nom, false, $serveur)) {
536 536
 		spip_log(
537 537
 			"Echec creation d'une vue sql ($nom) car celle-ci existe deja (serveur:$serveur)",
538
-			'sqlite.' . _LOG_ERREUR
538
+			'sqlite.'._LOG_ERREUR
539 539
 		);
540 540
 
541 541
 		return false;
542 542
 	}
543 543
 
544
-	$query = "CREATE VIEW $nom AS " . $query_select;
544
+	$query = "CREATE VIEW $nom AS ".$query_select;
545 545
 
546 546
 	return spip_sqlite_query($query, $serveur, $requeter);
547 547
 }
@@ -567,8 +567,8 @@  discard block
 block discarded – undo
567 567
 function spip_sqlite_create_index($nom, $table, $champs, $unique = '', $serveur = '', $requeter = true) {
568 568
 	if (!($nom or $table or $champs)) {
569 569
 		spip_log(
570
-			"Champ manquant pour creer un index sqlite ($nom, $table, (" . join(',', $champs) . '))',
571
-			'sqlite.' . _LOG_ERREUR
570
+			"Champ manquant pour creer un index sqlite ($nom, $table, (".join(',', $champs).'))',
571
+			'sqlite.'._LOG_ERREUR
572 572
 		);
573 573
 
574 574
 		return false;
@@ -576,7 +576,7 @@  discard block
 block discarded – undo
576 576
 
577 577
 	// SQLite ne differentie pas noms des index en fonction des tables
578 578
 	// il faut donc creer des noms uniques d'index pour une base sqlite
579
-	$nom = $table . '_' . $nom;
579
+	$nom = $table.'_'.$nom;
580 580
 	// enlever d'eventuelles parentheses deja presentes sur champs
581 581
 	if (!is_array($champs)) {
582 582
 		if ($champs[0] == '(') {
@@ -598,12 +598,12 @@  discard block
 block discarded – undo
598 598
 	} else {
599 599
 		/* simuler le IF EXISTS - version 2 et sqlite < 3.3a */
600 600
 		$a = spip_sqlite_showtable($table, $serveur);
601
-		if (isset($a['key']['KEY ' . $nom])) {
601
+		if (isset($a['key']['KEY '.$nom])) {
602 602
 			return true;
603 603
 		}
604 604
 	}
605 605
 
606
-	$query = 'CREATE ' . ($unique ? 'UNIQUE ' : '') . "INDEX$ifnotexists $nom ON $table (" . join(',', $champs) . ')';
606
+	$query = 'CREATE '.($unique ? 'UNIQUE ' : '')."INDEX$ifnotexists $nom ON $table (".join(',', $champs).')';
607 607
 	$res = spip_sqlite_query($query, $serveur, $requeter);
608 608
 	if (!$requeter) {
609 609
 		return $res;
@@ -679,7 +679,7 @@  discard block
 block discarded – undo
679 679
 	$serveur = '',
680 680
 	$requeter = true
681 681
 ) {
682
-	$c = !$groupby ? '*' : ('DISTINCT ' . (is_string($groupby) ? $groupby : join(',', $groupby)));
682
+	$c = !$groupby ? '*' : ('DISTINCT '.(is_string($groupby) ? $groupby : join(',', $groupby)));
683 683
 	$r = spip_sqlite_select(
684 684
 		"COUNT($c)",
685 685
 		$from,
@@ -788,14 +788,14 @@  discard block
 block discarded – undo
788 788
  */
789 789
 function spip_sqlite_drop_index($nom, $table, $serveur = '', $requeter = true) {
790 790
 	if (!($nom or $table)) {
791
-		spip_log("Champ manquant pour supprimer un index sqlite ($nom, $table)", 'sqlite.' . _LOG_ERREUR);
791
+		spip_log("Champ manquant pour supprimer un index sqlite ($nom, $table)", 'sqlite.'._LOG_ERREUR);
792 792
 
793 793
 		return false;
794 794
 	}
795 795
 
796 796
 	// SQLite ne differentie pas noms des index en fonction des tables
797 797
 	// il faut donc creer des noms uniques d'index pour une base sqlite
798
-	$index = $table . '_' . $nom;
798
+	$index = $table.'_'.$nom;
799 799
 	$exist = ' IF EXISTS';
800 800
 
801 801
 	$query = "DROP INDEX$exist $index";
@@ -827,7 +827,7 @@  discard block
 block discarded – undo
827 827
 	if ($s) {
828 828
 		$trace = debug_backtrace();
829 829
 		if ($trace[0]['function'] != 'spip_sqlite_error') {
830
-			spip_log("$s - $query - " . sql_error_backtrace(), 'sqlite.' . _LOG_ERREUR);
830
+			spip_log("$s - $query - ".sql_error_backtrace(), 'sqlite.'._LOG_ERREUR);
831 831
 		}
832 832
 	}
833 833
 
@@ -874,14 +874,14 @@  discard block
 block discarded – undo
874 874
 		$t = $link->errorInfo();
875 875
 		$s = ltrim($t[0], '0'); // 00000 si pas d'erreur
876 876
 		if ($s) {
877
-			$s .= ' / ' . $t[1];
877
+			$s .= ' / '.$t[1];
878 878
 		} // ajoute l'erreur du moteur SQLite
879 879
 	} else {
880 880
 		$s = ': aucune ressource sqlite (link)';
881 881
 	}
882 882
 
883 883
 	if ($s) {
884
-		spip_log("Erreur sqlite $s", 'sqlite.' . _LOG_ERREUR);
884
+		spip_log("Erreur sqlite $s", 'sqlite.'._LOG_ERREUR);
885 885
 	}
886 886
 
887 887
 	return $s ? $s : 0;
@@ -905,7 +905,7 @@  discard block
 block discarded – undo
905 905
 	}
906 906
 
907 907
 	$query = spip_sqlite::traduire_requete($query, $serveur);
908
-	$query = 'EXPLAIN ' . $query;
908
+	$query = 'EXPLAIN '.$query;
909 909
 	if (!$requeter) {
910 910
 		return $query;
911 911
 	}
@@ -1066,7 +1066,7 @@  discard block
 block discarded – undo
1066 1066
  **/
1067 1067
 function spip_sqlite_insert($table, $champs, $valeurs, $desc = [], $serveur = '', $requeter = true) {
1068 1068
 
1069
-	$query = "INSERT INTO $table " . ($champs ? "$champs VALUES $valeurs" : 'DEFAULT VALUES');
1069
+	$query = "INSERT INTO $table ".($champs ? "$champs VALUES $valeurs" : 'DEFAULT VALUES');
1070 1070
 	if ($r = spip_sqlite_query($query, $serveur, $requeter)) {
1071 1071
 		if (!$requeter) {
1072 1072
 			return $r;
@@ -1121,8 +1121,8 @@  discard block
 block discarded – undo
1121 1121
 
1122 1122
 	$cles = $valeurs = '';
1123 1123
 	if (count($couples)) {
1124
-		$cles = '(' . join(',', array_keys($couples)) . ')';
1125
-		$valeurs = '(' . join(',', $couples) . ')';
1124
+		$cles = '('.join(',', array_keys($couples)).')';
1125
+		$valeurs = '('.join(',', $couples).')';
1126 1126
 	}
1127 1127
 
1128 1128
 	return spip_sqlite_insert($table, $cles, $valeurs, $desc, $serveur, $requeter);
@@ -1182,11 +1182,11 @@  discard block
 block discarded – undo
1182 1182
 
1183 1183
 		$champs = $valeurs = '';
1184 1184
 		if (count($couples)) {
1185
-			$champs = '(' . join(',', array_keys($couples)) . ')';
1186
-			$valeurs = '(' . join(',', $couples) . ')';
1187
-			$query = $query_start . "$champs VALUES $valeurs";
1185
+			$champs = '('.join(',', array_keys($couples)).')';
1186
+			$valeurs = '('.join(',', $couples).')';
1187
+			$query = $query_start."$champs VALUES $valeurs";
1188 1188
 		} else {
1189
-			$query = $query_start . 'DEFAULT VALUES';
1189
+			$query = $query_start.'DEFAULT VALUES';
1190 1190
 		}
1191 1191
 
1192 1192
 		if ($requeter) {
@@ -1318,7 +1318,7 @@  discard block
 block discarded – undo
1318 1318
  * @return string       Texte de sélection pour la requête
1319 1319
  */
1320 1320
 function spip_sqlite_multi($objet, $lang) {
1321
-	$r = 'EXTRAIRE_MULTI(' . $objet . ", '" . $lang . "') AS multi";
1321
+	$r = 'EXTRAIRE_MULTI('.$objet.", '".$lang."') AS multi";
1322 1322
 
1323 1323
 	return $r;
1324 1324
 }
@@ -1389,7 +1389,7 @@  discard block
 block discarded – undo
1389 1389
 function spip_sqlite_date_proche($champ, $interval, $unite) {
1390 1390
 	$op = (($interval <= 0) ? '>' : '<');
1391 1391
 
1392
-	return "($champ $op datetime('" . date('Y-m-d H:i:s') . "', '$interval $unite'))";
1392
+	return "($champ $op datetime('".date('Y-m-d H:i:s')."', '$interval $unite'))";
1393 1393
 }
1394 1394
 
1395 1395
 
@@ -1421,7 +1421,7 @@  discard block
 block discarded – undo
1421 1421
 				and (!isset($desc['key']['PRIMARY KEY']) or $desc['key']['PRIMARY KEY'] !== $c)
1422 1422
 			) {
1423 1423
 				spip_sqlite_alter($q = "TABLE $table CHANGE $c $c $d DEFAULT ''", $serveur);
1424
-				spip_log("ALTER $q", 'repair' . _LOG_INFO_IMPORTANTE);
1424
+				spip_log("ALTER $q", 'repair'._LOG_INFO_IMPORTANTE);
1425 1425
 			}
1426 1426
 			if (
1427 1427
 				preg_match(',^(INTEGER),i', $d)
@@ -1431,7 +1431,7 @@  discard block
 block discarded – undo
1431 1431
 				and (!isset($desc['key']['PRIMARY KEY']) or $desc['key']['PRIMARY KEY'] !== $c)
1432 1432
 			) {
1433 1433
 				spip_sqlite_alter($q = "TABLE $table CHANGE $c $c $d DEFAULT '0'", $serveur);
1434
-				spip_log("ALTER $q", 'repair' . _LOG_INFO_IMPORTANTE);
1434
+				spip_log("ALTER $q", 'repair'._LOG_INFO_IMPORTANTE);
1435 1435
 			}
1436 1436
 			if (
1437 1437
 				preg_match(',^(datetime),i', $d)
@@ -1441,7 +1441,7 @@  discard block
 block discarded – undo
1441 1441
 				and (!isset($desc['key']['PRIMARY KEY']) or $desc['key']['PRIMARY KEY'] !== $c)
1442 1442
 			) {
1443 1443
 				spip_sqlite_alter($q = "TABLE $table CHANGE $c $c $d DEFAULT '0000-00-00 00:00:00'", $serveur);
1444
-				spip_log("ALTER $q", 'repair' . _LOG_INFO_IMPORTANTE);
1444
+				spip_log("ALTER $q", 'repair'._LOG_INFO_IMPORTANTE);
1445 1445
 			}
1446 1446
 		}
1447 1447
 
@@ -1492,10 +1492,10 @@  discard block
 block discarded – undo
1492 1492
 	// recherche de champs 'timestamp' pour mise a jour auto de ceux-ci
1493 1493
 	$couples = _sqlite_ajouter_champs_timestamp($table, $couples, $desc, $serveur);
1494 1494
 
1495
-	return spip_sqlite_query("REPLACE INTO $table (" . join(',', array_keys($couples)) . ') VALUES (' . join(
1495
+	return spip_sqlite_query("REPLACE INTO $table (".join(',', array_keys($couples)).') VALUES ('.join(
1496 1496
 		',',
1497 1497
 		$couples
1498
-	) . ')', $serveur);
1498
+	).')', $serveur);
1499 1499
 }
1500 1500
 
1501 1501
 
@@ -1581,7 +1581,7 @@  discard block
 block discarded – undo
1581 1581
 		. _sqlite_calculer_expression('WHERE', $where)
1582 1582
 		. _sqlite_calculer_expression('GROUP BY', $groupby, ',')
1583 1583
 		. _sqlite_calculer_expression('HAVING', $having)
1584
-		. ($orderby ? ("\nORDER BY " . _sqlite_calculer_order($orderby)) : '')
1584
+		. ($orderby ? ("\nORDER BY "._sqlite_calculer_order($orderby)) : '')
1585 1585
 		. ($limit ? "\nLIMIT $limit" : '');
1586 1586
 
1587 1587
 	// dans un select, on doit renvoyer la requête en cas d'erreur
@@ -1619,10 +1619,10 @@  discard block
 block discarded – undo
1619 1619
 	// interdire la creation d'une nouvelle base,
1620 1620
 	// sauf si on est dans l'installation
1621 1621
 	if (
1622
-		!is_file($f = _DIR_DB . $db . '.sqlite')
1622
+		!is_file($f = _DIR_DB.$db.'.sqlite')
1623 1623
 		&& (!defined('_ECRIRE_INSTALL') || !_ECRIRE_INSTALL)
1624 1624
 	) {
1625
-		spip_log("Il est interdit de creer la base $db", 'sqlite.' . _LOG_HS);
1625
+		spip_log("Il est interdit de creer la base $db", 'sqlite.'._LOG_HS);
1626 1626
 
1627 1627
 		return false;
1628 1628
 	}
@@ -1631,12 +1631,12 @@  discard block
 block discarded – undo
1631 1631
 	// avec les identifiants connus
1632 1632
 	$index = $serveur ? $serveur : 0;
1633 1633
 
1634
-	if ($link = spip_connect_db('', '', '', '', '@selectdb@' . $db, $serveur, '', '')) {
1634
+	if ($link = spip_connect_db('', '', '', '', '@selectdb@'.$db, $serveur, '', '')) {
1635 1635
 		if (($db == $link['db']) && $GLOBALS['connexions'][$index] = $link) {
1636 1636
 			return $db;
1637 1637
 		}
1638 1638
 	} else {
1639
-		spip_log("Impossible de selectionner la base $db", 'sqlite.' . _LOG_HS);
1639
+		spip_log("Impossible de selectionner la base $db", 'sqlite.'._LOG_HS);
1640 1640
 
1641 1641
 		return false;
1642 1642
 	}
@@ -1687,7 +1687,7 @@  discard block
 block discarded – undo
1687 1687
 	$match = "^$match$";
1688 1688
 
1689 1689
 	return spip_sqlite_query(
1690
-		"SELECT name FROM sqlite_master WHERE type='table' AND tbl_name REGEXP " . _q($match),
1690
+		"SELECT name FROM sqlite_master WHERE type='table' AND tbl_name REGEXP "._q($match),
1691 1691
 		$serveur,
1692 1692
 		$requeter
1693 1693
 	);
@@ -1778,7 +1778,7 @@  discard block
 block discarded – undo
1778 1778
 				// s'il y a une parenthèse fermante dans la clé
1779 1779
 				// ou dans la définition sans qu'il n'y ait une ouverture avant
1780 1780
 				if (false !== strpos($k, ')') or preg_match('/^[^\(]*\)/', $def)) {
1781
-					$fields[$k_precedent] .= ',' . $k . ' ' . $def;
1781
+					$fields[$k_precedent] .= ','.$k.' '.$def;
1782 1782
 					continue;
1783 1783
 				}
1784 1784
 
@@ -1813,13 +1813,13 @@  discard block
 block discarded – undo
1813 1813
 				. 'ORDER BY substr(type,2,1), name';
1814 1814
 			$a = spip_sqlite_query($query, $serveur, $requeter);
1815 1815
 			while ($r = spip_sqlite_fetch($a, null, $serveur)) {
1816
-				$key = str_replace($nom_table . '_', '', $r['name']); // enlever le nom de la table ajoute a l'index
1816
+				$key = str_replace($nom_table.'_', '', $r['name']); // enlever le nom de la table ajoute a l'index
1817 1817
 				$keytype = 'KEY';
1818 1818
 				if (strpos($r['sql'], 'UNIQUE INDEX') !== false) {
1819 1819
 					$keytype = 'UNIQUE KEY';
1820 1820
 				}
1821 1821
 				$colonnes = preg_replace(',.*\((.*)\).*,', '$1', $r['sql']);
1822
-				$keys[$keytype . ' ' . $key] = $colonnes;
1822
+				$keys[$keytype.' '.$key] = $colonnes;
1823 1823
 			}
1824 1824
 		}
1825 1825
 	} // c'est une vue, on liste les champs disponibles simplement
@@ -1866,7 +1866,7 @@  discard block
 block discarded – undo
1866 1866
 
1867 1867
 	$set = [];
1868 1868
 	foreach ($champs as $champ => $val) {
1869
-		$set[] = $champ . "=$val";
1869
+		$set[] = $champ."=$val";
1870 1870
 	}
1871 1871
 	if (!empty($set)) {
1872 1872
 		return spip_sqlite_query(
@@ -1919,7 +1919,7 @@  discard block
 block discarded – undo
1919 1919
 
1920 1920
 	$set = [];
1921 1921
 	foreach ($champs as $champ => $val) {
1922
-		$set[$champ] = $champ . '=' . _sqlite_calculer_cite($val, isset($fields[$champ]) ? $fields[$champ] : '');
1922
+		$set[$champ] = $champ.'='._sqlite_calculer_cite($val, isset($fields[$champ]) ? $fields[$champ] : '');
1923 1923
 	}
1924 1924
 
1925 1925
 	// recherche de champs 'timestamp' pour mise a jour auto de ceux-ci
@@ -1927,7 +1927,7 @@  discard block
 block discarded – undo
1927 1927
 	$maj = _sqlite_ajouter_champs_timestamp($table, [], $desc, $serveur);
1928 1928
 	foreach ($maj as $champ => $val) {
1929 1929
 		if (!isset($set[$champ])) {
1930
-			$set[$champ] = $champ . '=' . $val;
1930
+			$set[$champ] = $champ.'='.$val;
1931 1931
 		}
1932 1932
 	}
1933 1933
 
@@ -1956,7 +1956,7 @@  discard block
 block discarded – undo
1956 1956
  */
1957 1957
 function _sqlite_init() {
1958 1958
 	if (!defined('_DIR_DB')) {
1959
-		define('_DIR_DB', _DIR_ETC . 'bases/');
1959
+		define('_DIR_DB', _DIR_ETC.'bases/');
1960 1960
 	}
1961 1961
 	if (!defined('_SQLITE_CHMOD')) {
1962 1962
 		define('_SQLITE_CHMOD', _SPIP_CHMOD);
@@ -2063,9 +2063,9 @@  discard block
 block discarded – undo
2063 2063
 	}
2064 2064
 
2065 2065
 	// echapper les ' en ''
2066
-	spip_log('Pas de methode ->quote pour echapper', 'sqlite.' . _LOG_INFO_IMPORTANTE);
2066
+	spip_log('Pas de methode ->quote pour echapper', 'sqlite.'._LOG_INFO_IMPORTANTE);
2067 2067
 
2068
-	return ("'" . str_replace("'", "''", $v) . "'");
2068
+	return ("'".str_replace("'", "''", $v)."'");
2069 2069
 }
2070 2070
 
2071 2071
 
@@ -2088,12 +2088,12 @@  discard block
 block discarded – undo
2088 2088
 	$exp = "\n$expression ";
2089 2089
 
2090 2090
 	if (!is_array($v)) {
2091
-		return $exp . $v;
2091
+		return $exp.$v;
2092 2092
 	} else {
2093 2093
 		if (strtoupper($join) === 'AND') {
2094
-			return $exp . join("\n\t$join ", array_map('_sqlite_calculer_where', $v));
2094
+			return $exp.join("\n\t$join ", array_map('_sqlite_calculer_where', $v));
2095 2095
 		} else {
2096
-			return $exp . join($join, $v);
2096
+			return $exp.join($join, $v);
2097 2097
 		}
2098 2098
 	}
2099 2099
 }
@@ -2127,17 +2127,17 @@  discard block
 block discarded – undo
2127 2127
 		if (substr($k, -1) == '@') {
2128 2128
 			// c'est une jointure qui se refere au from precedent
2129 2129
 			// pas de virgule
2130
-			$res .= '  ' . $v;
2130
+			$res .= '  '.$v;
2131 2131
 		} else {
2132 2132
 			if (!is_numeric($k)) {
2133 2133
 				$p = strpos($v, ' ');
2134 2134
 				if ($p) {
2135
-					$v = substr($v, 0, $p) . " AS '$k'" . substr($v, $p);
2135
+					$v = substr($v, 0, $p)." AS '$k'".substr($v, $p);
2136 2136
 				} else {
2137 2137
 					$v .= " AS '$k'";
2138 2138
 				}
2139 2139
 			}
2140
-			$res .= ', ' . $v;
2140
+			$res .= ', '.$v;
2141 2141
 		}
2142 2142
 	}
2143 2143
 
@@ -2275,13 +2275,13 @@  discard block
 block discarded – undo
2275 2275
 
2276 2276
 	$def_origine = sql_showtable($table_origine, false, $serveur);
2277 2277
 	if (!$def_origine or !isset($def_origine['field'])) {
2278
-		spip_log("Alter table impossible sur $table_origine : table non trouvee", 'sqlite' . _LOG_ERREUR);
2278
+		spip_log("Alter table impossible sur $table_origine : table non trouvee", 'sqlite'._LOG_ERREUR);
2279 2279
 
2280 2280
 		return false;
2281 2281
 	}
2282 2282
 
2283 2283
 
2284
-	$table_tmp = $table_origine . '_tmp';
2284
+	$table_tmp = $table_origine.'_tmp';
2285 2285
 
2286 2286
 	// 1) creer une table temporaire avec les modifications
2287 2287
 	// - DROP : suppression de la colonne
@@ -2368,7 +2368,7 @@  discard block
 block discarded – undo
2368 2368
 		} else {
2369 2369
 			// enlever KEY
2370 2370
 			$k = substr($k, 4);
2371
-			$queries[] = "CREATE INDEX $table_destination" . "_$k ON $table_destination ($v)";
2371
+			$queries[] = "CREATE INDEX $table_destination"."_$k ON $table_destination ($v)";
2372 2372
 		}
2373 2373
 	}
2374 2374
 
@@ -2379,7 +2379,7 @@  discard block
 block discarded – undo
2379 2379
 		foreach ($queries as $q) {
2380 2380
 			if (!spip_sqlite::executer_requete($q, $serveur)) {
2381 2381
 				spip_log('SQLite : ALTER TABLE table :'
2382
-					. " Erreur a l'execution de la requete : $q", 'sqlite.' . _LOG_ERREUR);
2382
+					. " Erreur a l'execution de la requete : $q", 'sqlite.'._LOG_ERREUR);
2383 2383
 				spip_sqlite::annuler_transaction($serveur);
2384 2384
 
2385 2385
 				return false;
@@ -2468,27 +2468,27 @@  discard block
 block discarded – undo
2468 2468
 	$enum = '(\s*\([^\)]*\))?';
2469 2469
 
2470 2470
 	$remplace = [
2471
-		'/enum' . $enum . '/is' => 'VARCHAR(255)',
2471
+		'/enum'.$enum.'/is' => 'VARCHAR(255)',
2472 2472
 		'/COLLATE \w+_bin/is' => 'COLLATE BINARY',
2473 2473
 		'/COLLATE \w+_ci/is' => 'COLLATE NOCASE',
2474 2474
 		'/auto_increment/is' => '',
2475 2475
 		'/current_timestamp\(\)/is' => 'CURRENT_TIMESTAMP', // Fix export depuis mariaDB #4374
2476 2476
 		'/(timestamp .* )ON .*$/is' => '\\1',
2477 2477
 		'/character set \w+/is' => '',
2478
-		'/((big|small|medium|tiny)?int(eger)?)' . $num . '\s*unsigned/is' => '\\1 UNSIGNED',
2478
+		'/((big|small|medium|tiny)?int(eger)?)'.$num.'\s*unsigned/is' => '\\1 UNSIGNED',
2479 2479
 		'/(text\s+not\s+null(\s+collate\s+\w+)?)\s*$/is' => "\\1 DEFAULT ''",
2480
-		'/((char|varchar)' . $num . '\s+not\s+null(\s+collate\s+\w+)?)\s*$/is' => "\\1 DEFAULT ''",
2480
+		'/((char|varchar)'.$num.'\s+not\s+null(\s+collate\s+\w+)?)\s*$/is' => "\\1 DEFAULT ''",
2481 2481
 		'/(datetime\s+not\s+null)\s*$/is' => "\\1 DEFAULT '0000-00-00 00:00:00'",
2482 2482
 		'/(date\s+not\s+null)\s*$/is' => "\\1 DEFAULT '0000-00-00'",
2483 2483
 	];
2484 2484
 
2485 2485
 	// pour l'autoincrement, il faut des INTEGER NOT NULL PRIMARY KEY
2486 2486
 	$remplace_autocinc = [
2487
-		'/(big|small|medium|tiny)?int(eger)?' . $num . '/is' => 'INTEGER'
2487
+		'/(big|small|medium|tiny)?int(eger)?'.$num.'/is' => 'INTEGER'
2488 2488
 	];
2489 2489
 	// pour les int non autoincrement, il faut un DEFAULT
2490 2490
 	$remplace_nonautocinc = [
2491
-		'/((big|small|medium|tiny)?int(eger)?' . $num . '\s+not\s+null)\s*$/is' => "\\1 DEFAULT 0",
2491
+		'/((big|small|medium|tiny)?int(eger)?'.$num.'\s+not\s+null)\s*$/is' => "\\1 DEFAULT 0",
2492 2492
 	];
2493 2493
 
2494 2494
 	if (is_string($query)) {
@@ -2530,7 +2530,7 @@  discard block
 block discarded – undo
2530 2530
 		return str_ireplace('BINARY', 'COLLATE BINARY', $champ);
2531 2531
 	}
2532 2532
 	if (preg_match(',^(char|varchar|(long|small|medium|tiny)?text),i', $champ)) {
2533
-		return $champ . ' COLLATE NOCASE';
2533
+		return $champ.' COLLATE NOCASE';
2534 2534
 	}
2535 2535
 
2536 2536
 	return $champ;
@@ -2620,14 +2620,14 @@  discard block
 block discarded – undo
2620 2620
 		} else {
2621 2621
 			/* simuler le IF EXISTS - version 2 et sqlite < 3.3a */
2622 2622
 			$a = spip_sqlite_showtable($nom, $serveur);
2623
-			if (isset($a['key']['KEY ' . $nom])) {
2623
+			if (isset($a['key']['KEY '.$nom])) {
2624 2624
 				return true;
2625 2625
 			}
2626 2626
 		}
2627 2627
 	}
2628 2628
 
2629 2629
 	$temporary = $temporary ? ' TEMPORARY' : '';
2630
-	$q = "CREATE$temporary TABLE$ifnotexists $nom ($query" . ($keys ? ",$keys" : '') . ")\n";
2630
+	$q = "CREATE$temporary TABLE$ifnotexists $nom ($query".($keys ? ",$keys" : '').")\n";
2631 2631
 
2632 2632
 	return $q;
2633 2633
 }
@@ -2848,7 +2848,7 @@  discard block
 block discarded – undo
2848 2848
 		$this->serveur = strtolower($serveur);
2849 2849
 
2850 2850
 		if (!($this->link = _sqlite_link($this->serveur)) && (!defined('_ECRIRE_INSTALL') || !_ECRIRE_INSTALL)) {
2851
-			spip_log('Aucune connexion sqlite (link)', 'sqlite.' . _LOG_ERREUR);
2851
+			spip_log('Aucune connexion sqlite (link)', 'sqlite.'._LOG_ERREUR);
2852 2852
 
2853 2853
 			return false;
2854 2854
 		}
@@ -2894,7 +2894,7 @@  discard block
 block discarded – undo
2894 2894
 			try {
2895 2895
 				$r = $this->link->query($query);
2896 2896
 			} catch (\PDOException $e) {
2897
-				spip_log('PDOException: ' . $e->getMessage(), 'sqlite.' . _LOG_DEBUG);
2897
+				spip_log('PDOException: '.$e->getMessage(), 'sqlite.'._LOG_DEBUG);
2898 2898
 				$r = false;
2899 2899
 			}
2900 2900
 			// sauvegarde de la requete (elle y est deja dans $r->queryString)
@@ -2915,11 +2915,11 @@  discard block
 block discarded – undo
2915 2915
 
2916 2916
 			// loger les warnings/erreurs eventuels de sqlite remontant dans PHP
2917 2917
 			if ($e and $e instanceof \PDOException) {
2918
-				$err = strip_tags($e->getMessage()) . ' in ' . $e->getFile() . ' line ' . $e->getLine();
2919
-				spip_log("$err - " . $query, 'sqlite.' . _LOG_ERREUR);
2918
+				$err = strip_tags($e->getMessage()).' in '.$e->getFile().' line '.$e->getLine();
2919
+				spip_log("$err - ".$query, 'sqlite.'._LOG_ERREUR);
2920 2920
 			} elseif ($err = (function_exists('error_get_last') ? error_get_last() : '') and $err != $last_error) {
2921
-				$err = strip_tags($err['message']) . ' in ' . $err['file'] . ' line ' . $err['line'];
2922
-				spip_log("$err - " . $query, 'sqlite.' . _LOG_ERREUR);
2921
+				$err = strip_tags($err['message']).' in '.$err['file'].' line '.$err['line'];
2922
+				spip_log("$err - ".$query, 'sqlite.'._LOG_ERREUR);
2923 2923
 			} else {
2924 2924
 				$err = '';
2925 2925
 			}
@@ -2997,15 +2997,15 @@  discard block
 block discarded – undo
2997 2997
 		// Correction Create Database
2998 2998
 		// Create Database -> requete ignoree
2999 2999
 		if (strpos($this->query, 'CREATE DATABASE') === 0) {
3000
-			spip_log("Sqlite : requete non executee -> $this->query", 'sqlite.' . _LOG_AVERTISSEMENT);
3000
+			spip_log("Sqlite : requete non executee -> $this->query", 'sqlite.'._LOG_AVERTISSEMENT);
3001 3001
 			$this->query = 'SELECT 1';
3002 3002
 		}
3003 3003
 
3004 3004
 		// Correction Insert Ignore
3005 3005
 		// INSERT IGNORE -> insert (tout court et pas 'insert or replace')
3006 3006
 		if (strpos($this->query, 'INSERT IGNORE') === 0) {
3007
-			spip_log("Sqlite : requete transformee -> $this->query", 'sqlite.' . _LOG_DEBUG);
3008
-			$this->query = 'INSERT ' . substr($this->query, '13');
3007
+			spip_log("Sqlite : requete transformee -> $this->query", 'sqlite.'._LOG_DEBUG);
3008
+			$this->query = 'INSERT '.substr($this->query, '13');
3009 3009
 		}
3010 3010
 
3011 3011
 		// Correction des dates avec INTERVAL
@@ -3033,7 +3033,7 @@  discard block
 block discarded – undo
3033 3033
 		if (($this->sqlite_version == 2) && (strpos($this->query, 'USING') !== false)) {
3034 3034
 			spip_log(
3035 3035
 				"'USING (champ)' n'est pas reconnu en SQLite 2. Utilisez 'ON table1.champ = table2.champ'",
3036
-				'sqlite.' . _LOG_ERREUR
3036
+				'sqlite.'._LOG_ERREUR
3037 3037
 			);
3038 3038
 			$this->query = preg_replace('/USING\s*\([^\)]*\)/', '', $this->query);
3039 3039
 		}
@@ -3056,8 +3056,8 @@  discard block
 block discarded – undo
3056 3056
 		} else {
3057 3057
 			$suite = '';
3058 3058
 		}
3059
-		$pref = ($this->prefixe) ? $this->prefixe . '_' : '';
3060
-		$this->query = preg_replace('/([,\s])spip_/S', '\1' . $pref, $this->query) . $suite;
3059
+		$pref = ($this->prefixe) ? $this->prefixe.'_' : '';
3060
+		$this->query = preg_replace('/([,\s])spip_/S', '\1'.$pref, $this->query).$suite;
3061 3061
 
3062 3062
 		// Correction zero AS x
3063 3063
 		// pg n'aime pas 0+x AS alias, sqlite, dans le meme style,
Please login to merge, or discard this patch.
ecrire/lang/spip_ja.php 1 patch
Indentation   +656 added lines, -656 removed lines patch added patch discarded remove patch
@@ -4,684 +4,684 @@
 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
-	'access_interface_graphique' => 'グラフィカルインターフェースに戻る',
14
-	'access_mode_texte' => 'シンプルなテキストインターフェースを表示する',
15
-	'admin_debug' => 'デバッグ',
16
-	'admin_modifier_article' => '記事を修正する',
17
-	'admin_modifier_auteur' => '著者を修正する',
18
-	'admin_modifier_breve' => 'ニュースを修正する',
19
-	'admin_modifier_mot' => 'キーワードを修正する',
20
-	'admin_modifier_rubrique' => 'セクションを修正する',
21
-	'admin_recalculer' => 'ページの再読み込み',
22
-	'afficher_calendrier' => 'カレンダーを表示する',
23
-	'afficher_trad' => '翻訳を表示する',
24
-	'alerte_maj_impossible' => '<b>警告</b> MySQLは、データベースを@version@にアップデート出来ませんでした。 
12
+    // A
13
+    'access_interface_graphique' => 'グラフィカルインターフェースに戻る',
14
+    'access_mode_texte' => 'シンプルなテキストインターフェースを表示する',
15
+    'admin_debug' => 'デバッグ',
16
+    'admin_modifier_article' => '記事を修正する',
17
+    'admin_modifier_auteur' => '著者を修正する',
18
+    'admin_modifier_breve' => 'ニュースを修正する',
19
+    'admin_modifier_mot' => 'キーワードを修正する',
20
+    'admin_modifier_rubrique' => 'セクションを修正する',
21
+    'admin_recalculer' => 'ページの再読み込み',
22
+    'afficher_calendrier' => 'カレンダーを表示する',
23
+    'afficher_trad' => '翻訳を表示する',
24
+    'alerte_maj_impossible' => '<b>警告</b> MySQLは、データベースを@version@にアップデート出来ませんでした。 
25 25
 データベースのアクセス権に問題があると思われます。プロバイダにお問い合わせく
26 26
 ださい。',
27
-	'alerte_modif_info_concourante' => '<b>警告</b> この情報は他の所で修正されました。現在の情報は:',
28
-	'analyse_xml' => 'XML解析',
29
-	'annuler' => '取り消す',
30
-	'antispam_champ_vide' => '空白のままに残してください。',
31
-	'articles_recents' => '最新の記事',
32
-	'avis_1_erreur_saisie' => 'エラーが1件あり、入力された情報を確認してください。',
33
-	'avis_archive_incorrect' => 'この圧縮ファイルは、SPIP用のファイルではありません。',
34
-	'avis_archive_invalide' => 'この圧縮ファイルは無効です。',
35
-	'avis_attention' => '警戒!',
36
-	'avis_champ_incorrect_type_objet' => 'タイプ@type@のオブジェクトに対して、フィールド名@name@が無効です。',
37
-	'avis_colonne_inexistante' => 'カラム@col@がありません。',
38
-	'avis_erreur' => 'エラー: 下記を見る',
39
-	'avis_erreur_connexion' => '接続エラー',
40
-	'avis_erreur_cookie' => 'クッキーの問題',
41
-	'avis_erreur_fonction_contexte' => '開発のエラーです。この機能は前後関係で呼び出されるべきではありません。',
42
-	'avis_erreur_mysql' => 'SQLエラー',
43
-	'avis_erreur_sauvegarde' => 'バックアップエラー (@type@@id_objet@)!',
44
-	'avis_erreur_visiteur' => '管理エリアへのアクセスエラー',
45
-	'avis_nb_erreurs_saisie' => 'エラーが@nb@件あり、入力された情報を確認してください。',
27
+    'alerte_modif_info_concourante' => '<b>警告</b> この情報は他の所で修正されました。現在の情報は:',
28
+    'analyse_xml' => 'XML解析',
29
+    'annuler' => '取り消す',
30
+    'antispam_champ_vide' => '空白のままに残してください。',
31
+    'articles_recents' => '最新の記事',
32
+    'avis_1_erreur_saisie' => 'エラーが1件あり、入力された情報を確認してください。',
33
+    'avis_archive_incorrect' => 'この圧縮ファイルは、SPIP用のファイルではありません。',
34
+    'avis_archive_invalide' => 'この圧縮ファイルは無効です。',
35
+    'avis_attention' => '警戒!',
36
+    'avis_champ_incorrect_type_objet' => 'タイプ@type@のオブジェクトに対して、フィールド名@name@が無効です。',
37
+    'avis_colonne_inexistante' => 'カラム@col@がありません。',
38
+    'avis_erreur' => 'エラー: 下記を見る',
39
+    'avis_erreur_connexion' => '接続エラー',
40
+    'avis_erreur_cookie' => 'クッキーの問題',
41
+    'avis_erreur_fonction_contexte' => '開発のエラーです。この機能は前後関係で呼び出されるべきではありません。',
42
+    'avis_erreur_mysql' => 'SQLエラー',
43
+    'avis_erreur_sauvegarde' => 'バックアップエラー (@type@@id_objet@)!',
44
+    'avis_erreur_visiteur' => '管理エリアへのアクセスエラー',
45
+    'avis_nb_erreurs_saisie' => 'エラーが@nb@件あり、入力された情報を確認してください。',
46 46
 
47
-	// B
48
-	'barre_a_accent_grave' => 'アクセント記号つきの大文字Aを挿入してください。',
49
-	'barre_aide' => 'ページレイアウトを充実させるために、「ショートカット」を使用してください。',
50
-	'barre_e_accent_aigu' => '鋭いアクセントで大文字Eを挿入してください',
51
-	'barre_eo' => 'OとEの合字の挿入(訳注:主にフランス語で使用)',
52
-	'barre_eo_maj' => 'OとEの合字の大文字を挿入(訳注:主にフランス語で使用)',
53
-	'barre_euro' => '「€」記号を入れてください。',
54
-	'barre_gras' => '太字にする {{ボールド}}',
55
-	'barre_guillemets' => '\\"2重引用符\\"の間の場所',
56
-	'barre_guillemets_simples' => '’一重引用符’の間の場所',
57
-	'barre_intertitre' => '変える {{{subheading}}}',
58
-	'barre_italic' => '{イタリック} にする',
59
-	'barre_lien' => 'ハイパーリンクの差込 [リンク先->http://...]',
60
-	'barre_lien_input' => 'あなたのハイパーリンクの目標を入力してください (あなたはフォームのURLに
47
+    // B
48
+    'barre_a_accent_grave' => 'アクセント記号つきの大文字Aを挿入してください。',
49
+    'barre_aide' => 'ページレイアウトを充実させるために、「ショートカット」を使用してください。',
50
+    'barre_e_accent_aigu' => '鋭いアクセントで大文字Eを挿入してください',
51
+    'barre_eo' => 'OとEの合字の挿入(訳注:主にフランス語で使用)',
52
+    'barre_eo_maj' => 'OとEの合字の大文字を挿入(訳注:主にフランス語で使用)',
53
+    'barre_euro' => '「€」記号を入れてください。',
54
+    'barre_gras' => '太字にする {{ボールド}}',
55
+    'barre_guillemets' => '\\"2重引用符\\"の間の場所',
56
+    'barre_guillemets_simples' => '’一重引用符’の間の場所',
57
+    'barre_intertitre' => '変える {{{subheading}}}',
58
+    'barre_italic' => '{イタリック} にする',
59
+    'barre_lien' => 'ハイパーリンクの差込 [リンク先->http://...]',
60
+    'barre_lien_input' => 'あなたのハイパーリンクの目標を入力してください (あなたはフォームのURLに
61 61
 http://mysite.com、あるいは単純にこのサイトの記事番号を与えてもよいです)。',
62
-	'barre_note' => '変える [[Footnote]]',
63
-	'barre_paragraphe' => '段落を作成する',
64
-	'barre_quote' => '<quote>メッセージへ引用符</quote>',
65
-	'bouton_changer' => '修正する',
66
-	'bouton_chercher' => '検索する',
67
-	'bouton_choisir' => '選択する',
68
-	'bouton_deplacer' => '移動する',
69
-	'bouton_download' => 'ダウンロードする',
70
-	'bouton_enregistrer' => '保存する',
71
-	'bouton_radio_desactiver_messagerie_interne' => '内部のメッセージ交換を停止する',
72
-	'bouton_radio_envoi_annonces' => '編集告知を送信する',
73
-	'bouton_radio_non_envoi_annonces' => '編集告知を送信しない',
74
-	'bouton_radio_non_envoi_liste_nouveautes' => '最新ニュースリストを送信しない',
75
-	'bouton_recharger_page' => 'ページを再読み込む',
76
-	'bouton_telecharger' => 'アップロードする',
77
-	'bouton_upload' => 'アップロードする',
78
-	'bouton_valider' => '確認する',
62
+    'barre_note' => '変える [[Footnote]]',
63
+    'barre_paragraphe' => '段落を作成する',
64
+    'barre_quote' => '<quote>メッセージへ引用符</quote>',
65
+    'bouton_changer' => '修正する',
66
+    'bouton_chercher' => '検索する',
67
+    'bouton_choisir' => '選択する',
68
+    'bouton_deplacer' => '移動する',
69
+    'bouton_download' => 'ダウンロードする',
70
+    'bouton_enregistrer' => '保存する',
71
+    'bouton_radio_desactiver_messagerie_interne' => '内部のメッセージ交換を停止する',
72
+    'bouton_radio_envoi_annonces' => '編集告知を送信する',
73
+    'bouton_radio_non_envoi_annonces' => '編集告知を送信しない',
74
+    'bouton_radio_non_envoi_liste_nouveautes' => '最新ニュースリストを送信しない',
75
+    'bouton_recharger_page' => 'ページを再読み込む',
76
+    'bouton_telecharger' => 'アップロードする',
77
+    'bouton_upload' => 'アップロードする',
78
+    'bouton_valider' => '確認する',
79 79
 
80
-	// C
81
-	'cal_apresmidi' => '午後',
82
-	'cal_jour_entier' => '終日',
83
-	'cal_matin' => '午前',
84
-	'cal_par_jour' => '日めくりカレンダー',
85
-	'cal_par_mois' => '月めくりカレンダー',
86
-	'cal_par_semaine' => '週めくりカレンダー',
87
-	'choix_couleur_interface' => '色',
88
-	'choix_interface' => 'インターフェイスを選択する',
89
-	'colonne' => 'コラム',
90
-	'confirm_changer_statut' => '警戒!記事のステータスの変更をしてもらうように頼みました。続けますか。',
91
-	'correcte' => '正解',
80
+    // C
81
+    'cal_apresmidi' => '午後',
82
+    'cal_jour_entier' => '終日',
83
+    'cal_matin' => '午前',
84
+    'cal_par_jour' => '日めくりカレンダー',
85
+    'cal_par_mois' => '月めくりカレンダー',
86
+    'cal_par_semaine' => '週めくりカレンダー',
87
+    'choix_couleur_interface' => '色',
88
+    'choix_interface' => 'インターフェイスを選択する',
89
+    'colonne' => 'コラム',
90
+    'confirm_changer_statut' => '警戒!記事のステータスの変更をしてもらうように頼みました。続けますか。',
91
+    'correcte' => '正解',
92 92
 
93
-	// D
94
-	'date_aujourdhui' => '今日',
95
-	'date_avant_jc' => '紀元前',
96
-	'date_dans' => '@delai@後',
97
-	'date_de_mois_1' => '@nommois@@j@日',
98
-	'date_de_mois_10' => '@nommois@@j@日',
99
-	'date_de_mois_11' => '@nommois@@j@日',
100
-	'date_de_mois_12' => '@nommois@@j@日',
101
-	'date_de_mois_2' => '@nommois@@j@日',
102
-	'date_de_mois_3' => '@nommois@@j@日',
103
-	'date_de_mois_4' => '@nommois@@j@日',
104
-	'date_de_mois_5' => '@nommois@@j@日',
105
-	'date_de_mois_6' => '@nommois@@j@日',
106
-	'date_de_mois_7' => '@nommois@@j@日',
107
-	'date_de_mois_8' => '@nommois@@j@日',
108
-	'date_de_mois_9' => '@nommois@@j@日',
109
-	'date_demain' => '明日',
110
-	'date_fmt_heures_minutes' => '@h@時@m@分',
111
-	'date_fmt_heures_minutes_court' => '@h@時@m@分',
112
-	'date_fmt_jour' => '@nomjour@ @jour@',
113
-	'date_fmt_jour_heure' => '@jour@の@heure@',
114
-	'date_fmt_jour_heure_debut_fin' => '@jour@に、@heure_debut@より@heure_fin@まで',
115
-	'date_fmt_jour_heure_debut_fin_abbr' => '@dtstart@@jour@に、@heure_debut@@dtabbr@より@dtend@@heure_fin@@dtabbr@まで',
116
-	'date_fmt_jour_mois' => '@nommois@@jour@日',
117
-	'date_fmt_jour_mois_annee' => '@annee@年@nommois@@jour@日',
118
-	'date_fmt_mois_annee' => '@annee@年@nommois@',
119
-	'date_fmt_nomjour' => '@date@に@nomjour@日',
120
-	'date_fmt_nomjour_date' => '@date@に@nomjour@日',
121
-	'date_fmt_periode' => '@date_debut@より@date_fin@まで',
122
-	'date_fmt_periode_abbr' => '@dtart@@date_debut@@dtabbr@より @dtend@@date_fin@@dtabbr@まで',
123
-	'date_fmt_periode_from' => 'より',
124
-	'date_fmt_periode_to' => 'まで',
125
-	'date_fmt_saison_annee' => '@annee@年の@saison@',
126
-	'date_heures' => '時間',
127
-	'date_hier' => '昨日',
128
-	'date_il_y_a' => '@delai@前',
129
-	'date_jnum1' => '1',
130
-	'date_jnum10' => '10',
131
-	'date_jnum11' => '11',
132
-	'date_jnum12' => '12',
133
-	'date_jnum13' => '13',
134
-	'date_jnum14' => '14',
135
-	'date_jnum15' => '15',
136
-	'date_jnum16' => '16',
137
-	'date_jnum17' => '17',
138
-	'date_jnum18' => '18',
139
-	'date_jnum19' => '19',
140
-	'date_jnum2' => '2',
141
-	'date_jnum20' => '20',
142
-	'date_jnum21' => '21',
143
-	'date_jnum22' => '22',
144
-	'date_jnum23' => '23',
145
-	'date_jnum24' => '24',
146
-	'date_jnum25' => '25',
147
-	'date_jnum26' => '26',
148
-	'date_jnum27' => '27',
149
-	'date_jnum28' => '28',
150
-	'date_jnum29' => '29',
151
-	'date_jnum3' => '3',
152
-	'date_jnum30' => '30',
153
-	'date_jnum31' => '31',
154
-	'date_jnum4' => '4',
155
-	'date_jnum5' => '5',
156
-	'date_jnum6' => '6',
157
-	'date_jnum7' => '7',
158
-	'date_jnum8' => '8',
159
-	'date_jnum9' => '9',
160
-	'date_jour_1' => '日曜日',
161
-	'date_jour_1_abbr' => '日',
162
-	'date_jour_1_initiale' => '日',
163
-	'date_jour_2' => '月曜日',
164
-	'date_jour_2_abbr' => '月',
165
-	'date_jour_2_initiale' => '月',
166
-	'date_jour_3' => '火曜日',
167
-	'date_jour_3_abbr' => '火',
168
-	'date_jour_3_initiale' => '火',
169
-	'date_jour_4' => '水曜日',
170
-	'date_jour_4_abbr' => '水',
171
-	'date_jour_4_initiale' => '水',
172
-	'date_jour_5' => '木曜日',
173
-	'date_jour_5_abbr' => '木',
174
-	'date_jour_5_initiale' => '木',
175
-	'date_jour_6' => '金曜日',
176
-	'date_jour_6_abbr' => '金',
177
-	'date_jour_6_initiale' => '金',
178
-	'date_jour_7' => '土曜日',
179
-	'date_jour_7_abbr' => '土',
180
-	'date_jour_7_initiale' => '土',
181
-	'date_jours' => '日',
182
-	'date_minutes' => '分',
183
-	'date_mois' => 'ヶ月',
184
-	'date_mois_1' => '1月',
185
-	'date_mois_10' => '10月',
186
-	'date_mois_10_abbr' => '10月',
187
-	'date_mois_11' => '11月',
188
-	'date_mois_11_abbr' => '11月',
189
-	'date_mois_12' => '12月',
190
-	'date_mois_12_abbr' => '12月',
191
-	'date_mois_1_abbr' => '1月',
192
-	'date_mois_2' => '2月',
193
-	'date_mois_2_abbr' => '2月',
194
-	'date_mois_3' => '3月',
195
-	'date_mois_3_abbr' => '3月',
196
-	'date_mois_4' => '4月',
197
-	'date_mois_4_abbr' => '4月',
198
-	'date_mois_5' => '5月',
199
-	'date_mois_5_abbr' => '5月',
200
-	'date_mois_6' => '6月',
201
-	'date_mois_6_abbr' => '6月',
202
-	'date_mois_7' => '7月',
203
-	'date_mois_7_abbr' => '7月',
204
-	'date_mois_8' => '8月',
205
-	'date_mois_8_abbr' => '8月',
206
-	'date_mois_9' => '9月',
207
-	'date_mois_9_abbr' => '9月',
208
-	'date_saison_1' => '冬',
209
-	'date_saison_2' => '春',
210
-	'date_saison_3' => '夏',
211
-	'date_saison_4' => '秋',
212
-	'date_secondes' => '秒',
213
-	'date_semaines' => '週',
214
-	'date_un_mois' => '月',
215
-	'date_une_heure' => '時間',
216
-	'date_une_minute' => '分',
217
-	'date_une_seconde' => '秒',
218
-	'date_une_semaine' => '週間',
219
-	'dirs_commencer' => '本インストールを始める前に…',
220
-	'dirs_preliminaire' => 'まず: <b>アクセス権を設定する</b>',
221
-	'dirs_probleme_droits' => 'アクセス権エラー',
222
-	'dirs_repertoires_absents' => '<b>次のフォルダは見つかりませんでした: <ul>@bad_dirs@</ul></b><p>考えられる原因は小文字大文字の扱い方が間違っている。これらのフォルダの小文字大文字が上に表示されているものと一致しているかどうか確認してください。エラーを修正するために、FTPクライアントで、フォルダをリネームした上、出来ることになる。</p>',
223
-	'dirs_repertoires_suivants' => '<b>次のフォルダに書き込む許可がありません: <ul>@bad_dirs@</ul></b><p>エラーを修正するために、FTPクライアントで、これらのフォルダにアクセス権を修正してください。手順はインストールガイドに記述してあります。</p>',
224
-	'double_occurrence' => '二つの@balise@共起',
93
+    // D
94
+    'date_aujourdhui' => '今日',
95
+    'date_avant_jc' => '紀元前',
96
+    'date_dans' => '@delai@後',
97
+    'date_de_mois_1' => '@nommois@@j@日',
98
+    'date_de_mois_10' => '@nommois@@j@日',
99
+    'date_de_mois_11' => '@nommois@@j@日',
100
+    'date_de_mois_12' => '@nommois@@j@日',
101
+    'date_de_mois_2' => '@nommois@@j@日',
102
+    'date_de_mois_3' => '@nommois@@j@日',
103
+    'date_de_mois_4' => '@nommois@@j@日',
104
+    'date_de_mois_5' => '@nommois@@j@日',
105
+    'date_de_mois_6' => '@nommois@@j@日',
106
+    'date_de_mois_7' => '@nommois@@j@日',
107
+    'date_de_mois_8' => '@nommois@@j@日',
108
+    'date_de_mois_9' => '@nommois@@j@日',
109
+    'date_demain' => '明日',
110
+    'date_fmt_heures_minutes' => '@h@時@m@分',
111
+    'date_fmt_heures_minutes_court' => '@h@時@m@分',
112
+    'date_fmt_jour' => '@nomjour@ @jour@',
113
+    'date_fmt_jour_heure' => '@jour@の@heure@',
114
+    'date_fmt_jour_heure_debut_fin' => '@jour@に、@heure_debut@より@heure_fin@まで',
115
+    'date_fmt_jour_heure_debut_fin_abbr' => '@dtstart@@jour@に、@heure_debut@@dtabbr@より@dtend@@heure_fin@@dtabbr@まで',
116
+    'date_fmt_jour_mois' => '@nommois@@jour@日',
117
+    'date_fmt_jour_mois_annee' => '@annee@年@nommois@@jour@日',
118
+    'date_fmt_mois_annee' => '@annee@年@nommois@',
119
+    'date_fmt_nomjour' => '@date@に@nomjour@日',
120
+    'date_fmt_nomjour_date' => '@date@に@nomjour@日',
121
+    'date_fmt_periode' => '@date_debut@より@date_fin@まで',
122
+    'date_fmt_periode_abbr' => '@dtart@@date_debut@@dtabbr@より @dtend@@date_fin@@dtabbr@まで',
123
+    'date_fmt_periode_from' => 'より',
124
+    'date_fmt_periode_to' => 'まで',
125
+    'date_fmt_saison_annee' => '@annee@年の@saison@',
126
+    'date_heures' => '時間',
127
+    'date_hier' => '昨日',
128
+    'date_il_y_a' => '@delai@前',
129
+    'date_jnum1' => '1',
130
+    'date_jnum10' => '10',
131
+    'date_jnum11' => '11',
132
+    'date_jnum12' => '12',
133
+    'date_jnum13' => '13',
134
+    'date_jnum14' => '14',
135
+    'date_jnum15' => '15',
136
+    'date_jnum16' => '16',
137
+    'date_jnum17' => '17',
138
+    'date_jnum18' => '18',
139
+    'date_jnum19' => '19',
140
+    'date_jnum2' => '2',
141
+    'date_jnum20' => '20',
142
+    'date_jnum21' => '21',
143
+    'date_jnum22' => '22',
144
+    'date_jnum23' => '23',
145
+    'date_jnum24' => '24',
146
+    'date_jnum25' => '25',
147
+    'date_jnum26' => '26',
148
+    'date_jnum27' => '27',
149
+    'date_jnum28' => '28',
150
+    'date_jnum29' => '29',
151
+    'date_jnum3' => '3',
152
+    'date_jnum30' => '30',
153
+    'date_jnum31' => '31',
154
+    'date_jnum4' => '4',
155
+    'date_jnum5' => '5',
156
+    'date_jnum6' => '6',
157
+    'date_jnum7' => '7',
158
+    'date_jnum8' => '8',
159
+    'date_jnum9' => '9',
160
+    'date_jour_1' => '日曜日',
161
+    'date_jour_1_abbr' => '日',
162
+    'date_jour_1_initiale' => '日',
163
+    'date_jour_2' => '月曜日',
164
+    'date_jour_2_abbr' => '月',
165
+    'date_jour_2_initiale' => '月',
166
+    'date_jour_3' => '火曜日',
167
+    'date_jour_3_abbr' => '火',
168
+    'date_jour_3_initiale' => '火',
169
+    'date_jour_4' => '水曜日',
170
+    'date_jour_4_abbr' => '水',
171
+    'date_jour_4_initiale' => '水',
172
+    'date_jour_5' => '木曜日',
173
+    'date_jour_5_abbr' => '木',
174
+    'date_jour_5_initiale' => '木',
175
+    'date_jour_6' => '金曜日',
176
+    'date_jour_6_abbr' => '金',
177
+    'date_jour_6_initiale' => '金',
178
+    'date_jour_7' => '土曜日',
179
+    'date_jour_7_abbr' => '土',
180
+    'date_jour_7_initiale' => '土',
181
+    'date_jours' => '日',
182
+    'date_minutes' => '分',
183
+    'date_mois' => 'ヶ月',
184
+    'date_mois_1' => '1月',
185
+    'date_mois_10' => '10月',
186
+    'date_mois_10_abbr' => '10月',
187
+    'date_mois_11' => '11月',
188
+    'date_mois_11_abbr' => '11月',
189
+    'date_mois_12' => '12月',
190
+    'date_mois_12_abbr' => '12月',
191
+    'date_mois_1_abbr' => '1月',
192
+    'date_mois_2' => '2月',
193
+    'date_mois_2_abbr' => '2月',
194
+    'date_mois_3' => '3月',
195
+    'date_mois_3_abbr' => '3月',
196
+    'date_mois_4' => '4月',
197
+    'date_mois_4_abbr' => '4月',
198
+    'date_mois_5' => '5月',
199
+    'date_mois_5_abbr' => '5月',
200
+    'date_mois_6' => '6月',
201
+    'date_mois_6_abbr' => '6月',
202
+    'date_mois_7' => '7月',
203
+    'date_mois_7_abbr' => '7月',
204
+    'date_mois_8' => '8月',
205
+    'date_mois_8_abbr' => '8月',
206
+    'date_mois_9' => '9月',
207
+    'date_mois_9_abbr' => '9月',
208
+    'date_saison_1' => '冬',
209
+    'date_saison_2' => '春',
210
+    'date_saison_3' => '夏',
211
+    'date_saison_4' => '秋',
212
+    'date_secondes' => '秒',
213
+    'date_semaines' => '週',
214
+    'date_un_mois' => '月',
215
+    'date_une_heure' => '時間',
216
+    'date_une_minute' => '分',
217
+    'date_une_seconde' => '秒',
218
+    'date_une_semaine' => '週間',
219
+    'dirs_commencer' => '本インストールを始める前に…',
220
+    'dirs_preliminaire' => 'まず: <b>アクセス権を設定する</b>',
221
+    'dirs_probleme_droits' => 'アクセス権エラー',
222
+    'dirs_repertoires_absents' => '<b>次のフォルダは見つかりませんでした: <ul>@bad_dirs@</ul></b><p>考えられる原因は小文字大文字の扱い方が間違っている。これらのフォルダの小文字大文字が上に表示されているものと一致しているかどうか確認してください。エラーを修正するために、FTPクライアントで、フォルダをリネームした上、出来ることになる。</p>',
223
+    'dirs_repertoires_suivants' => '<b>次のフォルダに書き込む許可がありません: <ul>@bad_dirs@</ul></b><p>エラーを修正するために、FTPクライアントで、これらのフォルダにアクセス権を修正してください。手順はインストールガイドに記述してあります。</p>',
224
+    'double_occurrence' => '二つの@balise@共起',
225 225
 
226
-	// E
227
-	'en_cours' => '処理中',
228
-	'envoi_via_le_site' => 'サイトで送信する',
229
-	'erreur' => 'エラー',
230
-	'erreur_balise_non_fermee' => '最後のタグは閉じられていない。',
231
-	'erreur_technique_ajaxform' => '予期のないエラーが起きて、フォームは送信されていません。やり直してください。',
232
-	'erreur_technique_enregistrement_champs' => '技術的なエラーが起きて、フィルド@champs@が登録されません。',
233
-	'erreur_technique_enregistrement_impossible' => '技術的なエラーが起きて、登録が不可能です。',
234
-	'erreur_texte' => 'エラー',
235
-	'etape' => '階',
226
+    // E
227
+    'en_cours' => '処理中',
228
+    'envoi_via_le_site' => 'サイトで送信する',
229
+    'erreur' => 'エラー',
230
+    'erreur_balise_non_fermee' => '最後のタグは閉じられていない。',
231
+    'erreur_technique_ajaxform' => '予期のないエラーが起きて、フォームは送信されていません。やり直してください。',
232
+    'erreur_technique_enregistrement_champs' => '技術的なエラーが起きて、フィルド@champs@が登録されません。',
233
+    'erreur_technique_enregistrement_impossible' => '技術的なエラーが起きて、登録が不可能です。',
234
+    'erreur_texte' => 'エラー',
235
+    'etape' => '階',
236 236
 
237
-	// F
238
-	'fichier_introuvable' => 'ファイル@fichier@は見つからない。',
239
-	'form_auteur_confirmation' => 'メールアドレスを確認してください。',
240
-	'form_auteur_email_modifie' => 'メールアドレスは変更されました。',
241
-	'form_auteur_envoi_mail_confirmation' => '@email@に確認メールが送信されました。 このメールに記載されているウェブアドレスにアクセスしてから、登録されたメールアドレスを確認してください。',
242
-	'form_auteur_mail_confirmation' => 'こんにちは。メールアドレスを変更してもらうように依頼しました。 新しいメールアドレスを確認するには、下のウェブアドレスに接続する必要があります。 (さもないと御要求は無視になります。):@url@',
243
-	'form_deja_inscrit' => '既に申し込み済みです。',
244
-	'form_email_non_valide' => 'メールアドレスは有効ではありません。',
245
-	'form_forum_access_refuse' => '当サイトにアクセスはもう禁止です。',
246
-	'form_forum_bonjour' => '@nom@、こんにちは!',
247
-	'form_forum_confirmer_email' => 'メールアドレスを確認するには、このリンク@url_confirm@をご覧ください。',
248
-	'form_forum_email_deja_enregistre' => 'メールアドレスは登録済みで、いつものパスワードを使ってください。',
249
-	'form_forum_identifiant_mail' => '新規IDは、メールで送信されました。',
250
-	'form_forum_identifiants' => '個人ID',
251
-	'form_forum_indiquer_nom_email' => 'お名前とEメールアドレスを入力してください。 個人IDをメールですぐに送信します。',
252
-	'form_forum_login' => 'ログインID:',
253
-	'form_forum_message_auto' => '(自動送信メッセージです)',
254
-	'form_forum_pass' => 'パスワード:',
255
-	'form_forum_probleme_mail' => 'メールエラー:IDを送ることが出来ませんでした。',
256
-	'form_forum_voici1' => 'サイトの生活に協力するために、この個人IDを使ってください。"@nom_site_spip@" (@adresse_site@):',
257
-	'form_forum_voici2' => '当サイトに記事を提出するために、この個人IDを使ってください。 "@nom_site_spip@" (@adresse_login@):',
258
-	'form_indiquer_email' => 'メールアドレスを入力して下さい。',
259
-	'form_indiquer_nom' => 'お名前を入力して下さい。',
260
-	'form_indiquer_nom_site' => 'あなたのサイトの名前を入力して下さい。',
261
-	'form_pet_deja_enregistre' => 'このサイトは既に登録済みです。',
262
-	'form_pet_signature_pasprise' => 'あなたの署名は無視されました。',
263
-	'form_prop_confirmer_envoi' => '送信します。',
264
-	'form_prop_description' => '説明/コメント',
265
-	'form_prop_enregistre' => 'ご提案は登録されており、当サイトの管理者による検証した上で公開されます。',
266
-	'form_prop_envoyer' => 'メッセージを送る',
267
-	'form_prop_indiquer_email' => '有効なメールアドレスを入力して下さい。',
268
-	'form_prop_indiquer_nom_site' => 'サイトの名前を入力して下さい。',
269
-	'form_prop_indiquer_sujet' => '題名を入力して下さい。',
270
-	'form_prop_message_envoye' => 'メッセージは送られました。',
271
-	'form_prop_non_enregistre' => 'ご提案は登録されませんでした。',
272
-	'form_prop_sujet' => '題名',
273
-	'form_prop_url_site' => 'サイトのURL',
274
-	'format_date_incorrecte' => '日付か日付書式は正しくない。',
275
-	'format_heure_incorrecte' => '時間か時間書式は正しくない。',
276
-	'forum_non_inscrit' => '未登録かアドレスとパスワードが不合かどちらかです。',
277
-	'forum_par_auteur' => '@auteur@で',
278
-	'forum_titre_erreur' => 'エラー…',
237
+    // F
238
+    'fichier_introuvable' => 'ファイル@fichier@は見つからない。',
239
+    'form_auteur_confirmation' => 'メールアドレスを確認してください。',
240
+    'form_auteur_email_modifie' => 'メールアドレスは変更されました。',
241
+    'form_auteur_envoi_mail_confirmation' => '@email@に確認メールが送信されました。 このメールに記載されているウェブアドレスにアクセスしてから、登録されたメールアドレスを確認してください。',
242
+    'form_auteur_mail_confirmation' => 'こんにちは。メールアドレスを変更してもらうように依頼しました。 新しいメールアドレスを確認するには、下のウェブアドレスに接続する必要があります。 (さもないと御要求は無視になります。):@url@',
243
+    'form_deja_inscrit' => '既に申し込み済みです。',
244
+    'form_email_non_valide' => 'メールアドレスは有効ではありません。',
245
+    'form_forum_access_refuse' => '当サイトにアクセスはもう禁止です。',
246
+    'form_forum_bonjour' => '@nom@、こんにちは!',
247
+    'form_forum_confirmer_email' => 'メールアドレスを確認するには、このリンク@url_confirm@をご覧ください。',
248
+    'form_forum_email_deja_enregistre' => 'メールアドレスは登録済みで、いつものパスワードを使ってください。',
249
+    'form_forum_identifiant_mail' => '新規IDは、メールで送信されました。',
250
+    'form_forum_identifiants' => '個人ID',
251
+    'form_forum_indiquer_nom_email' => 'お名前とEメールアドレスを入力してください。 個人IDをメールですぐに送信します。',
252
+    'form_forum_login' => 'ログインID:',
253
+    'form_forum_message_auto' => '(自動送信メッセージです)',
254
+    'form_forum_pass' => 'パスワード:',
255
+    'form_forum_probleme_mail' => 'メールエラー:IDを送ることが出来ませんでした。',
256
+    'form_forum_voici1' => 'サイトの生活に協力するために、この個人IDを使ってください。"@nom_site_spip@" (@adresse_site@):',
257
+    'form_forum_voici2' => '当サイトに記事を提出するために、この個人IDを使ってください。 "@nom_site_spip@" (@adresse_login@):',
258
+    'form_indiquer_email' => 'メールアドレスを入力して下さい。',
259
+    'form_indiquer_nom' => 'お名前を入力して下さい。',
260
+    'form_indiquer_nom_site' => 'あなたのサイトの名前を入力して下さい。',
261
+    'form_pet_deja_enregistre' => 'このサイトは既に登録済みです。',
262
+    'form_pet_signature_pasprise' => 'あなたの署名は無視されました。',
263
+    'form_prop_confirmer_envoi' => '送信します。',
264
+    'form_prop_description' => '説明/コメント',
265
+    'form_prop_enregistre' => 'ご提案は登録されており、当サイトの管理者による検証した上で公開されます。',
266
+    'form_prop_envoyer' => 'メッセージを送る',
267
+    'form_prop_indiquer_email' => '有効なメールアドレスを入力して下さい。',
268
+    'form_prop_indiquer_nom_site' => 'サイトの名前を入力して下さい。',
269
+    'form_prop_indiquer_sujet' => '題名を入力して下さい。',
270
+    'form_prop_message_envoye' => 'メッセージは送られました。',
271
+    'form_prop_non_enregistre' => 'ご提案は登録されませんでした。',
272
+    'form_prop_sujet' => '題名',
273
+    'form_prop_url_site' => 'サイトのURL',
274
+    'format_date_incorrecte' => '日付か日付書式は正しくない。',
275
+    'format_heure_incorrecte' => '時間か時間書式は正しくない。',
276
+    'forum_non_inscrit' => '未登録かアドレスとパスワードが不合かどちらかです。',
277
+    'forum_par_auteur' => '@auteur@で',
278
+    'forum_titre_erreur' => 'エラー…',
279 279
 
280
-	// I
281
-	'ical_texte_rss_articles' => 'サイト内の記事の「バックエンド」が次のアドレスにあります:',
282
-	'ical_texte_rss_articles2' => 'サイトの各セクションの記事のバックエンドファイルを取得することが出来ます:',
283
-	'ical_texte_rss_breves' => 'さらに、サイト内のニュースを含んでいるファイルがあります。セクション番号を選択することによって、そのセクションだけのニュースを取得できます。',
284
-	'icone_a_suivre' => 'つづき',
285
-	'icone_admin_site' => 'サイトの管理',
286
-	'icone_agenda' => 'カレンダー',
287
-	'icone_aide_ligne' => 'ヘルプ',
288
-	'icone_articles' => '記事',
289
-	'icone_auteurs' => '著者',
290
-	'icone_brouteur' => '素早いブラウジング',
291
-	'icone_configuration_site' => '環境設定',
292
-	'icone_configurer_site' => 'サイトの環境設定',
293
-	'icone_creer_nouvel_auteur' => '新規著者を作成する',
294
-	'icone_creer_rubrique' => '新規セクションを作成する',
295
-	'icone_creer_sous_rubrique' => 'サブセクションを作成する',
296
-	'icone_deconnecter' => 'ログアウト',
297
-	'icone_discussions' => '話題',
298
-	'icone_doc_rubrique' => 'セクション内のファイル',
299
-	'icone_ecrire_article' => '新規記事を書く',
300
-	'icone_edition_site' => '編集',
301
-	'icone_gestion_langues' => '言語管理',
302
-	'icone_informations_personnelles' => '個人情報',
303
-	'icone_interface_complet' => '完全なインターフェース',
304
-	'icone_interface_simple' => 'シンプルなインターフェース',
305
-	'icone_maintenance_site' => 'サイトの整備',
306
-	'icone_messagerie_personnelle' => '個人メッセージング',
307
-	'icone_repartition_debut' => '初めからの配分を表示する',
308
-	'icone_rubriques' => 'セクション',
309
-	'icone_sauver_site' => 'サイトのバックアップ',
310
-	'icone_site_entier' => 'サイトの全体',
311
-	'icone_sites_references' => '参照されたサイト',
312
-	'icone_statistiques' => 'サイトの統計',
313
-	'icone_suivi_activite' => 'サイトへの協力',
314
-	'icone_suivi_actualite' => 'サイトの進化',
315
-	'icone_suivi_pettions' => '請願書の管理',
316
-	'icone_suivi_revisions' => '記事修正の進化',
317
-	'icone_supprimer_document' => 'このドキュメントを削除',
318
-	'icone_supprimer_image' => 'この画像を削除する',
319
-	'icone_tous_articles' => '私のすべての記事',
320
-	'icone_tous_auteur' => 'すべての著者',
321
-	'icone_tous_visiteur' => 'すべての訪問者',
322
-	'icone_visiter_site' => '公開サイトを訪れる',
323
-	'icone_voir_en_ligne' => 'オンラインで見る',
324
-	'img_indisponible' => 'イメージは見つからない',
325
-	'impossible' => '不可能',
326
-	'info_a_suivre' => 'つづき',
327
-	'info_acces_interdit' => 'アクセス禁止',
328
-	'info_acces_refuse' => 'アクセスが拒否されました。',
329
-	'info_action' => 'アクション:@action@',
330
-	'info_administrer_rubriques' => 'このセクションとサブセクションを管理することができます。',
331
-	'info_adresse_non_indiquee' => 'テストをするためのアドレスを指定しませんでした!',
332
-	'info_aide' => 'ヘルプ:',
333
-	'info_ajouter_mot' => 'このキーワードを追加する',
334
-	'info_annonce' => '告知',
335
-	'info_annonces_generales' => '一般告知:',
336
-	'info_article_propose' => '提出済みの記事',
337
-	'info_article_publie' => '公開された記事',
338
-	'info_article_redaction' => '編集中の記事',
339
-	'info_article_refuse' => '拒否された記事',
340
-	'info_article_supprime' => '削除された記事',
341
-	'info_articles' => '記事',
342
-	'info_articles_a_valider' => '確認すべきの記事',
343
-	'info_articles_nb' => '記事@nb@件',
344
-	'info_articles_proposes' => '提出済みの記事',
345
-	'info_articles_un' => '記事1件',
346
-	'info_auteurs_nombre' => '著者:',
347
-	'info_authentification_ftp' => 'FTPによる認証',
348
-	'info_breves_2' => 'ニュース',
349
-	'info_breves_nb' => 'ニュース@nb@件',
350
-	'info_breves_un' => 'ニュース 1 件',
351
-	'info_connexion_refusee' => '接続が拒否されました。',
352
-	'info_contact_developpeur' => '開発者と連絡して下さい。',
353
-	'info_contenance' => '当サイトの内容:',
354
-	'info_contribution' => '掲示板の投稿',
355
-	'info_copyright' => '@spip@は、@lien_gpl@で配布されるフリーソフトです。',
356
-	'info_copyright_doc' => '詳細情報は<a href="@spipnet@">@spipnet_affiche@</a>をご覧ください。',
357
-	'info_copyright_gpl' => 'GPLライセンスのもとで',
358
-	'info_cours_edition' => '編集中の記事', # MODIF
359
-	'info_creer_repertoire' => 'ファイルかフォルダかかを作成してください:',
360
-	'info_creer_repertoire_2' => 'サブフォルダー<b>@repertoire@</b>内、そして',
361
-	'info_creer_vignette' => 'サムネイルの自動制作',
362
-	'info_creerdansrubrique_non_autorise' => 'このセクションでコンテンツを作成するために、アクセス権が足りません。',
363
-	'info_deplier' => '表示する',
364
-	'info_descriptif_nombre' => '記述:',
365
-	'info_description' => '記述:',
366
-	'info_description_2' => '記述:',
367
-	'info_dimension' => 'サイズ:',
368
-	'info_documents_nb' => 'ファイル@nb@件',
369
-	'info_documents_un' => 'ファイル 1 件',
370
-	'info_ecire_message_prive' => 'プライベートメッセージを書く',
371
-	'info_email_invalide' => 'メールアドレスは無効です。',
372
-	'info_en_cours_validation' => '確認すべきの私の記事',
373
-	'info_en_ligne' => 'オンライン中:',
374
-	'info_envoyer_message_prive' => 'この著者にプライベートメッセージを送る',
375
-	'info_erreur_requete' => 'クエリのエラー:',
376
-	'info_erreur_squelette2' => 'テンプレート<b>@fichier@</b> が見つからない',
377
-	'info_erreur_systeme' => 'システムエラー(エラー番号:@errsys@)',
378
-	'info_erreur_systeme2' => 'ハードドライブがいっぱいになったか、データベースが破損している可能性があります。<br/>
280
+    // I
281
+    'ical_texte_rss_articles' => 'サイト内の記事の「バックエンド」が次のアドレスにあります:',
282
+    'ical_texte_rss_articles2' => 'サイトの各セクションの記事のバックエンドファイルを取得することが出来ます:',
283
+    'ical_texte_rss_breves' => 'さらに、サイト内のニュースを含んでいるファイルがあります。セクション番号を選択することによって、そのセクションだけのニュースを取得できます。',
284
+    'icone_a_suivre' => 'つづき',
285
+    'icone_admin_site' => 'サイトの管理',
286
+    'icone_agenda' => 'カレンダー',
287
+    'icone_aide_ligne' => 'ヘルプ',
288
+    'icone_articles' => '記事',
289
+    'icone_auteurs' => '著者',
290
+    'icone_brouteur' => '素早いブラウジング',
291
+    'icone_configuration_site' => '環境設定',
292
+    'icone_configurer_site' => 'サイトの環境設定',
293
+    'icone_creer_nouvel_auteur' => '新規著者を作成する',
294
+    'icone_creer_rubrique' => '新規セクションを作成する',
295
+    'icone_creer_sous_rubrique' => 'サブセクションを作成する',
296
+    'icone_deconnecter' => 'ログアウト',
297
+    'icone_discussions' => '話題',
298
+    'icone_doc_rubrique' => 'セクション内のファイル',
299
+    'icone_ecrire_article' => '新規記事を書く',
300
+    'icone_edition_site' => '編集',
301
+    'icone_gestion_langues' => '言語管理',
302
+    'icone_informations_personnelles' => '個人情報',
303
+    'icone_interface_complet' => '完全なインターフェース',
304
+    'icone_interface_simple' => 'シンプルなインターフェース',
305
+    'icone_maintenance_site' => 'サイトの整備',
306
+    'icone_messagerie_personnelle' => '個人メッセージング',
307
+    'icone_repartition_debut' => '初めからの配分を表示する',
308
+    'icone_rubriques' => 'セクション',
309
+    'icone_sauver_site' => 'サイトのバックアップ',
310
+    'icone_site_entier' => 'サイトの全体',
311
+    'icone_sites_references' => '参照されたサイト',
312
+    'icone_statistiques' => 'サイトの統計',
313
+    'icone_suivi_activite' => 'サイトへの協力',
314
+    'icone_suivi_actualite' => 'サイトの進化',
315
+    'icone_suivi_pettions' => '請願書の管理',
316
+    'icone_suivi_revisions' => '記事修正の進化',
317
+    'icone_supprimer_document' => 'このドキュメントを削除',
318
+    'icone_supprimer_image' => 'この画像を削除する',
319
+    'icone_tous_articles' => '私のすべての記事',
320
+    'icone_tous_auteur' => 'すべての著者',
321
+    'icone_tous_visiteur' => 'すべての訪問者',
322
+    'icone_visiter_site' => '公開サイトを訪れる',
323
+    'icone_voir_en_ligne' => 'オンラインで見る',
324
+    'img_indisponible' => 'イメージは見つからない',
325
+    'impossible' => '不可能',
326
+    'info_a_suivre' => 'つづき',
327
+    'info_acces_interdit' => 'アクセス禁止',
328
+    'info_acces_refuse' => 'アクセスが拒否されました。',
329
+    'info_action' => 'アクション:@action@',
330
+    'info_administrer_rubriques' => 'このセクションとサブセクションを管理することができます。',
331
+    'info_adresse_non_indiquee' => 'テストをするためのアドレスを指定しませんでした!',
332
+    'info_aide' => 'ヘルプ:',
333
+    'info_ajouter_mot' => 'このキーワードを追加する',
334
+    'info_annonce' => '告知',
335
+    'info_annonces_generales' => '一般告知:',
336
+    'info_article_propose' => '提出済みの記事',
337
+    'info_article_publie' => '公開された記事',
338
+    'info_article_redaction' => '編集中の記事',
339
+    'info_article_refuse' => '拒否された記事',
340
+    'info_article_supprime' => '削除された記事',
341
+    'info_articles' => '記事',
342
+    'info_articles_a_valider' => '確認すべきの記事',
343
+    'info_articles_nb' => '記事@nb@件',
344
+    'info_articles_proposes' => '提出済みの記事',
345
+    'info_articles_un' => '記事1件',
346
+    'info_auteurs_nombre' => '著者:',
347
+    'info_authentification_ftp' => 'FTPによる認証',
348
+    'info_breves_2' => 'ニュース',
349
+    'info_breves_nb' => 'ニュース@nb@件',
350
+    'info_breves_un' => 'ニュース 1 件',
351
+    'info_connexion_refusee' => '接続が拒否されました。',
352
+    'info_contact_developpeur' => '開発者と連絡して下さい。',
353
+    'info_contenance' => '当サイトの内容:',
354
+    'info_contribution' => '掲示板の投稿',
355
+    'info_copyright' => '@spip@は、@lien_gpl@で配布されるフリーソフトです。',
356
+    'info_copyright_doc' => '詳細情報は<a href="@spipnet@">@spipnet_affiche@</a>をご覧ください。',
357
+    'info_copyright_gpl' => 'GPLライセンスのもとで',
358
+    'info_cours_edition' => '編集中の記事', # MODIF
359
+    'info_creer_repertoire' => 'ファイルかフォルダかかを作成してください:',
360
+    'info_creer_repertoire_2' => 'サブフォルダー<b>@repertoire@</b>内、そして',
361
+    'info_creer_vignette' => 'サムネイルの自動制作',
362
+    'info_creerdansrubrique_non_autorise' => 'このセクションでコンテンツを作成するために、アクセス権が足りません。',
363
+    'info_deplier' => '表示する',
364
+    'info_descriptif_nombre' => '記述:',
365
+    'info_description' => '記述:',
366
+    'info_description_2' => '記述:',
367
+    'info_dimension' => 'サイズ:',
368
+    'info_documents_nb' => 'ファイル@nb@件',
369
+    'info_documents_un' => 'ファイル 1 件',
370
+    'info_ecire_message_prive' => 'プライベートメッセージを書く',
371
+    'info_email_invalide' => 'メールアドレスは無効です。',
372
+    'info_en_cours_validation' => '確認すべきの私の記事',
373
+    'info_en_ligne' => 'オンライン中:',
374
+    'info_envoyer_message_prive' => 'この著者にプライベートメッセージを送る',
375
+    'info_erreur_requete' => 'クエリのエラー:',
376
+    'info_erreur_squelette2' => 'テンプレート<b>@fichier@</b> が見つからない',
377
+    'info_erreur_systeme' => 'システムエラー(エラー番号:@errsys@)',
378
+    'info_erreur_systeme2' => 'ハードドライブがいっぱいになったか、データベースが破損している可能性があります。<br/>
379 379
 <span style="color:red;"><a href="@script@">データベースを修理する</a>か、プロバイダーに問い合わせてください。</span>',
380
-	'info_fini' => '作業済み!',
381
-	'info_format_image' => 'サムネイルの作成に使用できる画像フォーマット:@gd_formats@。',
382
-	'info_format_non_defini' => '未定義のフォーマット',
383
-	'info_grand_ecran' => '大きく表示する',
384
-	'info_image_aide' => 'ヘルプ',
385
-	'info_image_process_titre' => 'サムネイルの作り方',
386
-	'info_impossible_lire_page' => '<b>エラー!</b>プロキシ経由で<code><html>@test_proxy@</html></code>ページを読むことが出来ませんでした。',
387
-	'info_installation_systeme_publication' => '出版システムインストール…',
388
-	'info_installer_documents' => '@upload@フォルダーにあるすべてのファイルを自動的にインストール出来ます。',
389
-	'info_installer_ftp' => '管理者なら@upload@フォルダーに(FTPで)ファイルを置いておけば、後でここから直接そのファイルを選択できるようになります。',
390
-	'info_installer_images' => 'JPEG、GIF、PNGフォーマットの画像をインストール出来ます。',
391
-	'info_installer_images_dossier' => '@upload@フォルダにインストールしたファイルをここで選択することが出来ます。',
392
-	'info_interface_complete' => '完全なインターフェース',
393
-	'info_interface_simple' => 'シンプルなインターフェース',
394
-	'info_joindre_document_article' => 'この記事に添付が出来るファイルのタイプ:',
395
-	'info_joindre_document_rubrique' => 'このセクションに添付が出来るファイルのタイプ:',
396
-	'info_joindre_documents_article' => 'この記事に添付が出来るファイルのタイプ:',
397
-	'info_l_article' => 'その記事',
398
-	'info_la_breve' => 'そのニュース',
399
-	'info_la_rubrique' => 'そのセクション',
400
-	'info_langue_principale' => 'サイトの主な言語',
401
-	'info_largeur_vignette' => '@largeur_vignette@ × @hauteur_vignette@ ピクセル',
402
-	'info_les_auteurs_1' => '@les_auteurs@で',
403
-	'info_logo_format_interdit' => '@formats@フォーマットのロゴのみ許可します。',
404
-	'info_logo_max_poids' => 'ロゴは、@maxi@より少ないべきです(このファイルは@actuel@)。',
405
-	'info_mail_fournisseur' => '[email protected]',
406
-	'info_message_2' => 'メッセージ',
407
-	'info_message_supprime' => 'メッセージは削除された',
408
-	'info_messages_nb' => 'メッセージ@nb@件',
409
-	'info_messages_un' => 'メッセージ1件',
410
-	'info_mise_en_ligne' => '公開された日付:',
411
-	'info_modification_parametres_securite' => 'セキュリティ設定の変更する',
412
-	'info_mois_courant' => '今月の間:',
413
-	'info_mot_cle_ajoute' => '次のキーワードが追加された',
414
-	'info_multi_herit' => 'デフォルト言語',
415
-	'info_multi_langues_soulignees' => '<u>下線が引かれている言語は</u> インターフェースが翻訳されています。その言語を選んだら、公開のサイトの多くの要素(日付、形式など)は自動的に翻訳されます。下線が引かれていない言語は、サイトのメイン言語で現れます。',
416
-	'info_multilinguisme' => '多言語',
417
-	'info_nom_non_utilisateurs_connectes' => 'お名前は接続しているユーザーのリストに現れない。',
418
-	'info_nom_utilisateurs_connectes' => 'お名前は接続しているユーザーのリストに現れる。',
419
-	'info_nombre_en_ligne' => '今オンライン:',
420
-	'info_non_resultat' => '「@cherche_mot@」に関する結果はありません。',
421
-	'info_non_utilisation_messagerie' => 'サイトの内部のメッセージ交換を使用していない。',
422
-	'info_nouveau_message' => 'メッセージが1通届いています',
423
-	'info_nouveaux_messages' => 'メッセージが@total_messages@通届いています。',
424
-	'info_numero_abbreviation' => '#',
425
-	'info_obligatoire' => 'この情報は必須です。',
426
-	'info_pense_bete' => 'メモ',
427
-	'info_petit_ecran' => '小さく表示',
428
-	'info_petition_close' => '請願終了',
429
-	'info_pixels' => 'ピクセル',
430
-	'info_plusieurs_mots_trouves' => '「@cherche_mot@」についていくつかのキーワードが見つかりました:',
431
-	'info_portfolio_automatique' => '自動写真集:',
432
-	'info_premier_resultat' => '[@total@件の合計より、結果の、最初の@debut_limit@件]',
433
-	'info_premier_resultat_sur' => '[@debut_limit@ 最初の結果、トータル @total@]',
434
-	'info_propose_1' => '[@nom_site_spip@]提出されました: @titre@',
435
-	'info_propose_2' => '提出された記事',
436
-	'info_propose_3' => '記事「@titre@」は公開のために提出されました。',
437
-	'info_propose_4' => '記事をよく調べて、意見を出してください。',
438
-	'info_propose_5' => '次のURLで、記事の付いた掲示板に移ります:',
439
-	'info_publie_01' => '@connect_nom@は、「@titre@」を確認しました。',
440
-	'info_publie_1' => '公開された[@nom_site_spip@]:「@titre@」です。',
441
-	'info_publie_2' => '公開された記事',
442
-	'info_rechercher' => 'サイト内検索',
443
-	'info_rechercher_02' => '検索:',
444
-	'info_remplacer_vignette' => 'デフォルトサムネイルをカスタムロゴに置き換える:',
445
-	'info_rubriques_nb' => 'セクション@nb@つ',
446
-	'info_rubriques_un' => 'セクション 1 つ',
447
-	'info_sans_titre_2' => '名称未設定',
448
-	'info_selectionner_fichier' => '@upload@フォルダのファイルを選択することが出来ます。',
449
-	'info_selectionner_fichier_2' => 'ファイルを選択する:',
450
-	'info_sites_nb' => 'サイト@nb@件',
451
-	'info_sites_un' => 'サイト1件',
452
-	'info_supprimer_vignette' => 'サムネイルを削除する',
453
-	'info_symbole_bleu' => '<b>青色</b>は、<b>メモ</b>、つまり個人的なメッセージを表します:',
454
-	'info_symbole_jaune' => '<b>黄色</b>は、<b>全著者向きの告知</b>を表します。つまり著者は皆読み、それに管理者は編集も出来ます。',
455
-	'info_symbole_vert' => '<b>緑色</b>は、サイトの<b>その他のユーザー</b>と交換されるメッセージを表します。',
456
-	'info_telecharger_nouveau_logo' => '新規ロゴをアップロードする:',
457
-	'info_telecharger_ordinateur' => '当コンピュータよりアップロードする:',
458
-	'info_tous_resultats_enregistres' => '[すべての結果は登録されます。]',
459
-	'info_tout_afficher' => 'すべてを表示する',
460
-	'info_travaux_texte' => 'このサイトは準備中なので、後ほど来てください。',
461
-	'info_travaux_titre' => '開発中',
462
-	'info_trop_resultat' => '「@cherche_mot@」に関する結果が多すぎて、 検索を改善して下さい。',
463
-	'info_utilisation_messagerie_interne' => '内部メッセージングを使っています。',
464
-	'info_valider_lien' => 'リンクを確認する',
465
-	'info_verifier_image' => '、画像が正しく転送されたことを確認して下さい。',
466
-	'info_vignette_defaut' => 'デフォルトサムネイル',
467
-	'info_vignette_personnalisee' => 'カスタマイズサムネイル',
468
-	'info_visite' => '訪問:',
469
-	'info_vos_rendez_vous' => '今後の約束',
470
-	'infos_vos_pense_bete' => 'メモ',
380
+    'info_fini' => '作業済み!',
381
+    'info_format_image' => 'サムネイルの作成に使用できる画像フォーマット:@gd_formats@。',
382
+    'info_format_non_defini' => '未定義のフォーマット',
383
+    'info_grand_ecran' => '大きく表示する',
384
+    'info_image_aide' => 'ヘルプ',
385
+    'info_image_process_titre' => 'サムネイルの作り方',
386
+    'info_impossible_lire_page' => '<b>エラー!</b>プロキシ経由で<code><html>@test_proxy@</html></code>ページを読むことが出来ませんでした。',
387
+    'info_installation_systeme_publication' => '出版システムインストール…',
388
+    'info_installer_documents' => '@upload@フォルダーにあるすべてのファイルを自動的にインストール出来ます。',
389
+    'info_installer_ftp' => '管理者なら@upload@フォルダーに(FTPで)ファイルを置いておけば、後でここから直接そのファイルを選択できるようになります。',
390
+    'info_installer_images' => 'JPEG、GIF、PNGフォーマットの画像をインストール出来ます。',
391
+    'info_installer_images_dossier' => '@upload@フォルダにインストールしたファイルをここで選択することが出来ます。',
392
+    'info_interface_complete' => '完全なインターフェース',
393
+    'info_interface_simple' => 'シンプルなインターフェース',
394
+    'info_joindre_document_article' => 'この記事に添付が出来るファイルのタイプ:',
395
+    'info_joindre_document_rubrique' => 'このセクションに添付が出来るファイルのタイプ:',
396
+    'info_joindre_documents_article' => 'この記事に添付が出来るファイルのタイプ:',
397
+    'info_l_article' => 'その記事',
398
+    'info_la_breve' => 'そのニュース',
399
+    'info_la_rubrique' => 'そのセクション',
400
+    'info_langue_principale' => 'サイトの主な言語',
401
+    'info_largeur_vignette' => '@largeur_vignette@ × @hauteur_vignette@ ピクセル',
402
+    'info_les_auteurs_1' => '@les_auteurs@で',
403
+    'info_logo_format_interdit' => '@formats@フォーマットのロゴのみ許可します。',
404
+    'info_logo_max_poids' => 'ロゴは、@maxi@より少ないべきです(このファイルは@actuel@)。',
405
+    'info_mail_fournisseur' => '[email protected]',
406
+    'info_message_2' => 'メッセージ',
407
+    'info_message_supprime' => 'メッセージは削除された',
408
+    'info_messages_nb' => 'メッセージ@nb@件',
409
+    'info_messages_un' => 'メッセージ1件',
410
+    'info_mise_en_ligne' => '公開された日付:',
411
+    'info_modification_parametres_securite' => 'セキュリティ設定の変更する',
412
+    'info_mois_courant' => '今月の間:',
413
+    'info_mot_cle_ajoute' => '次のキーワードが追加された',
414
+    'info_multi_herit' => 'デフォルト言語',
415
+    'info_multi_langues_soulignees' => '<u>下線が引かれている言語は</u> インターフェースが翻訳されています。その言語を選んだら、公開のサイトの多くの要素(日付、形式など)は自動的に翻訳されます。下線が引かれていない言語は、サイトのメイン言語で現れます。',
416
+    'info_multilinguisme' => '多言語',
417
+    'info_nom_non_utilisateurs_connectes' => 'お名前は接続しているユーザーのリストに現れない。',
418
+    'info_nom_utilisateurs_connectes' => 'お名前は接続しているユーザーのリストに現れる。',
419
+    'info_nombre_en_ligne' => '今オンライン:',
420
+    'info_non_resultat' => '「@cherche_mot@」に関する結果はありません。',
421
+    'info_non_utilisation_messagerie' => 'サイトの内部のメッセージ交換を使用していない。',
422
+    'info_nouveau_message' => 'メッセージが1通届いています',
423
+    'info_nouveaux_messages' => 'メッセージが@total_messages@通届いています。',
424
+    'info_numero_abbreviation' => '#',
425
+    'info_obligatoire' => 'この情報は必須です。',
426
+    'info_pense_bete' => 'メモ',
427
+    'info_petit_ecran' => '小さく表示',
428
+    'info_petition_close' => '請願終了',
429
+    'info_pixels' => 'ピクセル',
430
+    'info_plusieurs_mots_trouves' => '「@cherche_mot@」についていくつかのキーワードが見つかりました:',
431
+    'info_portfolio_automatique' => '自動写真集:',
432
+    'info_premier_resultat' => '[@total@件の合計より、結果の、最初の@debut_limit@件]',
433
+    'info_premier_resultat_sur' => '[@debut_limit@ 最初の結果、トータル @total@]',
434
+    'info_propose_1' => '[@nom_site_spip@]提出されました: @titre@',
435
+    'info_propose_2' => '提出された記事',
436
+    'info_propose_3' => '記事「@titre@」は公開のために提出されました。',
437
+    'info_propose_4' => '記事をよく調べて、意見を出してください。',
438
+    'info_propose_5' => '次のURLで、記事の付いた掲示板に移ります:',
439
+    'info_publie_01' => '@connect_nom@は、「@titre@」を確認しました。',
440
+    'info_publie_1' => '公開された[@nom_site_spip@]:「@titre@」です。',
441
+    'info_publie_2' => '公開された記事',
442
+    'info_rechercher' => 'サイト内検索',
443
+    'info_rechercher_02' => '検索:',
444
+    'info_remplacer_vignette' => 'デフォルトサムネイルをカスタムロゴに置き換える:',
445
+    'info_rubriques_nb' => 'セクション@nb@つ',
446
+    'info_rubriques_un' => 'セクション 1 つ',
447
+    'info_sans_titre_2' => '名称未設定',
448
+    'info_selectionner_fichier' => '@upload@フォルダのファイルを選択することが出来ます。',
449
+    'info_selectionner_fichier_2' => 'ファイルを選択する:',
450
+    'info_sites_nb' => 'サイト@nb@件',
451
+    'info_sites_un' => 'サイト1件',
452
+    'info_supprimer_vignette' => 'サムネイルを削除する',
453
+    'info_symbole_bleu' => '<b>青色</b>は、<b>メモ</b>、つまり個人的なメッセージを表します:',
454
+    'info_symbole_jaune' => '<b>黄色</b>は、<b>全著者向きの告知</b>を表します。つまり著者は皆読み、それに管理者は編集も出来ます。',
455
+    'info_symbole_vert' => '<b>緑色</b>は、サイトの<b>その他のユーザー</b>と交換されるメッセージを表します。',
456
+    'info_telecharger_nouveau_logo' => '新規ロゴをアップロードする:',
457
+    'info_telecharger_ordinateur' => '当コンピュータよりアップロードする:',
458
+    'info_tous_resultats_enregistres' => '[すべての結果は登録されます。]',
459
+    'info_tout_afficher' => 'すべてを表示する',
460
+    'info_travaux_texte' => 'このサイトは準備中なので、後ほど来てください。',
461
+    'info_travaux_titre' => '開発中',
462
+    'info_trop_resultat' => '「@cherche_mot@」に関する結果が多すぎて、 検索を改善して下さい。',
463
+    'info_utilisation_messagerie_interne' => '内部メッセージングを使っています。',
464
+    'info_valider_lien' => 'リンクを確認する',
465
+    'info_verifier_image' => '、画像が正しく転送されたことを確認して下さい。',
466
+    'info_vignette_defaut' => 'デフォルトサムネイル',
467
+    'info_vignette_personnalisee' => 'カスタマイズサムネイル',
468
+    'info_visite' => '訪問:',
469
+    'info_vos_rendez_vous' => '今後の約束',
470
+    'infos_vos_pense_bete' => 'メモ',
471 471
 
472
-	// L
473
-	'label_ajout_id_rapide' => 'クイック追加',
474
-	'label_poids_fichier' => 'サイズ',
475
-	'lien_afficher_icones_seuls' => 'アイコンのみ表示する',
476
-	'lien_afficher_texte_icones' => 'アイコンとテキスト表示する',
477
-	'lien_afficher_texte_seul' => 'テキストのみ表示する',
478
-	'lien_liberer' => 'リリーズする',
479
-	'lien_liberer_tous' => '全てリリーズする',
480
-	'lien_nouvea_pense_bete' => '新規メモ',
481
-	'lien_nouveau_message' => '新規メッセージ',
482
-	'lien_nouvelle_annonce' => '新規アナウンス',
483
-	'lien_petitions' => '請願書',
484
-	'lien_popularite' => '人気度:@popularite@%',
485
-	'lien_racine_site' => 'サイトのルート',
486
-	'lien_reessayer' => 'やり直す',
487
-	'lien_repondre_message' => 'このメッセージに返信する',
488
-	'lien_supprimer' => '削除する',
489
-	'lien_tout_afficher' => 'すべて表示',
490
-	'lien_visite_site' => 'このサイトを訪問する',
491
-	'lien_visites' => '@visites@訪問',
492
-	'lien_voir_auteur' => 'この著者のページを訪れる',
493
-	'ligne' => '一行',
494
-	'login' => 'ログイン',
495
-	'login_acces_prive' => '管理エリアへアクセスする',
496
-	'login_autre_identifiant' => '他のIDで接続する',
497
-	'login_cookie_accepte' => '(なるべくこのサイトのため)クッキーを許可するように、ブラウザを設定してください。',
498
-	'login_cookie_oblige' => 'このサイト上で安全にログインするには、クッキーを受け入れる必要があります。',
499
-	'login_deconnexion_ok' => 'ログアウト済み',
500
-	'login_erreur_pass' => 'パスワードエラー',
501
-	'login_espace_prive' => '管理エリア',
502
-	'login_identifiant_inconnu' => 'ID、「@login@」は不明です。',
503
-	'login_login' => 'ログインID:',
504
-	'login_login2' => 'ログインID(このサイトに接続するためのID):',
505
-	'login_login_pass_incorrect' => '(ログインID、または、パスワードは一致しません)',
506
-	'login_motpasseoublie' => 'パスワードを忘れましたか?',
507
-	'login_non_securise' => '警告:このフォームは安全ではありません。 パスワードをネット上で傍受される恐れがないように、ブラウザでJavascriptを有効にしてください。',
508
-	'login_nouvelle_tentative' => '新しい試み',
509
-	'login_par_ici' => '登録済みなので… どうぞ…',
510
-	'login_pass2' => 'パスワード:',
511
-	'login_preferez_refuser' => '<b>クッキーを拒絶したければ</b>、(それほど安全でない)別の接続方法を使うことが出来ます:',
512
-	'login_recharger' => 'このページをリフレッシュする',
513
-	'login_rester_identifie' => 'しばらく接続したままにする', # MODIF
514
-	'login_retour_public' => '公開サイトに戻る',
515
-	'login_retour_site' => 'パブリックなサイトへ戻る',
516
-	'login_retoursitepublic' => '公開サイトに戻る',
517
-	'login_sans_cookie' => 'クッキーを拒絶して、ログインする。',
518
-	'login_securise' => '安全ログイン',
519
-	'login_sinscrire' => '申し込む',
520
-	'login_test_navigateur' => 'ブラウザテスト、接続をやり直す',
521
-	'login_verifiez_navigateur' => '(ところが、ブラウザがパスワードを登録しなかったことを確かめて下さい。)',
472
+    // L
473
+    'label_ajout_id_rapide' => 'クイック追加',
474
+    'label_poids_fichier' => 'サイズ',
475
+    'lien_afficher_icones_seuls' => 'アイコンのみ表示する',
476
+    'lien_afficher_texte_icones' => 'アイコンとテキスト表示する',
477
+    'lien_afficher_texte_seul' => 'テキストのみ表示する',
478
+    'lien_liberer' => 'リリーズする',
479
+    'lien_liberer_tous' => '全てリリーズする',
480
+    'lien_nouvea_pense_bete' => '新規メモ',
481
+    'lien_nouveau_message' => '新規メッセージ',
482
+    'lien_nouvelle_annonce' => '新規アナウンス',
483
+    'lien_petitions' => '請願書',
484
+    'lien_popularite' => '人気度:@popularite@%',
485
+    'lien_racine_site' => 'サイトのルート',
486
+    'lien_reessayer' => 'やり直す',
487
+    'lien_repondre_message' => 'このメッセージに返信する',
488
+    'lien_supprimer' => '削除する',
489
+    'lien_tout_afficher' => 'すべて表示',
490
+    'lien_visite_site' => 'このサイトを訪問する',
491
+    'lien_visites' => '@visites@訪問',
492
+    'lien_voir_auteur' => 'この著者のページを訪れる',
493
+    'ligne' => '一行',
494
+    'login' => 'ログイン',
495
+    'login_acces_prive' => '管理エリアへアクセスする',
496
+    'login_autre_identifiant' => '他のIDで接続する',
497
+    'login_cookie_accepte' => '(なるべくこのサイトのため)クッキーを許可するように、ブラウザを設定してください。',
498
+    'login_cookie_oblige' => 'このサイト上で安全にログインするには、クッキーを受け入れる必要があります。',
499
+    'login_deconnexion_ok' => 'ログアウト済み',
500
+    'login_erreur_pass' => 'パスワードエラー',
501
+    'login_espace_prive' => '管理エリア',
502
+    'login_identifiant_inconnu' => 'ID、「@login@」は不明です。',
503
+    'login_login' => 'ログインID:',
504
+    'login_login2' => 'ログインID(このサイトに接続するためのID):',
505
+    'login_login_pass_incorrect' => '(ログインID、または、パスワードは一致しません)',
506
+    'login_motpasseoublie' => 'パスワードを忘れましたか?',
507
+    'login_non_securise' => '警告:このフォームは安全ではありません。 パスワードをネット上で傍受される恐れがないように、ブラウザでJavascriptを有効にしてください。',
508
+    'login_nouvelle_tentative' => '新しい試み',
509
+    'login_par_ici' => '登録済みなので… どうぞ…',
510
+    'login_pass2' => 'パスワード:',
511
+    'login_preferez_refuser' => '<b>クッキーを拒絶したければ</b>、(それほど安全でない)別の接続方法を使うことが出来ます:',
512
+    'login_recharger' => 'このページをリフレッシュする',
513
+    'login_rester_identifie' => 'しばらく接続したままにする', # MODIF
514
+    'login_retour_public' => '公開サイトに戻る',
515
+    'login_retour_site' => 'パブリックなサイトへ戻る',
516
+    'login_retoursitepublic' => '公開サイトに戻る',
517
+    'login_sans_cookie' => 'クッキーを拒絶して、ログインする。',
518
+    'login_securise' => '安全ログイン',
519
+    'login_sinscrire' => '申し込む',
520
+    'login_test_navigateur' => 'ブラウザテスト、接続をやり直す',
521
+    'login_verifiez_navigateur' => '(ところが、ブラウザがパスワードを登録しなかったことを確かめて下さい。)',
522 522
 
523
-	// M
524
-	'masquer_colonne' => 'このコラムを非表示にする',
525
-	'masquer_trad' => '翻訳を非表示にする',
526
-	'message_nouveaux_identifiants_echec' => '新規IDの制作失敗',
527
-	'message_nouveaux_identifiants_echec_envoi' => '新しいログインID送信が出来ませんでした。',
528
-	'message_nouveaux_identifiants_ok' => '新しいログインIDは@email@に送信されました。',
529
-	'module_fichiers_langues' => '言語ファイル',
523
+    // M
524
+    'masquer_colonne' => 'このコラムを非表示にする',
525
+    'masquer_trad' => '翻訳を非表示にする',
526
+    'message_nouveaux_identifiants_echec' => '新規IDの制作失敗',
527
+    'message_nouveaux_identifiants_echec_envoi' => '新しいログインID送信が出来ませんでした。',
528
+    'message_nouveaux_identifiants_ok' => '新しいログインIDは@email@に送信されました。',
529
+    'module_fichiers_langues' => '言語ファイル',
530 530
 
531
-	// N
532
-	'navigateur_pas_redirige' => 'ブラウザがリダイレクトされない場合、ここをクリックして続行してください。',
533
-	'numero' => '番号',
531
+    // N
532
+    'navigateur_pas_redirige' => 'ブラウザがリダイレクトされない場合、ここをクリックして続行してください。',
533
+    'numero' => '番号',
534 534
 
535
-	// O
536
-	'occurence' => '生起',
537
-	'onglet_affacer_base' => 'データベースを削除する',
538
-	'onglet_auteur' => '著者',
539
-	'onglet_contenu_site' => 'そのサイトの内容',
540
-	'onglet_evolution_visite_mod' => '訪問率',
541
-	'onglet_fonctions_avances' => '高度な機能',
542
-	'onglet_informations_personnelles' => '個人情報',
543
-	'onglet_interactivite' => '対話性',
544
-	'onglet_messagerie' => 'メッセージング',
545
-	'onglet_repartition_rubrique' => 'セクションによる配分',
546
-	'onglet_save_restaur_base' => 'データベースバックアップ/復元する',
547
-	'onglet_vider_cache' => 'キャッシュを空白にする',
535
+    // O
536
+    'occurence' => '生起',
537
+    'onglet_affacer_base' => 'データベースを削除する',
538
+    'onglet_auteur' => '著者',
539
+    'onglet_contenu_site' => 'そのサイトの内容',
540
+    'onglet_evolution_visite_mod' => '訪問率',
541
+    'onglet_fonctions_avances' => '高度な機能',
542
+    'onglet_informations_personnelles' => '個人情報',
543
+    'onglet_interactivite' => '対話性',
544
+    'onglet_messagerie' => 'メッセージング',
545
+    'onglet_repartition_rubrique' => 'セクションによる配分',
546
+    'onglet_save_restaur_base' => 'データベースバックアップ/復元する',
547
+    'onglet_vider_cache' => 'キャッシュを空白にする',
548 548
 
549
-	// P
550
-	'pass_choix_pass' => '新しいパスワードを決めてください:',
551
-	'pass_erreur' => 'エラー',
552
-	'pass_erreur_acces_refuse' => '<b>エラー:</b> もはや、このサイトへのアクセスが拒否されました。',
553
-	'pass_erreur_code_inconnu' => '<b>エラー:</b> このコードは、このサイトにアクセスするどの訪問者にも対応していません。',
554
-	'pass_erreur_non_enregistre' => '<b>エラー:</b> アドレス <tt>@email_oubli@</tt> は登録されていません。',
555
-	'pass_erreur_non_valide' => '<b>エラー:</b> そのアドレス<tt>@email_oubli@</tt> は有効ではありません。',
556
-	'pass_erreur_probleme_technique' => '<b>エラー:</b> このメールは、技術的な問題によって送信が出来ませんでした。',
557
-	'pass_espace_prive_bla' => '管理エリアは、登録済みの訪問者に開かれています。登録されたら、記事の閲覧、記事の投稿、フォーラムへの参加が可能になります。',
558
-	'pass_forum_bla' => '登録された訪問者用のフォーラムに介入させてもらうように願いました。',
559
-	'pass_indiquez_cidessous' => '登録されたメールアドレスを下に入力してください。アクセスが再び出来るように、取り扱い説明をメールで送信します。',
560
-	'pass_mail_passcookie' => '(自動メッセージ)サイト@nom_site_spip@(@adresse_site@)へのアクセスを取り戻すように、次のアドレスに行ってください:@sendcookie@。それで新しいパスワードを入力すると再接続ができます。',
561
-	'pass_mot_oublie' => 'パスワードを忘れました。',
562
-	'pass_nouveau_enregistre' => '新しいパスワードが登録されました。',
563
-	'pass_nouveau_pass' => '新規パスワード',
564
-	'pass_ok' => 'オケー',
565
-	'pass_oubli_mot' => 'パスワードは忘れています。',
566
-	'pass_procedure_changer' => 'パスワードを変更するには、アカウントを作成した時のメールアドレスを入力してください。',
567
-	'pass_quitter_fenetre' => 'このウィンドウを閉じる',
568
-	'pass_rappel_login' => 'リマインダー: あなたのID (ログインID) は「@login@」です。',
569
-	'pass_recevoir_mail' => 'パスワードをリセットするために、リンクをメールアドレスに送信されました。',
570
-	'pass_retour_public' => '公開サイトへ戻る',
571
-	'pass_rien_a_faire_ici' => '居るべきではありません。',
572
-	'pass_vousinscrire' => 'サイトに登録する',
573
-	'precedent' => '前',
574
-	'previsualisation' => 'プレビュー',
575
-	'previsualiser' => 'プレビューを表示する',
549
+    // P
550
+    'pass_choix_pass' => '新しいパスワードを決めてください:',
551
+    'pass_erreur' => 'エラー',
552
+    'pass_erreur_acces_refuse' => '<b>エラー:</b> もはや、このサイトへのアクセスが拒否されました。',
553
+    'pass_erreur_code_inconnu' => '<b>エラー:</b> このコードは、このサイトにアクセスするどの訪問者にも対応していません。',
554
+    'pass_erreur_non_enregistre' => '<b>エラー:</b> アドレス <tt>@email_oubli@</tt> は登録されていません。',
555
+    'pass_erreur_non_valide' => '<b>エラー:</b> そのアドレス<tt>@email_oubli@</tt> は有効ではありません。',
556
+    'pass_erreur_probleme_technique' => '<b>エラー:</b> このメールは、技術的な問題によって送信が出来ませんでした。',
557
+    'pass_espace_prive_bla' => '管理エリアは、登録済みの訪問者に開かれています。登録されたら、記事の閲覧、記事の投稿、フォーラムへの参加が可能になります。',
558
+    'pass_forum_bla' => '登録された訪問者用のフォーラムに介入させてもらうように願いました。',
559
+    'pass_indiquez_cidessous' => '登録されたメールアドレスを下に入力してください。アクセスが再び出来るように、取り扱い説明をメールで送信します。',
560
+    'pass_mail_passcookie' => '(自動メッセージ)サイト@nom_site_spip@(@adresse_site@)へのアクセスを取り戻すように、次のアドレスに行ってください:@sendcookie@。それで新しいパスワードを入力すると再接続ができます。',
561
+    'pass_mot_oublie' => 'パスワードを忘れました。',
562
+    'pass_nouveau_enregistre' => '新しいパスワードが登録されました。',
563
+    'pass_nouveau_pass' => '新規パスワード',
564
+    'pass_ok' => 'オケー',
565
+    'pass_oubli_mot' => 'パスワードは忘れています。',
566
+    'pass_procedure_changer' => 'パスワードを変更するには、アカウントを作成した時のメールアドレスを入力してください。',
567
+    'pass_quitter_fenetre' => 'このウィンドウを閉じる',
568
+    'pass_rappel_login' => 'リマインダー: あなたのID (ログインID) は「@login@」です。',
569
+    'pass_recevoir_mail' => 'パスワードをリセットするために、リンクをメールアドレスに送信されました。',
570
+    'pass_retour_public' => '公開サイトへ戻る',
571
+    'pass_rien_a_faire_ici' => '居るべきではありません。',
572
+    'pass_vousinscrire' => 'サイトに登録する',
573
+    'precedent' => '前',
574
+    'previsualisation' => 'プレビュー',
575
+    'previsualiser' => 'プレビューを表示する',
576 576
 
577
-	// R
578
-	'retour' => '戻る',
577
+    // R
578
+    'retour' => '戻る',
579 579
 
580
-	// S
581
-	'spip_conforme_dtd' => 'SPIPはこの文書がDOCTYPEに準拠していると認めます:',
582
-	'squelette' => 'テンプレート',
583
-	'squelette_inclus_ligne' => 'テンプレート、ラインを含む',
584
-	'squelette_ligne' => 'テンプレート、ライン',
585
-	'stats_visites_et_popularite' => '訪問数:@visites@; 人気率:@popularite@',
586
-	'suivant' => '次へ',
580
+    // S
581
+    'spip_conforme_dtd' => 'SPIPはこの文書がDOCTYPEに準拠していると認めます:',
582
+    'squelette' => 'テンプレート',
583
+    'squelette_inclus_ligne' => 'テンプレート、ラインを含む',
584
+    'squelette_ligne' => 'テンプレート、ライン',
585
+    'stats_visites_et_popularite' => '訪問数:@visites@; 人気率:@popularite@',
586
+    'suivant' => '次へ',
587 587
 
588
-	// T
589
-	'taille_go' => '@taille@ Gb',
590
-	'taille_ko' => '@taille@ kb',
591
-	'taille_mo' => '@taille@ Mb',
592
-	'taille_octets' => '@taille@ バイト',
593
-	'texte_actualite_site_1' => 'インターフェースに精通した時、「',
594
-	'texte_actualite_site_2' => '完全なインターフェース',
595
-	'texte_actualite_site_3' => '」さらに多くの特徴を利用可能にするようにクリックしてください。',
596
-	'texte_creation_automatique_vignette' => 'プレビューサムネイルの自動制作が有効になっています。このフォームを通して画像のフォーマット@gd_formats@であれば、@size_preview@pixelsの最大サイズのサムネイルが添付されます。',
597
-	'texte_documents_associes' => '次のファイルは記事に関連付けられていますが、挿入されていません。 公開サイトのレイアウトによって、添付ドキュメントとして表示されることもあります。',
598
-	'texte_erreur_mise_niveau_base' => 'アップグレード中のデータベースエラー。画像 <b>@fichier@</b> をパスすることが出来なかった(記事@id_article@)。注意を払ってこの参照を残してください。また記事に画像が現れることを確認して下さい。',
599
-	'texte_erreur_visiteur' => '権利のないIDを使用して管理エリアにアクセスしようとしました。',
600
-	'texte_inc_auth_1' => 'ID<b>@auth_login@</b>でログインしていますが、このIDはデータベースにはもはや存在していません。',
601
-	'texte_inc_auth_2' => 'ブラウザを再起動した後、',
602
-	'texte_inc_auth_3' => 'もう一度接続をしてください。',
603
-	'texte_inc_config' => 'このページの変更は、サイトの作動に大きな影響を与えます。 SPIPの操作に慣れるまで設定を変更しないことをお勧めします。<br/>基本的には、これらのページの設定変更を管理者に任せておくことを強くお勧めします。',
604
-	'texte_inc_meta_1' => 'ファイル<code>@file@</ code>の書き込みながら、エラーが発生しました。',
605
-	'texte_inc_meta_2' => 'サイト管理者として、',
606
-	'texte_inc_meta_3' => '<code>@directory@</ code>フォルダの書き込み権を確認してください。',
607
-	'texte_statut_en_cours_redaction' => '編集中',
608
-	'texte_statut_poubelle' => 'ゴミ箱の中',
609
-	'texte_statut_propose_evaluation' => '確認のため提出する',
610
-	'texte_statut_publie' => 'オンラインに公開する',
611
-	'texte_statut_refuse' => '拒否する',
612
-	'titre_ajouter_mot_cle' => 'キーワードを追加する:',
613
-	'titre_cadre_raccourcis' => 'ショートカット:',
614
-	'titre_changer_couleur_interface' => 'インターフェースの色を変える',
615
-	'titre_image_admin_article' => 'この記事を管理することになりました。',
616
-	'titre_image_administrateur' => '管理者',
617
-	'titre_image_aide' => 'この項目に関するのヘルプ',
618
-	'titre_image_auteur_supprime' => '著者は削除された',
619
-	'titre_image_redacteur' => 'アクセス無しの編集者',
620
-	'titre_image_redacteur_02' => '編集者',
621
-	'titre_image_selecteur' => 'リストを表示する',
622
-	'titre_image_visiteur' => '訪問者',
623
-	'titre_joindre_document' => 'ファイルを添付する',
624
-	'titre_mots_cles' => 'キーワード',
625
-	'titre_probleme_technique' => '警告:技術的なエラーが発生して(SQLサーバー)、サイトのこの部分へのアクセスが出来ません。 ご理解いただき、ありがとうございます。',
626
-	'titre_publier_document' => 'このセクションにファイルを公開する',
627
-	'titre_signatures_attente' => '署名確認中',
628
-	'titre_signatures_confirmees' => '署名は確認された',
629
-	'titre_statistiques' => 'サイトの統計',
630
-	'titre_titre_document' => 'ファイルの名称:',
631
-	'todo' => 'するべき事',
632
-	'trad_definir_reference' => '翻訳のために参考記事「@titre@」を選んでください。',
633
-	'trad_reference' => '(参考記事)',
588
+    // T
589
+    'taille_go' => '@taille@ Gb',
590
+    'taille_ko' => '@taille@ kb',
591
+    'taille_mo' => '@taille@ Mb',
592
+    'taille_octets' => '@taille@ バイト',
593
+    'texte_actualite_site_1' => 'インターフェースに精通した時、「',
594
+    'texte_actualite_site_2' => '完全なインターフェース',
595
+    'texte_actualite_site_3' => '」さらに多くの特徴を利用可能にするようにクリックしてください。',
596
+    'texte_creation_automatique_vignette' => 'プレビューサムネイルの自動制作が有効になっています。このフォームを通して画像のフォーマット@gd_formats@であれば、@size_preview@pixelsの最大サイズのサムネイルが添付されます。',
597
+    'texte_documents_associes' => '次のファイルは記事に関連付けられていますが、挿入されていません。 公開サイトのレイアウトによって、添付ドキュメントとして表示されることもあります。',
598
+    'texte_erreur_mise_niveau_base' => 'アップグレード中のデータベースエラー。画像 <b>@fichier@</b> をパスすることが出来なかった(記事@id_article@)。注意を払ってこの参照を残してください。また記事に画像が現れることを確認して下さい。',
599
+    'texte_erreur_visiteur' => '権利のないIDを使用して管理エリアにアクセスしようとしました。',
600
+    'texte_inc_auth_1' => 'ID<b>@auth_login@</b>でログインしていますが、このIDはデータベースにはもはや存在していません。',
601
+    'texte_inc_auth_2' => 'ブラウザを再起動した後、',
602
+    'texte_inc_auth_3' => 'もう一度接続をしてください。',
603
+    'texte_inc_config' => 'このページの変更は、サイトの作動に大きな影響を与えます。 SPIPの操作に慣れるまで設定を変更しないことをお勧めします。<br/>基本的には、これらのページの設定変更を管理者に任せておくことを強くお勧めします。',
604
+    'texte_inc_meta_1' => 'ファイル<code>@file@</ code>の書き込みながら、エラーが発生しました。',
605
+    'texte_inc_meta_2' => 'サイト管理者として、',
606
+    'texte_inc_meta_3' => '<code>@directory@</ code>フォルダの書き込み権を確認してください。',
607
+    'texte_statut_en_cours_redaction' => '編集中',
608
+    'texte_statut_poubelle' => 'ゴミ箱の中',
609
+    'texte_statut_propose_evaluation' => '確認のため提出する',
610
+    'texte_statut_publie' => 'オンラインに公開する',
611
+    'texte_statut_refuse' => '拒否する',
612
+    'titre_ajouter_mot_cle' => 'キーワードを追加する:',
613
+    'titre_cadre_raccourcis' => 'ショートカット:',
614
+    'titre_changer_couleur_interface' => 'インターフェースの色を変える',
615
+    'titre_image_admin_article' => 'この記事を管理することになりました。',
616
+    'titre_image_administrateur' => '管理者',
617
+    'titre_image_aide' => 'この項目に関するのヘルプ',
618
+    'titre_image_auteur_supprime' => '著者は削除された',
619
+    'titre_image_redacteur' => 'アクセス無しの編集者',
620
+    'titre_image_redacteur_02' => '編集者',
621
+    'titre_image_selecteur' => 'リストを表示する',
622
+    'titre_image_visiteur' => '訪問者',
623
+    'titre_joindre_document' => 'ファイルを添付する',
624
+    'titre_mots_cles' => 'キーワード',
625
+    'titre_probleme_technique' => '警告:技術的なエラーが発生して(SQLサーバー)、サイトのこの部分へのアクセスが出来ません。 ご理解いただき、ありがとうございます。',
626
+    'titre_publier_document' => 'このセクションにファイルを公開する',
627
+    'titre_signatures_attente' => '署名確認中',
628
+    'titre_signatures_confirmees' => '署名は確認された',
629
+    'titre_statistiques' => 'サイトの統計',
630
+    'titre_titre_document' => 'ファイルの名称:',
631
+    'todo' => 'するべき事',
632
+    'trad_definir_reference' => '翻訳のために参考記事「@titre@」を選んでください。',
633
+    'trad_reference' => '(参考記事)',
634 634
 
635
-	// U
636
-	'upload_limit' => 'このファイルのサイズは大きすぎます。 <b>アップロード</b>に許可される最大サイズは@max@です。',
635
+    // U
636
+    'upload_limit' => 'このファイルのサイズは大きすぎます。 <b>アップロード</b>に許可される最大サイズは@max@です。',
637 637
 
638
-	// Z
639
-	'zbug_balise_b_aval' => ': Bタグはループ内で遅すぎる',
640
-	'zbug_balise_inexistante' => '@from@エラー:タグ#@balise@は存在していません。',
641
-	'zbug_balise_sans_argument' => '@balise@タグのパラメーターが足りません。',
642
-	'zbug_boucle' => 'ループ',
643
-	'zbug_boucle_recursive_undef' => '@nom@:未定義な回帰的なループ',
644
-	'zbug_calcul' => '制作',
645
-	'zbug_champ_hors_boucle' => 'ループ外の@champ@フィールド',
646
-	'zbug_champ_hors_motif' => 'フィルドは @champ@ 外部の文脈 @motif@',
647
-	'zbug_code' => 'コード',
648
-	'zbug_critere_inconnu' => '未知の基準@critere@',
649
-	'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} on a table without atomic primary key',
650
-	'zbug_distant_interdit' => '外部のデータは禁止',
651
-	'zbug_doublon_table_sans_cle_primaire' => 'Duplicate entries on a table which does not have a simple primary key',
652
-	'zbug_doublon_table_sans_index' => 'Duplicate entries on a table without an index',
653
-	'zbug_erreur_boucle_double' => 'ループ@id@:二重定義',
654
-	'zbug_erreur_boucle_fermant' => '歪んでいる@id@: 欠けている終了タグ',
655
-	'zbug_erreur_boucle_syntaxe' => 'ループ@id@に構文エラー(BOUCLE)',
656
-	'zbug_erreur_compilation' => 'コンパイルエラー',
657
-	'zbug_erreur_execution_page' => 'ページの制作失敗',
658
-	'zbug_erreur_filtre' => 'エラー:未定義のフィルター「<b>@filtre@</b>」',
659
-	'zbug_erreur_meme_parent' => '条件{meme_parent}はループ(FORUMS)または(RUBRIQUES)だけに適用されます。',
660
-	'zbug_erreur_squelette' => 'テンプレート内にエラーがあります。',
661
-	'zbug_hors_compilation' => 'コンパイルされていない',
662
-	'zbug_info_erreur_squelette' => 'サイトのエラー',
663
-	'zbug_inversion_ordre_inexistant' => '実在しない順番の逆転',
664
-	'zbug_pagination_sans_critere' => '基準{pagination}をもたない#PAGINATION。または再帰的ループで使用される基準。',
665
-	'zbug_parametres_inclus_incorrects' => 'インクルードパラメータエラー:@param@',
666
-	'zbug_profile' => '制作時間:@time@',
667
-	'zbug_resultat' => '結果',
668
-	'zbug_serveur_indefini' => '未定義のSQLサーバー',
669
-	'zbug_statistiques' => '期間にソートされたSQLクエリ統計',
670
-	'zbug_table_inconnue' => 'SQLテーブル「@table@」は見つからない',
671
-	'zxml_connus_attributs' => '既知の属性',
672
-	'zxml_de' => 'より',
673
-	'zxml_inconnu_attribut' => '無知の属性',
674
-	'zxml_inconnu_balise' => '無知のタグ',
675
-	'zxml_inconnu_entite' => '無知の項目',
676
-	'zxml_inconnu_id' => '無知のID',
677
-	'zxml_mais_de' => 'より',
678
-	'zxml_non_conforme' => '準拠していない',
679
-	'zxml_non_fils' => 'の子ではない',
680
-	'zxml_nonvide_balise' => '空白のないタグ',
681
-	'zxml_obligatoire_attribut' => '必須なのに不在',
682
-	'zxml_succession_fils_incorrecte' => '不正な子の継承',
683
-	'zxml_survoler' => '正しいのを表すには、カーソルをその上に移動してください。',
684
-	'zxml_valeur_attribut' => '属性の値',
685
-	'zxml_vide_balise' => '空白のタグ',
686
-	'zxml_vu' => '先ほど見た'
638
+    // Z
639
+    'zbug_balise_b_aval' => ': Bタグはループ内で遅すぎる',
640
+    'zbug_balise_inexistante' => '@from@エラー:タグ#@balise@は存在していません。',
641
+    'zbug_balise_sans_argument' => '@balise@タグのパラメーターが足りません。',
642
+    'zbug_boucle' => 'ループ',
643
+    'zbug_boucle_recursive_undef' => '@nom@:未定義な回帰的なループ',
644
+    'zbug_calcul' => '制作',
645
+    'zbug_champ_hors_boucle' => 'ループ外の@champ@フィールド',
646
+    'zbug_champ_hors_motif' => 'フィルドは @champ@ 外部の文脈 @motif@',
647
+    'zbug_code' => 'コード',
648
+    'zbug_critere_inconnu' => '未知の基準@critere@',
649
+    'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} on a table without atomic primary key',
650
+    'zbug_distant_interdit' => '外部のデータは禁止',
651
+    'zbug_doublon_table_sans_cle_primaire' => 'Duplicate entries on a table which does not have a simple primary key',
652
+    'zbug_doublon_table_sans_index' => 'Duplicate entries on a table without an index',
653
+    'zbug_erreur_boucle_double' => 'ループ@id@:二重定義',
654
+    'zbug_erreur_boucle_fermant' => '歪んでいる@id@: 欠けている終了タグ',
655
+    'zbug_erreur_boucle_syntaxe' => 'ループ@id@に構文エラー(BOUCLE)',
656
+    'zbug_erreur_compilation' => 'コンパイルエラー',
657
+    'zbug_erreur_execution_page' => 'ページの制作失敗',
658
+    'zbug_erreur_filtre' => 'エラー:未定義のフィルター「<b>@filtre@</b>」',
659
+    'zbug_erreur_meme_parent' => '条件{meme_parent}はループ(FORUMS)または(RUBRIQUES)だけに適用されます。',
660
+    'zbug_erreur_squelette' => 'テンプレート内にエラーがあります。',
661
+    'zbug_hors_compilation' => 'コンパイルされていない',
662
+    'zbug_info_erreur_squelette' => 'サイトのエラー',
663
+    'zbug_inversion_ordre_inexistant' => '実在しない順番の逆転',
664
+    'zbug_pagination_sans_critere' => '基準{pagination}をもたない#PAGINATION。または再帰的ループで使用される基準。',
665
+    'zbug_parametres_inclus_incorrects' => 'インクルードパラメータエラー:@param@',
666
+    'zbug_profile' => '制作時間:@time@',
667
+    'zbug_resultat' => '結果',
668
+    'zbug_serveur_indefini' => '未定義のSQLサーバー',
669
+    'zbug_statistiques' => '期間にソートされたSQLクエリ統計',
670
+    'zbug_table_inconnue' => 'SQLテーブル「@table@」は見つからない',
671
+    'zxml_connus_attributs' => '既知の属性',
672
+    'zxml_de' => 'より',
673
+    'zxml_inconnu_attribut' => '無知の属性',
674
+    'zxml_inconnu_balise' => '無知のタグ',
675
+    'zxml_inconnu_entite' => '無知の項目',
676
+    'zxml_inconnu_id' => '無知のID',
677
+    'zxml_mais_de' => 'より',
678
+    'zxml_non_conforme' => '準拠していない',
679
+    'zxml_non_fils' => 'の子ではない',
680
+    'zxml_nonvide_balise' => '空白のないタグ',
681
+    'zxml_obligatoire_attribut' => '必須なのに不在',
682
+    'zxml_succession_fils_incorrecte' => '不正な子の継承',
683
+    'zxml_survoler' => '正しいのを表すには、カーソルをその上に移動してください。',
684
+    'zxml_valeur_attribut' => '属性の値',
685
+    'zxml_vide_balise' => '空白のタグ',
686
+    'zxml_vu' => '先ほど見た'
687 687
 );
Please login to merge, or discard this patch.
ecrire/lang/ecrire_nl.php 1 patch
Indentation   +828 added lines, -828 removed lines patch added patch discarded remove patch
@@ -4,410 +4,410 @@  discard block
 block discarded – undo
4 4
 // ** ne pas modifier le fichier **
5 5
 
6 6
 if (!defined('_ECRIRE_INC_VERSION')) {
7
-	return;
7
+    return;
8 8
 }
9 9
 
10 10
 $GLOBALS[$GLOBALS['idx_lang']] = array(
11 11
 
12
-	// A
13
-	'activer_plugin' => 'Plugin activeren',
14
-	'affichage' => 'Weergave',
15
-	'aide_non_disponible' => 'Dit deel van de online handleiding is nog niet beschikbaar in het Nederlands.',
16
-	'annuler_recherche' => 'Zoekopdracht stoppen',
17
-	'auteur' => 'Auteur:',
18
-	'avis_acces_interdit' => 'Toegang verboden',
19
-	'avis_acces_interdit_prive' => 'Je hebt geen toegangsrechten voor pagina <b>@exec@</b>.',
20
-	'avis_article_modifie' => 'LET OP: @nom_auteur_modif@ heeft @date_diff@ minuten geleden aan dit artikel gewerkt.',
21
-	'avis_aucun_resultat' => 'Geen resultaat.',
22
-	'avis_base_inaccessible' => 'Kan geen verbinding maken met database @base@.',
23
-	'avis_chemin_invalide_1' => 'De toegang die je hebt gekozen',
24
-	'avis_chemin_invalide_2' => 'lijkt niet geldig. Ga terug naar de vorige pagina en controleer de ingevulde gegevens.',
25
-	'avis_connexion_echec_1' => 'De verbinding met de database is mislukt.',
26
-	'avis_connexion_echec_2' => 'Keer terug naar de vorige pagina en kijk de gegevens na die je hebt ingevuld.',
27
-	'avis_connexion_echec_3' => '<b>LET OP</b> Op veel servers moet je vooraf om activatie van je toegang tot de database <b>vragen</b>. Als je geen verbinding kan maken, kijk dan na of je deze actie hebt ondernomen.',
28
-	'avis_connexion_erreur_creer_base' => 'De database kon niet worden gemaakt.',
29
-	'avis_connexion_erreur_nom_base' => 'De databasenaam kan enkel letters, cijfers en koppeltekens bevatten',
30
-	'avis_connexion_ldap_echec_1' => 'De verbinding met de LDAP-server is mislukt.',
31
-	'avis_connexion_ldap_echec_2' => 'Ga terug naar de vorige pagina en kijk na of de ingevulde gegevens correct zijn.',
32
-	'avis_connexion_ldap_echec_3' => 'Andere mogelijkheid is om de LDAP-ondersteuning om gebruikers in te voeren niet te gebruiken.',
33
-	'avis_deplacement_rubrique' => 'LET OP! Deze rubriek bevat @contient_breves@ nieuwsflits@scb@. Als je wil verplaatsten, bevestig dit dan door hier het vakje aan te vinken.',
34
-	'avis_erreur_connexion_mysql' => 'Verbinding met de SQL connectie mislukt',
35
-	'avis_espace_interdit' => '<b>Toegang verboden</b><div>SPIP is al geïnstalleerd.</div>',
36
-	'avis_lecture_noms_bases_1' => 'Het installatieprogramma heeft de namen van de geïnstalleerde databases niet kunnen lezen.',
37
-	'avis_lecture_noms_bases_2' => 'Geen enkele database is beschikbaar, ofwel is de functie die de databases zou moeten tonen om veiligheidsredenen niet geactiveerd (wat vaak het geval is bij providers).',
38
-	'avis_lecture_noms_bases_3' => 'In het andere geval is het heel waarschijnlijk dat een database met jouw aanmeldingsnaam (login) bruikbaar is:',
39
-	'avis_non_acces_page' => 'Je hebt geen toegang tot deze pagina.',
40
-	'avis_operation_echec' => 'De bewerking is mislukt.',
41
-	'avis_operation_impossible' => 'Onmogelijke handeling',
42
-	'avis_suppression_base' => 'LET OP: Het wissen van de gegevens is onomkeerbaar',
12
+    // A
13
+    'activer_plugin' => 'Plugin activeren',
14
+    'affichage' => 'Weergave',
15
+    'aide_non_disponible' => 'Dit deel van de online handleiding is nog niet beschikbaar in het Nederlands.',
16
+    'annuler_recherche' => 'Zoekopdracht stoppen',
17
+    'auteur' => 'Auteur:',
18
+    'avis_acces_interdit' => 'Toegang verboden',
19
+    'avis_acces_interdit_prive' => 'Je hebt geen toegangsrechten voor pagina <b>@exec@</b>.',
20
+    'avis_article_modifie' => 'LET OP: @nom_auteur_modif@ heeft @date_diff@ minuten geleden aan dit artikel gewerkt.',
21
+    'avis_aucun_resultat' => 'Geen resultaat.',
22
+    'avis_base_inaccessible' => 'Kan geen verbinding maken met database @base@.',
23
+    'avis_chemin_invalide_1' => 'De toegang die je hebt gekozen',
24
+    'avis_chemin_invalide_2' => 'lijkt niet geldig. Ga terug naar de vorige pagina en controleer de ingevulde gegevens.',
25
+    'avis_connexion_echec_1' => 'De verbinding met de database is mislukt.',
26
+    'avis_connexion_echec_2' => 'Keer terug naar de vorige pagina en kijk de gegevens na die je hebt ingevuld.',
27
+    'avis_connexion_echec_3' => '<b>LET OP</b> Op veel servers moet je vooraf om activatie van je toegang tot de database <b>vragen</b>. Als je geen verbinding kan maken, kijk dan na of je deze actie hebt ondernomen.',
28
+    'avis_connexion_erreur_creer_base' => 'De database kon niet worden gemaakt.',
29
+    'avis_connexion_erreur_nom_base' => 'De databasenaam kan enkel letters, cijfers en koppeltekens bevatten',
30
+    'avis_connexion_ldap_echec_1' => 'De verbinding met de LDAP-server is mislukt.',
31
+    'avis_connexion_ldap_echec_2' => 'Ga terug naar de vorige pagina en kijk na of de ingevulde gegevens correct zijn.',
32
+    'avis_connexion_ldap_echec_3' => 'Andere mogelijkheid is om de LDAP-ondersteuning om gebruikers in te voeren niet te gebruiken.',
33
+    'avis_deplacement_rubrique' => 'LET OP! Deze rubriek bevat @contient_breves@ nieuwsflits@scb@. Als je wil verplaatsten, bevestig dit dan door hier het vakje aan te vinken.',
34
+    'avis_erreur_connexion_mysql' => 'Verbinding met de SQL connectie mislukt',
35
+    'avis_espace_interdit' => '<b>Toegang verboden</b><div>SPIP is al geïnstalleerd.</div>',
36
+    'avis_lecture_noms_bases_1' => 'Het installatieprogramma heeft de namen van de geïnstalleerde databases niet kunnen lezen.',
37
+    'avis_lecture_noms_bases_2' => 'Geen enkele database is beschikbaar, ofwel is de functie die de databases zou moeten tonen om veiligheidsredenen niet geactiveerd (wat vaak het geval is bij providers).',
38
+    'avis_lecture_noms_bases_3' => 'In het andere geval is het heel waarschijnlijk dat een database met jouw aanmeldingsnaam (login) bruikbaar is:',
39
+    'avis_non_acces_page' => 'Je hebt geen toegang tot deze pagina.',
40
+    'avis_operation_echec' => 'De bewerking is mislukt.',
41
+    'avis_operation_impossible' => 'Onmogelijke handeling',
42
+    'avis_suppression_base' => 'LET OP: Het wissen van de gegevens is onomkeerbaar',
43 43
 
44
-	// B
45
-	'bouton_acces_ldap' => 'LDAP toegang toevoegen',
46
-	'bouton_ajouter' => 'Toevoegen',
47
-	'bouton_annuler' => 'Annuleren',
48
-	'bouton_cache_activer' => 'Buffer (cache) reactiveren',
49
-	'bouton_cache_desactiver' => 'Buffer (cache) tijdelijk uitschakelen',
50
-	'bouton_demande_publication' => 'De publicatie van het artikel vragen',
51
-	'bouton_desactive_tout' => 'Alles deactiveren',
52
-	'bouton_desinstaller' => 'Terugtrekken',
53
-	'bouton_effacer_tout' => 'ALLES wissen',
54
-	'bouton_envoyer_message' => 'Definitief bericht: versturen',
55
-	'bouton_fermer' => 'Sluiten',
56
-	'bouton_mettre_a_jour_base' => 'Database update',
57
-	'bouton_modifier' => 'Wijzigen',
58
-	'bouton_radio_afficher' => 'Weergeven',
59
-	'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Opnemen in de lijst van online redacteurs',
60
-	'bouton_radio_envoi_annonces_adresse' => 'Aankondigingen verzenden naar dit adres:',
61
-	'bouton_radio_envoi_liste_nouveautes' => 'De lijst met nieuwe bijdragen versturen',
62
-	'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Niet opnemen in de lijst van redacteurs',
63
-	'bouton_radio_non_envoi_annonces_editoriales' => 'Geen editoriale aankondigingen versturen',
64
-	'bouton_redirection' => 'OMLEIDING',
65
-	'bouton_reinitialiser_aux_valeurs_par_defaut' => 'Terugzetten naar de standaardwaardes',
66
-	'bouton_relancer_installation' => 'Installatie herstarten',
67
-	'bouton_reset_password' => 'Een nieuw wachtwoord genereren en per email opsturen',
68
-	'bouton_suivant' => 'Volgende',
69
-	'bouton_tenter_recuperation' => 'Poging tot herstel',
70
-	'bouton_test_proxy' => 'Proxy proberen',
71
-	'bouton_vider_cache' => 'De buffer (cache) leegmaken',
44
+    // B
45
+    'bouton_acces_ldap' => 'LDAP toegang toevoegen',
46
+    'bouton_ajouter' => 'Toevoegen',
47
+    'bouton_annuler' => 'Annuleren',
48
+    'bouton_cache_activer' => 'Buffer (cache) reactiveren',
49
+    'bouton_cache_desactiver' => 'Buffer (cache) tijdelijk uitschakelen',
50
+    'bouton_demande_publication' => 'De publicatie van het artikel vragen',
51
+    'bouton_desactive_tout' => 'Alles deactiveren',
52
+    'bouton_desinstaller' => 'Terugtrekken',
53
+    'bouton_effacer_tout' => 'ALLES wissen',
54
+    'bouton_envoyer_message' => 'Definitief bericht: versturen',
55
+    'bouton_fermer' => 'Sluiten',
56
+    'bouton_mettre_a_jour_base' => 'Database update',
57
+    'bouton_modifier' => 'Wijzigen',
58
+    'bouton_radio_afficher' => 'Weergeven',
59
+    'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Opnemen in de lijst van online redacteurs',
60
+    'bouton_radio_envoi_annonces_adresse' => 'Aankondigingen verzenden naar dit adres:',
61
+    'bouton_radio_envoi_liste_nouveautes' => 'De lijst met nieuwe bijdragen versturen',
62
+    'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Niet opnemen in de lijst van redacteurs',
63
+    'bouton_radio_non_envoi_annonces_editoriales' => 'Geen editoriale aankondigingen versturen',
64
+    'bouton_redirection' => 'OMLEIDING',
65
+    'bouton_reinitialiser_aux_valeurs_par_defaut' => 'Terugzetten naar de standaardwaardes',
66
+    'bouton_relancer_installation' => 'Installatie herstarten',
67
+    'bouton_reset_password' => 'Een nieuw wachtwoord genereren en per email opsturen',
68
+    'bouton_suivant' => 'Volgende',
69
+    'bouton_tenter_recuperation' => 'Poging tot herstel',
70
+    'bouton_test_proxy' => 'Proxy proberen',
71
+    'bouton_vider_cache' => 'De buffer (cache) leegmaken',
72 72
 
73
-	// C
74
-	'cache_modifiable_webmestre' => 'Deze parameter kan door de webmaster van de site gewijzigd worden.',
75
-	'calendrier_synchro' => 'Wanneer je <b>iCal</b> compatibele agendasoftware gebruikt, kan je deze synchroniseren met informatie van deze site.',
76
-	'config_activer_champs' => 'De volgende velden activeren',
77
-	'config_choix_base_sup' => 'een database op deze server kiezen',
78
-	'config_erreur_base_sup' => 'SPIP heeft geen toegang tot de lijst van toegankelijke databases',
79
-	'config_info_base_sup' => 'Als je andere databases hebt om door SPIP te ondervragen, met zijn SQL server of anders, kan je deze via onderstaand formulier opgeven. Als je bepaalde velden leeg laat, zullen de identificatiegegevens van de primaire database gebruikt worden.',
80
-	'config_info_base_sup_disponibles' => 'De reeds opvraagbare aanvullende databases:',
81
-	'config_info_enregistree' => 'De nieuwe configuratie werd bewaard',
82
-	'config_info_logos' => 'Elk element van de site kan een logo hebben, evenals een « zwevend logo »',
83
-	'config_info_logos_utiliser' => 'Logo’s gebruiken',
84
-	'config_info_logos_utiliser_non' => 'Logo’s niet gebruiken',
85
-	'config_info_logos_utiliser_survol' => 'Zwevende logo’s gebruiken',
86
-	'config_info_logos_utiliser_survol_non' => 'Geen zwevende logo’s gebruiken',
87
-	'config_info_redirection' => 'Door deze optie te activeren, kan je virtuele artikelen maken, eenvoudige verwijzen naar gepubliceerde artikelen op andere sites, ook buiten SPIP.',
88
-	'config_redirection' => 'Virtuele artikelen',
89
-	'config_titre_base_sup' => 'Declareren van een extra database',
90
-	'config_titre_base_sup_choix' => 'Kies een extra database',
91
-	'connexion_ldap' => 'Aansluiten:',
92
-	'creer_et_associer_un_auteur' => 'Maken en associëren een auteur',
73
+    // C
74
+    'cache_modifiable_webmestre' => 'Deze parameter kan door de webmaster van de site gewijzigd worden.',
75
+    'calendrier_synchro' => 'Wanneer je <b>iCal</b> compatibele agendasoftware gebruikt, kan je deze synchroniseren met informatie van deze site.',
76
+    'config_activer_champs' => 'De volgende velden activeren',
77
+    'config_choix_base_sup' => 'een database op deze server kiezen',
78
+    'config_erreur_base_sup' => 'SPIP heeft geen toegang tot de lijst van toegankelijke databases',
79
+    'config_info_base_sup' => 'Als je andere databases hebt om door SPIP te ondervragen, met zijn SQL server of anders, kan je deze via onderstaand formulier opgeven. Als je bepaalde velden leeg laat, zullen de identificatiegegevens van de primaire database gebruikt worden.',
80
+    'config_info_base_sup_disponibles' => 'De reeds opvraagbare aanvullende databases:',
81
+    'config_info_enregistree' => 'De nieuwe configuratie werd bewaard',
82
+    'config_info_logos' => 'Elk element van de site kan een logo hebben, evenals een « zwevend logo »',
83
+    'config_info_logos_utiliser' => 'Logo’s gebruiken',
84
+    'config_info_logos_utiliser_non' => 'Logo’s niet gebruiken',
85
+    'config_info_logos_utiliser_survol' => 'Zwevende logo’s gebruiken',
86
+    'config_info_logos_utiliser_survol_non' => 'Geen zwevende logo’s gebruiken',
87
+    'config_info_redirection' => 'Door deze optie te activeren, kan je virtuele artikelen maken, eenvoudige verwijzen naar gepubliceerde artikelen op andere sites, ook buiten SPIP.',
88
+    'config_redirection' => 'Virtuele artikelen',
89
+    'config_titre_base_sup' => 'Declareren van een extra database',
90
+    'config_titre_base_sup_choix' => 'Kies een extra database',
91
+    'connexion_ldap' => 'Aansluiten:',
92
+    'creer_et_associer_un_auteur' => 'Maken en associëren een auteur',
93 93
 
94
-	// D
95
-	'date_mot_heures' => 'uur',
94
+    // D
95
+    'date_mot_heures' => 'uur',
96 96
 
97
-	// E
98
-	'ecran_securite' => '+ beveiligingsscherm @version@',
99
-	'email' => 'e-mail',
100
-	'email_2' => 'e-mail:',
101
-	'en_savoir_plus' => 'Meer weten hierover',
102
-	'entree_adresse_annuaire' => 'Plaats van het adresboek',
103
-	'entree_adresse_email' => 'Je e-mailadres',
104
-	'entree_adresse_email_2' => 'E-mailadres',
105
-	'entree_base_donnee_1' => 'Adres van de database',
106
-	'entree_base_donnee_2' => '(Vaak komt dit adres overeen met dat van je website, soms is het gewoon de vermelding «localhost» of kan je het veld blanco laten.)',
107
-	'entree_biographie' => 'Korte biografie in enkele woorden.',
108
-	'entree_chemin_acces' => '<b>Invullen</b> van de toegangscode :',
109
-	'entree_cle_pgp' => 'Je PGP-sleutel',
110
-	'entree_cle_pgp_2' => 'PGP-sleutel',
111
-	'entree_contenu_rubrique' => '(Inhoud van de rubriek in enkele woorden)',
112
-	'entree_identifiants_connexion' => 'Je verbindingsgegevens...',
113
-	'entree_identifiants_connexion_2' => 'Login',
114
-	'entree_informations_connexion_ldap' => 'Vul hier de gegevens in om verbinding te maken met het LDAP adresboek. Deze gegevens kan je opvragen bij de systeem- of netwerkbeheerder.',
115
-	'entree_infos_perso' => 'Wie ben je ?',
116
-	'entree_infos_perso_2' => 'Wie is de auteur ?',
117
-	'entree_interieur_rubrique' => 'In de rubriek:',
118
-	'entree_liens_sites' => '<b>Hypertext link</b> (verwijzing, te bezoeken website ...)',
119
-	'entree_login' => 'Je login',
120
-	'entree_login_connexion_1' => 'De login voor de verbinding',
121
-	'entree_login_connexion_2' => '(Komt soms overeen met je FTP-loginnaam; soms wordt dit niet ingevuld)',
122
-	'entree_mot_passe' => 'Je wachtwoord',
123
-	'entree_mot_passe_1' => 'Wachtwoord voor deze verbinding ',
124
-	'entree_mot_passe_2' => '(Komt vaak overeen met je wachtwoord voor FTP-toegang; soms kan je dit ook blanco laten)',
125
-	'entree_nom_fichier' => 'Vul hier de naam in van het bestand @texte_compresse@:',
126
-	'entree_nom_pseudo' => 'je naam of bijnaam',
127
-	'entree_nom_pseudo_1' => '(Je naam of bijnaam)',
128
-	'entree_nom_pseudo_2' => 'Naam of bijnaam',
129
-	'entree_nom_site' => 'De websitenaam',
130
-	'entree_nom_site_2' => 'Naam van de site van de auteur',
131
-	'entree_nouveau_passe' => 'Nieuw wachtwoord',
132
-	'entree_passe_ldap' => 'Wachtwoord',
133
-	'entree_port_annuaire' => 'Het poortnummer van het adresboek',
134
-	'entree_signature' => 'Handtekening',
135
-	'entree_titre_obligatoire' => '<b>Titel</b> [verplicht]<br />',
136
-	'entree_url' => 'Je website-adres (URL)',
137
-	'entree_url_2' => 'Adres van de site (URL)',
138
-	'erreur_connect_deja_existant' => 'Een server met die naam bestaat al',
139
-	'erreur_contenu_suspect' => 'Slecht opgebouwde tekst',
140
-	'erreur_email_deja_existant' => 'Dit emailadres is al geregistreerd.',
141
-	'erreur_nom_connect_incorrect' => 'Deze server naam is niet toegestaan',
142
-	'erreur_plugin_attribut_balise_manquant' => 'Attribuut @attribut@ ontbreekt in lus @balise@.',
143
-	'erreur_plugin_desinstalation_echouee' => 'Het verwijderen van de plugin is mislukt. Maar je kunt hem wel uitschakelen.',
144
-	'erreur_plugin_fichier_absent' => 'Bestand ontbreekt',
145
-	'erreur_plugin_fichier_def_absent' => 'Definitiebestand ontbreekt',
146
-	'erreur_plugin_nom_fonction_interdit' => 'Functienaam verboden',
147
-	'erreur_plugin_nom_manquant' => 'Naam van de ontbrekende plugin',
148
-	'erreur_plugin_prefix_manquant' => 'Ruimte voor de naamgeving van de plugin is niet gedefinieerd',
149
-	'erreur_plugin_tag_plugin_absent' => '&lt;plugin&gt; ontbreekt in het definitiebestand',
150
-	'erreur_plugin_version_manquant' => 'Versie van de ontbrekende plugin',
97
+    // E
98
+    'ecran_securite' => '+ beveiligingsscherm @version@',
99
+    'email' => 'e-mail',
100
+    'email_2' => 'e-mail:',
101
+    'en_savoir_plus' => 'Meer weten hierover',
102
+    'entree_adresse_annuaire' => 'Plaats van het adresboek',
103
+    'entree_adresse_email' => 'Je e-mailadres',
104
+    'entree_adresse_email_2' => 'E-mailadres',
105
+    'entree_base_donnee_1' => 'Adres van de database',
106
+    'entree_base_donnee_2' => '(Vaak komt dit adres overeen met dat van je website, soms is het gewoon de vermelding «localhost» of kan je het veld blanco laten.)',
107
+    'entree_biographie' => 'Korte biografie in enkele woorden.',
108
+    'entree_chemin_acces' => '<b>Invullen</b> van de toegangscode :',
109
+    'entree_cle_pgp' => 'Je PGP-sleutel',
110
+    'entree_cle_pgp_2' => 'PGP-sleutel',
111
+    'entree_contenu_rubrique' => '(Inhoud van de rubriek in enkele woorden)',
112
+    'entree_identifiants_connexion' => 'Je verbindingsgegevens...',
113
+    'entree_identifiants_connexion_2' => 'Login',
114
+    'entree_informations_connexion_ldap' => 'Vul hier de gegevens in om verbinding te maken met het LDAP adresboek. Deze gegevens kan je opvragen bij de systeem- of netwerkbeheerder.',
115
+    'entree_infos_perso' => 'Wie ben je ?',
116
+    'entree_infos_perso_2' => 'Wie is de auteur ?',
117
+    'entree_interieur_rubrique' => 'In de rubriek:',
118
+    'entree_liens_sites' => '<b>Hypertext link</b> (verwijzing, te bezoeken website ...)',
119
+    'entree_login' => 'Je login',
120
+    'entree_login_connexion_1' => 'De login voor de verbinding',
121
+    'entree_login_connexion_2' => '(Komt soms overeen met je FTP-loginnaam; soms wordt dit niet ingevuld)',
122
+    'entree_mot_passe' => 'Je wachtwoord',
123
+    'entree_mot_passe_1' => 'Wachtwoord voor deze verbinding ',
124
+    'entree_mot_passe_2' => '(Komt vaak overeen met je wachtwoord voor FTP-toegang; soms kan je dit ook blanco laten)',
125
+    'entree_nom_fichier' => 'Vul hier de naam in van het bestand @texte_compresse@:',
126
+    'entree_nom_pseudo' => 'je naam of bijnaam',
127
+    'entree_nom_pseudo_1' => '(Je naam of bijnaam)',
128
+    'entree_nom_pseudo_2' => 'Naam of bijnaam',
129
+    'entree_nom_site' => 'De websitenaam',
130
+    'entree_nom_site_2' => 'Naam van de site van de auteur',
131
+    'entree_nouveau_passe' => 'Nieuw wachtwoord',
132
+    'entree_passe_ldap' => 'Wachtwoord',
133
+    'entree_port_annuaire' => 'Het poortnummer van het adresboek',
134
+    'entree_signature' => 'Handtekening',
135
+    'entree_titre_obligatoire' => '<b>Titel</b> [verplicht]<br />',
136
+    'entree_url' => 'Je website-adres (URL)',
137
+    'entree_url_2' => 'Adres van de site (URL)',
138
+    'erreur_connect_deja_existant' => 'Een server met die naam bestaat al',
139
+    'erreur_contenu_suspect' => 'Slecht opgebouwde tekst',
140
+    'erreur_email_deja_existant' => 'Dit emailadres is al geregistreerd.',
141
+    'erreur_nom_connect_incorrect' => 'Deze server naam is niet toegestaan',
142
+    'erreur_plugin_attribut_balise_manquant' => 'Attribuut @attribut@ ontbreekt in lus @balise@.',
143
+    'erreur_plugin_desinstalation_echouee' => 'Het verwijderen van de plugin is mislukt. Maar je kunt hem wel uitschakelen.',
144
+    'erreur_plugin_fichier_absent' => 'Bestand ontbreekt',
145
+    'erreur_plugin_fichier_def_absent' => 'Definitiebestand ontbreekt',
146
+    'erreur_plugin_nom_fonction_interdit' => 'Functienaam verboden',
147
+    'erreur_plugin_nom_manquant' => 'Naam van de ontbrekende plugin',
148
+    'erreur_plugin_prefix_manquant' => 'Ruimte voor de naamgeving van de plugin is niet gedefinieerd',
149
+    'erreur_plugin_tag_plugin_absent' => '&lt;plugin&gt; ontbreekt in het definitiebestand',
150
+    'erreur_plugin_version_manquant' => 'Versie van de ontbrekende plugin',
151 151
 
152
-	// H
153
-	'htaccess_a_simuler' => 'Waarschuwing: De configuratie van de HTTP-server negeert @htaccess@ bestanden. Om een goede beveiliging te hebben, moet je deze configuratie wijzigen, of de constanten @constantes@ (definieerbaar in het bestand mes_options.php) laten verwijzen naar mappen buiten @document_root@. ', # Je ne vois pas la modif ! La trad reste valable.
154
-	'htaccess_inoperant' => 'htaccess werkt niet',
152
+    // H
153
+    'htaccess_a_simuler' => 'Waarschuwing: De configuratie van de HTTP-server negeert @htaccess@ bestanden. Om een goede beveiliging te hebben, moet je deze configuratie wijzigen, of de constanten @constantes@ (definieerbaar in het bestand mes_options.php) laten verwijzen naar mappen buiten @document_root@. ', # Je ne vois pas la modif ! La trad reste valable.
154
+    'htaccess_inoperant' => 'htaccess werkt niet',
155 155
 
156
-	// I
157
-	'ical_info1' => 'Deze pagina toont de verschillende wijzen waarop je contact kan houden met het gebeuren van deze website.',
158
-	'ical_info2' => 'Voor meer inlichtingen over al deze technieken, aarzelt niet om <a href=" @spipnet@" te raadplegen >de documentatie van SPIP</a>.',
159
-	'ical_info_calendrier' => 'Twee kalenders zijn beschikbaar. De eerste geeft een overzicht van alle gepubliceerde artikelen. De tweede bevat editoriale berichten en je meest recente privé-berichten : deze tweede kalender is afgeschermd voor andere gebruikers door een persoonlijke sleutel die je op elk moment kan wijzigen door je wachtwoord te vernieuwen.',
160
-	'ical_methode_http' => 'Downloaden',
161
-	'ical_methode_webcal' => 'Synchronisatie (webcal://)',
162
-	'ical_texte_js' => 'Met een javascriptregel kan je op eenvoudige wijze de meest recente artikelen van deze site weergeven op een andere site die je beheert.',
163
-	'ical_texte_prive' => 'Deze kalender is voor persoonlijk gebruik en houdt je op de hoogte van je eigen editoriale activiteit (taken en persoonlijke afspraken, voorgestelde artikelen en nieuwsflitsen...).',
164
-	'ical_texte_public' => 'Via deze kalender kan je de publieke activiteit van de site volgen (gepubliceerde artikelen en nieuwsflitsen).',
165
-	'ical_texte_rss' => 'Je kan de nieuwe berichten van de site overnemen (syndiceren) op een andere site in eender welke bestandslezer via het formaat XML/RSS (Rich Site Summary). Dit is hetzelfde formaat dat SPIP toelaat nieuws over te nemen van andere sites die een uitwisselbaar formaat hanteren (gesyndiceerde sites).',
166
-	'ical_titre_js' => 'Javascript',
167
-	'ical_titre_mailing' => 'Mailinglijst',
168
-	'ical_titre_rss' => 'Syndicatiebestanden',
169
-	'icone_accueil' => 'Home',
170
-	'icone_activer_cookie' => 'De toegangskoekie activeren',
171
-	'icone_activite' => 'Activiteit',
172
-	'icone_admin_plugin' => 'Plugin beheer',
173
-	'icone_administration' => 'Beheer',
174
-	'icone_afficher_auteurs' => 'Auteurs tonen',
175
-	'icone_afficher_visiteurs' => 'Bezoekers tonen',
176
-	'icone_arret_discussion' => 'Niet langer deelnemen aan deze discussie',
177
-	'icone_calendrier' => 'Kalender',
178
-	'icone_configuration' => 'Configuratie',
179
-	'icone_creer_auteur' => 'Een nieuwe auteur aanmaken en koppelen aan dit artikel',
180
-	'icone_creer_mot_cle' => 'Een nieuw trefwoord aanmaken en koppelen aan dit artikel',
181
-	'icone_creer_rubrique_2' => 'Een nieuwe rubriek aanmaken',
182
-	'icone_developpement' => 'Ontwikkeling',
183
-	'icone_edition' => 'Items',
184
-	'icone_ma_langue' => 'Mijn taal',
185
-	'icone_mes_infos' => 'Mijn informatie',
186
-	'icone_mes_preferences' => 'Mijn Voorkeuren',
187
-	'icone_modifier_article' => 'Dit artikel wijzigen',
188
-	'icone_modifier_rubrique' => 'Deze rubriek wijzigen',
189
-	'icone_publication' => 'Publicatie',
190
-	'icone_relancer_signataire' => 'De ondertekenaar heractiveren',
191
-	'icone_retour' => 'Terug',
192
-	'icone_retour_article' => 'Terug naar artikel',
193
-	'icone_squelette' => 'Skeletten',
194
-	'icone_suivi_publication' => 'Publicaties volgen',
195
-	'icone_supprimer_cookie' => 'De toegangskoekie verwijderen',
196
-	'icone_supprimer_rubrique' => 'Deze rubriek wissen',
197
-	'icone_supprimer_signature' => 'Deze naam wissen',
198
-	'icone_valider_signature' => 'Deze naam goedkeuren',
199
-	'image_administrer_rubrique' => 'Je kan deze rubriek beheren',
200
-	'impossible_modifier_login_auteur' => 'De login kan niet worden veranderd.',
201
-	'impossible_modifier_pass_auteur' => 'Het wachtwoord kan niet worden gewijzigd.',
202
-	'info_1_article' => '1 artikel',
203
-	'info_1_auteur' => '1 auteur',
204
-	'info_1_message' => '1 bericht',
205
-	'info_1_mot_cle' => '1 trefwoord',
206
-	'info_1_rubrique' => '1 rubriek',
207
-	'info_1_visiteur' => '1 bezoeker',
208
-	'info_activer_cookie' => 'Je kan een <b>toegangskoekie</b> activeren, waardoor je makkelijk kan wisselen tussen de het publieke en het privé gedeelte van de website.',
209
-	'info_activer_menu_developpement' => 'Toon het menu Ontwikkeling',
210
-	'info_admin_etre_webmestre' => 'Geef me de webmaster rechten',
211
-	'info_admin_je_suis_webmestre' => 'Ik ben <b>webmaster</b>',
212
-	'info_admin_statuer_webmestre' => 'Geef deze beheerder webmaster rechten',
213
-	'info_admin_webmestre' => 'Deze beheerder is <b>webmaster</b>',
214
-	'info_administrateur' => 'Beheerder',
215
-	'info_administrateur_1' => 'Beheerder',
216
-	'info_administrateur_2' => 'van de website (<i>voorzichtig gebruiken</i>)',
217
-	'info_administrateur_site_01' => 'Als je beheerder bent van deze site, gelieve',
218
-	'info_administrateur_site_02' => 'deze koppeling aan te klikken',
219
-	'info_administrateurs' => 'Beheerders',
220
-	'info_administrer_rubrique' => 'Je kan deze rubriek beheren',
221
-	'info_adresse' => 'aan/naar het adres:',
222
-	'info_adresse_desinscription' => 'Adres voor uitschrijven:',
223
-	'info_adresse_url' => 'Adres (URL) van de website',
224
-	'info_afficher_par_nb' => 'Tonen',
225
-	'info_aide_en_ligne' => 'ONLINE HELP VAN SPIP',
226
-	'info_ajout_image' => 'Als je afbeeldingen als bijlage aan een document toevoegt, kan SPIP hiervan automatisch miniaturen aanmaken. Hierdoor kan je bvb. automatisch een fotogalerij of portfolio aanmaken.
156
+    // I
157
+    'ical_info1' => 'Deze pagina toont de verschillende wijzen waarop je contact kan houden met het gebeuren van deze website.',
158
+    'ical_info2' => 'Voor meer inlichtingen over al deze technieken, aarzelt niet om <a href=" @spipnet@" te raadplegen >de documentatie van SPIP</a>.',
159
+    'ical_info_calendrier' => 'Twee kalenders zijn beschikbaar. De eerste geeft een overzicht van alle gepubliceerde artikelen. De tweede bevat editoriale berichten en je meest recente privé-berichten : deze tweede kalender is afgeschermd voor andere gebruikers door een persoonlijke sleutel die je op elk moment kan wijzigen door je wachtwoord te vernieuwen.',
160
+    'ical_methode_http' => 'Downloaden',
161
+    'ical_methode_webcal' => 'Synchronisatie (webcal://)',
162
+    'ical_texte_js' => 'Met een javascriptregel kan je op eenvoudige wijze de meest recente artikelen van deze site weergeven op een andere site die je beheert.',
163
+    'ical_texte_prive' => 'Deze kalender is voor persoonlijk gebruik en houdt je op de hoogte van je eigen editoriale activiteit (taken en persoonlijke afspraken, voorgestelde artikelen en nieuwsflitsen...).',
164
+    'ical_texte_public' => 'Via deze kalender kan je de publieke activiteit van de site volgen (gepubliceerde artikelen en nieuwsflitsen).',
165
+    'ical_texte_rss' => 'Je kan de nieuwe berichten van de site overnemen (syndiceren) op een andere site in eender welke bestandslezer via het formaat XML/RSS (Rich Site Summary). Dit is hetzelfde formaat dat SPIP toelaat nieuws over te nemen van andere sites die een uitwisselbaar formaat hanteren (gesyndiceerde sites).',
166
+    'ical_titre_js' => 'Javascript',
167
+    'ical_titre_mailing' => 'Mailinglijst',
168
+    'ical_titre_rss' => 'Syndicatiebestanden',
169
+    'icone_accueil' => 'Home',
170
+    'icone_activer_cookie' => 'De toegangskoekie activeren',
171
+    'icone_activite' => 'Activiteit',
172
+    'icone_admin_plugin' => 'Plugin beheer',
173
+    'icone_administration' => 'Beheer',
174
+    'icone_afficher_auteurs' => 'Auteurs tonen',
175
+    'icone_afficher_visiteurs' => 'Bezoekers tonen',
176
+    'icone_arret_discussion' => 'Niet langer deelnemen aan deze discussie',
177
+    'icone_calendrier' => 'Kalender',
178
+    'icone_configuration' => 'Configuratie',
179
+    'icone_creer_auteur' => 'Een nieuwe auteur aanmaken en koppelen aan dit artikel',
180
+    'icone_creer_mot_cle' => 'Een nieuw trefwoord aanmaken en koppelen aan dit artikel',
181
+    'icone_creer_rubrique_2' => 'Een nieuwe rubriek aanmaken',
182
+    'icone_developpement' => 'Ontwikkeling',
183
+    'icone_edition' => 'Items',
184
+    'icone_ma_langue' => 'Mijn taal',
185
+    'icone_mes_infos' => 'Mijn informatie',
186
+    'icone_mes_preferences' => 'Mijn Voorkeuren',
187
+    'icone_modifier_article' => 'Dit artikel wijzigen',
188
+    'icone_modifier_rubrique' => 'Deze rubriek wijzigen',
189
+    'icone_publication' => 'Publicatie',
190
+    'icone_relancer_signataire' => 'De ondertekenaar heractiveren',
191
+    'icone_retour' => 'Terug',
192
+    'icone_retour_article' => 'Terug naar artikel',
193
+    'icone_squelette' => 'Skeletten',
194
+    'icone_suivi_publication' => 'Publicaties volgen',
195
+    'icone_supprimer_cookie' => 'De toegangskoekie verwijderen',
196
+    'icone_supprimer_rubrique' => 'Deze rubriek wissen',
197
+    'icone_supprimer_signature' => 'Deze naam wissen',
198
+    'icone_valider_signature' => 'Deze naam goedkeuren',
199
+    'image_administrer_rubrique' => 'Je kan deze rubriek beheren',
200
+    'impossible_modifier_login_auteur' => 'De login kan niet worden veranderd.',
201
+    'impossible_modifier_pass_auteur' => 'Het wachtwoord kan niet worden gewijzigd.',
202
+    'info_1_article' => '1 artikel',
203
+    'info_1_auteur' => '1 auteur',
204
+    'info_1_message' => '1 bericht',
205
+    'info_1_mot_cle' => '1 trefwoord',
206
+    'info_1_rubrique' => '1 rubriek',
207
+    'info_1_visiteur' => '1 bezoeker',
208
+    'info_activer_cookie' => 'Je kan een <b>toegangskoekie</b> activeren, waardoor je makkelijk kan wisselen tussen de het publieke en het privé gedeelte van de website.',
209
+    'info_activer_menu_developpement' => 'Toon het menu Ontwikkeling',
210
+    'info_admin_etre_webmestre' => 'Geef me de webmaster rechten',
211
+    'info_admin_je_suis_webmestre' => 'Ik ben <b>webmaster</b>',
212
+    'info_admin_statuer_webmestre' => 'Geef deze beheerder webmaster rechten',
213
+    'info_admin_webmestre' => 'Deze beheerder is <b>webmaster</b>',
214
+    'info_administrateur' => 'Beheerder',
215
+    'info_administrateur_1' => 'Beheerder',
216
+    'info_administrateur_2' => 'van de website (<i>voorzichtig gebruiken</i>)',
217
+    'info_administrateur_site_01' => 'Als je beheerder bent van deze site, gelieve',
218
+    'info_administrateur_site_02' => 'deze koppeling aan te klikken',
219
+    'info_administrateurs' => 'Beheerders',
220
+    'info_administrer_rubrique' => 'Je kan deze rubriek beheren',
221
+    'info_adresse' => 'aan/naar het adres:',
222
+    'info_adresse_desinscription' => 'Adres voor uitschrijven:',
223
+    'info_adresse_url' => 'Adres (URL) van de website',
224
+    'info_afficher_par_nb' => 'Tonen',
225
+    'info_aide_en_ligne' => 'ONLINE HELP VAN SPIP',
226
+    'info_ajout_image' => 'Als je afbeeldingen als bijlage aan een document toevoegt, kan SPIP hiervan automatisch miniaturen aanmaken. Hierdoor kan je bvb. automatisch een fotogalerij of portfolio aanmaken.
227 227
 ',
228
-	'info_ajouter_rubrique' => 'Een nieuwe rubriek toevoegen om te beheren:',
229
-	'info_annonce_nouveautes' => 'Aankondiging van nieuwe bijdragen',
230
-	'info_article' => 'artikel',
231
-	'info_article_2' => 'artikelen',
232
-	'info_article_a_paraitre' => 'Te publiceren artikelen met postdatering',
233
-	'info_articles_02' => 'artikelen',
234
-	'info_articles_2' => 'Artikelen',
235
-	'info_articles_auteur' => 'Artikelen van deze auteur',
236
-	'info_articles_miens' => 'Mijn artikelen',
237
-	'info_articles_tous' => 'Alle artikelen',
238
-	'info_articles_trouves' => 'Gevonden artikelen',
239
-	'info_attente_validation' => 'Je artikelen die op goedkeuring wachten',
240
-	'info_aucun_article' => 'Geen artikelen',
241
-	'info_aucun_auteur' => 'Geen auteur',
242
-	'info_aucun_message' => 'Geen bericht',
243
-	'info_aucun_rubrique' => 'Geen rubriek',
244
-	'info_aujourdhui' => 'vandaag:',
245
-	'info_auteur_gere_rubriques' => 'Deze auteur beheert de volgende rubrieken:',
246
-	'info_auteur_gere_toutes_rubriques' => 'Deze auteur beheert <b>alle rubrieken</b>',
247
-	'info_auteur_gere_toutes_rubriques_2' => 'Ik beheer <b>alle rubrieken</b>',
248
-	'info_auteurs' => 'De auteurs',
249
-	'info_auteurs_par_tri' => 'Auteur@partri@',
250
-	'info_auteurs_trouves' => 'Gevonden auteurs',
251
-	'info_authentification_externe' => 'Externe authenticatie',
252
-	'info_avertissement' => 'Waarschuwing',
253
-	'info_barre_outils' => 'met zijn gereedschapsbalk?',
254
-	'info_base_installee' => 'De structuur van je database is geïnstalleerd.',
255
-	'info_bio' => 'biografie',
256
-	'info_cache_desactive' => 'De buffer (cache) is tijdelijk uitgeschakeld.',
257
-	'info_chapeau' => 'Kop',
258
-	'info_chapeau_2' => 'Kop :',
259
-	'info_chemin_acces_1' => 'Opties: <b>Toegang tot het adresboek</b>',
260
-	'info_chemin_acces_2' => 'Je dient de toegang tot de gegevens uit het adresboek in te stellen. Zonder deze instellingen is het ONmogelijk de gebruikersprofielen in dit adresboek te lezen.',
261
-	'info_chemin_acces_annuaire' => 'Opties: <b>Toegang in het adresboek',
262
-	'info_choix_base' => 'Derde stap:',
263
-	'info_classement_1' => '<sup>ste</sup> op @liste@',
264
-	'info_classement_2' => '<sup>de</sup> @liste@',
265
-	'info_code_acces' => 'Vergeet je eigen toegangscode niet!',
266
-	'info_config_suivi' => 'Wanneer dit adres van een distributielijst is, kan je hieronder het adres opgeven waar deelnemers van de site zich kunnen inschrijven. Dit adres kan een URL zijn (het webadres voor het inschrijving op de lijst), of een emailadres met een onderwerp (zoals <tt>@adresse_suivi@?subject=subscribe</tt>):',
267
-	'info_config_suivi_explication' => 'Je kan je op de mailinglijst van deze site inschrijven. Je zal dan via e-mail een aankondiging ontvangen van artikelen en nieuwsflitsen die voor publicatie werden voorgesteld.',
268
-	'info_confirmer_passe' => 'Bevestig het nieuwe wachtwoord:',
269
-	'info_conflit_edition_avis_non_sauvegarde' => 'Let op: de volgende velden werden elders gewijzigd. Jouw wijzigingen op deze velden werden dus niet geregistreerd.',
270
-	'info_conflit_edition_differences' => 'Verschillen :',
271
-	'info_conflit_edition_version_enregistree' => 'De geregistreerde versie :',
272
-	'info_conflit_edition_votre_version' => 'Jouw versie:',
273
-	'info_connexion_base' => 'Proberen op de database aan te sluiten',
274
-	'info_connexion_base_donnee' => 'Aansluiten op je database',
275
-	'info_connexion_ldap_ok' => 'De LDAP-verbinding is gelukt. </b><p>Je kunt doorgaan naar de volgende stap.</p>',
276
-	'info_connexion_mysql' => 'Je SQL verbinding',
277
-	'info_connexion_ok' => 'De verbinding is geslaagd.',
278
-	'info_contact' => 'Contact',
279
-	'info_contenu_articles' => 'Inhoud van de artikelen',
280
-	'info_contributions' => 'Bijdragen',
281
-	'info_creation_paragraphe' => 'Om alinea’s te maken laat je gewoon enkele regels leeg.',
282
-	'info_creation_rubrique' => 'Alvorens artikelen te kunnen schrijven<br /> moet minstens een rubriek worden gemaakt.<br />',
283
-	'info_creation_tables' => 'Aanmaken van tabellen in de database',
284
-	'info_creer_base' => '<b>Creëren</b> een nieuw database:',
285
-	'info_dans_rubrique' => 'In de rubriek:',
286
-	'info_date_publication_anterieure' => 'Datum van eerdere redactie:',
287
-	'info_date_referencement' => 'DATUM VAN DE KOPPELING VAN DEZE SITE:',
288
-	'info_derniere_etape' => 'Klaar!',
289
-	'info_descriptif' => 'Beschrijving:',
290
-	'info_desinstaller_plugin' => 'verwijdert de gegevens en deactiveert de plugin',
291
-	'info_discussion_cours' => 'Lopende discussies',
292
-	'info_ecrire_article' => 'Alvorens een artikel te kunnen schrijven, dien je minimaal één rubriek aan te maken.',
293
-	'info_email_envoi' => 'Verzendadres (optioneel)',
294
-	'info_email_envoi_txt' => 'Geef hieronder het adres op dat gebruikt wordt voor het versturen van e-mails. (Standaard wordt het adres van de geadresseerde als verzendadres gebruikt.):',
295
-	'info_email_webmestre' => 'E-mailadres webmaster',
296
-	'info_envoi_email_automatique' => 'Automatisch verzenden van e-mails',
297
-	'info_envoyer_maintenant' => 'Nu versturen',
298
-	'info_etape_suivante' => 'Naar de volgende stap ',
299
-	'info_etape_suivante_1' => 'Je kunt de volgende stap zetten.',
300
-	'info_etape_suivante_2' => 'Je kunt de volgende stap zetten.',
301
-	'info_exceptions_proxy' => 'Uitzonderingen op de proxy',
302
-	'info_exportation_base' => 'Uitvoer van de database naar @archive@',
303
-	'info_facilite_suivi_activite' => 'Om de opvolging en redactie van artikelen te vergemakkelijken, kan SPIP mails versturen -bijvoorbeeld naar een mailinglist van redacteurs- met de aankondiging van vragen voor publicatie of goedgekeurde publicaties.',
304
-	'info_fichiers_authent' => 'Verificatiebestand ".htpasswd"',
305
-	'info_forums_abo_invites' => 'Je site bevat forums met abonnement; bezoekers worden dus op de publieke site verzocht zich in te schrijven.',
306
-	'info_gauche_admin_tech' => '<b>Deze pagina is enkel toegankelijk voor beheerders van de site.</b><p> Ze geeft toegang tot allerlei technische onderhoudstaken. Voor het uitvoeren van sommige taken zijn een afzonderlijke aanmelding en toegang tot je site via FTP nodig.</p>',
307
-	'info_gauche_admin_vider' => '<b>Deze pagina is alleen beschikbaar voor beheerders.</b><p> Het biedt toegang tot diverse
228
+    'info_ajouter_rubrique' => 'Een nieuwe rubriek toevoegen om te beheren:',
229
+    'info_annonce_nouveautes' => 'Aankondiging van nieuwe bijdragen',
230
+    'info_article' => 'artikel',
231
+    'info_article_2' => 'artikelen',
232
+    'info_article_a_paraitre' => 'Te publiceren artikelen met postdatering',
233
+    'info_articles_02' => 'artikelen',
234
+    'info_articles_2' => 'Artikelen',
235
+    'info_articles_auteur' => 'Artikelen van deze auteur',
236
+    'info_articles_miens' => 'Mijn artikelen',
237
+    'info_articles_tous' => 'Alle artikelen',
238
+    'info_articles_trouves' => 'Gevonden artikelen',
239
+    'info_attente_validation' => 'Je artikelen die op goedkeuring wachten',
240
+    'info_aucun_article' => 'Geen artikelen',
241
+    'info_aucun_auteur' => 'Geen auteur',
242
+    'info_aucun_message' => 'Geen bericht',
243
+    'info_aucun_rubrique' => 'Geen rubriek',
244
+    'info_aujourdhui' => 'vandaag:',
245
+    'info_auteur_gere_rubriques' => 'Deze auteur beheert de volgende rubrieken:',
246
+    'info_auteur_gere_toutes_rubriques' => 'Deze auteur beheert <b>alle rubrieken</b>',
247
+    'info_auteur_gere_toutes_rubriques_2' => 'Ik beheer <b>alle rubrieken</b>',
248
+    'info_auteurs' => 'De auteurs',
249
+    'info_auteurs_par_tri' => 'Auteur@partri@',
250
+    'info_auteurs_trouves' => 'Gevonden auteurs',
251
+    'info_authentification_externe' => 'Externe authenticatie',
252
+    'info_avertissement' => 'Waarschuwing',
253
+    'info_barre_outils' => 'met zijn gereedschapsbalk?',
254
+    'info_base_installee' => 'De structuur van je database is geïnstalleerd.',
255
+    'info_bio' => 'biografie',
256
+    'info_cache_desactive' => 'De buffer (cache) is tijdelijk uitgeschakeld.',
257
+    'info_chapeau' => 'Kop',
258
+    'info_chapeau_2' => 'Kop :',
259
+    'info_chemin_acces_1' => 'Opties: <b>Toegang tot het adresboek</b>',
260
+    'info_chemin_acces_2' => 'Je dient de toegang tot de gegevens uit het adresboek in te stellen. Zonder deze instellingen is het ONmogelijk de gebruikersprofielen in dit adresboek te lezen.',
261
+    'info_chemin_acces_annuaire' => 'Opties: <b>Toegang in het adresboek',
262
+    'info_choix_base' => 'Derde stap:',
263
+    'info_classement_1' => '<sup>ste</sup> op @liste@',
264
+    'info_classement_2' => '<sup>de</sup> @liste@',
265
+    'info_code_acces' => 'Vergeet je eigen toegangscode niet!',
266
+    'info_config_suivi' => 'Wanneer dit adres van een distributielijst is, kan je hieronder het adres opgeven waar deelnemers van de site zich kunnen inschrijven. Dit adres kan een URL zijn (het webadres voor het inschrijving op de lijst), of een emailadres met een onderwerp (zoals <tt>@adresse_suivi@?subject=subscribe</tt>):',
267
+    'info_config_suivi_explication' => 'Je kan je op de mailinglijst van deze site inschrijven. Je zal dan via e-mail een aankondiging ontvangen van artikelen en nieuwsflitsen die voor publicatie werden voorgesteld.',
268
+    'info_confirmer_passe' => 'Bevestig het nieuwe wachtwoord:',
269
+    'info_conflit_edition_avis_non_sauvegarde' => 'Let op: de volgende velden werden elders gewijzigd. Jouw wijzigingen op deze velden werden dus niet geregistreerd.',
270
+    'info_conflit_edition_differences' => 'Verschillen :',
271
+    'info_conflit_edition_version_enregistree' => 'De geregistreerde versie :',
272
+    'info_conflit_edition_votre_version' => 'Jouw versie:',
273
+    'info_connexion_base' => 'Proberen op de database aan te sluiten',
274
+    'info_connexion_base_donnee' => 'Aansluiten op je database',
275
+    'info_connexion_ldap_ok' => 'De LDAP-verbinding is gelukt. </b><p>Je kunt doorgaan naar de volgende stap.</p>',
276
+    'info_connexion_mysql' => 'Je SQL verbinding',
277
+    'info_connexion_ok' => 'De verbinding is geslaagd.',
278
+    'info_contact' => 'Contact',
279
+    'info_contenu_articles' => 'Inhoud van de artikelen',
280
+    'info_contributions' => 'Bijdragen',
281
+    'info_creation_paragraphe' => 'Om alinea’s te maken laat je gewoon enkele regels leeg.',
282
+    'info_creation_rubrique' => 'Alvorens artikelen te kunnen schrijven<br /> moet minstens een rubriek worden gemaakt.<br />',
283
+    'info_creation_tables' => 'Aanmaken van tabellen in de database',
284
+    'info_creer_base' => '<b>Creëren</b> een nieuw database:',
285
+    'info_dans_rubrique' => 'In de rubriek:',
286
+    'info_date_publication_anterieure' => 'Datum van eerdere redactie:',
287
+    'info_date_referencement' => 'DATUM VAN DE KOPPELING VAN DEZE SITE:',
288
+    'info_derniere_etape' => 'Klaar!',
289
+    'info_descriptif' => 'Beschrijving:',
290
+    'info_desinstaller_plugin' => 'verwijdert de gegevens en deactiveert de plugin',
291
+    'info_discussion_cours' => 'Lopende discussies',
292
+    'info_ecrire_article' => 'Alvorens een artikel te kunnen schrijven, dien je minimaal één rubriek aan te maken.',
293
+    'info_email_envoi' => 'Verzendadres (optioneel)',
294
+    'info_email_envoi_txt' => 'Geef hieronder het adres op dat gebruikt wordt voor het versturen van e-mails. (Standaard wordt het adres van de geadresseerde als verzendadres gebruikt.):',
295
+    'info_email_webmestre' => 'E-mailadres webmaster',
296
+    'info_envoi_email_automatique' => 'Automatisch verzenden van e-mails',
297
+    'info_envoyer_maintenant' => 'Nu versturen',
298
+    'info_etape_suivante' => 'Naar de volgende stap ',
299
+    'info_etape_suivante_1' => 'Je kunt de volgende stap zetten.',
300
+    'info_etape_suivante_2' => 'Je kunt de volgende stap zetten.',
301
+    'info_exceptions_proxy' => 'Uitzonderingen op de proxy',
302
+    'info_exportation_base' => 'Uitvoer van de database naar @archive@',
303
+    'info_facilite_suivi_activite' => 'Om de opvolging en redactie van artikelen te vergemakkelijken, kan SPIP mails versturen -bijvoorbeeld naar een mailinglist van redacteurs- met de aankondiging van vragen voor publicatie of goedgekeurde publicaties.',
304
+    'info_fichiers_authent' => 'Verificatiebestand ".htpasswd"',
305
+    'info_forums_abo_invites' => 'Je site bevat forums met abonnement; bezoekers worden dus op de publieke site verzocht zich in te schrijven.',
306
+    'info_gauche_admin_tech' => '<b>Deze pagina is enkel toegankelijk voor beheerders van de site.</b><p> Ze geeft toegang tot allerlei technische onderhoudstaken. Voor het uitvoeren van sommige taken zijn een afzonderlijke aanmelding en toegang tot je site via FTP nodig.</p>',
307
+    'info_gauche_admin_vider' => '<b>Deze pagina is alleen beschikbaar voor beheerders.</b><p> Het biedt toegang tot diverse
308 308
  technische onderhoudsfuncties. Sommige vereisen een specifiek verificatieproces, dat nodig is voor FTP-toegang tot de website.</p>',
309
-	'info_gauche_auteurs' => 'Je vindt hier alle auteurs van de site.
309
+    'info_gauche_auteurs' => 'Je vindt hier alle auteurs van de site.
310 310
  Hun status is te herkennen aan de kleur van het icoontje (beheerder = groen; redacteur = geel).',
311
-	'info_gauche_auteurs_exterieurs' => 'Externe auteurs, zonder toegang tot de site, zijn aangeduid met een blauw icoontje,
311
+    'info_gauche_auteurs_exterieurs' => 'Externe auteurs, zonder toegang tot de site, zijn aangeduid met een blauw icoontje,
312 312
 gewiste auteurs met een grijze.',
313
-	'info_gauche_messagerie' => 'Het berichtensysteem laat toe om berichten uit te wisselen tussen redacteurs, memo’s (voor persoonlijk gebruik) te bewaren of aankondigingen te tonen op de beginpagina van de privé-ruimte (als je beheerder bent).',
314
-	'info_gauche_statistiques_referers' => 'Deze pagina toont een lijst met <i>referers</i> (sites die een koppeling bevatten naar je eigen site), alleen voor vandaag en gisteren: de lijst wordt elke 24 uur opnieuw aangemaakt.',
315
-	'info_gauche_visiteurs_enregistres' => 'Hier zal je de geregistreerde bezoekers van de
313
+    'info_gauche_messagerie' => 'Het berichtensysteem laat toe om berichten uit te wisselen tussen redacteurs, memo’s (voor persoonlijk gebruik) te bewaren of aankondigingen te tonen op de beginpagina van de privé-ruimte (als je beheerder bent).',
314
+    'info_gauche_statistiques_referers' => 'Deze pagina toont een lijst met <i>referers</i> (sites die een koppeling bevatten naar je eigen site), alleen voor vandaag en gisteren: de lijst wordt elke 24 uur opnieuw aangemaakt.',
315
+    'info_gauche_visiteurs_enregistres' => 'Hier zal je de geregistreerde bezoekers van de
316 316
  publieke site vinden (forums met inschrijving).',
317
-	'info_generation_miniatures_images' => 'Aanmaak van miniatuurafbeeldingen',
318
-	'info_gerer_trad_objets' => '@objets@: het beheer van de vertalingskoppelingen',
319
-	'info_hebergeur_desactiver_envoi_email' => 'Sommige hostingbedrijven staan het automatisch versturen van e-mails via hun servers niet toe. In dat geval zal de volgende functionaliteit van SPIP niet werken.',
320
-	'info_hier' => 'gisteren:',
321
-	'info_identification_publique' => 'Je publieke identiteit...',
322
-	'info_image_process' => 'Kies de beste methode om een miniatuurafbeelding te maken door op de bijhorende afbeelding te klikken.',
323
-	'info_image_process2' => 'Wanneer geen enkel beeld wordt getoond, betekent dit dat de server van je website niet is ingesteld om deze tools te gebruiken. Als je van deze functies gebruik wil maken, dien je de technische verantwoordelijke van de server te contacteren en te vragen naar «GD» of «Imagick» extensies.',
324
-	'info_images_auto' => 'Beelden automatisch berekend',
325
-	'info_informations_personnelles' => 'Persoonlijke gegevens',
326
-	'info_inscription' => 'Ingeschreven op',
327
-	'info_inscription_automatique' => 'Automatische inschrijving van nieuwe redacteurs',
328
-	'info_jeu_caractere' => 'Tekenset van de site',
329
-	'info_jours' => 'dagen',
330
-	'info_laisser_champs_vides' => 'velden leeglaten)',
331
-	'info_langues' => 'Talen van de site',
332
-	'info_ldap_ok' => 'De LDAP-autentificatie is geïnstalleerd',
333
-	'info_lien_hypertexte' => 'Hypertekst koppeling:',
334
-	'info_liste_nouveautes_envoyee' => 'Het lijst met nieuwe bijdragen werd verstuurd',
335
-	'info_liste_redacteurs_connectes' => 'Lijst met online redacteuren',
336
-	'info_login_existant' => 'Deze login is reeds in gebruik',
337
-	'info_login_trop_court' => 'Login te kort.',
338
-	'info_login_trop_court_car_pluriel' => 'De login moet minstens @nb@ teken bevatten.',
339
-	'info_logos' => 'De logo’s',
340
-	'info_maximum' => 'maximum:',
341
-	'info_meme_rubrique' => 'In dezelfde rubriek',
342
-	'info_message_en_redaction' => 'Je berichten in redactie',
343
-	'info_message_technique' => 'Technisch bericht:',
344
-	'info_messagerie_interne' => 'Intern berichtensysteem',
345
-	'info_mise_a_niveau_base' => 'update van je SQL-database',
346
-	'info_mise_a_niveau_base_2' => '{{LET OP!}} Je hebt een SPIP-versie geïnstalleerd die {ouder} is dan diegene die zich eerder op deze site bevond.: je database loopt hierdoor het risico beschadigd te worden waardoor je site niet meer zal functioneren.<br />{{Herinstalleer de SPIP-bestanden.}}',
347
-	'info_modification_enregistree' => 'Je wijziging werd geregistreerd',
348
-	'info_modifier_auteur' => 'De auteur wijzigen:',
349
-	'info_modifier_rubrique' => 'De rubriek wijzigen:',
350
-	'info_modifier_titre' => 'Wijzigen: @titre@',
351
-	'info_mon_site_spip' => 'Mijn SPIP-site',
352
-	'info_moyenne' => 'gemiddeld:',
353
-	'info_multi_cet_article' => 'Gebruikte taal in dit artikel is:',
354
-	'info_multi_langues_choisies' => 'Kies hierna welke talen ter beschikking staan van de redacteurs van je site.
317
+    'info_generation_miniatures_images' => 'Aanmaak van miniatuurafbeeldingen',
318
+    'info_gerer_trad_objets' => '@objets@: het beheer van de vertalingskoppelingen',
319
+    'info_hebergeur_desactiver_envoi_email' => 'Sommige hostingbedrijven staan het automatisch versturen van e-mails via hun servers niet toe. In dat geval zal de volgende functionaliteit van SPIP niet werken.',
320
+    'info_hier' => 'gisteren:',
321
+    'info_identification_publique' => 'Je publieke identiteit...',
322
+    'info_image_process' => 'Kies de beste methode om een miniatuurafbeelding te maken door op de bijhorende afbeelding te klikken.',
323
+    'info_image_process2' => 'Wanneer geen enkel beeld wordt getoond, betekent dit dat de server van je website niet is ingesteld om deze tools te gebruiken. Als je van deze functies gebruik wil maken, dien je de technische verantwoordelijke van de server te contacteren en te vragen naar «GD» of «Imagick» extensies.',
324
+    'info_images_auto' => 'Beelden automatisch berekend',
325
+    'info_informations_personnelles' => 'Persoonlijke gegevens',
326
+    'info_inscription' => 'Ingeschreven op',
327
+    'info_inscription_automatique' => 'Automatische inschrijving van nieuwe redacteurs',
328
+    'info_jeu_caractere' => 'Tekenset van de site',
329
+    'info_jours' => 'dagen',
330
+    'info_laisser_champs_vides' => 'velden leeglaten)',
331
+    'info_langues' => 'Talen van de site',
332
+    'info_ldap_ok' => 'De LDAP-autentificatie is geïnstalleerd',
333
+    'info_lien_hypertexte' => 'Hypertekst koppeling:',
334
+    'info_liste_nouveautes_envoyee' => 'Het lijst met nieuwe bijdragen werd verstuurd',
335
+    'info_liste_redacteurs_connectes' => 'Lijst met online redacteuren',
336
+    'info_login_existant' => 'Deze login is reeds in gebruik',
337
+    'info_login_trop_court' => 'Login te kort.',
338
+    'info_login_trop_court_car_pluriel' => 'De login moet minstens @nb@ teken bevatten.',
339
+    'info_logos' => 'De logo’s',
340
+    'info_maximum' => 'maximum:',
341
+    'info_meme_rubrique' => 'In dezelfde rubriek',
342
+    'info_message_en_redaction' => 'Je berichten in redactie',
343
+    'info_message_technique' => 'Technisch bericht:',
344
+    'info_messagerie_interne' => 'Intern berichtensysteem',
345
+    'info_mise_a_niveau_base' => 'update van je SQL-database',
346
+    'info_mise_a_niveau_base_2' => '{{LET OP!}} Je hebt een SPIP-versie geïnstalleerd die {ouder} is dan diegene die zich eerder op deze site bevond.: je database loopt hierdoor het risico beschadigd te worden waardoor je site niet meer zal functioneren.<br />{{Herinstalleer de SPIP-bestanden.}}',
347
+    'info_modification_enregistree' => 'Je wijziging werd geregistreerd',
348
+    'info_modifier_auteur' => 'De auteur wijzigen:',
349
+    'info_modifier_rubrique' => 'De rubriek wijzigen:',
350
+    'info_modifier_titre' => 'Wijzigen: @titre@',
351
+    'info_mon_site_spip' => 'Mijn SPIP-site',
352
+    'info_moyenne' => 'gemiddeld:',
353
+    'info_multi_cet_article' => 'Gebruikte taal in dit artikel is:',
354
+    'info_multi_langues_choisies' => 'Kies hierna welke talen ter beschikking staan van de redacteurs van je site.
355 355
   Talen die al worden gebruikt (vooraan in de lijst getoond) kunnen niet geschrapt worden.
356 356
 ',
357
-	'info_multi_objets' => '@objets@ : Activeer de taalmenu',
358
-	'info_multi_secteurs' => '... enkel voor de hoofdrubrieken?',
359
-	'info_nb_articles' => '@nb@ artikelen',
360
-	'info_nb_auteurs' => '@nb@ auteurs',
361
-	'info_nb_messages' => '@nb@ berichten',
362
-	'info_nb_mots_cles' => '@nb@ trefwoorden',
363
-	'info_nb_rubriques' => '@nb@ rubrieken',
364
-	'info_nb_visiteurs' => '@nb@ bezoekers',
365
-	'info_nom' => 'Naam',
366
-	'info_nom_destinataire' => 'Naam van de geadresseerde',
367
-	'info_nom_pas_conforme' => 'HTML bakens zijn niet toegestaan',
368
-	'info_nom_site' => 'Naam van je site',
369
-	'info_nombre_articles' => '@nb_articles@ artikelen,',
370
-	'info_nombre_rubriques' => '@nb_rubriques@ rubrieken, ',
371
-	'info_nombre_sites' => '@nb_sites@ sites,',
372
-	'info_non_deplacer' => 'Niet verplaatsen...',
373
-	'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP kan regelmatig een bericht versturen om de laatste  nieuwtjes van de site te melden
357
+    'info_multi_objets' => '@objets@ : Activeer de taalmenu',
358
+    'info_multi_secteurs' => '... enkel voor de hoofdrubrieken?',
359
+    'info_nb_articles' => '@nb@ artikelen',
360
+    'info_nb_auteurs' => '@nb@ auteurs',
361
+    'info_nb_messages' => '@nb@ berichten',
362
+    'info_nb_mots_cles' => '@nb@ trefwoorden',
363
+    'info_nb_rubriques' => '@nb@ rubrieken',
364
+    'info_nb_visiteurs' => '@nb@ bezoekers',
365
+    'info_nom' => 'Naam',
366
+    'info_nom_destinataire' => 'Naam van de geadresseerde',
367
+    'info_nom_pas_conforme' => 'HTML bakens zijn niet toegestaan',
368
+    'info_nom_site' => 'Naam van je site',
369
+    'info_nombre_articles' => '@nb_articles@ artikelen,',
370
+    'info_nombre_rubriques' => '@nb_rubriques@ rubrieken, ',
371
+    'info_nombre_sites' => '@nb_sites@ sites,',
372
+    'info_non_deplacer' => 'Niet verplaatsen...',
373
+    'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP kan regelmatig een bericht versturen om de laatste  nieuwtjes van de site te melden
374 374
    (recent gepubliceerde artikelen en nieuwsflitsen).',
375
-	'info_non_envoi_liste_nouveautes' => 'De lijst met nieuwe bijdragen niet versturen',
376
-	'info_non_modifiable' => 'kan niet gewijzigd worden',
377
-	'info_non_suppression_mot_cle' => 'ik wil dit trefwoord niet verwijderen.',
378
-	'info_notes' => 'Voetnoot',
379
-	'info_nouvel_article' => 'Nieuw artikel',
380
-	'info_nouvelle_traduction' => 'Nieuwe vertaling :',
381
-	'info_numero_article' => 'ARTIKEL NUMMER:',
382
-	'info_obligatoire_02' => '(verplicht)', # MODIF
383
-	'info_option_accepter_visiteurs' => 'Inschrijving van bezoekers van de publieke site aanvaarden',
384
-	'info_option_ne_pas_accepter_visiteurs' => 'Inschrijving van bezoekers weigeren',
385
-	'info_options_avancees' => 'GEAVANCEERDE OPTIES',
386
-	'info_ou' => 'of...',
387
-	'info_page_interdite' => 'Verboden pagina',
388
-	'info_par_nom' => 'op naam',
389
-	'info_par_nombre_article' => 'volgens aantal artikelen',
390
-	'info_par_statut' => 'op status',
391
-	'info_par_tri' => '’(per @tri@)’',
392
-	'info_passe_trop_court' => 'Te kort wachtwoord.',
393
-	'info_passe_trop_court_car_pluriel' => 'Het wachtwoord moet ten minste @nb@ teken bevatten.',
394
-	'info_passes_identiques' => 'Beide wachtwoorden zijn niet identiek.',
395
-	'info_plus_cinq_car' => 'Meer dan 5 karakters',
396
-	'info_plus_cinq_car_2' => '(Meer dan 5 karakters)',
397
-	'info_plus_trois_car' => '(Meer dan 3 karakters)',
398
-	'info_popularite' => 'populariteit: @popularite@; bezoeken: @visites@',
399
-	'info_post_scriptum' => 'Post-Scriptum',
400
-	'info_post_scriptum_2' => 'Post-scriptum:',
401
-	'info_pour' => 'voor',
402
-	'info_preview_texte' => 'Nu is het ook mogelijk om de site in preview mode te zien, alsof alle artikelen en berichten (indien ze tenminste werden « voorgesteld voor publicatie ») ook echt waren gepubliceerd. Dient deze mogelijkheid uitsluitend te worden voorzien voor de beheerders, voor alle redacteurs of voor niemand?',
403
-	'info_procedez_par_etape' => 'vervolg stap voor stap',
404
-	'info_procedure_maj_version' => 'de procedure voor de update die nodig is om de database aan te passen aan de nieuwe versie van SPIP.',
405
-	'info_proxy_ok' => 'Test van proxy geslaagde.',
406
-	'info_ps' => 'N.B.',
407
-	'info_publier' => 'publiceren',
408
-	'info_publies' => 'Je gepubliceerde artikelen',
409
-	'info_question_accepter_visiteurs' => 'Als de sjablonen van je site voorzien dat bezoekers zich kunnen registreren zonder toegang tot de privé-ruimte, activeer dan de volgende optie :',
410
-	'info_question_inscription_nouveaux_redacteurs' => 'Aanvaard je inschrijvingen van nieuwe redacteuren vanaf
375
+    'info_non_envoi_liste_nouveautes' => 'De lijst met nieuwe bijdragen niet versturen',
376
+    'info_non_modifiable' => 'kan niet gewijzigd worden',
377
+    'info_non_suppression_mot_cle' => 'ik wil dit trefwoord niet verwijderen.',
378
+    'info_notes' => 'Voetnoot',
379
+    'info_nouvel_article' => 'Nieuw artikel',
380
+    'info_nouvelle_traduction' => 'Nieuwe vertaling :',
381
+    'info_numero_article' => 'ARTIKEL NUMMER:',
382
+    'info_obligatoire_02' => '(verplicht)', # MODIF
383
+    'info_option_accepter_visiteurs' => 'Inschrijving van bezoekers van de publieke site aanvaarden',
384
+    'info_option_ne_pas_accepter_visiteurs' => 'Inschrijving van bezoekers weigeren',
385
+    'info_options_avancees' => 'GEAVANCEERDE OPTIES',
386
+    'info_ou' => 'of...',
387
+    'info_page_interdite' => 'Verboden pagina',
388
+    'info_par_nom' => 'op naam',
389
+    'info_par_nombre_article' => 'volgens aantal artikelen',
390
+    'info_par_statut' => 'op status',
391
+    'info_par_tri' => '’(per @tri@)’',
392
+    'info_passe_trop_court' => 'Te kort wachtwoord.',
393
+    'info_passe_trop_court_car_pluriel' => 'Het wachtwoord moet ten minste @nb@ teken bevatten.',
394
+    'info_passes_identiques' => 'Beide wachtwoorden zijn niet identiek.',
395
+    'info_plus_cinq_car' => 'Meer dan 5 karakters',
396
+    'info_plus_cinq_car_2' => '(Meer dan 5 karakters)',
397
+    'info_plus_trois_car' => '(Meer dan 3 karakters)',
398
+    'info_popularite' => 'populariteit: @popularite@; bezoeken: @visites@',
399
+    'info_post_scriptum' => 'Post-Scriptum',
400
+    'info_post_scriptum_2' => 'Post-scriptum:',
401
+    'info_pour' => 'voor',
402
+    'info_preview_texte' => 'Nu is het ook mogelijk om de site in preview mode te zien, alsof alle artikelen en berichten (indien ze tenminste werden « voorgesteld voor publicatie ») ook echt waren gepubliceerd. Dient deze mogelijkheid uitsluitend te worden voorzien voor de beheerders, voor alle redacteurs of voor niemand?',
403
+    'info_procedez_par_etape' => 'vervolg stap voor stap',
404
+    'info_procedure_maj_version' => 'de procedure voor de update die nodig is om de database aan te passen aan de nieuwe versie van SPIP.',
405
+    'info_proxy_ok' => 'Test van proxy geslaagde.',
406
+    'info_ps' => 'N.B.',
407
+    'info_publier' => 'publiceren',
408
+    'info_publies' => 'Je gepubliceerde artikelen',
409
+    'info_question_accepter_visiteurs' => 'Als de sjablonen van je site voorzien dat bezoekers zich kunnen registreren zonder toegang tot de privé-ruimte, activeer dan de volgende optie :',
410
+    'info_question_inscription_nouveaux_redacteurs' => 'Aanvaard je inschrijvingen van nieuwe redacteuren vanaf
411 411
  de publieke site? Indien wel, dan kunnen bezoekers
412 412
  zich via een geautomatiseerd formulier inschrijven en
413 413
  toegang krijgen tot de privé-ruimte om zelf artikelen
@@ -417,483 +417,483 @@  discard block
 block discarded – undo
417 417
  blokkeren echter het versturen van e-mail vanaf hun
418 418
  servers: in dat geval is een automatische inschrijving
419 419
  niet mogelijk.</div>',
420
-	'info_qui_edite' => '@nom_auteur_modif@ heeft @date_diff@ minuten geleden aan deze inhoud gewerkt ',
421
-	'info_racine_site' => 'Begin van de site',
422
-	'info_recharger_page' => 'Laad deze pagina over enkele ogenblikken opnieuw.',
423
-	'info_recherche_auteur_zero' => 'Geen resultaat voor « @cherche_auteur@ ».',
424
-	'info_recommencer' => 'Probeer nogmaals, alstublieft.',
425
-	'info_redacteur_1' => 'Redacteur',
426
-	'info_redacteur_2' => 'met toegang tot de privé-ruimte (<i>aanbevolen</i>)',
427
-	'info_redacteurs' => 'Redacteurs',
428
-	'info_redaction_en_cours' => 'IN REDACTIE',
429
-	'info_redirection' => 'Doorverwijzing',
430
-	'info_redirection_activee' => 'De doorverwijzing is ingeschakeld.',
431
-	'info_redirection_boucle' => 'Je probeert het artikel naar zichzelf door te verwijzen.',
432
-	'info_redirection_desactivee' => 'De doorverwijzing is verwijderd.',
433
-	'info_refuses' => 'Je geweigerde artikelen',
434
-	'info_reglage_ldap' => 'Opties: <b>Instellen van de LDAP invoer</b>',
435
-	'info_renvoi_article' => '<b>Doorverwijzing.</b> Dit artikel verwijst naar de pagina:',
436
-	'info_reserve_admin' => 'Alleen beheerders kunnen dit adres wijzigen.',
437
-	'info_restreindre_rubrique' => 'Beheer tot deze rubriek beperken:',
438
-	'info_resultat_recherche' => 'Resultaat van de zoekopdracht:',
439
-	'info_rubriques' => 'Rubrieken',
440
-	'info_rubriques_02' => 'rubrieken',
441
-	'info_rubriques_trouvees' => 'Gevonden rubrieken',
442
-	'info_sans_titre' => 'Zonder titel',
443
-	'info_selection_chemin_acces' => '<b>Selecteer</b> hierna de toegangswijze tot het adresboek:',
444
-	'info_signatures' => 'namen',
445
-	'info_site' => 'Site',
446
-	'info_site_2' => 'site:',
447
-	'info_site_min' => 'site',
448
-	'info_site_reference_2' => 'Gekoppelde website',
449
-	'info_site_web' => 'Website:',
450
-	'info_sites' => 'sites',
451
-	'info_sites_lies_mot' => 'Referentiesites gekoppeld aan het trefwoord ',
452
-	'info_sites_proxy' => 'Een proxy gebruiken',
453
-	'info_sites_trouves' => 'Gevonden websites ',
454
-	'info_sous_titre' => 'Ondertitel:',
455
-	'info_statut_administrateur' => 'Beheerder',
456
-	'info_statut_auteur' => 'Status van deze auteur:',
457
-	'info_statut_auteur_2' => 'Ik ben',
458
-	'info_statut_auteur_a_confirmer' => 'Te bevestigen inschrijving',
459
-	'info_statut_auteur_autre' => 'Andere status:',
460
-	'info_statut_redacteur' => 'Redacteur',
461
-	'info_statut_utilisateurs_1' => 'Standaardstatus voor de ingevoerde gebruikers',
462
-	'info_statut_utilisateurs_2' => 'Kies de status die de personen uit het LDAP-adressenboek toebediend krijgen als ze de eerste keer inloggen. Nadien kan je de status van een individuele auteur wijzigen.',
463
-	'info_suivi_activite' => 'Opvolgen van de editoriale activiteit',
464
-	'info_surtitre' => 'Opschrift:',
465
-	'info_syndication_integrale_1' => 'Je site stelt syndicatiebestanden voor (zie « <a href="@url@">@titre@</a> »).',
466
-	'info_syndication_integrale_2' => 'Wil je integrale artikelen doorgeven of enkel een samenvatting van enkele honderden karakters doorgeven ?',
467
-	'info_table_prefix' => 'Je kunt het voorvoegsel van de naam van de databasetabel aanpassen (dit is absoluut noodzakelijk wanneer er verschillende sites in dezelfde database zitten). Dit voorvoegsel schrijf je in kleine letters, zonder accenten of spaties.',
468
-	'info_taille_maximale_images' => 'SPIP zal de maximumomvang van de beelden testen die hij kan behandelen (in miljoenen pixels). <br/> zullen de grotere beelden niet verminderd zijn.',
469
-	'info_taille_maximale_vignette' => 'Maximale grootte van de mini-afbeeldingen gemaakt door het systeem:',
470
-	'info_terminer_installation' => 'Je kan de standaardinstallatieprocedure nu beëindigen.',
471
-	'info_texte' => 'Tekst',
472
-	'info_texte_explicatif' => 'Uitleg',
473
-	'info_texte_long' => '(de tekst is lang: hij zal bijgevolg in verschillende delen verschijnen die opnieuw bij elkaar worden gevoegd na goedkeuring van de tekst.)',
474
-	'info_texte_message' => 'Tekst van je bericht',
475
-	'info_texte_message_02' => 'Tekst van het bericht',
476
-	'info_titre' => 'Titel:',
477
-	'info_total' => 'totaal:',
478
-	'info_tous_articles_en_redaction' => 'Alle artikelen in redactie',
479
-	'info_tous_articles_presents' => 'Alle in deze rubriek gepubliceerde artikelen',
480
-	'info_tous_articles_refuses' => 'Alle afgewezen artikelen',
481
-	'info_tous_les' => 'alle:',
482
-	'info_tout_site' => 'Volledige site',
483
-	'info_tout_site2' => 'Het artikel werd niet in deze taal vertaald.',
484
-	'info_tout_site3' => 'Het artikel werd in deze taal vertaald maar aan het bronartikel werden wijzigingen aangebracht. De vertaling dient geactualiseerd te worden.',
485
-	'info_tout_site4' => 'Het artikel is vertaald naar deze taal en de vertaling is geactualiseerd.',
486
-	'info_tout_site5' => 'Origineel artikel.',
487
-	'info_tout_site6' => '<b>LET OP:</b> alleen de originele artikelen worden getoond.
420
+    'info_qui_edite' => '@nom_auteur_modif@ heeft @date_diff@ minuten geleden aan deze inhoud gewerkt ',
421
+    'info_racine_site' => 'Begin van de site',
422
+    'info_recharger_page' => 'Laad deze pagina over enkele ogenblikken opnieuw.',
423
+    'info_recherche_auteur_zero' => 'Geen resultaat voor « @cherche_auteur@ ».',
424
+    'info_recommencer' => 'Probeer nogmaals, alstublieft.',
425
+    'info_redacteur_1' => 'Redacteur',
426
+    'info_redacteur_2' => 'met toegang tot de privé-ruimte (<i>aanbevolen</i>)',
427
+    'info_redacteurs' => 'Redacteurs',
428
+    'info_redaction_en_cours' => 'IN REDACTIE',
429
+    'info_redirection' => 'Doorverwijzing',
430
+    'info_redirection_activee' => 'De doorverwijzing is ingeschakeld.',
431
+    'info_redirection_boucle' => 'Je probeert het artikel naar zichzelf door te verwijzen.',
432
+    'info_redirection_desactivee' => 'De doorverwijzing is verwijderd.',
433
+    'info_refuses' => 'Je geweigerde artikelen',
434
+    'info_reglage_ldap' => 'Opties: <b>Instellen van de LDAP invoer</b>',
435
+    'info_renvoi_article' => '<b>Doorverwijzing.</b> Dit artikel verwijst naar de pagina:',
436
+    'info_reserve_admin' => 'Alleen beheerders kunnen dit adres wijzigen.',
437
+    'info_restreindre_rubrique' => 'Beheer tot deze rubriek beperken:',
438
+    'info_resultat_recherche' => 'Resultaat van de zoekopdracht:',
439
+    'info_rubriques' => 'Rubrieken',
440
+    'info_rubriques_02' => 'rubrieken',
441
+    'info_rubriques_trouvees' => 'Gevonden rubrieken',
442
+    'info_sans_titre' => 'Zonder titel',
443
+    'info_selection_chemin_acces' => '<b>Selecteer</b> hierna de toegangswijze tot het adresboek:',
444
+    'info_signatures' => 'namen',
445
+    'info_site' => 'Site',
446
+    'info_site_2' => 'site:',
447
+    'info_site_min' => 'site',
448
+    'info_site_reference_2' => 'Gekoppelde website',
449
+    'info_site_web' => 'Website:',
450
+    'info_sites' => 'sites',
451
+    'info_sites_lies_mot' => 'Referentiesites gekoppeld aan het trefwoord ',
452
+    'info_sites_proxy' => 'Een proxy gebruiken',
453
+    'info_sites_trouves' => 'Gevonden websites ',
454
+    'info_sous_titre' => 'Ondertitel:',
455
+    'info_statut_administrateur' => 'Beheerder',
456
+    'info_statut_auteur' => 'Status van deze auteur:',
457
+    'info_statut_auteur_2' => 'Ik ben',
458
+    'info_statut_auteur_a_confirmer' => 'Te bevestigen inschrijving',
459
+    'info_statut_auteur_autre' => 'Andere status:',
460
+    'info_statut_redacteur' => 'Redacteur',
461
+    'info_statut_utilisateurs_1' => 'Standaardstatus voor de ingevoerde gebruikers',
462
+    'info_statut_utilisateurs_2' => 'Kies de status die de personen uit het LDAP-adressenboek toebediend krijgen als ze de eerste keer inloggen. Nadien kan je de status van een individuele auteur wijzigen.',
463
+    'info_suivi_activite' => 'Opvolgen van de editoriale activiteit',
464
+    'info_surtitre' => 'Opschrift:',
465
+    'info_syndication_integrale_1' => 'Je site stelt syndicatiebestanden voor (zie « <a href="@url@">@titre@</a> »).',
466
+    'info_syndication_integrale_2' => 'Wil je integrale artikelen doorgeven of enkel een samenvatting van enkele honderden karakters doorgeven ?',
467
+    'info_table_prefix' => 'Je kunt het voorvoegsel van de naam van de databasetabel aanpassen (dit is absoluut noodzakelijk wanneer er verschillende sites in dezelfde database zitten). Dit voorvoegsel schrijf je in kleine letters, zonder accenten of spaties.',
468
+    'info_taille_maximale_images' => 'SPIP zal de maximumomvang van de beelden testen die hij kan behandelen (in miljoenen pixels). <br/> zullen de grotere beelden niet verminderd zijn.',
469
+    'info_taille_maximale_vignette' => 'Maximale grootte van de mini-afbeeldingen gemaakt door het systeem:',
470
+    'info_terminer_installation' => 'Je kan de standaardinstallatieprocedure nu beëindigen.',
471
+    'info_texte' => 'Tekst',
472
+    'info_texte_explicatif' => 'Uitleg',
473
+    'info_texte_long' => '(de tekst is lang: hij zal bijgevolg in verschillende delen verschijnen die opnieuw bij elkaar worden gevoegd na goedkeuring van de tekst.)',
474
+    'info_texte_message' => 'Tekst van je bericht',
475
+    'info_texte_message_02' => 'Tekst van het bericht',
476
+    'info_titre' => 'Titel:',
477
+    'info_total' => 'totaal:',
478
+    'info_tous_articles_en_redaction' => 'Alle artikelen in redactie',
479
+    'info_tous_articles_presents' => 'Alle in deze rubriek gepubliceerde artikelen',
480
+    'info_tous_articles_refuses' => 'Alle afgewezen artikelen',
481
+    'info_tous_les' => 'alle:',
482
+    'info_tout_site' => 'Volledige site',
483
+    'info_tout_site2' => 'Het artikel werd niet in deze taal vertaald.',
484
+    'info_tout_site3' => 'Het artikel werd in deze taal vertaald maar aan het bronartikel werden wijzigingen aangebracht. De vertaling dient geactualiseerd te worden.',
485
+    'info_tout_site4' => 'Het artikel is vertaald naar deze taal en de vertaling is geactualiseerd.',
486
+    'info_tout_site5' => 'Origineel artikel.',
487
+    'info_tout_site6' => '<b>LET OP:</b> alleen de originele artikelen worden getoond.
488 488
 Vertalingen worden gelinkt aan het origineel,
489 489
 een kleur geeft hun status aan:',
490
-	'info_traductions' => 'Vertalingen',
491
-	'info_travail_colaboratif' => 'Samenwerking op artikelen',
492
-	'info_un_article' => 'een artikel, ',
493
-	'info_un_site' => 'een website, ',
494
-	'info_une_rubrique' => 'een rubriek, ',
495
-	'info_une_rubrique_02' => '1 rubriek',
496
-	'info_url' => 'URL:',
497
-	'info_url_proxy' => 'Proxy-URL',
498
-	'info_url_proxy_pas_conforme' => 'De URL van de proxy is ongeldig.',
499
-	'info_url_site_pas_conforme' => 'De site URL is niet geldig.',
500
-	'info_url_test_proxy' => 'Test-URL',
501
-	'info_urlref' => 'Adres van de koppeling:',
502
-	'info_utilisation_spip' => 'Je kan het publicatiesysteem nu gebruiken...',
503
-	'info_visites_par_mois' => 'Weergave per maand:',
504
-	'info_visiteur_1' => 'Bezoeker',
505
-	'info_visiteur_2' => 'van de publieke site',
506
-	'info_visiteurs' => 'Bezoekers',
507
-	'info_visiteurs_02' => 'Bezoekers van de publieke site',
508
-	'info_webmestre_forces' => 'Webmasters zijn op dit moment gedefinieerd in <tt>@file_options@</tt>.',
509
-	'install_adresse_base_hebergeur' => 'Adres van de database die door de provider wordt toegekend',
510
-	'install_connect_ok' => 'De nieuwe database is gedeclareerd als server @connect@.',
511
-	'install_echec_annonce' => 'De installatie zal wellicht mislukken of leiden tot een niet-werkende site...',
512
-	'install_extension_mbstring' => 'SPIP functioneert niet met:',
513
-	'install_extension_php_obligatoire' => 'SPIP benodigt de PHP-extensie:',
514
-	'install_login_base_hebergeur' => 'Login van aansluiten die door de provider wordt toegekend',
515
-	'install_nom_base_hebergeur' => 'De naam van de database die door de provider wordt toegekend:',
516
-	'install_pas_table' => 'Database momenteel zonder tabellen',
517
-	'install_pass_base_hebergeur' => 'Wachtwoord van aansluiten dat door de provider wordt toegekend',
518
-	'install_php_version' => 'PHP versie @version@ onvoldoende (minimum = @minimum@)',
519
-	'install_select_langue' => 'Kies een taal en klik vervolgens op de knop  «volgende» om de installatie te beginnen.',
520
-	'install_select_type_db' => 'Het type database aangeven:',
521
-	'install_select_type_mysql' => 'MySQL',
522
-	'install_select_type_pg' => 'PostgreSQL',
523
-	'install_select_type_sqlite2' => 'SQLite 2',
524
-	'install_select_type_sqlite3' => 'SQLite 3',
525
-	'install_serveur_hebergeur' => 'Databaseserver die door de provider wordt toegekend',
526
-	'install_table_prefix_hebergeur' => 'Het voorvoegsel van de tabel dat door de provider wordt toegekend:',
527
-	'install_tables_base' => 'Tabellen van de database',
528
-	'install_types_db_connus' => 'SPIP kan <b>MySQL</b> (het meest verbreid), <b>PostgreSQL</b> en <b>SQLite</b> gebruiken.',
529
-	'install_types_db_connus_avertissement' => '<b>PostgreSQL</b>support wordt experimenteel voorgesteld.',
530
-	'instituer_erreur_statut_a_change' => 'De status werd al gewijzigd',
531
-	'instituer_erreur_statut_non_autorise' => 'Je kunt niet kiezen voor deze status',
532
-	'intem_redacteur' => 'redacteur',
533
-	'intitule_licence' => 'Licentie',
534
-	'item_accepter_inscriptions' => 'Inschrijvingen aanvaarden',
535
-	'item_activer_messages_avertissement' => 'Waarschuwingsberichten activeren',
536
-	'item_administrateur_2' => 'beheerder',
537
-	'item_afficher_calendrier' => 'Op de kalender tonen',
538
-	'item_autoriser_syndication_integrale' => 'Volledige artikelen verspreiden via syndicatiebestanden',
539
-	'item_choix_administrateurs' => 'de beheerders',
540
-	'item_choix_generation_miniature' => 'Automatisch aanmaken van verkleinde afbeeldingen.',
541
-	'item_choix_non_generation_miniature' => 'Geen verkleinde afbeeldingen aanmaken.',
542
-	'item_choix_redacteurs' => 'de redacteurs',
543
-	'item_choix_visiteurs' => 'bezoekers van de publieke site',
544
-	'item_creer_fichiers_authent' => 'de .htpasswd bestanden aanmaken',
545
-	'item_login' => 'Login',
546
-	'item_messagerie_agenda' => 'De berichtendienst en de agenda activeren',
547
-	'item_mots_cles_association_articles' => 'aan artikelen',
548
-	'item_mots_cles_association_rubriques' => 'aan rubrieken',
549
-	'item_mots_cles_association_sites' => 'aan gesyndiceerde of gerefereerde sites.',
550
-	'item_non' => 'Nee',
551
-	'item_non_accepter_inscriptions' => 'Geen inschrijvingen aanvaarden',
552
-	'item_non_activer_messages_avertissement' => 'Geen waarschuwingsberichten',
553
-	'item_non_afficher_calendrier' => 'Niet tonen op de kalender',
554
-	'item_non_autoriser_syndication_integrale' => 'Alleen een samenvatting verspreiden',
555
-	'item_non_creer_fichiers_authent' => 'Deze bestanden niet aanmaken',
556
-	'item_non_messagerie_agenda' => 'De berichtendienst en de agenda deactiveren',
557
-	'item_non_publier_articles' => 'Artikelen niet vrijgeven voor de vastgelegde datum van publicatie',
558
-	'item_nouvel_auteur' => 'Nieuwe auteur',
559
-	'item_nouvelle_rubrique' => 'Nieuwe rubriek',
560
-	'item_oui' => 'Ja',
561
-	'item_publier_articles' => 'Artikelen publiceren, ongeacht hun publicatiedatum.',
562
-	'item_reponse_article' => 'Antwoord op artikel',
563
-	'item_visiteur' => 'bezoeker',
490
+    'info_traductions' => 'Vertalingen',
491
+    'info_travail_colaboratif' => 'Samenwerking op artikelen',
492
+    'info_un_article' => 'een artikel, ',
493
+    'info_un_site' => 'een website, ',
494
+    'info_une_rubrique' => 'een rubriek, ',
495
+    'info_une_rubrique_02' => '1 rubriek',
496
+    'info_url' => 'URL:',
497
+    'info_url_proxy' => 'Proxy-URL',
498
+    'info_url_proxy_pas_conforme' => 'De URL van de proxy is ongeldig.',
499
+    'info_url_site_pas_conforme' => 'De site URL is niet geldig.',
500
+    'info_url_test_proxy' => 'Test-URL',
501
+    'info_urlref' => 'Adres van de koppeling:',
502
+    'info_utilisation_spip' => 'Je kan het publicatiesysteem nu gebruiken...',
503
+    'info_visites_par_mois' => 'Weergave per maand:',
504
+    'info_visiteur_1' => 'Bezoeker',
505
+    'info_visiteur_2' => 'van de publieke site',
506
+    'info_visiteurs' => 'Bezoekers',
507
+    'info_visiteurs_02' => 'Bezoekers van de publieke site',
508
+    'info_webmestre_forces' => 'Webmasters zijn op dit moment gedefinieerd in <tt>@file_options@</tt>.',
509
+    'install_adresse_base_hebergeur' => 'Adres van de database die door de provider wordt toegekend',
510
+    'install_connect_ok' => 'De nieuwe database is gedeclareerd als server @connect@.',
511
+    'install_echec_annonce' => 'De installatie zal wellicht mislukken of leiden tot een niet-werkende site...',
512
+    'install_extension_mbstring' => 'SPIP functioneert niet met:',
513
+    'install_extension_php_obligatoire' => 'SPIP benodigt de PHP-extensie:',
514
+    'install_login_base_hebergeur' => 'Login van aansluiten die door de provider wordt toegekend',
515
+    'install_nom_base_hebergeur' => 'De naam van de database die door de provider wordt toegekend:',
516
+    'install_pas_table' => 'Database momenteel zonder tabellen',
517
+    'install_pass_base_hebergeur' => 'Wachtwoord van aansluiten dat door de provider wordt toegekend',
518
+    'install_php_version' => 'PHP versie @version@ onvoldoende (minimum = @minimum@)',
519
+    'install_select_langue' => 'Kies een taal en klik vervolgens op de knop  «volgende» om de installatie te beginnen.',
520
+    'install_select_type_db' => 'Het type database aangeven:',
521
+    'install_select_type_mysql' => 'MySQL',
522
+    'install_select_type_pg' => 'PostgreSQL',
523
+    'install_select_type_sqlite2' => 'SQLite 2',
524
+    'install_select_type_sqlite3' => 'SQLite 3',
525
+    'install_serveur_hebergeur' => 'Databaseserver die door de provider wordt toegekend',
526
+    'install_table_prefix_hebergeur' => 'Het voorvoegsel van de tabel dat door de provider wordt toegekend:',
527
+    'install_tables_base' => 'Tabellen van de database',
528
+    'install_types_db_connus' => 'SPIP kan <b>MySQL</b> (het meest verbreid), <b>PostgreSQL</b> en <b>SQLite</b> gebruiken.',
529
+    'install_types_db_connus_avertissement' => '<b>PostgreSQL</b>support wordt experimenteel voorgesteld.',
530
+    'instituer_erreur_statut_a_change' => 'De status werd al gewijzigd',
531
+    'instituer_erreur_statut_non_autorise' => 'Je kunt niet kiezen voor deze status',
532
+    'intem_redacteur' => 'redacteur',
533
+    'intitule_licence' => 'Licentie',
534
+    'item_accepter_inscriptions' => 'Inschrijvingen aanvaarden',
535
+    'item_activer_messages_avertissement' => 'Waarschuwingsberichten activeren',
536
+    'item_administrateur_2' => 'beheerder',
537
+    'item_afficher_calendrier' => 'Op de kalender tonen',
538
+    'item_autoriser_syndication_integrale' => 'Volledige artikelen verspreiden via syndicatiebestanden',
539
+    'item_choix_administrateurs' => 'de beheerders',
540
+    'item_choix_generation_miniature' => 'Automatisch aanmaken van verkleinde afbeeldingen.',
541
+    'item_choix_non_generation_miniature' => 'Geen verkleinde afbeeldingen aanmaken.',
542
+    'item_choix_redacteurs' => 'de redacteurs',
543
+    'item_choix_visiteurs' => 'bezoekers van de publieke site',
544
+    'item_creer_fichiers_authent' => 'de .htpasswd bestanden aanmaken',
545
+    'item_login' => 'Login',
546
+    'item_messagerie_agenda' => 'De berichtendienst en de agenda activeren',
547
+    'item_mots_cles_association_articles' => 'aan artikelen',
548
+    'item_mots_cles_association_rubriques' => 'aan rubrieken',
549
+    'item_mots_cles_association_sites' => 'aan gesyndiceerde of gerefereerde sites.',
550
+    'item_non' => 'Nee',
551
+    'item_non_accepter_inscriptions' => 'Geen inschrijvingen aanvaarden',
552
+    'item_non_activer_messages_avertissement' => 'Geen waarschuwingsberichten',
553
+    'item_non_afficher_calendrier' => 'Niet tonen op de kalender',
554
+    'item_non_autoriser_syndication_integrale' => 'Alleen een samenvatting verspreiden',
555
+    'item_non_creer_fichiers_authent' => 'Deze bestanden niet aanmaken',
556
+    'item_non_messagerie_agenda' => 'De berichtendienst en de agenda deactiveren',
557
+    'item_non_publier_articles' => 'Artikelen niet vrijgeven voor de vastgelegde datum van publicatie',
558
+    'item_nouvel_auteur' => 'Nieuwe auteur',
559
+    'item_nouvelle_rubrique' => 'Nieuwe rubriek',
560
+    'item_oui' => 'Ja',
561
+    'item_publier_articles' => 'Artikelen publiceren, ongeacht hun publicatiedatum.',
562
+    'item_reponse_article' => 'Antwoord op artikel',
563
+    'item_visiteur' => 'bezoeker',
564 564
 
565
-	// J
566
-	'jour_non_connu_nc' => 'onbekend',
565
+    // J
566
+    'jour_non_connu_nc' => 'onbekend',
567 567
 
568
-	// L
569
-	'label_bando_outils' => 'Knoppenbalk',
570
-	'label_bando_outils_afficher' => 'Knoppenbalk tonen',
571
-	'label_bando_outils_masquer' => 'Knoppenbalk verbergen',
572
-	'label_choix_langue' => 'Selecteer je taal',
573
-	'label_nom_fichier_connect' => 'Geef de naam die wordt gebruikt voor deze server',
574
-	'label_slogan_site' => 'Slogan',
575
-	'label_taille_ecran' => 'Breedte van het scherm',
576
-	'label_texte_et_icones_navigation' => 'Navigatiemenu',
577
-	'label_texte_et_icones_page' => 'Weergave op de pagina',
578
-	'ldap_correspondance' => 'erfenis van het veld @champ@',
579
-	'ldap_correspondance_1' => 'Erfenis van de LDAP velden',
580
-	'ldap_correspondance_2' => 'Voor elk volgend SPIP veld, de naam van het overeenkomstige LDAP veld aangeven. Leeglaten om niets in te vullen, door spaties of komma’s gescheiden om verschillende LDAP velden te proberen.',
581
-	'lien_ajouter_auteur' => 'Voeg deze auteur toe',
582
-	'lien_ajouter_une_rubrique' => 'Deze rubriek toevoegen',
583
-	'lien_email' => 'e-mail',
584
-	'lien_nom_site' => 'NAAM WEBSITE:',
585
-	'lien_rapide_contenu' => 'Naar de inhoud gaan',
586
-	'lien_rapide_navigation' => 'Naar de navigatie gaan',
587
-	'lien_rapide_recherche' => 'Op zoek gaan',
588
-	'lien_retirer_auteur' => 'Auteur verwijderen',
589
-	'lien_retirer_rubrique' => 'Rubriek verwijderen',
590
-	'lien_retirer_tous_auteurs' => 'Verwijder alle auteurs',
591
-	'lien_retirer_toutes_rubriques' => 'Alle rubrieken verwijderen',
592
-	'lien_site' => 'site',
593
-	'lien_tout_decocher' => 'Alles deselecteren',
594
-	'lien_tout_deplier' => 'Alles uitvouwen',
595
-	'lien_tout_replier' => 'Alles opvouwen',
596
-	'lien_tout_supprimer' => 'Alles verwijderen',
597
-	'lien_trier_nom' => 'Sorteer op naam',
598
-	'lien_trier_nombre_articles' => 'Sorteer op aantal artikelen',
599
-	'lien_trier_statut' => 'Sorteer op status',
600
-	'lien_voir_en_ligne' => 'ONLINE BEKIJKEN:',
601
-	'logo_article' => 'Logo van het artikel',
602
-	'logo_auteur' => 'Logo van de auteur',
603
-	'logo_rubrique' => 'Logo van de rubriek ',
604
-	'logo_site' => 'Logo van deze site',
605
-	'logo_standard_rubrique' => 'Standaard logo rubrieken',
606
-	'logo_survol' => 'Logo voor rollover',
568
+    // L
569
+    'label_bando_outils' => 'Knoppenbalk',
570
+    'label_bando_outils_afficher' => 'Knoppenbalk tonen',
571
+    'label_bando_outils_masquer' => 'Knoppenbalk verbergen',
572
+    'label_choix_langue' => 'Selecteer je taal',
573
+    'label_nom_fichier_connect' => 'Geef de naam die wordt gebruikt voor deze server',
574
+    'label_slogan_site' => 'Slogan',
575
+    'label_taille_ecran' => 'Breedte van het scherm',
576
+    'label_texte_et_icones_navigation' => 'Navigatiemenu',
577
+    'label_texte_et_icones_page' => 'Weergave op de pagina',
578
+    'ldap_correspondance' => 'erfenis van het veld @champ@',
579
+    'ldap_correspondance_1' => 'Erfenis van de LDAP velden',
580
+    'ldap_correspondance_2' => 'Voor elk volgend SPIP veld, de naam van het overeenkomstige LDAP veld aangeven. Leeglaten om niets in te vullen, door spaties of komma’s gescheiden om verschillende LDAP velden te proberen.',
581
+    'lien_ajouter_auteur' => 'Voeg deze auteur toe',
582
+    'lien_ajouter_une_rubrique' => 'Deze rubriek toevoegen',
583
+    'lien_email' => 'e-mail',
584
+    'lien_nom_site' => 'NAAM WEBSITE:',
585
+    'lien_rapide_contenu' => 'Naar de inhoud gaan',
586
+    'lien_rapide_navigation' => 'Naar de navigatie gaan',
587
+    'lien_rapide_recherche' => 'Op zoek gaan',
588
+    'lien_retirer_auteur' => 'Auteur verwijderen',
589
+    'lien_retirer_rubrique' => 'Rubriek verwijderen',
590
+    'lien_retirer_tous_auteurs' => 'Verwijder alle auteurs',
591
+    'lien_retirer_toutes_rubriques' => 'Alle rubrieken verwijderen',
592
+    'lien_site' => 'site',
593
+    'lien_tout_decocher' => 'Alles deselecteren',
594
+    'lien_tout_deplier' => 'Alles uitvouwen',
595
+    'lien_tout_replier' => 'Alles opvouwen',
596
+    'lien_tout_supprimer' => 'Alles verwijderen',
597
+    'lien_trier_nom' => 'Sorteer op naam',
598
+    'lien_trier_nombre_articles' => 'Sorteer op aantal artikelen',
599
+    'lien_trier_statut' => 'Sorteer op status',
600
+    'lien_voir_en_ligne' => 'ONLINE BEKIJKEN:',
601
+    'logo_article' => 'Logo van het artikel',
602
+    'logo_auteur' => 'Logo van de auteur',
603
+    'logo_rubrique' => 'Logo van de rubriek ',
604
+    'logo_site' => 'Logo van deze site',
605
+    'logo_standard_rubrique' => 'Standaard logo rubrieken',
606
+    'logo_survol' => 'Logo voor rollover',
607 607
 
608
-	// M
609
-	'menu_aide_installation_choix_base' => 'Database kiezen',
610
-	'module_fichier_langue' => 'Taalbestand',
611
-	'module_raccourci' => 'Snelkoppeling',
612
-	'module_texte_affiche' => 'Weergegeven tekst',
613
-	'module_texte_explicatif' => 'Je kan de volgende snelkoppelingen invoegen in de skeletten van je publieke site. Ze worden automatisch vertaald in de verschillende talen waarvoor een taalbestand is aangemaakt.',
614
-	'module_texte_traduction' => 'Het taalbestand « @module@ » is beschikbaar in het:',
615
-	'mois_non_connu' => 'Onbekend',
608
+    // M
609
+    'menu_aide_installation_choix_base' => 'Database kiezen',
610
+    'module_fichier_langue' => 'Taalbestand',
611
+    'module_raccourci' => 'Snelkoppeling',
612
+    'module_texte_affiche' => 'Weergegeven tekst',
613
+    'module_texte_explicatif' => 'Je kan de volgende snelkoppelingen invoegen in de skeletten van je publieke site. Ze worden automatisch vertaald in de verschillende talen waarvoor een taalbestand is aangemaakt.',
614
+    'module_texte_traduction' => 'Het taalbestand « @module@ » is beschikbaar in het:',
615
+    'mois_non_connu' => 'Onbekend',
616 616
 
617
-	// N
618
-	'nouvelle_version_spip' => 'Versie @version@ van SPIP is beschikbaar',
619
-	'nouvelle_version_spip_majeure' => 'Een nieuwe versie van SPIP @version@ is beschikbaar',
617
+    // N
618
+    'nouvelle_version_spip' => 'Versie @version@ van SPIP is beschikbaar',
619
+    'nouvelle_version_spip_majeure' => 'Een nieuwe versie van SPIP @version@ is beschikbaar',
620 620
 
621
-	// O
622
-	'onglet_contenu' => 'Inhoud',
623
-	'onglet_declarer_une_autre_base' => 'Een andere database declareren',
624
-	'onglet_discuter' => 'Discussiëren',
625
-	'onglet_interactivite' => 'Interactiviteit',
626
-	'onglet_proprietes' => 'Eigendommen',
627
-	'onglet_repartition_actuelle' => 'nu',
628
-	'onglet_sous_rubriques' => 'Subrubrieken',
621
+    // O
622
+    'onglet_contenu' => 'Inhoud',
623
+    'onglet_declarer_une_autre_base' => 'Een andere database declareren',
624
+    'onglet_discuter' => 'Discussiëren',
625
+    'onglet_interactivite' => 'Interactiviteit',
626
+    'onglet_proprietes' => 'Eigendommen',
627
+    'onglet_repartition_actuelle' => 'nu',
628
+    'onglet_sous_rubriques' => 'Subrubrieken',
629 629
 
630
-	// P
631
-	'page_pas_proxy' => 'Deze bladzijde moet niet via proxy gaan',
632
-	'pas_de_proxy_pour' => 'Geef desnoods de machines of gebieden aan waarvoor deze proxy niet van toepassing moet zijn (bijvoorbeeld: @exemple@)',
633
-	'phpinfo' => 'PHP Configuratie',
634
-	'plugin_charge_paquet' => 'Inladen van het pakket @name@',
635
-	'plugin_charger' => 'Download',
636
-	'plugin_erreur_charger' => 'fout: onmogelijk om @zip@ te laden',
637
-	'plugin_erreur_droit1' => 'Er kan niet worden geschreven naar <code>@dest@</code>.',
638
-	'plugin_erreur_droit2' => 'Controleer de rechten op deze map (en maak hem eventueel aan), of plaats de bestanden via FTP.',
639
-	'plugin_erreur_zip' => 'pclzip fout: fout @status@',
640
-	'plugin_etat_developpement' => 'in ontwikkeling',
641
-	'plugin_etat_experimental' => 'experimenteel',
642
-	'plugin_etat_stable' => 'stabiel',
643
-	'plugin_etat_test' => 'in test',
644
-	'plugin_impossible_activer' => 'Onmogelijk om plugin @plugin@ te activeren',
645
-	'plugin_info_automatique1' => 'Als je de automatische installatie van plugins wilt toelaten, moet je:',
646
-	'plugin_info_automatique1_lib' => 'Als je de automatische installatie van deze bibliotheek toe wilt laten:',
647
-	'plugin_info_automatique2' => 'een lijst <code>@rep@</code> aanmaken;',
648
-	'plugin_info_automatique3' => 'controleren dat de server het recht heeft om in deze map te schrijven.',
649
-	'plugin_info_automatique_creer' => 'om in de siteroot te creëren.',
650
-	'plugin_info_automatique_exemples' => 'voorbeelden:',
651
-	'plugin_info_automatique_ftp' => 'Je kunt een plugin met FTP in de map <tt>@rep@</tt> plaatsen',
652
-	'plugin_info_automatique_lib' => 'Sommige plugins vragen eveneens om bestanden in map <code>lib/</code> te kunnen downloaden, die in de root van de site moet bestaan.',
653
-	'plugin_info_automatique_liste' => 'Je lijst van plugins:',
654
-	'plugin_info_automatique_liste_officielle' => 'officiële plugins',
655
-	'plugin_info_automatique_liste_update' => 'De lijsten bijwerken',
656
-	'plugin_info_automatique_ou' => 'om...',
657
-	'plugin_info_automatique_select' => 'Selecteert hieronder een plugin: SPIP zal hem downloaden en in map <code>@rep@</code> plaatsen; als de plugin al bestaat, zal hij worden bijgewerkt.',
658
-	'plugin_info_credit' => 'Credits',
659
-	'plugin_info_erreur_xml' => 'De declaratie van deze plugin is onjuist',
660
-	'plugin_info_install_ok' => 'Succesvolle installatie',
661
-	'plugin_info_necessite' => 'Benodigd:',
662
-	'plugin_info_non_compatible_spip' => 'Deze plugin is niet compatibel met deze versie van SPIP',
663
-	'plugin_info_plugins_dist_1' => 'De onderstaande plugins zijn geladen en geactiveerd in de directory @plugins_dist@.', # extensies zijn speciaale plugins geleeverd met spip-core om een gebruikbare SPIP pakket te bouwen
664
-	'plugin_info_plugins_dist_2' => 'Ze zijn niet te deactiveren.',
665
-	'plugin_info_telecharger' => 'om vanaf @url@ te downloaden en te plaatsen in @rep@',
666
-	'plugin_info_upgrade_ok' => ' Update geslaagd',
667
-	'plugin_librairies_installees' => 'Geïnstalleerde bibliotheken',
668
-	'plugin_necessite_extension_php' => 'De PHP-extensie @plugin@ is benodigd in versie @version@.',
669
-	'plugin_necessite_extension_php_sans_version' => 'Benodigde PHP-extensie: @plugin@',
670
-	'plugin_necessite_lib' => 'Deze plugin vereist de library @lib@',
671
-	'plugin_necessite_php' => 'Vereist @plugin@ in versie @version@.',
672
-	'plugin_necessite_plugin' => 'Vereist plugin @plugin@ met minimale versie @version@.',
673
-	'plugin_necessite_plugin_sans_version' => 'Vereist plugin @plugin@ ',
674
-	'plugin_necessite_spip' => 'Vereist SPIP in minimale versie @version@.',
675
-	'plugin_source' => 'bron: ',
676
-	'plugin_titre_automatique' => 'Automatische installatie',
677
-	'plugin_titre_automatique_ajouter' => 'Een plugin toevoegen',
678
-	'plugin_titre_installation' => 'Het installeren van plugin @plugin@',
679
-	'plugin_titre_modifier' => 'Mijn plugins',
680
-	'plugin_utilise_extension_php' => 'Gebruik de PHP-extensie @plugin@ in versie @version@.', # MODIF
681
-	'plugin_utilise_php' => 'Gebruikt @plugin@ in versie @version@.', # MODIF
682
-	'plugin_utilise_plugin' => 'Gebruikt plugin @plugin@ met versie @version@.', # MODIF
683
-	'plugin_zip_active' => 'Gaat door om het te activeren',
684
-	'plugin_zip_adresse' => 'geef hieronder het adres van een zipbestand om de plugin te downloaden, of het adres van een lijst van plugins.',
685
-	'plugin_zip_adresse_champ' => 'Adres van plugin of van de lijst ',
686
-	'plugin_zip_content' => 'Hij bevat de volgende bestanden (@taille@), <br/>klaar om in de map <code>@rep@</code> te worden geplaatst',
687
-	'plugin_zip_installe_finie' => 'Het bestand @zip@ is geunzipt en werd geplaatst.',
688
-	'plugin_zip_installe_rep_finie' => 'Het bestand @zip@ is geunzipt en werd in de map @rep@ geplaatst',
689
-	'plugin_zip_installer' => 'Je kunt hem nu installeren.',
690
-	'plugin_zip_telecharge' => 'Het bestand @zip@ werd geladen',
691
-	'plugins_actif_aucun' => 'Geen plugins ingeschakeld.',
692
-	'plugins_actif_un' => 'Eén plugin is ingeschakeld.',
693
-	'plugins_actifs' => '@count@ plugins activeren.',
694
-	'plugins_actifs_liste' => 'Actief',
695
-	'plugins_compte' => '@count@ plugins',
696
-	'plugins_disponible_un' => 'Eén plugin beschikbaar.',
697
-	'plugins_disponibles' => '@count@ plugins beschikbaar.',
698
-	'plugins_erreur' => 'De fout in plugins: @plugins@',
699
-	'plugins_liste' => 'Lijst van plugins',
700
-	'plugins_liste_dist' => 'Vergrendelde plugins', # "locked" in english
701
-	'plugins_recents' => 'Recente plugins.',
702
-	'plugins_tous_liste' => 'Alle',
703
-	'plugins_vue_hierarchie' => 'Hiërarchie',
704
-	'plugins_vue_liste' => 'Lijst',
705
-	'protocole_ldap' => 'De versie van het protocol:',
630
+    // P
631
+    'page_pas_proxy' => 'Deze bladzijde moet niet via proxy gaan',
632
+    'pas_de_proxy_pour' => 'Geef desnoods de machines of gebieden aan waarvoor deze proxy niet van toepassing moet zijn (bijvoorbeeld: @exemple@)',
633
+    'phpinfo' => 'PHP Configuratie',
634
+    'plugin_charge_paquet' => 'Inladen van het pakket @name@',
635
+    'plugin_charger' => 'Download',
636
+    'plugin_erreur_charger' => 'fout: onmogelijk om @zip@ te laden',
637
+    'plugin_erreur_droit1' => 'Er kan niet worden geschreven naar <code>@dest@</code>.',
638
+    'plugin_erreur_droit2' => 'Controleer de rechten op deze map (en maak hem eventueel aan), of plaats de bestanden via FTP.',
639
+    'plugin_erreur_zip' => 'pclzip fout: fout @status@',
640
+    'plugin_etat_developpement' => 'in ontwikkeling',
641
+    'plugin_etat_experimental' => 'experimenteel',
642
+    'plugin_etat_stable' => 'stabiel',
643
+    'plugin_etat_test' => 'in test',
644
+    'plugin_impossible_activer' => 'Onmogelijk om plugin @plugin@ te activeren',
645
+    'plugin_info_automatique1' => 'Als je de automatische installatie van plugins wilt toelaten, moet je:',
646
+    'plugin_info_automatique1_lib' => 'Als je de automatische installatie van deze bibliotheek toe wilt laten:',
647
+    'plugin_info_automatique2' => 'een lijst <code>@rep@</code> aanmaken;',
648
+    'plugin_info_automatique3' => 'controleren dat de server het recht heeft om in deze map te schrijven.',
649
+    'plugin_info_automatique_creer' => 'om in de siteroot te creëren.',
650
+    'plugin_info_automatique_exemples' => 'voorbeelden:',
651
+    'plugin_info_automatique_ftp' => 'Je kunt een plugin met FTP in de map <tt>@rep@</tt> plaatsen',
652
+    'plugin_info_automatique_lib' => 'Sommige plugins vragen eveneens om bestanden in map <code>lib/</code> te kunnen downloaden, die in de root van de site moet bestaan.',
653
+    'plugin_info_automatique_liste' => 'Je lijst van plugins:',
654
+    'plugin_info_automatique_liste_officielle' => 'officiële plugins',
655
+    'plugin_info_automatique_liste_update' => 'De lijsten bijwerken',
656
+    'plugin_info_automatique_ou' => 'om...',
657
+    'plugin_info_automatique_select' => 'Selecteert hieronder een plugin: SPIP zal hem downloaden en in map <code>@rep@</code> plaatsen; als de plugin al bestaat, zal hij worden bijgewerkt.',
658
+    'plugin_info_credit' => 'Credits',
659
+    'plugin_info_erreur_xml' => 'De declaratie van deze plugin is onjuist',
660
+    'plugin_info_install_ok' => 'Succesvolle installatie',
661
+    'plugin_info_necessite' => 'Benodigd:',
662
+    'plugin_info_non_compatible_spip' => 'Deze plugin is niet compatibel met deze versie van SPIP',
663
+    'plugin_info_plugins_dist_1' => 'De onderstaande plugins zijn geladen en geactiveerd in de directory @plugins_dist@.', # extensies zijn speciaale plugins geleeverd met spip-core om een gebruikbare SPIP pakket te bouwen
664
+    'plugin_info_plugins_dist_2' => 'Ze zijn niet te deactiveren.',
665
+    'plugin_info_telecharger' => 'om vanaf @url@ te downloaden en te plaatsen in @rep@',
666
+    'plugin_info_upgrade_ok' => ' Update geslaagd',
667
+    'plugin_librairies_installees' => 'Geïnstalleerde bibliotheken',
668
+    'plugin_necessite_extension_php' => 'De PHP-extensie @plugin@ is benodigd in versie @version@.',
669
+    'plugin_necessite_extension_php_sans_version' => 'Benodigde PHP-extensie: @plugin@',
670
+    'plugin_necessite_lib' => 'Deze plugin vereist de library @lib@',
671
+    'plugin_necessite_php' => 'Vereist @plugin@ in versie @version@.',
672
+    'plugin_necessite_plugin' => 'Vereist plugin @plugin@ met minimale versie @version@.',
673
+    'plugin_necessite_plugin_sans_version' => 'Vereist plugin @plugin@ ',
674
+    'plugin_necessite_spip' => 'Vereist SPIP in minimale versie @version@.',
675
+    'plugin_source' => 'bron: ',
676
+    'plugin_titre_automatique' => 'Automatische installatie',
677
+    'plugin_titre_automatique_ajouter' => 'Een plugin toevoegen',
678
+    'plugin_titre_installation' => 'Het installeren van plugin @plugin@',
679
+    'plugin_titre_modifier' => 'Mijn plugins',
680
+    'plugin_utilise_extension_php' => 'Gebruik de PHP-extensie @plugin@ in versie @version@.', # MODIF
681
+    'plugin_utilise_php' => 'Gebruikt @plugin@ in versie @version@.', # MODIF
682
+    'plugin_utilise_plugin' => 'Gebruikt plugin @plugin@ met versie @version@.', # MODIF
683
+    'plugin_zip_active' => 'Gaat door om het te activeren',
684
+    'plugin_zip_adresse' => 'geef hieronder het adres van een zipbestand om de plugin te downloaden, of het adres van een lijst van plugins.',
685
+    'plugin_zip_adresse_champ' => 'Adres van plugin of van de lijst ',
686
+    'plugin_zip_content' => 'Hij bevat de volgende bestanden (@taille@), <br/>klaar om in de map <code>@rep@</code> te worden geplaatst',
687
+    'plugin_zip_installe_finie' => 'Het bestand @zip@ is geunzipt en werd geplaatst.',
688
+    'plugin_zip_installe_rep_finie' => 'Het bestand @zip@ is geunzipt en werd in de map @rep@ geplaatst',
689
+    'plugin_zip_installer' => 'Je kunt hem nu installeren.',
690
+    'plugin_zip_telecharge' => 'Het bestand @zip@ werd geladen',
691
+    'plugins_actif_aucun' => 'Geen plugins ingeschakeld.',
692
+    'plugins_actif_un' => 'Eén plugin is ingeschakeld.',
693
+    'plugins_actifs' => '@count@ plugins activeren.',
694
+    'plugins_actifs_liste' => 'Actief',
695
+    'plugins_compte' => '@count@ plugins',
696
+    'plugins_disponible_un' => 'Eén plugin beschikbaar.',
697
+    'plugins_disponibles' => '@count@ plugins beschikbaar.',
698
+    'plugins_erreur' => 'De fout in plugins: @plugins@',
699
+    'plugins_liste' => 'Lijst van plugins',
700
+    'plugins_liste_dist' => 'Vergrendelde plugins', # "locked" in english
701
+    'plugins_recents' => 'Recente plugins.',
702
+    'plugins_tous_liste' => 'Alle',
703
+    'plugins_vue_hierarchie' => 'Hiërarchie',
704
+    'plugins_vue_liste' => 'Lijst',
705
+    'protocole_ldap' => 'De versie van het protocol:',
706 706
 
707
-	// Q
708
-	'queue_executer_maintenant' => 'Nu uitvoeren',
709
-	'queue_info_purger' => 'Je kunt alle wachtende taken verwijderen en de lijst van periodieke taken herstarten', # MODIF
710
-	'queue_nb_jobs_in_queue' => '@nb@ wachtrij', # MODIF
711
-	'queue_next_job_in_nb_sec' => 'Volgende opdracht in @nb@ sec', # MODIF
712
-	'queue_no_job_in_queue' => 'Geen opdracht in de wachtrij', # MODIF
713
-	'queue_one_job_in_queue' => '1 taak in wachtrij', # MODIF
714
-	'queue_priorite_tache' => 'prioriteit',
715
-	'queue_purger_queue' => 'De takenlijst leegmaken', # MODIF
716
-	'queue_titre' => 'Lijst van taken', # MODIF
707
+    // Q
708
+    'queue_executer_maintenant' => 'Nu uitvoeren',
709
+    'queue_info_purger' => 'Je kunt alle wachtende taken verwijderen en de lijst van periodieke taken herstarten', # MODIF
710
+    'queue_nb_jobs_in_queue' => '@nb@ wachtrij', # MODIF
711
+    'queue_next_job_in_nb_sec' => 'Volgende opdracht in @nb@ sec', # MODIF
712
+    'queue_no_job_in_queue' => 'Geen opdracht in de wachtrij', # MODIF
713
+    'queue_one_job_in_queue' => '1 taak in wachtrij', # MODIF
714
+    'queue_priorite_tache' => 'prioriteit',
715
+    'queue_purger_queue' => 'De takenlijst leegmaken', # MODIF
716
+    'queue_titre' => 'Lijst van taken', # MODIF
717 717
 
718
-	// R
719
-	'repertoire_plugins' => 'Map:',
720
-	'required' => '(verplicht)', # MODIF
718
+    // R
719
+    'repertoire_plugins' => 'Map:',
720
+    'required' => '(verplicht)', # MODIF
721 721
 
722
-	// S
723
-	'sans_heure' => 'zonder tijdstip',
724
-	'statut_admin_restreint' => 'beperkte beheerder',
725
-	'statut_webmestre' => 'webmaster',
722
+    // S
723
+    'sans_heure' => 'zonder tijdstip',
724
+    'statut_admin_restreint' => 'beperkte beheerder',
725
+    'statut_webmestre' => 'webmaster',
726 726
 
727
-	// T
728
-	'tache_cron_asap' => 'CRON taak @function@ (ASAP)',
729
-	'tache_cron_secondes' => 'CRON taak @function@ (om de @nb@ sec)',
730
-	'taille_cache_image' => 'De door SPIP automatisch aangemaakte afbeeldingen (icoontjes van documenten, grafisch weergegeven titels, wiskundige functies in TeX formaat...) nemen in map @dir@ in totaal @taille@ in.',
731
-	'taille_cache_infinie' => 'De site voorziet geen beperking in de grootte van de buffermap.',
732
-	'taille_cache_maxi' => 'SPIP probeert de omvang van de buffermap van de site te beperken tot ongeveer <b>@octets@</b> gegevens.',
733
-	'taille_cache_moins_de' => 'De cache is kleiner dan @octets@.',
734
-	'taille_cache_octets' => 'De grootte van de buffer bedraagt momenteel @octets@.',
735
-	'taille_cache_vide' => 'De buffer is leeg.',
736
-	'taille_repertoire_cache' => 'Grootte van het bufferbestand',
737
-	'text_article_propose_publication' => 'Artikel voorgesteld voor publicatie.',
738
-	'texte_acces_ldap_anonyme_1' => 'Sommige LDAP-servers aanvaarden geen anonieme toegang. In zo’n geval dien je één loginnaam op te geven om vervolgens informatie in het adressenboek te zoeken. In de meeste gevallen kan je de volgende velden echter leeg laten.',
739
-	'texte_admin_effacer_01' => 'Met dit commando vernietig je de <i>volledige</i> inhoud van de database,
727
+    // T
728
+    'tache_cron_asap' => 'CRON taak @function@ (ASAP)',
729
+    'tache_cron_secondes' => 'CRON taak @function@ (om de @nb@ sec)',
730
+    'taille_cache_image' => 'De door SPIP automatisch aangemaakte afbeeldingen (icoontjes van documenten, grafisch weergegeven titels, wiskundige functies in TeX formaat...) nemen in map @dir@ in totaal @taille@ in.',
731
+    'taille_cache_infinie' => 'De site voorziet geen beperking in de grootte van de buffermap.',
732
+    'taille_cache_maxi' => 'SPIP probeert de omvang van de buffermap van de site te beperken tot ongeveer <b>@octets@</b> gegevens.',
733
+    'taille_cache_moins_de' => 'De cache is kleiner dan @octets@.',
734
+    'taille_cache_octets' => 'De grootte van de buffer bedraagt momenteel @octets@.',
735
+    'taille_cache_vide' => 'De buffer is leeg.',
736
+    'taille_repertoire_cache' => 'Grootte van het bufferbestand',
737
+    'text_article_propose_publication' => 'Artikel voorgesteld voor publicatie.',
738
+    'texte_acces_ldap_anonyme_1' => 'Sommige LDAP-servers aanvaarden geen anonieme toegang. In zo’n geval dien je één loginnaam op te geven om vervolgens informatie in het adressenboek te zoeken. In de meeste gevallen kan je de volgende velden echter leeg laten.',
739
+    'texte_admin_effacer_01' => 'Met dit commando vernietig je de <i>volledige</i> inhoud van de database,
740 740
 inbegrepen <i>alle</i> toegangsrechten voor redacteurs en beheerders. Nadat je dit uitgevoerd hebt, dien je de herinstallatie van SPIP te starten om een volledig nieuwe database aan te maken met toegangsrechten voor een eerste beheerder.',
741
-	'texte_adresse_annuaire_1' => '(Als de map geïnstalleerd is op dezelfde computer als je website, is het waarschijnlijk «localhost».)',
742
-	'texte_ajout_auteur' => 'Deze auteur werd aan het artikel toegevoegd:',
743
-	'texte_annuaire_ldap_1' => 'Als je toegang hebt tot een LDAP-adresboek, kan je dit gebruiken om automatisch gebruikers in te voeren in SPIP.',
744
-	'texte_article_statut' => 'Dit artikel is:',
745
-	'texte_article_virtuel' => 'Virtueel artikel',
746
-	'texte_article_virtuel_reference' => '<b>Virtueel artikel:</b> gekoppeld artikel in je SPIP site maar doorgestuurd naar een andere URL. Verwijder de URL om de doorverwijzing te stoppen.',
747
-	'texte_aucun_resultat_auteur' => 'Geen resultaat voor "@cherche_auteur@"',
748
-	'texte_auteur_messagerie' => 'Deze website kan een lijst met auteurs die op dat moment aangelogd zijn, tonen. Het is mogelijk om direkt berichten opsturen en ontvangen tussen de auteurs.  Je kan kiezen om niet in deze lijst te verschijnen (je wordt dan « onzichtbaar » voor de andere gebruikers).',
749
-	'texte_auteurs' => 'DE AUTEURS',
750
-	'texte_choix_base_1' => 'Kies je database:',
751
-	'texte_choix_base_2' => 'De SQL server bevat meerdere databases.',
752
-	'texte_choix_base_3' => '<b>Kies</b> hierna die welke door jouw provider werd toegekend:',
753
-	'texte_choix_table_prefix' => 'Voorvoegsel van de tabellen:',
754
-	'texte_compte_element' => '@count@ element',
755
-	'texte_compte_elements' => '@count@ elementen',
756
-	'texte_conflit_edition_correction' => 'Controleer hieronder de verschillen tussen beide versies van de tekst; je kunt eveneens jouw wijzigingen kopiëren en opnieuw beginnen.',
757
-	'texte_connexion_mysql' => 'Raadpleegt de inlichtingen die door jouw provider worden verstrekt: je moet er de databaseserver vinden die men voorstelt en jouw persoonlijke identificaties om je erop aan te melden.',
758
-	'texte_contenu_article' => '(Inhoud van het artikel in enkele woorden.)',
759
-	'texte_contenu_articles' => 'Naargelang de opmaak van je website kan je beslissen sommige elementen van een artikel
741
+    'texte_adresse_annuaire_1' => '(Als de map geïnstalleerd is op dezelfde computer als je website, is het waarschijnlijk «localhost».)',
742
+    'texte_ajout_auteur' => 'Deze auteur werd aan het artikel toegevoegd:',
743
+    'texte_annuaire_ldap_1' => 'Als je toegang hebt tot een LDAP-adresboek, kan je dit gebruiken om automatisch gebruikers in te voeren in SPIP.',
744
+    'texte_article_statut' => 'Dit artikel is:',
745
+    'texte_article_virtuel' => 'Virtueel artikel',
746
+    'texte_article_virtuel_reference' => '<b>Virtueel artikel:</b> gekoppeld artikel in je SPIP site maar doorgestuurd naar een andere URL. Verwijder de URL om de doorverwijzing te stoppen.',
747
+    'texte_aucun_resultat_auteur' => 'Geen resultaat voor "@cherche_auteur@"',
748
+    'texte_auteur_messagerie' => 'Deze website kan een lijst met auteurs die op dat moment aangelogd zijn, tonen. Het is mogelijk om direkt berichten opsturen en ontvangen tussen de auteurs.  Je kan kiezen om niet in deze lijst te verschijnen (je wordt dan « onzichtbaar » voor de andere gebruikers).',
749
+    'texte_auteurs' => 'DE AUTEURS',
750
+    'texte_choix_base_1' => 'Kies je database:',
751
+    'texte_choix_base_2' => 'De SQL server bevat meerdere databases.',
752
+    'texte_choix_base_3' => '<b>Kies</b> hierna die welke door jouw provider werd toegekend:',
753
+    'texte_choix_table_prefix' => 'Voorvoegsel van de tabellen:',
754
+    'texte_compte_element' => '@count@ element',
755
+    'texte_compte_elements' => '@count@ elementen',
756
+    'texte_conflit_edition_correction' => 'Controleer hieronder de verschillen tussen beide versies van de tekst; je kunt eveneens jouw wijzigingen kopiëren en opnieuw beginnen.',
757
+    'texte_connexion_mysql' => 'Raadpleegt de inlichtingen die door jouw provider worden verstrekt: je moet er de databaseserver vinden die men voorstelt en jouw persoonlijke identificaties om je erop aan te melden.',
758
+    'texte_contenu_article' => '(Inhoud van het artikel in enkele woorden.)',
759
+    'texte_contenu_articles' => 'Naargelang de opmaak van je website kan je beslissen sommige elementen van een artikel
760 760
  wel of niet te gebruiken.
761 761
  Geef op de lijst hieronder aan welke elementen je wil gebruiken.',
762
-	'texte_crash_base' => 'Als je database gecrashed is,
762
+    'texte_crash_base' => 'Als je database gecrashed is,
763 763
   kan je een automatisch herstel proberen.',
764
-	'texte_creer_rubrique' => 'Alvorens artikelen te kunnen schrijven, <br/> moet je een rubriek aanmaken.',
765
-	'texte_date_creation_article' => 'DATUM VAN AANMAKEN VAN HET ARTIKEL:',
766
-	'texte_date_creation_objet' => 'Aanmaakdatum:', # on ajoute le &quot;:&quot;
767
-	'texte_date_publication_anterieure' => 'Datum van eerdere redactie:',
768
-	'texte_date_publication_anterieure_nonaffichee' => 'Verberg de datum van eerdere redactie.',
769
-	'texte_date_publication_article' => 'DATUM VAN ONLINE PUBLICATIE:',
770
-	'texte_date_publication_objet' => 'Datum van online publicatie:',
771
-	'texte_definir_comme_traduction_rubrique' => 'Deze rubriek is een vertaling van rubrieknummer:',
772
-	'texte_descriptif_rapide' => 'Korte beschrijving.',
773
-	'texte_effacer_base' => 'Verwijder de SPIP database',
774
-	'texte_effacer_statistiques' => 'De statistieken wissen',
775
-	'texte_en_cours_validation' => 'De onderstaande inhoud wacht op goedkeuring.',
776
-	'texte_enrichir_mise_a_jour' => 'De opmaak van een tekst kan gebeuren met behulp van zogeheten «typografische snelkoppelingen».',
777
-	'texte_fichier_authent' => 'SPIP moet er dan speciale bestanden <tt>.htpasswd</tt>
764
+    'texte_creer_rubrique' => 'Alvorens artikelen te kunnen schrijven, <br/> moet je een rubriek aanmaken.',
765
+    'texte_date_creation_article' => 'DATUM VAN AANMAKEN VAN HET ARTIKEL:',
766
+    'texte_date_creation_objet' => 'Aanmaakdatum:', # on ajoute le &quot;:&quot;
767
+    'texte_date_publication_anterieure' => 'Datum van eerdere redactie:',
768
+    'texte_date_publication_anterieure_nonaffichee' => 'Verberg de datum van eerdere redactie.',
769
+    'texte_date_publication_article' => 'DATUM VAN ONLINE PUBLICATIE:',
770
+    'texte_date_publication_objet' => 'Datum van online publicatie:',
771
+    'texte_definir_comme_traduction_rubrique' => 'Deze rubriek is een vertaling van rubrieknummer:',
772
+    'texte_descriptif_rapide' => 'Korte beschrijving.',
773
+    'texte_effacer_base' => 'Verwijder de SPIP database',
774
+    'texte_effacer_statistiques' => 'De statistieken wissen',
775
+    'texte_en_cours_validation' => 'De onderstaande inhoud wacht op goedkeuring.',
776
+    'texte_enrichir_mise_a_jour' => 'De opmaak van een tekst kan gebeuren met behulp van zogeheten «typografische snelkoppelingen».',
777
+    'texte_fichier_authent' => 'SPIP moet er dan speciale bestanden <tt>.htpasswd</tt>
778 778
   en <tt>.htpasswd-admin</tt> in de directory @dossier@ ?</b><p>
779 779
  Deze bestanden die je kunt gebruiken om toegang te beperken tot 
780 780
  auteurs en beheerders in andere delen van je site 
781 781
    (externe programma statistieken, bijvoorbeeld).</p><p>
782 782
 Als dit geen geen nut heeft, kunt je de standaard instellingen behouden (geen nieuw bestand maken).</p>',
783
-	'texte_informations_personnelles_1' => 'Nu zal het systeem een persoonlijke toegang tot de site voor je creëren.',
784
-	'texte_informations_personnelles_2' => '(Nota: als het een herinstallatie betreft en je toegangscode blijkt nog steeds te werken, kan je',
785
-	'texte_introductif_article' => '(Inleidende tekst op het artikel.)',
786
-	'texte_jeu_caractere' => 'Het is aan te raden op je site het universele alfabet (<tt>utf-8</tt>) te gebruiken: dit laat de weergave van teksten toe in alle talen en stelt geen compatibilieitsprobleem met de recente browsers.',
787
-	'texte_jeu_caractere_3' => 'Je site is momenteel geïnstalleerd in deze tekenset:',
788
-	'texte_jeu_caractere_4' => 'Indien dit niet overeenkomt met je werkelijke gegevens (bvb bij het terugzetten van je database), of als je <em>deze site opstart</em> en met een andere tekenset van start wil gaan, geef dat dan hieronder aan:',
789
-	'texte_login_ldap_1' => '(Leeg laten voor een anonieme login, of een volledig pad invullen, bijvoorbeeld «<tt>uid=janssen, ou=users, dc=mijn-domein, dc=com</tt>».)',
790
-	'texte_login_precaution' => 'LET OP! Met deze login ben je momenteel aangemeld.
783
+    'texte_informations_personnelles_1' => 'Nu zal het systeem een persoonlijke toegang tot de site voor je creëren.',
784
+    'texte_informations_personnelles_2' => '(Nota: als het een herinstallatie betreft en je toegangscode blijkt nog steeds te werken, kan je',
785
+    'texte_introductif_article' => '(Inleidende tekst op het artikel.)',
786
+    'texte_jeu_caractere' => 'Het is aan te raden op je site het universele alfabet (<tt>utf-8</tt>) te gebruiken: dit laat de weergave van teksten toe in alle talen en stelt geen compatibilieitsprobleem met de recente browsers.',
787
+    'texte_jeu_caractere_3' => 'Je site is momenteel geïnstalleerd in deze tekenset:',
788
+    'texte_jeu_caractere_4' => 'Indien dit niet overeenkomt met je werkelijke gegevens (bvb bij het terugzetten van je database), of als je <em>deze site opstart</em> en met een andere tekenset van start wil gaan, geef dat dan hieronder aan:',
789
+    'texte_login_ldap_1' => '(Leeg laten voor een anonieme login, of een volledig pad invullen, bijvoorbeeld «<tt>uid=janssen, ou=users, dc=mijn-domein, dc=com</tt>».)',
790
+    'texte_login_precaution' => 'LET OP! Met deze login ben je momenteel aangemeld.
791 791
  Gebruik dit formulier met de nodige voorzichtigheid...',
792
-	'texte_messagerie_agenda' => 'Een berichtendienst maakt het de redacteuren van de site mogelijk om in de privé ruimte berichten uit te wisselen. De dienst is gekoppeld aan een agenda.',
793
-	'texte_mise_a_niveau_base_1' => 'Je hebt zonet de SPIP bestanden vernieuwd. Nu dien je
792
+    'texte_messagerie_agenda' => 'Een berichtendienst maakt het de redacteuren van de site mogelijk om in de privé ruimte berichten uit te wisselen. De dienst is gekoppeld aan een agenda.',
793
+    'texte_mise_a_niveau_base_1' => 'Je hebt zonet de SPIP bestanden vernieuwd. Nu dien je
794 794
  eveneens de database te updaten.',
795
-	'texte_modifier_article' => 'Wijzigen artikel:',
796
-	'texte_multilinguisme' => 'Als je graag objecten in verschillende talen zou willen beheren, met een complexe navigatie, kan je een taalkeuzemenu toevoegen bij deze objecten, i.f.v de organisatie van je site.',
797
-	'texte_multilinguisme_trad' => 'Je kan eveneens een systeem in werking stellen voor het beheer van koppelingen tussen de verschillende vertalingen van de objecten.',
798
-	'texte_non_compresse' => '<i>niet gecomprimeerd</i> (de server ondersteunt deze functionaliteit niet)',
799
-	'texte_nouvelle_version_spip_1' => 'Je hebt een nieuwe versie van SPIP geïnstalleerd.',
800
-	'texte_nouvelle_version_spip_2' => 'Deze nieuwe SPIP-versie vereist een  grondiger update dan gewoonlijk. Als je webmaster bent van deze site, verwijder dan het bestand @connect@ en hervat de installatie om de verbindingsgegevens met de database te vernieuwen.<p> (NB: als je de verbindingsgegevens niet meer kent, kan je best eerst een blik werpen op het bestand @connect@ alvorens het te verwijderen...)</p>', # Pas de modif trouvée, la trad reste valable.
801
-	'texte_operation_echec' => 'Ga terug naar de vorige pagina, selecteer een andere database of maak een nieuwe aan. Kijk nog eens alle gegevens na die je van je provider hebt ontvangen.',
802
-	'texte_plus_trois_car' => 'meer dan 3 karakters',
803
-	'texte_plusieurs_articles' => 'Meerdere auteurs gevonden voor "@cherche_auteur@":',
804
-	'texte_port_annuaire' => '(De opgegeven standaardwaarde is meestal de juiste.)',
805
-	'texte_presente_plugin' => 'Deze pagina toont de lijst van beschikbare plugins op deze site. Je kan de nodige plugins activeren door het overeenkomstige vakje aan te kruisen.',
806
-	'texte_proposer_publication' => 'Wanneer je artikel gereed is, <br />kun je de publicatie ervan voorstellen.',
807
-	'texte_proxy' => 'In bepaalde gevallen (intranet, beschermde netwerken), zijn de verwijderde plaatsen (SPIP documentatie , georganiseerde plaatsen, enz.) toegankelijk slechts door een <i>proxy HTTP</i>. Eventueel geeft hieronder zijn adres aan, onder de vorm @proxy_in_actie@. Over het algemeen zul je dit hokje leeg laten.',
808
-	'texte_publication_articles_post_dates' => 'Hoe dient SPIP zich op te stellen ten opzichte van artikelen waarvan de
795
+    'texte_modifier_article' => 'Wijzigen artikel:',
796
+    'texte_multilinguisme' => 'Als je graag objecten in verschillende talen zou willen beheren, met een complexe navigatie, kan je een taalkeuzemenu toevoegen bij deze objecten, i.f.v de organisatie van je site.',
797
+    'texte_multilinguisme_trad' => 'Je kan eveneens een systeem in werking stellen voor het beheer van koppelingen tussen de verschillende vertalingen van de objecten.',
798
+    'texte_non_compresse' => '<i>niet gecomprimeerd</i> (de server ondersteunt deze functionaliteit niet)',
799
+    'texte_nouvelle_version_spip_1' => 'Je hebt een nieuwe versie van SPIP geïnstalleerd.',
800
+    'texte_nouvelle_version_spip_2' => 'Deze nieuwe SPIP-versie vereist een  grondiger update dan gewoonlijk. Als je webmaster bent van deze site, verwijder dan het bestand @connect@ en hervat de installatie om de verbindingsgegevens met de database te vernieuwen.<p> (NB: als je de verbindingsgegevens niet meer kent, kan je best eerst een blik werpen op het bestand @connect@ alvorens het te verwijderen...)</p>', # Pas de modif trouvée, la trad reste valable.
801
+    'texte_operation_echec' => 'Ga terug naar de vorige pagina, selecteer een andere database of maak een nieuwe aan. Kijk nog eens alle gegevens na die je van je provider hebt ontvangen.',
802
+    'texte_plus_trois_car' => 'meer dan 3 karakters',
803
+    'texte_plusieurs_articles' => 'Meerdere auteurs gevonden voor "@cherche_auteur@":',
804
+    'texte_port_annuaire' => '(De opgegeven standaardwaarde is meestal de juiste.)',
805
+    'texte_presente_plugin' => 'Deze pagina toont de lijst van beschikbare plugins op deze site. Je kan de nodige plugins activeren door het overeenkomstige vakje aan te kruisen.',
806
+    'texte_proposer_publication' => 'Wanneer je artikel gereed is, <br />kun je de publicatie ervan voorstellen.',
807
+    'texte_proxy' => 'In bepaalde gevallen (intranet, beschermde netwerken), zijn de verwijderde plaatsen (SPIP documentatie , georganiseerde plaatsen, enz.) toegankelijk slechts door een <i>proxy HTTP</i>. Eventueel geeft hieronder zijn adres aan, onder de vorm @proxy_in_actie@. Over het algemeen zul je dit hokje leeg laten.',
808
+    'texte_publication_articles_post_dates' => 'Hoe dient SPIP zich op te stellen ten opzichte van artikelen waarvan de
809 809
   publicatiedatum is vastgelegd op een
810 810
   toekomstige datum?',
811
-	'texte_rappel_selection_champs' => '[Vergeet niet de juiste keuze te maken voor dit veld.]',
812
-	'texte_recalcul_page' => 'Als je slechts één pagina wilt vernieuwen, doe je dit op de publieke site met de knop  «vernieuwen».',
813
-	'texte_recuperer_base' => 'De database herstellen',
814
-	'texte_reference_mais_redirige' => 'Gekoppeld artikel in je SPIP site, maar doorgestuurd naar een andere URL.',
815
-	'texte_requetes_echouent' => '<b>Wanneer bepaalde SQL-query’s systematisch crashen zonder duidelijke reden, is dit mogelijk te wijten aan de database zelf.</b><p> Je SQL Server heeft een herstelmogelijkheid van tabellen die beschadigd zijn door een crash. Hier kunt je proberen dit te repareren. Wanneer dat niet lukt, bewaar dan een kopie van het scherm dat aanwijzingen over de problemen bevat...</p><p>Als het probleem zich blijft voordoen, contact opnemen met je provider.</p>',
816
-	'texte_selection_langue_principale' => 'Hieronder kan je de «basistaal» van de site kiezen. Deze keuze verplicht je - gelukkig! - niet om artikelen in deze taal te schrijven, maar laat wel toe om het volgende te bepalen:
811
+    'texte_rappel_selection_champs' => '[Vergeet niet de juiste keuze te maken voor dit veld.]',
812
+    'texte_recalcul_page' => 'Als je slechts één pagina wilt vernieuwen, doe je dit op de publieke site met de knop  «vernieuwen».',
813
+    'texte_recuperer_base' => 'De database herstellen',
814
+    'texte_reference_mais_redirige' => 'Gekoppeld artikel in je SPIP site, maar doorgestuurd naar een andere URL.',
815
+    'texte_requetes_echouent' => '<b>Wanneer bepaalde SQL-query’s systematisch crashen zonder duidelijke reden, is dit mogelijk te wijten aan de database zelf.</b><p> Je SQL Server heeft een herstelmogelijkheid van tabellen die beschadigd zijn door een crash. Hier kunt je proberen dit te repareren. Wanneer dat niet lukt, bewaar dan een kopie van het scherm dat aanwijzingen over de problemen bevat...</p><p>Als het probleem zich blijft voordoen, contact opnemen met je provider.</p>',
816
+    'texte_selection_langue_principale' => 'Hieronder kan je de «basistaal» van de site kiezen. Deze keuze verplicht je - gelukkig! - niet om artikelen in deze taal te schrijven, maar laat wel toe om het volgende te bepalen:
817 817
  <ul><li> het standaardformaat van de data op de publieke site;</li>
818 818
  <li> de aard van de typografische motor die SPIP dient te gebruiken om teksten te tonen;</li>
819 819
  <li> de taal die gebruikt moet worden op de formulieren van de publieke site;</li>
820 820
  <li> de taal die standaard wordt voorgesteld in het privé-gedeelte.</li></ul>',
821
-	'texte_sous_titre' => 'Ondertitel',
822
-	'texte_statistiques_visites' => '(donkere balkjes:  zondag / donkere lijn: evolutie van het gemiddelde)',
823
-	'texte_statut_attente_validation' => 'wachten op goedkeuring',
824
-	'texte_statut_publies' => 'online geplaatst',
825
-	'texte_statut_refuses' => 'geweigerd',
826
-	'texte_suppression_fichiers' => 'Gebruik dit commando om alle bestanden uit de  buffer (cache) te verwijderen.
821
+    'texte_sous_titre' => 'Ondertitel',
822
+    'texte_statistiques_visites' => '(donkere balkjes:  zondag / donkere lijn: evolutie van het gemiddelde)',
823
+    'texte_statut_attente_validation' => 'wachten op goedkeuring',
824
+    'texte_statut_publies' => 'online geplaatst',
825
+    'texte_statut_refuses' => 'geweigerd',
826
+    'texte_suppression_fichiers' => 'Gebruik dit commando om alle bestanden uit de  buffer (cache) te verwijderen.
827 827
 Dit kan handig zijn als je veel pagina’s hebt gewijzigd, de layout of de structuur van de site hebt veranderd.
828 828
  De nieuwste pagina’s worden dan getoond en de buffer wordt opnieuw opgebouwd.',
829
-	'texte_sur_titre' => 'Opschrift',
830
-	'texte_table_ok' => ': deze tabel is OK.',
831
-	'texte_tentative_recuperation' => 'Poging tot herstel.',
832
-	'texte_tenter_reparation' => 'Poging tot herstel van de database',
833
-	'texte_test_proxy' => 'Om de proxy te testen kan je hier het adres geven van de website die je wil bereiken.',
834
-	'texte_titre_02' => 'Titel:',
835
-	'texte_titre_obligatoire' => '<b>Titel</b> [verplicht]',
836
-	'texte_travail_article' => '@nom_auteur_modif@ heeft @date_diff@ minuten geleden aan dit artikel gewerkt',
837
-	'texte_travail_collaboratif' => 'Als het vaak gebeurt dat meerdere redacteurs aanhetzelfde artikel werken, kan het systeem tonen welke artikelen er recent «geopend» werden
829
+    'texte_sur_titre' => 'Opschrift',
830
+    'texte_table_ok' => ': deze tabel is OK.',
831
+    'texte_tentative_recuperation' => 'Poging tot herstel.',
832
+    'texte_tenter_reparation' => 'Poging tot herstel van de database',
833
+    'texte_test_proxy' => 'Om de proxy te testen kan je hier het adres geven van de website die je wil bereiken.',
834
+    'texte_titre_02' => 'Titel:',
835
+    'texte_titre_obligatoire' => '<b>Titel</b> [verplicht]',
836
+    'texte_travail_article' => '@nom_auteur_modif@ heeft @date_diff@ minuten geleden aan dit artikel gewerkt',
837
+    'texte_travail_collaboratif' => 'Als het vaak gebeurt dat meerdere redacteurs aanhetzelfde artikel werken, kan het systeem tonen welke artikelen er recent «geopend» werden
838 838
  om te vermijden dat simultaan
839 839
  wijzigingen worden aangebracht.
840 840
  Deze optie is niet standaard geactiveerd om te vermijden dat er teveel waarschuwingsberichten op het
841 841
  scherm verschijnen.',
842
-	'texte_vide' => 'leeg',
843
-	'texte_vider_cache' => 'Cache leegmaken',
844
-	'titre_admin_tech' => 'Technisch onderhoud',
845
-	'titre_admin_vider' => 'Technisch onderhoud',
846
-	'titre_ajouter_un_auteur' => 'Voeg een auteur toe',
847
-	'titre_ajouter_un_mot' => 'Voeg een trefwoord toe',
848
-	'titre_cadre_afficher_article' => 'Artikelen tonen',
849
-	'titre_cadre_afficher_traductions' => 'Toon de status van de vertalingen voor de volgende talen:',
850
-	'titre_cadre_ajouter_auteur' => 'EEN AUTEUR TOEVOEGEN:',
851
-	'titre_cadre_interieur_rubrique' => 'Binnen rubriek',
852
-	'titre_cadre_numero_auteur' => 'AUTEUR NUMMER',
853
-	'titre_cadre_numero_objet' => '@objet@ NUMMER:',
854
-	'titre_cadre_signature_obligatoire' => '<b>Handtekening</b> [Verplicht]<br />',
855
-	'titre_config_contenu_notifications' => 'Kennisgevingen',
856
-	'titre_config_contenu_prive' => 'In het privé gedeelte',
857
-	'titre_config_contenu_public' => 'Op de openbare site',
858
-	'titre_config_fonctions' => 'Configuratie van de site',
859
-	'titre_config_langage' => 'Stel de taal in',
860
-	'titre_configuration' => 'Configuratie van de site',
861
-	'titre_configurer_preferences' => 'Configureer je voorkeuren',
862
-	'titre_configurer_preferences_menus' => 'Configureer je menuvoorkeuren',
863
-	'titre_conflit_edition' => 'Conflict bij de uitgave',
864
-	'titre_connexion_ldap' => 'Opties: <b>Je LDAP-verbinding</b>',
865
-	'titre_groupe_mots' => 'TREFWOORDENGROEP:',
866
-	'titre_identite_site' => 'Identiteit van de site',
867
-	'titre_langue_article' => 'Taal van het artikel',
868
-	'titre_langue_rubrique' => 'Taal van de rubriek',
869
-	'titre_langue_trad_article' => 'TAAL EN VERTALINGEN VAN HET ARTIKEL',
870
-	'titre_les_articles' => 'ARTIKELEN',
871
-	'titre_messagerie_agenda' => 'Boodschappen en agenda',
872
-	'titre_naviguer_dans_le_site' => 'Bezoek de site...',
873
-	'titre_nouvelle_rubrique' => 'Nieuwe rubriek',
874
-	'titre_numero_rubrique' => 'RUBRIEKNUMMER:',
875
-	'titre_page_articles_edit' => 'Wijzigen: @titre@',
876
-	'titre_page_articles_page' => 'Artikelen',
877
-	'titre_page_articles_tous' => 'Volledige site',
878
-	'titre_page_calendrier' => 'Kalender @nom_mois@ @annee@',
879
-	'titre_page_config_contenu' => 'Websiteconfiguratie',
880
-	'titre_page_delete_all' => 'Volledige en onomkeerbare verwijdering',
881
-	'titre_page_recherche' => 'Zoekresultaat voor @recherche@ ',
882
-	'titre_page_statistiques_referers' => 'Statistieken (per referer)',
883
-	'titre_page_upgrade' => 'Bijwerken van SPIP',
884
-	'titre_preference_menus_favoris' => 'Favoriete menu’s',
885
-	'titre_publication_articles_post_dates' => 'Publicatie van postgedateerde artikelen',
886
-	'titre_reparation' => 'Herstel',
887
-	'titre_suivi_petition' => 'Opvolging van petities',
888
-	'tls_ldap' => 'Transport Layer Security:',
889
-	'trad_article_traduction' => 'Alle versies van dit artikel:',
890
-	'trad_delier' => 'Niet meer aan deze vertalingen koppelen',
891
-	'trad_lier' => 'Dit artikel is een vertaling van artikelnummer:',
892
-	'trad_new' => 'Een nieuwe vertaling schrijven',
842
+    'texte_vide' => 'leeg',
843
+    'texte_vider_cache' => 'Cache leegmaken',
844
+    'titre_admin_tech' => 'Technisch onderhoud',
845
+    'titre_admin_vider' => 'Technisch onderhoud',
846
+    'titre_ajouter_un_auteur' => 'Voeg een auteur toe',
847
+    'titre_ajouter_un_mot' => 'Voeg een trefwoord toe',
848
+    'titre_cadre_afficher_article' => 'Artikelen tonen',
849
+    'titre_cadre_afficher_traductions' => 'Toon de status van de vertalingen voor de volgende talen:',
850
+    'titre_cadre_ajouter_auteur' => 'EEN AUTEUR TOEVOEGEN:',
851
+    'titre_cadre_interieur_rubrique' => 'Binnen rubriek',
852
+    'titre_cadre_numero_auteur' => 'AUTEUR NUMMER',
853
+    'titre_cadre_numero_objet' => '@objet@ NUMMER:',
854
+    'titre_cadre_signature_obligatoire' => '<b>Handtekening</b> [Verplicht]<br />',
855
+    'titre_config_contenu_notifications' => 'Kennisgevingen',
856
+    'titre_config_contenu_prive' => 'In het privé gedeelte',
857
+    'titre_config_contenu_public' => 'Op de openbare site',
858
+    'titre_config_fonctions' => 'Configuratie van de site',
859
+    'titre_config_langage' => 'Stel de taal in',
860
+    'titre_configuration' => 'Configuratie van de site',
861
+    'titre_configurer_preferences' => 'Configureer je voorkeuren',
862
+    'titre_configurer_preferences_menus' => 'Configureer je menuvoorkeuren',
863
+    'titre_conflit_edition' => 'Conflict bij de uitgave',
864
+    'titre_connexion_ldap' => 'Opties: <b>Je LDAP-verbinding</b>',
865
+    'titre_groupe_mots' => 'TREFWOORDENGROEP:',
866
+    'titre_identite_site' => 'Identiteit van de site',
867
+    'titre_langue_article' => 'Taal van het artikel',
868
+    'titre_langue_rubrique' => 'Taal van de rubriek',
869
+    'titre_langue_trad_article' => 'TAAL EN VERTALINGEN VAN HET ARTIKEL',
870
+    'titre_les_articles' => 'ARTIKELEN',
871
+    'titre_messagerie_agenda' => 'Boodschappen en agenda',
872
+    'titre_naviguer_dans_le_site' => 'Bezoek de site...',
873
+    'titre_nouvelle_rubrique' => 'Nieuwe rubriek',
874
+    'titre_numero_rubrique' => 'RUBRIEKNUMMER:',
875
+    'titre_page_articles_edit' => 'Wijzigen: @titre@',
876
+    'titre_page_articles_page' => 'Artikelen',
877
+    'titre_page_articles_tous' => 'Volledige site',
878
+    'titre_page_calendrier' => 'Kalender @nom_mois@ @annee@',
879
+    'titre_page_config_contenu' => 'Websiteconfiguratie',
880
+    'titre_page_delete_all' => 'Volledige en onomkeerbare verwijdering',
881
+    'titre_page_recherche' => 'Zoekresultaat voor @recherche@ ',
882
+    'titre_page_statistiques_referers' => 'Statistieken (per referer)',
883
+    'titre_page_upgrade' => 'Bijwerken van SPIP',
884
+    'titre_preference_menus_favoris' => 'Favoriete menu’s',
885
+    'titre_publication_articles_post_dates' => 'Publicatie van postgedateerde artikelen',
886
+    'titre_reparation' => 'Herstel',
887
+    'titre_suivi_petition' => 'Opvolging van petities',
888
+    'tls_ldap' => 'Transport Layer Security:',
889
+    'trad_article_traduction' => 'Alle versies van dit artikel:',
890
+    'trad_delier' => 'Niet meer aan deze vertalingen koppelen',
891
+    'trad_lier' => 'Dit artikel is een vertaling van artikelnummer:',
892
+    'trad_new' => 'Een nieuwe vertaling schrijven',
893 893
 
894
-	// U
895
-	'utf8_convert_erreur_orig' => 'Fout : de karakterset @charset@ wordt niet ondersteund.',
894
+    // U
895
+    'utf8_convert_erreur_orig' => 'Fout : de karakterset @charset@ wordt niet ondersteund.',
896 896
 
897
-	// V
898
-	'version' => 'Versie:'
897
+    // V
898
+    'version' => 'Versie:'
899 899
 );
Please login to merge, or discard this patch.