Completed
Push — master ( 86bb13...410b54 )
by cam
01:01
created
ecrire/lang/ecrire_km.php 1 patch
Indentation   +587 added lines, -587 removed lines patch added patch discarded remove patch
@@ -4,624 +4,624 @@
 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',
14
-	'affichage' => 'បង្ហាញចេញ',
15
-	'aide_non_disponible' => 'ផ្នែក​នេះ នៃជំនួយ លើអិនរើណែត គ្មានស្រាប់ សំរាប់ភាសានេះ។',
16
-	'auteur' => 'អ្នកនិពន្ធ៖',
17
-	'avis_acces_interdit' => 'ការ​ចូល​ទៅ ត្រូវ​បាន​ហាម។',
18
-	'avis_article_modifie' => 'ប្រយត្ន, @nom_auteur_modif@ )បានធ្វើការ លើអត្ថបទ​នេះ បាន @date_diff@ នាទី',
19
-	'avis_aucun_resultat' => 'គ្មានរកឃើញ​ លទ្ធផល។',
20
-	'avis_chemin_invalide_1' => 'ផ្លូវ អ្នកបានជ្រើសយក',
21
-	'avis_chemin_invalide_2' => 'ប្រហែលគ្មានសុពលភាព។ សូមត្រលប់ទៅ ទំព័រមុន និងផ្ទៀងពត៌មានបានផ្តល់។',
22
-	'avis_connexion_echec_1' => 'បញ្ជាប់ទៅ ខំព្យូរើបំរើសេវា SQL បានបរាជ័យ។',
23
-	'avis_connexion_echec_2' => 'ត្រលប់ទៅ ទំព័រ​មុន និងផ្ទៀងពត៌មាន ​ដែល​អ្នក​បាន​ផ្ដល់​។',
24
-	'avis_connexion_echec_3' => '<b>ចំណាំសំខាន់</b> លើមួយចំនួនខំព្យូរើបំរើសេវា, អ្នកត្រូវតែ <b>ស្នើ</b> ការធ្វើអោយសកម្ម ការចូលទៅ របស់អ្នក ក្នុងមូលដ្ឋានទិន្នន័យ មុនអាចប្រើប្រាស់វា។ បើអ្នកគ្មានអាចភ្ជាប់ទៅ, អ្នកផ្ទៀង តើអ្នកបានអនុវត្ត ការធ្វើអោយសកម្មនេះ។',
25
-	'avis_connexion_ldap_echec_1' => 'បញ្ជាប់ទៅ ខំព្យូរើបំរើសេវា LDAP បានបរាជ័យ។',
26
-	'avis_connexion_ldap_echec_2' => 'ត្រលប់ទៅ ទំព័រមុន, និងផ្ទៀង ពត៌មាន អ្នកបានផ្តល់។',
27
-	'avis_connexion_ldap_echec_3' => 'តាមជំរើស, កុំ​ប្រើ​ប្រាស់ការ​គាំទ្រ LDAP ដើម្បី​នាំចូលអ្នក​ប្រើប្រាស់។',
28
-	'avis_deplacement_rubrique' => 'ប្រយត្ន! មាតិកា​នេះ ​មានផ្ទុក @contient_breves@ ពត៌មានសង្ខេប @scb@ ៖ បើ​អ្នក​ប្តូរទីតាំងវា, សូមគូស ប្រអប់បញ្ជាក់ទទួលស្គាល់ នេះ។',
29
-	'avis_erreur_connexion_mysql' => 'កំហុស​ ភ្ជាប់ទៅ SQL ',
30
-	'avis_espace_interdit' => '<b>តំបន់ហាម</b> <div>SPIP ធ្លាប់ត្រូវ​បានតំលើង។</div>',
31
-	'avis_lecture_noms_bases_1' => 'កម្មវិធីតំលើង គ្មាន​អាច ​អាន​ឈ្មោះ​ឃ្លាំង​ទិន្នន័យ​ ដែល​ត្រូវបានតំលើង។',
32
-	'avis_lecture_noms_bases_2' => '​ឃ្លាំង​ទិន្នន័យ គ្មានស្រាប់, ឬមុខងារអនុញ្ញាត ការរាយបញ្ជី​ នុមូលដ្ឋានទិន្នន័យ គ្មានត្រូវបានអនុញ្ញាត ព្រោះហេតុផលសុវត្ថភាព (វាជាករណី ជាមួយច្រើនខំព្យូរើ)។',
33
-	'avis_lecture_noms_bases_3' => 'ករណីជំរើសទីពីរ ពិត, វាអាចជាលទ្ធភាព ដែលមួួមូលដ្ឋានទិន្នន័យ ត្រូវបានដាក់ឈ្មោះ ក្រោយការពិនិត្យចូល របស់អ្នក អាចត្រូវបានប្រើប្រាស់៖',
34
-	'avis_non_acces_page' => 'អ្នក​គ្មានអាច ​ចូល​ទៅ​ ​ទំព័រ​នេះ។',
35
-	'avis_operation_echec' => 'ប្រតិបត្ដិការ ​បានបរាជ័យ។',
36
-	'avis_operation_impossible' => 'ប្រតិបត្ដិការ​ មិន​អាចទៅ​រួច',
37
-	'avis_suppression_base' => 'ប្រយត្ន, ការលុបចេញ​ទិន្នន័យ គ្មានអាច​ត្រលប់​វិញ',
12
+    // A
13
+    'activer_plugin' => '​ធ្វើ​អោយសកម្ម plugin',
14
+    'affichage' => 'បង្ហាញចេញ',
15
+    'aide_non_disponible' => 'ផ្នែក​នេះ នៃជំនួយ លើអិនរើណែត គ្មានស្រាប់ សំរាប់ភាសានេះ។',
16
+    'auteur' => 'អ្នកនិពន្ធ៖',
17
+    'avis_acces_interdit' => 'ការ​ចូល​ទៅ ត្រូវ​បាន​ហាម។',
18
+    'avis_article_modifie' => 'ប្រយត្ន, @nom_auteur_modif@ )បានធ្វើការ លើអត្ថបទ​នេះ បាន @date_diff@ នាទី',
19
+    'avis_aucun_resultat' => 'គ្មានរកឃើញ​ លទ្ធផល។',
20
+    'avis_chemin_invalide_1' => 'ផ្លូវ អ្នកបានជ្រើសយក',
21
+    'avis_chemin_invalide_2' => 'ប្រហែលគ្មានសុពលភាព។ សូមត្រលប់ទៅ ទំព័រមុន និងផ្ទៀងពត៌មានបានផ្តល់។',
22
+    'avis_connexion_echec_1' => 'បញ្ជាប់ទៅ ខំព្យូរើបំរើសេវា SQL បានបរាជ័យ។',
23
+    'avis_connexion_echec_2' => 'ត្រលប់ទៅ ទំព័រ​មុន និងផ្ទៀងពត៌មាន ​ដែល​អ្នក​បាន​ផ្ដល់​។',
24
+    'avis_connexion_echec_3' => '<b>ចំណាំសំខាន់</b> លើមួយចំនួនខំព្យូរើបំរើសេវា, អ្នកត្រូវតែ <b>ស្នើ</b> ការធ្វើអោយសកម្ម ការចូលទៅ របស់អ្នក ក្នុងមូលដ្ឋានទិន្នន័យ មុនអាចប្រើប្រាស់វា។ បើអ្នកគ្មានអាចភ្ជាប់ទៅ, អ្នកផ្ទៀង តើអ្នកបានអនុវត្ត ការធ្វើអោយសកម្មនេះ។',
25
+    'avis_connexion_ldap_echec_1' => 'បញ្ជាប់ទៅ ខំព្យូរើបំរើសេវា LDAP បានបរាជ័យ។',
26
+    'avis_connexion_ldap_echec_2' => 'ត្រលប់ទៅ ទំព័រមុន, និងផ្ទៀង ពត៌មាន អ្នកបានផ្តល់។',
27
+    'avis_connexion_ldap_echec_3' => 'តាមជំរើស, កុំ​ប្រើ​ប្រាស់ការ​គាំទ្រ LDAP ដើម្បី​នាំចូលអ្នក​ប្រើប្រាស់។',
28
+    'avis_deplacement_rubrique' => 'ប្រយត្ន! មាតិកា​នេះ ​មានផ្ទុក @contient_breves@ ពត៌មានសង្ខេប @scb@ ៖ បើ​អ្នក​ប្តូរទីតាំងវា, សូមគូស ប្រអប់បញ្ជាក់ទទួលស្គាល់ នេះ។',
29
+    'avis_erreur_connexion_mysql' => 'កំហុស​ ភ្ជាប់ទៅ SQL ',
30
+    'avis_espace_interdit' => '<b>តំបន់ហាម</b> <div>SPIP ធ្លាប់ត្រូវ​បានតំលើង។</div>',
31
+    'avis_lecture_noms_bases_1' => 'កម្មវិធីតំលើង គ្មាន​អាច ​អាន​ឈ្មោះ​ឃ្លាំង​ទិន្នន័យ​ ដែល​ត្រូវបានតំលើង។',
32
+    'avis_lecture_noms_bases_2' => '​ឃ្លាំង​ទិន្នន័យ គ្មានស្រាប់, ឬមុខងារអនុញ្ញាត ការរាយបញ្ជី​ នុមូលដ្ឋានទិន្នន័យ គ្មានត្រូវបានអនុញ្ញាត ព្រោះហេតុផលសុវត្ថភាព (វាជាករណី ជាមួយច្រើនខំព្យូរើ)។',
33
+    'avis_lecture_noms_bases_3' => 'ករណីជំរើសទីពីរ ពិត, វាអាចជាលទ្ធភាព ដែលមួួមូលដ្ឋានទិន្នន័យ ត្រូវបានដាក់ឈ្មោះ ក្រោយការពិនិត្យចូល របស់អ្នក អាចត្រូវបានប្រើប្រាស់៖',
34
+    'avis_non_acces_page' => 'អ្នក​គ្មានអាច ​ចូល​ទៅ​ ​ទំព័រ​នេះ។',
35
+    'avis_operation_echec' => 'ប្រតិបត្ដិការ ​បានបរាជ័យ។',
36
+    'avis_operation_impossible' => 'ប្រតិបត្ដិការ​ មិន​អាចទៅ​រួច',
37
+    'avis_suppression_base' => 'ប្រយត្ន, ការលុបចេញ​ទិន្នន័យ គ្មានអាច​ត្រលប់​វិញ',
38 38
 
39
-	// B
40
-	'bouton_acces_ldap' => 'បន្ថែម​ ការ​ចូល​ទៅ LDAP ',
41
-	'bouton_ajouter' => 'បន្ថែម',
42
-	'bouton_annuler' => 'បោះបង់',
43
-	'bouton_demande_publication' => 'សួររក ការផ្សព្វផ្សាយ នៃអត្ថបទនេះ',
44
-	'bouton_desactive_tout' => 'អសកម្មទាំងអស់',
45
-	'bouton_desinstaller' => 'លែងតំលើង',
46
-	'bouton_effacer_tout' => 'លុប​ចេញ ទាំងអស់',
47
-	'bouton_envoyer_message' => 'សារ​បញ្ចប់ ៖ ផ្ញើ',
48
-	'bouton_modifier' => 'កែប្រែ',
49
-	'bouton_radio_afficher' => 'បង្ហាញចេញ',
50
-	'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'លេច​ចេញ ​ក្នុង​បញ្ជី​អ្នកតែងនិពន្ធ ​ដែល​បានភ្ជាប់',
51
-	'bouton_radio_envoi_annonces_adresse' => 'ផ្ញើ​ ការប្រកាសដំណឹង ទៅអាសយដ្ឋាន ៖',
52
-	'bouton_radio_envoi_liste_nouveautes' => 'ផ្ញើ​ ប​ញ្ជី នៃអ្វី ដែលថ្មី',
53
-	'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'មិន​លេច​ចេញ ​ក្នុង​បញ្ជី​ អ្នកតែងនិពន្ធ',
54
-	'bouton_radio_non_envoi_annonces_editoriales' => 'មិន​ផ្ញើ​ ការប្រកាសដំណឹង ​ដែល​ផ្សព្វផ្សាយ',
55
-	'bouton_redirection' => 'បណ្តូរទិស',
56
-	'bouton_relancer_installation' => 'តំលើង ឡើងវិញ',
57
-	'bouton_suivant' => 'បន្ទាប់',
58
-	'bouton_tenter_recuperation' => 'ព្យាយាម​ជួសជុល',
59
-	'bouton_test_proxy' => 'សាកល្បង ខំព្យូរើបំរើសេវា Proxy',
60
-	'bouton_vider_cache' => 'ពង្រីង សតិភ្ជាប់',
39
+    // B
40
+    'bouton_acces_ldap' => 'បន្ថែម​ ការ​ចូល​ទៅ LDAP ',
41
+    'bouton_ajouter' => 'បន្ថែម',
42
+    'bouton_annuler' => 'បោះបង់',
43
+    'bouton_demande_publication' => 'សួររក ការផ្សព្វផ្សាយ នៃអត្ថបទនេះ',
44
+    'bouton_desactive_tout' => 'អសកម្មទាំងអស់',
45
+    'bouton_desinstaller' => 'លែងតំលើង',
46
+    'bouton_effacer_tout' => 'លុប​ចេញ ទាំងអស់',
47
+    'bouton_envoyer_message' => 'សារ​បញ្ចប់ ៖ ផ្ញើ',
48
+    'bouton_modifier' => 'កែប្រែ',
49
+    'bouton_radio_afficher' => 'បង្ហាញចេញ',
50
+    'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'លេច​ចេញ ​ក្នុង​បញ្ជី​អ្នកតែងនិពន្ធ ​ដែល​បានភ្ជាប់',
51
+    'bouton_radio_envoi_annonces_adresse' => 'ផ្ញើ​ ការប្រកាសដំណឹង ទៅអាសយដ្ឋាន ៖',
52
+    'bouton_radio_envoi_liste_nouveautes' => 'ផ្ញើ​ ប​ញ្ជី នៃអ្វី ដែលថ្មី',
53
+    'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'មិន​លេច​ចេញ ​ក្នុង​បញ្ជី​ អ្នកតែងនិពន្ធ',
54
+    'bouton_radio_non_envoi_annonces_editoriales' => 'មិន​ផ្ញើ​ ការប្រកាសដំណឹង ​ដែល​ផ្សព្វផ្សាយ',
55
+    'bouton_redirection' => 'បណ្តូរទិស',
56
+    'bouton_relancer_installation' => 'តំលើង ឡើងវិញ',
57
+    'bouton_suivant' => 'បន្ទាប់',
58
+    'bouton_tenter_recuperation' => 'ព្យាយាម​ជួសជុល',
59
+    'bouton_test_proxy' => 'សាកល្បង ខំព្យូរើបំរើសេវា Proxy',
60
+    'bouton_vider_cache' => 'ពង្រីង សតិភ្ជាប់',
61 61
 
62
-	// C
63
-	'cache_modifiable_webmestre' => 'អាចផ្លាស់ប្តូរ ប៉ារ៉ាម៉ែត្រ​នេះ​ ដោយអ្នកជំនាញវ៉ែប នៃសៃថ៍។',
64
-	'calendrier_synchro' => 'បើ​អ្នក​ប្រើ​ប្រាស់ ផ្នែកទន់សៀវភៅកត់ត្រា សមស្រប <b>iCal</b>, អ្នក​អាច សមកាលវា ជាមួយពត៌មាន នៃសៃថ៍នេះ។',
65
-	'config_activer_champs' => 'ធ្វើអោយសកម្ម វាលខាងក្រោម',
66
-	'config_choix_base_sup' => 'ដាក់ឈ្មោះ មូលដ្ឋានទិន្នន័យ លើខំព្យូរើបំរើសេវានេះ',
67
-	'config_erreur_base_sup' => 'SPIP គ្មានអាចចូលទៅ មូលដ្ឋានទិន្នន័យ មានស្រាប់',
68
-	'config_info_enregistree' => 'បានរក្សាទុកហើយ ការកំណត់ទំរង់ថ្មីនេះ',
69
-	'config_info_logos_utiliser' => 'ប្រើប្រាស់ រូបសញ្ញា',
70
-	'config_info_logos_utiliser_non' => 'គ្មានប្រើប្រាស់ រូបសញ្ញា',
71
-	'config_titre_base_sup' => 'ការប្រកាស នៃមួយមូលដ្ឋានទិន្នន័យបន្ថែម',
72
-	'config_titre_base_sup_choix' => 'ជ្រើសរើសបន្ថែម មួយមូលដ្ឋានទិន្នន័យ',
73
-	'connexion_ldap' => 'កា​រ​ភ្ជាប់ ៖',
62
+    // C
63
+    'cache_modifiable_webmestre' => 'អាចផ្លាស់ប្តូរ ប៉ារ៉ាម៉ែត្រ​នេះ​ ដោយអ្នកជំនាញវ៉ែប នៃសៃថ៍។',
64
+    'calendrier_synchro' => 'បើ​អ្នក​ប្រើ​ប្រាស់ ផ្នែកទន់សៀវភៅកត់ត្រា សមស្រប <b>iCal</b>, អ្នក​អាច សមកាលវា ជាមួយពត៌មាន នៃសៃថ៍នេះ។',
65
+    'config_activer_champs' => 'ធ្វើអោយសកម្ម វាលខាងក្រោម',
66
+    'config_choix_base_sup' => 'ដាក់ឈ្មោះ មូលដ្ឋានទិន្នន័យ លើខំព្យូរើបំរើសេវានេះ',
67
+    'config_erreur_base_sup' => 'SPIP គ្មានអាចចូលទៅ មូលដ្ឋានទិន្នន័យ មានស្រាប់',
68
+    'config_info_enregistree' => 'បានរក្សាទុកហើយ ការកំណត់ទំរង់ថ្មីនេះ',
69
+    'config_info_logos_utiliser' => 'ប្រើប្រាស់ រូបសញ្ញា',
70
+    'config_info_logos_utiliser_non' => 'គ្មានប្រើប្រាស់ រូបសញ្ញា',
71
+    'config_titre_base_sup' => 'ការប្រកាស នៃមួយមូលដ្ឋានទិន្នន័យបន្ថែម',
72
+    'config_titre_base_sup_choix' => 'ជ្រើសរើសបន្ថែម មួយមូលដ្ឋានទិន្នន័យ',
73
+    'connexion_ldap' => 'កា​រ​ភ្ជាប់ ៖',
74 74
 
75
-	// D
76
-	'date_mot_heures' => 'ម៉ោង',
75
+    // D
76
+    'date_mot_heures' => 'ម៉ោង',
77 77
 
78
-	// E
79
-	'email' => 'អ៊ីមែវល៍',
80
-	'email_2' => 'អ៊ីមែវល៍ ៖',
81
-	'entree_adresse_annuaire' => 'អាសយដ្ឋាន​ នៃបញ្ជី​​ឈ្មោះ',
82
-	'entree_adresse_email' => 'អាសយដ្ឋានអ៊ីមែវល៍ របស់​អ្នក',
83
-	'entree_base_donnee_1' => 'អាសយដ្ឋាន នៃ​ឃ្លាំង​ទិន្នន័យ',
84
-	'entree_base_donnee_2' => '(​ជា​រឿយៗ អា​សយ​ដ្ឋាន​នេះ​ ត្រូវ​តាម ​អាសយដ្ឋាន នៃសៃថ៍ របស់​អ្នក, ជួនកាល ​វា​ត្រូវតាម ការកំណត់ «localhost», ជួនកាល ​វា​នៅ​ទទេ ​ទាំងស្រុង។​)',
85
-	'entree_biographie' => 'ជីវប្រវត្ដិ​ខ្លី​ ត្រឹមប៉ុន្មានពាក្យ។',
86
-	'entree_chemin_acces' => '<b>បញ្ចូល</b> ផ្លូវចូលទៅ៖',
87
-	'entree_cle_pgp' => 'កូនសោ PGP របស់​អ្នក',
88
-	'entree_contenu_rubrique' => 'ខ្លឹមសារ ​នៃ​ផ្នែក​នេះ​ ត្រឹមតែប៉ុន្មានពាក្យ។​)',
89
-	'entree_identifiants_connexion' => 'អត្ដសញ្ញា ​ភ្ជាប់​ របស់​អ្នក​...',
90
-	'entree_informations_connexion_ldap' => 'បំពេញបែបបទ​នេះ ​ពត៌មានបញ្ជាប់ ទៅបញ្ជីឈ្មោះ LDAP របស់អ្នក។ 
78
+    // E
79
+    'email' => 'អ៊ីមែវល៍',
80
+    'email_2' => 'អ៊ីមែវល៍ ៖',
81
+    'entree_adresse_annuaire' => 'អាសយដ្ឋាន​ នៃបញ្ជី​​ឈ្មោះ',
82
+    'entree_adresse_email' => 'អាសយដ្ឋានអ៊ីមែវល៍ របស់​អ្នក',
83
+    'entree_base_donnee_1' => 'អាសយដ្ឋាន នៃ​ឃ្លាំង​ទិន្នន័យ',
84
+    'entree_base_donnee_2' => '(​ជា​រឿយៗ អា​សយ​ដ្ឋាន​នេះ​ ត្រូវ​តាម ​អាសយដ្ឋាន នៃសៃថ៍ របស់​អ្នក, ជួនកាល ​វា​ត្រូវតាម ការកំណត់ «localhost», ជួនកាល ​វា​នៅ​ទទេ ​ទាំងស្រុង។​)',
85
+    'entree_biographie' => 'ជីវប្រវត្ដិ​ខ្លី​ ត្រឹមប៉ុន្មានពាក្យ។',
86
+    'entree_chemin_acces' => '<b>បញ្ចូល</b> ផ្លូវចូលទៅ៖',
87
+    'entree_cle_pgp' => 'កូនសោ PGP របស់​អ្នក',
88
+    'entree_contenu_rubrique' => 'ខ្លឹមសារ ​នៃ​ផ្នែក​នេះ​ ត្រឹមតែប៉ុន្មានពាក្យ។​)',
89
+    'entree_identifiants_connexion' => 'អត្ដសញ្ញា ​ភ្ជាប់​ របស់​អ្នក​...',
90
+    'entree_informations_connexion_ldap' => 'បំពេញបែបបទ​នេះ ​ពត៌មានបញ្ជាប់ ទៅបញ្ជីឈ្មោះ LDAP របស់អ្នក។ 
91 91
 ​ពត៌មាន​តាំងនេះ ត្រូវតែអាចផ្តល់ទៅអ្នក ​តាមអ្នកអភិបាល នៃប្រព័ន្ធ, 
92 92
  ឬ នៃបណ្តាញ។',
93
-	'entree_infos_perso' => 'អ្នកជា អ្នកណា?',
94
-	'entree_interieur_rubrique' => 'ពី​ក្នុង​ផ្នែក ៖',
95
-	'entree_liens_sites' => '<b>តំណភ្ជាប់ អត្ថបទខ្ពស់</b> (​ឯកសារយោង សៃថ៍​ សំរាប់ចូលមើល...)',
96
-	'entree_login' => 'ការ​ពិនិត្យចូល​ របស់​អ្នក',
97
-	'entree_login_connexion_1' => 'ការ​ពិនិត្យចូល ដើម្បី​ភ្ជាប់',
98
-	'entree_login_connexion_2' => '(​ជួនកាល ត្រូវតាម ​ការពិនិត្យ​ចូល​ ទៅ FTP របស់​អ្នក, ជួនកាល ទុកនៅទទេ​)',
99
-	'entree_mot_passe' => 'ពាក្យសំងាត់ ​របស់​អ្នក',
100
-	'entree_mot_passe_1' => 'ពាក្យសំងាត់ សំរាប់ភ្ជាប់',
101
-	'entree_mot_passe_2' => '(​ជួនកាល ​ត្រូវតាម ពាក្យសំងាត់ របស់អ្នក សំរាប់ FTP, ​ជួនកាល ទុកនៅទទេ)',
102
-	'entree_nom_fichier' => 'សូមបញ្ចូល ​ឈ្មោះ​សំណុំឯកសារ @texte_compresse@៖',
103
-	'entree_nom_pseudo' => 'ឈ្មោះ របស់អ្នក ឬ ​ឈ្មោះ​ហៅ​ក្រៅ​ របស់​អ្នក',
104
-	'entree_nom_pseudo_1' => '(​ឈ្មោះ របស់អ្នក ឬ ​ឈ្មោះ​ហៅ​ក្រៅ​ របស់​អ្នក​)',
105
-	'entree_nom_site' => 'ឈ្មោះសៃថ៍ របស់​អ្នក',
106
-	'entree_nouveau_passe' => 'ពាក្យសំងាត់ថ្មី',
107
-	'entree_passe_ldap' => 'ពាក្យសំងាត់',
108
-	'entree_port_annuaire' => 'លេខ​ច្រក​ នៃ​បញ្ជី​​ឈ្មោះ',
109
-	'entree_signature' => 'ហត្ថលេខា',
110
-	'entree_titre_obligatoire' => '<b>ចំណងជើង</b> [តំរូវ​ អោយ​មាន]<br />',
111
-	'entree_url' => 'អាសយដ្ឋាន URL នៃសៃថ៍ របស់អ្នក',
112
-	'erreur_plugin_fichier_absent' => 'សំណុំឯកសារ អវត្តមាន',
113
-	'erreur_plugin_fichier_def_absent' => 'អវត្តមាន សំណុំឯកសារនិយម​ន័យ',
114
-	'erreur_plugin_nom_fonction_interdit' => 'ឈ្មោះ​មុខងារ ត្រូវ​បាន​ហាម',
115
-	'erreur_plugin_nom_manquant' => 'ខ្វះឈ្មោះ​កម្មវិធី​ជំនួយ',
116
-	'erreur_plugin_prefix_manquant' => 'គ្មានបានកំណត់ វាលដាក់ឈ្មោះ​ នៃកម្មវិធី​ជំនួយ​',
117
-	'erreur_plugin_tag_plugin_absent' => '&lt;plugin&gt; ខ្វះ ​ក្នុងសំណុំឯកសារ​និយម​ន័យ',
118
-	'erreur_plugin_version_manquant' => 'ខ្វះកំណែ​ នៃ​កម្មវិធី​ជំនួយ',
93
+    'entree_infos_perso' => 'អ្នកជា អ្នកណា?',
94
+    'entree_interieur_rubrique' => 'ពី​ក្នុង​ផ្នែក ៖',
95
+    'entree_liens_sites' => '<b>តំណភ្ជាប់ អត្ថបទខ្ពស់</b> (​ឯកសារយោង សៃថ៍​ សំរាប់ចូលមើល...)',
96
+    'entree_login' => 'ការ​ពិនិត្យចូល​ របស់​អ្នក',
97
+    'entree_login_connexion_1' => 'ការ​ពិនិត្យចូល ដើម្បី​ភ្ជាប់',
98
+    'entree_login_connexion_2' => '(​ជួនកាល ត្រូវតាម ​ការពិនិត្យ​ចូល​ ទៅ FTP របស់​អ្នក, ជួនកាល ទុកនៅទទេ​)',
99
+    'entree_mot_passe' => 'ពាក្យសំងាត់ ​របស់​អ្នក',
100
+    'entree_mot_passe_1' => 'ពាក្យសំងាត់ សំរាប់ភ្ជាប់',
101
+    'entree_mot_passe_2' => '(​ជួនកាល ​ត្រូវតាម ពាក្យសំងាត់ របស់អ្នក សំរាប់ FTP, ​ជួនកាល ទុកនៅទទេ)',
102
+    'entree_nom_fichier' => 'សូមបញ្ចូល ​ឈ្មោះ​សំណុំឯកសារ @texte_compresse@៖',
103
+    'entree_nom_pseudo' => 'ឈ្មោះ របស់អ្នក ឬ ​ឈ្មោះ​ហៅ​ក្រៅ​ របស់​អ្នក',
104
+    'entree_nom_pseudo_1' => '(​ឈ្មោះ របស់អ្នក ឬ ​ឈ្មោះ​ហៅ​ក្រៅ​ របស់​អ្នក​)',
105
+    'entree_nom_site' => 'ឈ្មោះសៃថ៍ របស់​អ្នក',
106
+    'entree_nouveau_passe' => 'ពាក្យសំងាត់ថ្មី',
107
+    'entree_passe_ldap' => 'ពាក្យសំងាត់',
108
+    'entree_port_annuaire' => 'លេខ​ច្រក​ នៃ​បញ្ជី​​ឈ្មោះ',
109
+    'entree_signature' => 'ហត្ថលេខា',
110
+    'entree_titre_obligatoire' => '<b>ចំណងជើង</b> [តំរូវ​ អោយ​មាន]<br />',
111
+    'entree_url' => 'អាសយដ្ឋាន URL នៃសៃថ៍ របស់អ្នក',
112
+    'erreur_plugin_fichier_absent' => 'សំណុំឯកសារ អវត្តមាន',
113
+    'erreur_plugin_fichier_def_absent' => 'អវត្តមាន សំណុំឯកសារនិយម​ន័យ',
114
+    'erreur_plugin_nom_fonction_interdit' => 'ឈ្មោះ​មុខងារ ត្រូវ​បាន​ហាម',
115
+    'erreur_plugin_nom_manquant' => 'ខ្វះឈ្មោះ​កម្មវិធី​ជំនួយ',
116
+    'erreur_plugin_prefix_manquant' => 'គ្មានបានកំណត់ វាលដាក់ឈ្មោះ​ នៃកម្មវិធី​ជំនួយ​',
117
+    'erreur_plugin_tag_plugin_absent' => '&lt;plugin&gt; ខ្វះ ​ក្នុងសំណុំឯកសារ​និយម​ន័យ',
118
+    'erreur_plugin_version_manquant' => 'ខ្វះកំណែ​ នៃ​កម្មវិធី​ជំនួយ',
119 119
 
120
-	// I
121
-	'ical_info1' => 'ទំព័រ​នេះ​ បង្ហាញ​ ច្រើន​វិធី ​ដើម្បី​ទាក់ទង ជានិច្ច ​ជាមួយជីវិត នៃសៃថ៍នេះ។',
122
-	'ical_info2' => 'សំរាប់ពត៌មាន​បន្ថែម លើគ្រប់បច្ចេកទេស, សូមកុំ​ស្ទាក់ស្ទើរ​ ​ចូលមើល <a href="@spipnet@">កំរងឯកសារ SPIP</a>។',
123
-	'ical_info_calendrier' => 'ពីប្រក្រតីទិន មានស្រាប់ សំរាប់អ្នក។ ទី​មួយ ជា​ផែនទី​ នៃសៃថ៍ ប្រកាសអំពី គ្រប់អត្ថបទ ត្រូវបានផ្សព្វផ្សាយ។ ទី​ពីរ ​មានផ្ទុក ការប្រកាសដំណឹង ផ្សព្វផ្សាយក៏ដូច​ជា សារ​ឯកជនថ្មីៗ របស់​អ្នក៖
120
+    // I
121
+    'ical_info1' => 'ទំព័រ​នេះ​ បង្ហាញ​ ច្រើន​វិធី ​ដើម្បី​ទាក់ទង ជានិច្ច ​ជាមួយជីវិត នៃសៃថ៍នេះ។',
122
+    'ical_info2' => 'សំរាប់ពត៌មាន​បន្ថែម លើគ្រប់បច្ចេកទេស, សូមកុំ​ស្ទាក់ស្ទើរ​ ​ចូលមើល <a href="@spipnet@">កំរងឯកសារ SPIP</a>។',
123
+    'ical_info_calendrier' => 'ពីប្រក្រតីទិន មានស្រាប់ សំរាប់អ្នក។ ទី​មួយ ជា​ផែនទី​ នៃសៃថ៍ ប្រកាសអំពី គ្រប់អត្ថបទ ត្រូវបានផ្សព្វផ្សាយ។ ទី​ពីរ ​មានផ្ទុក ការប្រកាសដំណឹង ផ្សព្វផ្សាយក៏ដូច​ជា សារ​ឯកជនថ្មីៗ របស់​អ្នក៖
124 124
 វា​បង្ការ សំរាប់អ្នក ដោយសារតែ មួយកូនសោផ្ទាល់ខ្លួន, ដែលអ្នកអាច កែប្រែ នៅគ្រប់ពេល ដោយធ្វើថ្មីឡើងវិញ ពាក្យសំងាត់ របស់អ្នក។',
125
-	'ical_methode_http' => 'ទំនាញយក',
126
-	'ical_methode_webcal' => 'ភាពសមកាល (webcal://)', # MODIF
127
-	'ical_texte_js' => 'មួយបន្ទាត់ ចាវ៉ាស្ក្រិប (Java script) អនុញ្ញាតអ្នក បង្ហាញចេញសាមញ្ញបំផុត, លើគ្រប់សៃថ៍ របស់អ្នក, អត្ថបទថ្មីៗ ត្រូវបានផ្សព្វផ្សាយ លើសៃថ៍នេះ។',
128
-	'ical_texte_prive' => 'ប្រក្រតីទិន, ប្រើប្រាស់ត្រឹមផ្ទាល់ខ្លួន, ផ្តល់ពត៌មាន អ្នក អំពីសកម្មភាពបោះផ្សាយឯកជន នៃសៃថ៍នេះ (ភារៈកិច្ច និង ការណាត់ជួបផ្ទាល់ខ្លួន, អត្ថបទ និង ពត៌មានខ្លី ត្រូវបានស្នើ...)។',
129
-	'ical_texte_public' => 'ប្រក្រតីទិននេះ អនុញ្ញាតអ្នក តាមដាន សកម្មភាពសាធារណៈ នៃសៃថ៍នេះ (អត្ថបទ និង ពត៌មានខ្លី ត្រូវបានបោះផ្សាយ)។',
130
-	'ical_texte_rss' => 'អ្នកអាចបញ្ជាប់ ពត៌មានថ្មីៗ នៃសៃថ៍នេះ ក្នុង រាល់ប្រអប់អានឯកសារ ជាទំរង់ XML/RSS (សង្ខេបសៃថ៍ សំបូរ)។ វា ក៏ជាទំរង់ អនុញ្ញាត SPIP អានបត៌មានថ្មី បានបោះផ្សាយ លើសៃថ៍ដទៃ ដោយប្រើប្រាស់ មួយទំរង់ផ្លាស់ប្តូរគ្នា។',
131
-	'ical_titre_js' => 'អត្ថបទJava script               ',
132
-	'ical_titre_mailing' => 'បញ្ជី​ការ​ផ្ញើ​មែ​ល',
133
-	'ical_titre_rss' => 'ហ្វា​ល​រួម​បញ្ចូល​គ្នា',
134
-	'icone_activer_cookie' => 'ដាក់​ខូ​គី',
135
-	'icone_admin_plugin' => 'រៀបចំ​កម្មវិធី​ជំនួយ',
136
-	'icone_afficher_auteurs' => 'បង្ហាញ អ្នកនិពន្ធ',
137
-	'icone_afficher_visiteurs' => 'បង្ហាញ​ ពួកអ្នកចូលមើល',
138
-	'icone_arret_discussion' => 'ឈប់​ចូលរួម​ក្នុង​ការ​ពិភាក្សា​នេះ',
139
-	'icone_calendrier' => 'ប្រក្រតីទិន',
140
-	'icone_creer_auteur' => 'បង្កើត​ មួយអ្នកនិពន្ធ​ថ្មី និង​ភ្ជាប់​គាត់ ទៅ​អត្ថបទ​នេះ',
141
-	'icone_creer_mot_cle' => 'បង្កើតថ្មី មួយពាក្យគន្លឹះ និងតភ្ជាប់វា ទៅអត្ថបទនេះ',
142
-	'icone_creer_rubrique_2' => 'បង្កើត មួយផ្នែកថ្មី',
143
-	'icone_modifier_article' => 'កែប្រែ អត្ថបទនេះ',
144
-	'icone_modifier_rubrique' => 'កែប្រែ ផ្នែកនេះ',
145
-	'icone_retour' => 'ត្រលប់ក្រោយ',
146
-	'icone_retour_article' => 'ត្រលប់ ទៅអត្ថបទ',
147
-	'icone_supprimer_cookie' => 'លប់​ខូ​គី',
148
-	'icone_supprimer_rubrique' => 'លុបចេញ ផ្នែកនេះ',
149
-	'icone_supprimer_signature' => 'លប់​ហត្ថលេខា​នេះ',
150
-	'icone_valider_signature' => 'ធ្វើ​អោយ​ហត្ថលេខា​នេះ​មាន​សុពលភាព',
151
-	'image_administrer_rubrique' => 'អ្នក​អាច​គ្រប់គ្រង​ផ្នែក​នេះ',
152
-	'impossible_modifier_login_auteur' => 'Impossible de modifier le login.', # MODIF
153
-	'impossible_modifier_pass_auteur' => 'Impossible de modifier le mot de passe.', # MODIF
154
-	'info_1_article' => 'អត្ថបទ ១',
155
-	'info_activer_cookie' => 'អ្នអ្នក អាចធ្វើអោយសកម្ម មួយ <b>ខូកឃីឆ្លងឆ្លើយ</b>, វា នឹងអនុញ្ញាតអ្នក ងាយដើរ ពីសៃថ៍សាធារណះ ទៅសៃថ៍ឯកជន។',
156
-	'info_administrateur' => 'អ្នកគ្រប់គ្រង',
157
-	'info_administrateur_1' => 'អ្នកគ្រប់គ្រង',
158
-	'info_administrateur_2' => 'នៃសៃថ៍ (<i>ប្រើប្រាស់ ដោយប្រយត្ន</i>)',
159
-	'info_administrateur_site_01' => 'បើអ្នក ជាអ្នកអភិបាលសៃថ៍, សូម',
160
-	'info_administrateur_site_02' => 'ចុចលើ តំណភ្ជាប់នេះ',
161
-	'info_administrateurs' => 'អ្នកគ្រប់គ្រង',
162
-	'info_administrer_rubrique' => 'អ្នក​អាច​ចាត់ចែង​ផ្នែក​នេះ',
163
-	'info_adresse' => 'ទៅ​នឹង​អាសយដ្ឋាន ៖',
164
-	'info_adresse_url' => 'អាសយដ្ឋាន URL នៃសៃថ៍សាធារណះ',
165
-	'info_aide_en_ligne' => 'ជំនួយ លើបណ្តាញ SPIP',
166
-	'info_ajout_image' => 'នៅ​ពេល​អ្នក​បន្ថែម​រូប​ជា​ឯកសារ​ភ្ជាប់​ទៅ​នឹង​អត្ថបទ នោះ SPIP អាច​បង្កើត​រូបថត​ដោយ​ស្វ័យប្រវត្ដិ (​គំនូស​ព្រាង​) ពី​រូប​ដែល​បាន​បញ្ចូល ។ ប្រការ​នេះ​នឹង​អនុញ្ញាត ឧទាហរណ៍ អោយ​មានការ​បង្កើត​ដោយ​ស្វ័យប្រវត្ដិ​នូវ​វិចិត្រសាល ឬ​ផលប័ត្រ ។',
167
-	'info_ajouter_rubrique' => 'បន្ថែម​ផ្នែក​មួយទៀត​ដើម្បី​ចាត់ចែង ៖',
168
-	'info_annonce_nouveautes' => 'ជំនូនដំណឹង ចុងក្រោយបំផុត',
169
-	'info_article' => 'អត្ថបទ',
170
-	'info_article_2' => 'អត្ថបទ',
171
-	'info_article_a_paraitre' => 'អត្ថបទ​ចាស់​ដែល​ត្រូវ​បោះ​ពុ​ម្ភ​ផ្សាយ',
172
-	'info_articles_02' => 'អត្ថបទ',
173
-	'info_articles_2' => 'អត្ថបទ',
174
-	'info_articles_auteur' => 'អត្ថបទ របស់អ្នកនិពន្ធនេះ',
175
-	'info_articles_trouves' => 'អត្ថបទ​ត្រូវ​បាន​រក​ឃើញ',
176
-	'info_attente_validation' => 'អត្ថបទ របស់អ្នក កំពុងរង់ចាំ សុពលភាព',
177
-	'info_aujourdhui' => 'ថ្ងៃនេះ ៖',
178
-	'info_auteurs' => 'អ្នកនិពន្ធ',
179
-	'info_auteurs_par_tri' => 'អ្នកនិពន្ធ@partri@',
180
-	'info_auteurs_trouves' => 'អ្នកនិពន្ធ​ត្រូវ​បាន​រក​ឃើញ',
181
-	'info_authentification_externe' => 'យថាភាព​ខាងក្រៅ',
182
-	'info_avertissement' => 'ការ​ព្រមាន',
183
-	'info_barre_outils' => 'ជាមួយ របារឧបករ របស់វា ឬ?',
184
-	'info_base_installee' => 'បានតំលើង រចនាសម្ពន្ធ មូលដ្ឋានទិន្នន័យ របស់អ្នក។',
185
-	'info_chapeau' => 'ឧបករ រក្សា​ទិន្នន័យ',
186
-	'info_chapeau_2' => 'សេចក្ដី​ផ្ដើម ៖',
187
-	'info_chemin_acces_1' => 'ជម្រើស ៖<b>ច្រកចូល​នៅ​ក្នុង​បញ្ជី​រាយ​ឈ្មោះ</b>',
188
-	'info_chemin_acces_2' => 'ពីពេលនេះ, អ្នកត្រូវតែកំណត់ទំរង់ ផ្លូវចូលទៅ ពត៌មាននៃថតឯកសារ។ ពត៌មាននេះ មានខ្លឹមសារសំខាន់ សំរាប់អាន ពត៌មានផ្ទាល់ខ្លួន របស់អ្នកប្រើប្រាស់ បានតំកល់ទុក ក្នុងថតឯកសារ។',
189
-	'info_chemin_acces_annuaire' => 'ជម្រើស ៖<b>ច្រកចូល​នៅ​ក្នុង​បញ្ជី​រាយ​ឈ្មោះ</b>',
190
-	'info_choix_base' => 'ជំហាន​ទី​បី ៖',
191
-	'info_classement_1' => ' out of @liste@',
192
-	'info_classement_2' => ' out of @liste@',
193
-	'info_code_acces' => 'កុំភ្លេច អក្សរកូដចូលទៅ ផ្ទាល់ខ្លួន របស់អ្នក!',
194
-	'info_config_suivi' => 'បើអាសយដ្ឋាននេះ ត្រូវតាម បញ្ជីផ្ញើមែវល៍, អ្នក អាចបង្ហាញខាងក្រោម អាសយដ្ឋាន ដែលពួកអ្នកចូលរួម សៃថ៍ អាចចុះឈ្មោះ។ អាសយដ្ឋាននេះ អាចជា មួយអាសយដ្ឋាន URL (ជា ឧទាហរ ទំព័រចុះឈ្មោះ ទៅបញ្ជី​តាមរយះវ៉ែប), ឬ អាសយដ្ឋានអ៊ីមែវល៍ បានមានប្រធានបទ ជាក់លាក់ (ជា ឧទាហរ៖ <tt>@adresse_suivi@?subject=subscribe</tt>)៖',
195
-	'info_config_suivi_explication' => 'អ្នក អាចជាវប្រចាំ ទៅបញ្ជីផ្ញើមែវល៍ នៃសៃថ៍នេះ។ អ្នក នឹងទទួលបាន តាមមែវល៍ រាល់ជំនូនដំណឹង នៃអត្ថបទ​និង​នៃពត៌មានខ្លី បានស្នើ សំរាប់ការបោះផ្សាយ។',
196
-	'info_confirmer_passe' => 'បញ្ជាក់ទទួលស្គាល់ ពាក្យសំងាត់ថ្មី៖',
197
-	'info_conflit_edition_differences' => 'ភាពខុសគ្នា៖',
198
-	'info_conflit_edition_version_enregistree' => 'បានរក្សាទុក កំណែ៖',
199
-	'info_conflit_edition_votre_version' => 'កំណែ របស់អ្នក៖',
200
-	'info_connexion_base' => 'ជំហាន​ ​ពីរ ៖<b>ព្យាយាម ​ភ្ជាប់​ទៅ​ ឃ្លាំង​ទិន្នន័យ</b>',
201
-	'info_connexion_base_donnee' => 'ការភ្ជាប់ទៅ មូលដ្ឋានទិន្នន័យ របស់អ្នក',
202
-	'info_connexion_ldap_ok' => 'កា​រត​ភ្ជាប់ LDAP របស់​អ្នក​បាន​សម្រេច​ជោគជ័យ</b><p> អ្នក​អាច​ទៅ​កាន់​ជំហាន​បន្ទាប់​បាន ។</p>', # MODIF
203
-	'info_connexion_mysql' => 'ជំហាន​ទី​មួយ ៖ <b>កា​រត​ភ្ជាប់ MySQL របស់​អ្នក</b>',
204
-	'info_connexion_ok' => 'កា​រត​ភ្ជាប់​បាន​សម្រេច​ជោគជ័យ ។',
205
-	'info_contact' => 'ទំនាក់ទំនង',
206
-	'info_contenu_articles' => 'ខ្លឹមសារ​អត្ថបទ',
207
-	'info_creation_paragraphe' => '(​ដើម្បី​បង្កើត​កថាខណ្ឌ អ្នក​គ្រាន់តែ​ទុក​អោយ​មាន​បន្ទាត់​ទទេរ ។​)', # MODIF
208
-	'info_creation_rubrique' => 'មុន​ពេល​អាច​សរសេរ​អត្ថបទ<br /> អ្នក​ត្រូវ​តែ​បង្កើត​យ៉ាង​ហោច​ណាស់​មួយ​ផ្នែក ។<br />',
209
-	'info_creation_tables' => 'ជំហាន​ទី​បួន ៖ <b>ការ​បង្កើត​តារាង​ឃ្លាំង​ទិន្នន័យ</b>',
210
-	'info_creer_base' => '<b>បង្កើត</b> ឃ្លាំង​ទិន្នន័យ​ថ្មី',
211
-	'info_dans_rubrique' => 'ក្នុង​ផ្នែក ៖',
212
-	'info_date_publication_anterieure' => 'កាលបរិច្ឆេទ​នៃ​ការ​បោះ​ពុ​ម្ភ​ផ្សាយ​កាលពី​លើក​មុន ៖',
213
-	'info_date_referencement' => 'ថ្ងៃខែឆ្នាំ នៃការយោង របស់សៃថ៍នេះ ៖ ',
214
-	'info_derniere_etape' => 'ជំហាន​ចុង​ក្រោយ ៖  រួចរាល់​!',
215
-	'info_descriptif' => 'ការពិពណ៌នា៖',
216
-	'info_desinstaller_plugin' => 'លុបចេញ ទិន្នន័យ និងធ្វើអោយអសកម្ម plugin',
217
-	'info_discussion_cours' => 'ការពិភាក្សា កំពុងដំណើរ',
218
-	'info_ecrire_article' => 'មុន​ពេល​អាច​សរសេរ​អត្ថបទ​បាន អ្នក​ត្រូវ​បង្កើត​យ៉ាង​ហោច​ណាស់​មួយ​ផ្នែក ។',
219
-	'info_email_envoi' => 'អាសយដ្ឋានអ៊ីមែវល៍ របស់ម្ចាស់បញ្ញើ (ជាជំរើស)',
220
-	'info_email_envoi_txt' => 'បញ្ចូល អាយដ្ឋានអ៊ីមែវល៍ របស់អ្នកផ្ញើ ធ្លាប់បានប្រើប្រាស់ ពេលផ្ញើអ៊ីមែវល៍ (ជាលំនាំដើម, អាសយដ្ឋានអ្នកទទួល ត្រូវបានប្រើប្រាស់ ជាអាសយដ្ឋានអ្នកផ្ញើ) ៖',
221
-	'info_email_webmestre' => 'អាសយដ្ឋានអ៊ីមែវល៍ របស់អ្នកជំនាញវ៉ែប (ជាជំរើស)', # MODIF
222
-	'info_envoi_email_automatique' => 'ការ​ផ្ញើ​មែ​ល​ដោយ​ស្វ័យប្រវត្ដិ',
223
-	'info_envoyer_maintenant' => 'ផ្ញើ ឥឡូវ',
224
-	'info_etape_suivante' => 'ទៅ ជំហានបន្ទាប់',
225
-	'info_etape_suivante_1' => 'អ្នកអាចទៅ ជំហានបន្ទាប់។',
226
-	'info_etape_suivante_2' => 'អ្នកអាចទៅ ជំហានបន្ទាប់។',
227
-	'info_exportation_base' => 'នាំចេញ មូលដ្ឋានទិន្នន័យ ទៅ @archive@',
228
-	'info_facilite_suivi_activite' => 'សំរាប់សំរួល ការតាមដាន សកម្មភាពបោះផ្សាយ នៃសៃថ៍, SPIP អាចជូនដំណឹង តាមមែវល៍, ជាឧទាហរ ទៅបញ្ជីផ្ញើមែវល៍ របស់ពួកស្មេរ, ជំនូនដំណឹង នៃសំណើ បោះផ្សាយនានា និងភាពសុពលភាព នៃអត្ថបទនានា។',
229
-	'info_fichiers_authent' => 'ហ្វា​ល​យថាភាព \\".htpasswd\\"',
230
-	'info_forums_abo_invites' => 'វ៉ែបសៃថ៍ របស់អ្នក រួមមាន ទីប្រជុំមតិ តាមរយះការជាវ ; ចឹង ពួកទស្សនាករ អាចចុះឈ្មោះ ចូលរួម ទីប្រជុំមតិទាំងនេះ លើសៃថ៍សាធារណះ។',
231
-	'info_gauche_admin_tech' => '<b>ត្រឹម ពួកអ្នកទទួលខុសត្រូវសៃថ៍ អាចចូលទៅ ទំព័រនេះ។</b><p> វាអនុញ្ញាត អោយចូលទៅ មុខងារថែទាំបច្ចេកទេស ដទៃ។ មួយចំនួននៃមុខងារ ផ្តល់ដំណើរ សំគាល់ជាក់លាក់, តំរូវអោយមាន FTP សំរាប់ចូលទៅ វ៉ែបសៃថ៍។</p>', # MODIF
232
-	'info_gauche_admin_vider' => '<b>ត្រឹម ពួកអ្នកទទួលខុសត្រូវសៃថ៍ អាចចូលទៅ ទំព័រនេះ។</b><p> វាអនុញ្ញាត ចូលទៅ មុខងារថែទាំបច្ចេកទេស ដទៃ។ មួយចំនួននៃមុខងារ ផ្តល់ដំណើរ សំគាល់ជាក់លាក់, តំរូវអោយមាន FTP សំរាប់ចូលទៅ វ៉ែបសៃថ៍។</p>', # MODIF
233
-	'info_gauche_auteurs' => 'អ្នកនឹងឃើញ ទីនេះ គ្រប់អ្នកនិពន្ធ នៃវ៉ែបសៃថ៍។
125
+    'ical_methode_http' => 'ទំនាញយក',
126
+    'ical_methode_webcal' => 'ភាពសមកាល (webcal://)', # MODIF
127
+    'ical_texte_js' => 'មួយបន្ទាត់ ចាវ៉ាស្ក្រិប (Java script) អនុញ្ញាតអ្នក បង្ហាញចេញសាមញ្ញបំផុត, លើគ្រប់សៃថ៍ របស់អ្នក, អត្ថបទថ្មីៗ ត្រូវបានផ្សព្វផ្សាយ លើសៃថ៍នេះ។',
128
+    'ical_texte_prive' => 'ប្រក្រតីទិន, ប្រើប្រាស់ត្រឹមផ្ទាល់ខ្លួន, ផ្តល់ពត៌មាន អ្នក អំពីសកម្មភាពបោះផ្សាយឯកជន នៃសៃថ៍នេះ (ភារៈកិច្ច និង ការណាត់ជួបផ្ទាល់ខ្លួន, អត្ថបទ និង ពត៌មានខ្លី ត្រូវបានស្នើ...)។',
129
+    'ical_texte_public' => 'ប្រក្រតីទិននេះ អនុញ្ញាតអ្នក តាមដាន សកម្មភាពសាធារណៈ នៃសៃថ៍នេះ (អត្ថបទ និង ពត៌មានខ្លី ត្រូវបានបោះផ្សាយ)។',
130
+    'ical_texte_rss' => 'អ្នកអាចបញ្ជាប់ ពត៌មានថ្មីៗ នៃសៃថ៍នេះ ក្នុង រាល់ប្រអប់អានឯកសារ ជាទំរង់ XML/RSS (សង្ខេបសៃថ៍ សំបូរ)។ វា ក៏ជាទំរង់ អនុញ្ញាត SPIP អានបត៌មានថ្មី បានបោះផ្សាយ លើសៃថ៍ដទៃ ដោយប្រើប្រាស់ មួយទំរង់ផ្លាស់ប្តូរគ្នា។',
131
+    'ical_titre_js' => 'អត្ថបទJava script               ',
132
+    'ical_titre_mailing' => 'បញ្ជី​ការ​ផ្ញើ​មែ​ល',
133
+    'ical_titre_rss' => 'ហ្វា​ល​រួម​បញ្ចូល​គ្នា',
134
+    'icone_activer_cookie' => 'ដាក់​ខូ​គី',
135
+    'icone_admin_plugin' => 'រៀបចំ​កម្មវិធី​ជំនួយ',
136
+    'icone_afficher_auteurs' => 'បង្ហាញ អ្នកនិពន្ធ',
137
+    'icone_afficher_visiteurs' => 'បង្ហាញ​ ពួកអ្នកចូលមើល',
138
+    'icone_arret_discussion' => 'ឈប់​ចូលរួម​ក្នុង​ការ​ពិភាក្សា​នេះ',
139
+    'icone_calendrier' => 'ប្រក្រតីទិន',
140
+    'icone_creer_auteur' => 'បង្កើត​ មួយអ្នកនិពន្ធ​ថ្មី និង​ភ្ជាប់​គាត់ ទៅ​អត្ថបទ​នេះ',
141
+    'icone_creer_mot_cle' => 'បង្កើតថ្មី មួយពាក្យគន្លឹះ និងតភ្ជាប់វា ទៅអត្ថបទនេះ',
142
+    'icone_creer_rubrique_2' => 'បង្កើត មួយផ្នែកថ្មី',
143
+    'icone_modifier_article' => 'កែប្រែ អត្ថបទនេះ',
144
+    'icone_modifier_rubrique' => 'កែប្រែ ផ្នែកនេះ',
145
+    'icone_retour' => 'ត្រលប់ក្រោយ',
146
+    'icone_retour_article' => 'ត្រលប់ ទៅអត្ថបទ',
147
+    'icone_supprimer_cookie' => 'លប់​ខូ​គី',
148
+    'icone_supprimer_rubrique' => 'លុបចេញ ផ្នែកនេះ',
149
+    'icone_supprimer_signature' => 'លប់​ហត្ថលេខា​នេះ',
150
+    'icone_valider_signature' => 'ធ្វើ​អោយ​ហត្ថលេខា​នេះ​មាន​សុពលភាព',
151
+    'image_administrer_rubrique' => 'អ្នក​អាច​គ្រប់គ្រង​ផ្នែក​នេះ',
152
+    'impossible_modifier_login_auteur' => 'Impossible de modifier le login.', # MODIF
153
+    'impossible_modifier_pass_auteur' => 'Impossible de modifier le mot de passe.', # MODIF
154
+    'info_1_article' => 'អត្ថបទ ១',
155
+    'info_activer_cookie' => 'អ្នអ្នក អាចធ្វើអោយសកម្ម មួយ <b>ខូកឃីឆ្លងឆ្លើយ</b>, វា នឹងអនុញ្ញាតអ្នក ងាយដើរ ពីសៃថ៍សាធារណះ ទៅសៃថ៍ឯកជន។',
156
+    'info_administrateur' => 'អ្នកគ្រប់គ្រង',
157
+    'info_administrateur_1' => 'អ្នកគ្រប់គ្រង',
158
+    'info_administrateur_2' => 'នៃសៃថ៍ (<i>ប្រើប្រាស់ ដោយប្រយត្ន</i>)',
159
+    'info_administrateur_site_01' => 'បើអ្នក ជាអ្នកអភិបាលសៃថ៍, សូម',
160
+    'info_administrateur_site_02' => 'ចុចលើ តំណភ្ជាប់នេះ',
161
+    'info_administrateurs' => 'អ្នកគ្រប់គ្រង',
162
+    'info_administrer_rubrique' => 'អ្នក​អាច​ចាត់ចែង​ផ្នែក​នេះ',
163
+    'info_adresse' => 'ទៅ​នឹង​អាសយដ្ឋាន ៖',
164
+    'info_adresse_url' => 'អាសយដ្ឋាន URL នៃសៃថ៍សាធារណះ',
165
+    'info_aide_en_ligne' => 'ជំនួយ លើបណ្តាញ SPIP',
166
+    'info_ajout_image' => 'នៅ​ពេល​អ្នក​បន្ថែម​រូប​ជា​ឯកសារ​ភ្ជាប់​ទៅ​នឹង​អត្ថបទ នោះ SPIP អាច​បង្កើត​រូបថត​ដោយ​ស្វ័យប្រវត្ដិ (​គំនូស​ព្រាង​) ពី​រូប​ដែល​បាន​បញ្ចូល ។ ប្រការ​នេះ​នឹង​អនុញ្ញាត ឧទាហរណ៍ អោយ​មានការ​បង្កើត​ដោយ​ស្វ័យប្រវត្ដិ​នូវ​វិចិត្រសាល ឬ​ផលប័ត្រ ។',
167
+    'info_ajouter_rubrique' => 'បន្ថែម​ផ្នែក​មួយទៀត​ដើម្បី​ចាត់ចែង ៖',
168
+    'info_annonce_nouveautes' => 'ជំនូនដំណឹង ចុងក្រោយបំផុត',
169
+    'info_article' => 'អត្ថបទ',
170
+    'info_article_2' => 'អត្ថបទ',
171
+    'info_article_a_paraitre' => 'អត្ថបទ​ចាស់​ដែល​ត្រូវ​បោះ​ពុ​ម្ភ​ផ្សាយ',
172
+    'info_articles_02' => 'អត្ថបទ',
173
+    'info_articles_2' => 'អត្ថបទ',
174
+    'info_articles_auteur' => 'អត្ថបទ របស់អ្នកនិពន្ធនេះ',
175
+    'info_articles_trouves' => 'អត្ថបទ​ត្រូវ​បាន​រក​ឃើញ',
176
+    'info_attente_validation' => 'អត្ថបទ របស់អ្នក កំពុងរង់ចាំ សុពលភាព',
177
+    'info_aujourdhui' => 'ថ្ងៃនេះ ៖',
178
+    'info_auteurs' => 'អ្នកនិពន្ធ',
179
+    'info_auteurs_par_tri' => 'អ្នកនិពន្ធ@partri@',
180
+    'info_auteurs_trouves' => 'អ្នកនិពន្ធ​ត្រូវ​បាន​រក​ឃើញ',
181
+    'info_authentification_externe' => 'យថាភាព​ខាងក្រៅ',
182
+    'info_avertissement' => 'ការ​ព្រមាន',
183
+    'info_barre_outils' => 'ជាមួយ របារឧបករ របស់វា ឬ?',
184
+    'info_base_installee' => 'បានតំលើង រចនាសម្ពន្ធ មូលដ្ឋានទិន្នន័យ របស់អ្នក។',
185
+    'info_chapeau' => 'ឧបករ រក្សា​ទិន្នន័យ',
186
+    'info_chapeau_2' => 'សេចក្ដី​ផ្ដើម ៖',
187
+    'info_chemin_acces_1' => 'ជម្រើស ៖<b>ច្រកចូល​នៅ​ក្នុង​បញ្ជី​រាយ​ឈ្មោះ</b>',
188
+    'info_chemin_acces_2' => 'ពីពេលនេះ, អ្នកត្រូវតែកំណត់ទំរង់ ផ្លូវចូលទៅ ពត៌មាននៃថតឯកសារ។ ពត៌មាននេះ មានខ្លឹមសារសំខាន់ សំរាប់អាន ពត៌មានផ្ទាល់ខ្លួន របស់អ្នកប្រើប្រាស់ បានតំកល់ទុក ក្នុងថតឯកសារ។',
189
+    'info_chemin_acces_annuaire' => 'ជម្រើស ៖<b>ច្រកចូល​នៅ​ក្នុង​បញ្ជី​រាយ​ឈ្មោះ</b>',
190
+    'info_choix_base' => 'ជំហាន​ទី​បី ៖',
191
+    'info_classement_1' => ' out of @liste@',
192
+    'info_classement_2' => ' out of @liste@',
193
+    'info_code_acces' => 'កុំភ្លេច អក្សរកូដចូលទៅ ផ្ទាល់ខ្លួន របស់អ្នក!',
194
+    'info_config_suivi' => 'បើអាសយដ្ឋាននេះ ត្រូវតាម បញ្ជីផ្ញើមែវល៍, អ្នក អាចបង្ហាញខាងក្រោម អាសយដ្ឋាន ដែលពួកអ្នកចូលរួម សៃថ៍ អាចចុះឈ្មោះ។ អាសយដ្ឋាននេះ អាចជា មួយអាសយដ្ឋាន URL (ជា ឧទាហរ ទំព័រចុះឈ្មោះ ទៅបញ្ជី​តាមរយះវ៉ែប), ឬ អាសយដ្ឋានអ៊ីមែវល៍ បានមានប្រធានបទ ជាក់លាក់ (ជា ឧទាហរ៖ <tt>@adresse_suivi@?subject=subscribe</tt>)៖',
195
+    'info_config_suivi_explication' => 'អ្នក អាចជាវប្រចាំ ទៅបញ្ជីផ្ញើមែវល៍ នៃសៃថ៍នេះ។ អ្នក នឹងទទួលបាន តាមមែវល៍ រាល់ជំនូនដំណឹង នៃអត្ថបទ​និង​នៃពត៌មានខ្លី បានស្នើ សំរាប់ការបោះផ្សាយ។',
196
+    'info_confirmer_passe' => 'បញ្ជាក់ទទួលស្គាល់ ពាក្យសំងាត់ថ្មី៖',
197
+    'info_conflit_edition_differences' => 'ភាពខុសគ្នា៖',
198
+    'info_conflit_edition_version_enregistree' => 'បានរក្សាទុក កំណែ៖',
199
+    'info_conflit_edition_votre_version' => 'កំណែ របស់អ្នក៖',
200
+    'info_connexion_base' => 'ជំហាន​ ​ពីរ ៖<b>ព្យាយាម ​ភ្ជាប់​ទៅ​ ឃ្លាំង​ទិន្នន័យ</b>',
201
+    'info_connexion_base_donnee' => 'ការភ្ជាប់ទៅ មូលដ្ឋានទិន្នន័យ របស់អ្នក',
202
+    'info_connexion_ldap_ok' => 'កា​រត​ភ្ជាប់ LDAP របស់​អ្នក​បាន​សម្រេច​ជោគជ័យ</b><p> អ្នក​អាច​ទៅ​កាន់​ជំហាន​បន្ទាប់​បាន ។</p>', # MODIF
203
+    'info_connexion_mysql' => 'ជំហាន​ទី​មួយ ៖ <b>កា​រត​ភ្ជាប់ MySQL របស់​អ្នក</b>',
204
+    'info_connexion_ok' => 'កា​រត​ភ្ជាប់​បាន​សម្រេច​ជោគជ័យ ។',
205
+    'info_contact' => 'ទំនាក់ទំនង',
206
+    'info_contenu_articles' => 'ខ្លឹមសារ​អត្ថបទ',
207
+    'info_creation_paragraphe' => '(​ដើម្បី​បង្កើត​កថាខណ្ឌ អ្នក​គ្រាន់តែ​ទុក​អោយ​មាន​បន្ទាត់​ទទេរ ។​)', # MODIF
208
+    'info_creation_rubrique' => 'មុន​ពេល​អាច​សរសេរ​អត្ថបទ<br /> អ្នក​ត្រូវ​តែ​បង្កើត​យ៉ាង​ហោច​ណាស់​មួយ​ផ្នែក ។<br />',
209
+    'info_creation_tables' => 'ជំហាន​ទី​បួន ៖ <b>ការ​បង្កើត​តារាង​ឃ្លាំង​ទិន្នន័យ</b>',
210
+    'info_creer_base' => '<b>បង្កើត</b> ឃ្លាំង​ទិន្នន័យ​ថ្មី',
211
+    'info_dans_rubrique' => 'ក្នុង​ផ្នែក ៖',
212
+    'info_date_publication_anterieure' => 'កាលបរិច្ឆេទ​នៃ​ការ​បោះ​ពុ​ម្ភ​ផ្សាយ​កាលពី​លើក​មុន ៖',
213
+    'info_date_referencement' => 'ថ្ងៃខែឆ្នាំ នៃការយោង របស់សៃថ៍នេះ ៖ ',
214
+    'info_derniere_etape' => 'ជំហាន​ចុង​ក្រោយ ៖  រួចរាល់​!',
215
+    'info_descriptif' => 'ការពិពណ៌នា៖',
216
+    'info_desinstaller_plugin' => 'លុបចេញ ទិន្នន័យ និងធ្វើអោយអសកម្ម plugin',
217
+    'info_discussion_cours' => 'ការពិភាក្សា កំពុងដំណើរ',
218
+    'info_ecrire_article' => 'មុន​ពេល​អាច​សរសេរ​អត្ថបទ​បាន អ្នក​ត្រូវ​បង្កើត​យ៉ាង​ហោច​ណាស់​មួយ​ផ្នែក ។',
219
+    'info_email_envoi' => 'អាសយដ្ឋានអ៊ីមែវល៍ របស់ម្ចាស់បញ្ញើ (ជាជំរើស)',
220
+    'info_email_envoi_txt' => 'បញ្ចូល អាយដ្ឋានអ៊ីមែវល៍ របស់អ្នកផ្ញើ ធ្លាប់បានប្រើប្រាស់ ពេលផ្ញើអ៊ីមែវល៍ (ជាលំនាំដើម, អាសយដ្ឋានអ្នកទទួល ត្រូវបានប្រើប្រាស់ ជាអាសយដ្ឋានអ្នកផ្ញើ) ៖',
221
+    'info_email_webmestre' => 'អាសយដ្ឋានអ៊ីមែវល៍ របស់អ្នកជំនាញវ៉ែប (ជាជំរើស)', # MODIF
222
+    'info_envoi_email_automatique' => 'ការ​ផ្ញើ​មែ​ល​ដោយ​ស្វ័យប្រវត្ដិ',
223
+    'info_envoyer_maintenant' => 'ផ្ញើ ឥឡូវ',
224
+    'info_etape_suivante' => 'ទៅ ជំហានបន្ទាប់',
225
+    'info_etape_suivante_1' => 'អ្នកអាចទៅ ជំហានបន្ទាប់។',
226
+    'info_etape_suivante_2' => 'អ្នកអាចទៅ ជំហានបន្ទាប់។',
227
+    'info_exportation_base' => 'នាំចេញ មូលដ្ឋានទិន្នន័យ ទៅ @archive@',
228
+    'info_facilite_suivi_activite' => 'សំរាប់សំរួល ការតាមដាន សកម្មភាពបោះផ្សាយ នៃសៃថ៍, SPIP អាចជូនដំណឹង តាមមែវល៍, ជាឧទាហរ ទៅបញ្ជីផ្ញើមែវល៍ របស់ពួកស្មេរ, ជំនូនដំណឹង នៃសំណើ បោះផ្សាយនានា និងភាពសុពលភាព នៃអត្ថបទនានា។',
229
+    'info_fichiers_authent' => 'ហ្វា​ល​យថាភាព \\".htpasswd\\"',
230
+    'info_forums_abo_invites' => 'វ៉ែបសៃថ៍ របស់អ្នក រួមមាន ទីប្រជុំមតិ តាមរយះការជាវ ; ចឹង ពួកទស្សនាករ អាចចុះឈ្មោះ ចូលរួម ទីប្រជុំមតិទាំងនេះ លើសៃថ៍សាធារណះ។',
231
+    'info_gauche_admin_tech' => '<b>ត្រឹម ពួកអ្នកទទួលខុសត្រូវសៃថ៍ អាចចូលទៅ ទំព័រនេះ។</b><p> វាអនុញ្ញាត អោយចូលទៅ មុខងារថែទាំបច្ចេកទេស ដទៃ។ មួយចំនួននៃមុខងារ ផ្តល់ដំណើរ សំគាល់ជាក់លាក់, តំរូវអោយមាន FTP សំរាប់ចូលទៅ វ៉ែបសៃថ៍។</p>', # MODIF
232
+    'info_gauche_admin_vider' => '<b>ត្រឹម ពួកអ្នកទទួលខុសត្រូវសៃថ៍ អាចចូលទៅ ទំព័រនេះ។</b><p> វាអនុញ្ញាត ចូលទៅ មុខងារថែទាំបច្ចេកទេស ដទៃ។ មួយចំនួននៃមុខងារ ផ្តល់ដំណើរ សំគាល់ជាក់លាក់, តំរូវអោយមាន FTP សំរាប់ចូលទៅ វ៉ែបសៃថ៍។</p>', # MODIF
233
+    'info_gauche_auteurs' => 'អ្នកនឹងឃើញ ទីនេះ គ្រប់អ្នកនិពន្ធ នៃវ៉ែបសៃថ៍។
234 234
  ស្ថានភាព របស់ពួកគេ ត្រូវបានសំគាល់ ដោយ ពណ៌នៃរូបតំណាង (អ្នកអភិបាល = បៃតង; អ្នកបោះផ្សាយ = លឿង;)',
235
-	'info_gauche_auteurs_exterieurs' => 'ពួកអ្នកនិពន្ធ ពីខាងក្រៅ, គ្មានអាចចូលទៅ វ៉ែបសៃថ៍, ត្រូវបានសំគាល់ ជារូបតំណាង ពណ៌ខៀវ ;
235
+    'info_gauche_auteurs_exterieurs' => 'ពួកអ្នកនិពន្ធ ពីខាងក្រៅ, គ្មានអាចចូលទៅ វ៉ែបសៃថ៍, ត្រូវបានសំគាល់ ជារូបតំណាង ពណ៌ខៀវ ;
236 236
 ​ ពួកអ្នកនិពន្ធ ត្រូវបានលុបចេញ ដោយធុងសំរាម។', # MODIF
237
-	'info_gauche_messagerie' => 'ការ​ផ្ញើ​សារ​អនុញ្ញាត​អោយ​អ្នក​ផ្លាស់​ប្ដូរ​សារ​ក្នុង​ចំណោម​បណ្ណាធិកា ដើម្បី​រក្សា​ទុក​អនុស្សរណៈ  (​សម្រាប់​ការ​ប្រើប្រាស់​ផ្ទាល់ខ្លួន​របស់​អ្នក​) ឬ​ដើម្បី​បង្ហាញ​នូវ​សេចក្ដី​ប្រកាស​នៅ​លើ​គេហទំព័រ​នៃ​កន្លែង​ឯកជន (​ប្រសិនបើ​អ្នក​គឺជា​អ្នកគ្រប់គ្រង​) ។',
238
-	'info_gauche_statistiques_referers' => 'ទំព័រនេះ បង្ហាញ បញ្ជី<i>ឯកសារយោង</i>, បានន័យថា វ៉ែបសៃថ៍ មានផ្ទុកតំណភ្ជាប់ សំដៅសៃថ៍ផ្ទាល់ របស់អ្នក, ត្រឹម ម្សិល និងថ្ងៃនេះ ; បញ្ជីនេះ ត្រូវបានត្រលប់ទៅ សូន្យ រាល់ ២៤ ម៉ោង។',
239
-	'info_gauche_visiteurs_enregistres' => 'អ្នកនឹង រកឃើញ ទីនេះ ពួកទស្សនាករ
237
+    'info_gauche_messagerie' => 'ការ​ផ្ញើ​សារ​អនុញ្ញាត​អោយ​អ្នក​ផ្លាស់​ប្ដូរ​សារ​ក្នុង​ចំណោម​បណ្ណាធិកា ដើម្បី​រក្សា​ទុក​អនុស្សរណៈ  (​សម្រាប់​ការ​ប្រើប្រាស់​ផ្ទាល់ខ្លួន​របស់​អ្នក​) ឬ​ដើម្បី​បង្ហាញ​នូវ​សេចក្ដី​ប្រកាស​នៅ​លើ​គេហទំព័រ​នៃ​កន្លែង​ឯកជន (​ប្រសិនបើ​អ្នក​គឺជា​អ្នកគ្រប់គ្រង​) ។',
238
+    'info_gauche_statistiques_referers' => 'ទំព័រនេះ បង្ហាញ បញ្ជី<i>ឯកសារយោង</i>, បានន័យថា វ៉ែបសៃថ៍ មានផ្ទុកតំណភ្ជាប់ សំដៅសៃថ៍ផ្ទាល់ របស់អ្នក, ត្រឹម ម្សិល និងថ្ងៃនេះ ; បញ្ជីនេះ ត្រូវបានត្រលប់ទៅ សូន្យ រាល់ ២៤ ម៉ោង។',
239
+    'info_gauche_visiteurs_enregistres' => 'អ្នកនឹង រកឃើញ ទីនេះ ពួកទស្សនាករ
240 240
  ក្នុងធ្លាសាធារណះ នៃវ៉ែបសៃថ៍ (​ទីប្រជុំមតិ ជាវប្រចាំ)។',
241
-	'info_generation_miniatures_images' => 'បង្កើត​គំនូស​ព្រាង​រូបភាព',
242
-	'info_hebergeur_desactiver_envoi_email' => '“​កុំព្យូទ័រ​ខ្លះ​បិទមុខ​ងារ​ផ្ញើ​សារ​ស្វ័យប្រវត្ដិ',
243
-	'info_hier' => 'ម្សិល​ម៉ិ​ញៈ',
244
-	'info_identification_publique' => 'អត្តសញ្ញា សាធារណះ របស់អ្នក...',
245
-	'info_image_process' => 'ជ្រើសយក វិធីប្រពៃបំផុត សំរាប់បង្កើត កូនរូបភាព ដោយ ចុចលើ រូបភាពទាក់ទិន។',
246
-	'info_image_process2' => '<b>ចំណាំ៖</b> <i>បើគ្មានរូបភាព លេចឡើង, ពេលខំព្យូរើបំរើសេវា ដែលទទួលផ្ទុកវ៉ែបសៃថ៍ របស់អ្នក គ្មានត្រូវបានកំណត់ទំរង់ សំរាប់ប្រើប្រាស់ ឧបករបែបចឹង។ បើអ្នក ចង់ប្រើប្រាស់ មុខងារទាំងនេះ, ទាក់ទងអ្នកទទួលខុសត្រូវ ផ្នែកបច្ចេកទេស និងសួរ ផ្នែកបន្ថែម «GD» ឬ «Imagick»</i>', # MODIF
247
-	'info_images_auto' => 'រូបភាព​ដែល​ត្រូវ​បាន​រាប់​ដោយ​ស្វ័យប្រវត្ដិ',
248
-	'info_informations_personnelles' => 'ជំហាន​ទី​ប្រាំ ៖ <b>Personal information</b>',
249
-	'info_inscription_automatique' => 'ការចុះឈ្មោះស្វ័យប្រវត្តិ ពួកស្មេរថ្មី',
250
-	'info_jeu_caractere' => 'កញ្ចប់ភាសា នៃសៃថ៍',
251
-	'info_jours' => 'ថ្ងៃ',
252
-	'info_laisser_champs_vides' => 'ទុក​ប្រអប់​នេះ​ទំនេរ',
253
-	'info_langues' => 'ភាសា នៃសៃថ៍',
254
-	'info_ldap_ok' => 'LDAP បញ្ជាក់​ភាព​ត្រឹមត្រូវ ត្រូវ​បាន​ដំឡើង​។',
255
-	'info_lien_hypertexte' => 'តំណភ្ជាប់ អត្ថបទខ្ពស់៖',
256
-	'info_liste_redacteurs_connectes' => 'បញ្ជី​អ្នក​សរសេរ​អត្ថបទ​ដែល​ទាក់ទង',
257
-	'info_login_existant' => 'ការពិនិត្យចូលនេះ មានស្រាប់ហើយ។',
258
-	'info_login_trop_court' => 'ការពិនិត្យចូល ខ្លីពេក។',
259
-	'info_logos' => 'រូបសញ្ញា',
260
-	'info_maximum' => 'អតិបរមាៈ',
261
-	'info_meme_rubrique' => 'នៅ​ក្នុង​ផ្នែក​ដដែល',
262
-	'info_message_en_redaction' => 'សារ​របស់​លោក​អ្នក​កំពុង​ដំណើរការ',
263
-	'info_message_technique' => 'សារ​បច្ចេកទេសៈ',
264
-	'info_messagerie_interne' => 'ការ​បញ្ជូន​សារ​ខាងក្នុង',
265
-	'info_mise_a_niveau_base' => 'ការ​កែ​លំអ​សំណុំ​ទិន្នន័យMySQL ',
266
-	'info_mise_a_niveau_base_2' => '{{ប្រយត្ន!}} អ្នក បានតំលើង មួយកំណែ
241
+    'info_generation_miniatures_images' => 'បង្កើត​គំនូស​ព្រាង​រូបភាព',
242
+    'info_hebergeur_desactiver_envoi_email' => '“​កុំព្យូទ័រ​ខ្លះ​បិទមុខ​ងារ​ផ្ញើ​សារ​ស្វ័យប្រវត្ដិ',
243
+    'info_hier' => 'ម្សិល​ម៉ិ​ញៈ',
244
+    'info_identification_publique' => 'អត្តសញ្ញា សាធារណះ របស់អ្នក...',
245
+    'info_image_process' => 'ជ្រើសយក វិធីប្រពៃបំផុត សំរាប់បង្កើត កូនរូបភាព ដោយ ចុចលើ រូបភាពទាក់ទិន។',
246
+    'info_image_process2' => '<b>ចំណាំ៖</b> <i>បើគ្មានរូបភាព លេចឡើង, ពេលខំព្យូរើបំរើសេវា ដែលទទួលផ្ទុកវ៉ែបសៃថ៍ របស់អ្នក គ្មានត្រូវបានកំណត់ទំរង់ សំរាប់ប្រើប្រាស់ ឧបករបែបចឹង។ បើអ្នក ចង់ប្រើប្រាស់ មុខងារទាំងនេះ, ទាក់ទងអ្នកទទួលខុសត្រូវ ផ្នែកបច្ចេកទេស និងសួរ ផ្នែកបន្ថែម «GD» ឬ «Imagick»</i>', # MODIF
247
+    'info_images_auto' => 'រូបភាព​ដែល​ត្រូវ​បាន​រាប់​ដោយ​ស្វ័យប្រវត្ដិ',
248
+    'info_informations_personnelles' => 'ជំហាន​ទី​ប្រាំ ៖ <b>Personal information</b>',
249
+    'info_inscription_automatique' => 'ការចុះឈ្មោះស្វ័យប្រវត្តិ ពួកស្មេរថ្មី',
250
+    'info_jeu_caractere' => 'កញ្ចប់ភាសា នៃសៃថ៍',
251
+    'info_jours' => 'ថ្ងៃ',
252
+    'info_laisser_champs_vides' => 'ទុក​ប្រអប់​នេះ​ទំនេរ',
253
+    'info_langues' => 'ភាសា នៃសៃថ៍',
254
+    'info_ldap_ok' => 'LDAP បញ្ជាក់​ភាព​ត្រឹមត្រូវ ត្រូវ​បាន​ដំឡើង​។',
255
+    'info_lien_hypertexte' => 'តំណភ្ជាប់ អត្ថបទខ្ពស់៖',
256
+    'info_liste_redacteurs_connectes' => 'បញ្ជី​អ្នក​សរសេរ​អត្ថបទ​ដែល​ទាក់ទង',
257
+    'info_login_existant' => 'ការពិនិត្យចូលនេះ មានស្រាប់ហើយ។',
258
+    'info_login_trop_court' => 'ការពិនិត្យចូល ខ្លីពេក។',
259
+    'info_logos' => 'រូបសញ្ញា',
260
+    'info_maximum' => 'អតិបរមាៈ',
261
+    'info_meme_rubrique' => 'នៅ​ក្នុង​ផ្នែក​ដដែល',
262
+    'info_message_en_redaction' => 'សារ​របស់​លោក​អ្នក​កំពុង​ដំណើរការ',
263
+    'info_message_technique' => 'សារ​បច្ចេកទេសៈ',
264
+    'info_messagerie_interne' => 'ការ​បញ្ជូន​សារ​ខាងក្នុង',
265
+    'info_mise_a_niveau_base' => 'ការ​កែ​លំអ​សំណុំ​ទិន្នន័យMySQL ',
266
+    'info_mise_a_niveau_base_2' => '{{ប្រយត្ន!}} អ្នក បានតំលើង មួយកំណែ
267 267
  ឯកសារ SPIP (ចាស់)ជាង កំណែត្រូវបានតំលើង លើសៃថ៍នេះ៖ មូលដ្ឋានទិន្នន័យ របស់អ្នក អាចនឹងត្រូវបានបាត់ និងសៃថ៍ របស់អ្នក នឹងលែងធ្វើការ។ <br />{{តំលើងឡើងវិញ ឯកសារ SPIP។}}',
268
-	'info_modifier_auteur' => 'កែប្រែ ភាពលំអិតនៃអ្នកនិពន្ធ៖',
269
-	'info_modifier_rubrique' => 'កែប្រែ ផ្នែក៖',
270
-	'info_modifier_titre' => 'កែប្រែ៖ @titre@',
271
-	'info_mon_site_spip' => 'សៃថ៍ SPIP របស់ខ្ញុំ',
272
-	'info_moyenne' => 'មធ្យមៈ',
273
-	'info_multi_cet_article' => 'ភាសា​ក្នុង​អត្ថបទ​នេះ',
274
-	'info_multi_langues_choisies' => 'សូមជ្រើសយក ភាសាមានស្រាប់ ខាងក្រោម សំរាប់ ពួកស្មេរ នៃសៃថ៍ របស់អ្នក។
268
+    'info_modifier_auteur' => 'កែប្រែ ភាពលំអិតនៃអ្នកនិពន្ធ៖',
269
+    'info_modifier_rubrique' => 'កែប្រែ ផ្នែក៖',
270
+    'info_modifier_titre' => 'កែប្រែ៖ @titre@',
271
+    'info_mon_site_spip' => 'សៃថ៍ SPIP របស់ខ្ញុំ',
272
+    'info_moyenne' => 'មធ្យមៈ',
273
+    'info_multi_cet_article' => 'ភាសា​ក្នុង​អត្ថបទ​នេះ',
274
+    'info_multi_langues_choisies' => 'សូមជ្រើសយក ភាសាមានស្រាប់ ខាងក្រោម សំរាប់ ពួកស្មេរ នៃសៃថ៍ របស់អ្នក។
275 275
 ភាសា ត្រូវបានប្រើប្រាស់ហើយ ក្នុងសៃថ៍ របស់អ្នក(បង្ហាញ ដំបូង) គ្មានអាចត្រូវបាន អសកម្ម។',
276
-	'info_multi_secteurs' => '...​សំរាប់​តែ​ផ្នែក​ដែល​នៅ​ខាងក្រោម​គេ​ប៉ុណ្ណោះ​?',
277
-	'info_nom' => 'ឈ្មោះ',
278
-	'info_nom_destinataire' => 'ឈ្មោះ​អ្នក​ទទួល',
279
-	'info_nom_site' => 'ឈ្មោះវ៉ែបសៃថ៍ របស់ខ្ញុំ',
280
-	'info_nombre_articles' => 'អត្ថបទ',
281
-	'info_nombre_rubriques' => 'ផ្នែក',
282
-	'info_nombre_sites' => '@nb_sites@ វ៉ែបសៃថ៍,',
283
-	'info_non_deplacer' => 'សូមកុំ​រំកិល',
284
-	'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP អាចផ្ញើទៀងទាត់ ជំនូនដំណឹង ពត៌មានថ្មីៗ ចុងក្រោយ នៃវ៉ែបសៃថ៍
276
+    'info_multi_secteurs' => '...​សំរាប់​តែ​ផ្នែក​ដែល​នៅ​ខាងក្រោម​គេ​ប៉ុណ្ណោះ​?',
277
+    'info_nom' => 'ឈ្មោះ',
278
+    'info_nom_destinataire' => 'ឈ្មោះ​អ្នក​ទទួល',
279
+    'info_nom_site' => 'ឈ្មោះវ៉ែបសៃថ៍ របស់ខ្ញុំ',
280
+    'info_nombre_articles' => 'អត្ថបទ',
281
+    'info_nombre_rubriques' => 'ផ្នែក',
282
+    'info_nombre_sites' => '@nb_sites@ វ៉ែបសៃថ៍,',
283
+    'info_non_deplacer' => 'សូមកុំ​រំកិល',
284
+    'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP អាចផ្ញើទៀងទាត់ ជំនូនដំណឹង ពត៌មានថ្មីៗ ចុងក្រោយ នៃវ៉ែបសៃថ៍
285 285
  (អត្ថបទ និងពត៌មានខ្លី ត្រូវបានបោះផ្សាយថ្មីៗ។',
286
-	'info_non_envoi_liste_nouveautes' => 'កុំផ្ញើ បញ្ជីដំណឹងចុងក្រោយបំផុត',
287
-	'info_non_modifiable' => 'គ្មានអាចត្រូវបាន កែប្រែ',
288
-	'info_non_suppression_mot_cle' => 'ខ្ញុំ គ្មានចង់លុបចេញ ពាក្យគន្លឹះនេះ។',
289
-	'info_notes' => 'កំណត់សំគាល់​នៅ​ចុង​ទំព័រ',
290
-	'info_nouvel_article' => 'អត្ថបទ​ថ្មី',
291
-	'info_nouvelle_traduction' => 'អត្ថបទ​បកប្រែ​ថ្មីៈ',
292
-	'info_numero_article' => 'លេខ​អត្ថបទៈ',
293
-	'info_obligatoire_02' => '[ចាំបាច់]', # MODIF
294
-	'info_option_accepter_visiteurs' => 'យល់ព្រម ការចុះឈ្មោះ ពួកទស្សនាករ នៃវ៉ែបសៃថ៍​សាធារណះ',
295
-	'info_option_ne_pas_accepter_visiteurs' => 'បដិសេធ ការចុះឈ្មោះ របស់ទស្សនាករ',
296
-	'info_options_avancees' => 'ជំរើស​ពិសេស',
297
-	'info_ou' => 'ឬ​....',
298
-	'info_page_interdite' => 'ទំព័រ​ហាមឃាត់',
299
-	'info_par_nom' => 'តាម​ឈ្មោះ',
300
-	'info_par_nombre_article' => 'តាម​ចំនួន​អត្ថបទ',
301
-	'info_par_statut' => 'តាម​ស្ថានភាព',
302
-	'info_par_tri' => '’(by @tri@)’',
303
-	'info_passe_trop_court' => 'ពាក្យសំងាត់ ខ្លីពេក។',
304
-	'info_passes_identiques' => 'ពាក្យសំងាត់ ទាំងពីរ គ្មានដូចគ្នា។',
305
-	'info_plus_cinq_car' => 'លើសពី​ ៥ អក្សរ',
306
-	'info_plus_cinq_car_2' => '(​លើស​ពី ៥ អក្សរ​)',
307
-	'info_plus_trois_car' => '(​លើស​ពី ៣ អក្សរ​)',
308
-	'info_popularite' => 'ភាពពេញនិយម៖ ៖ @popularite@; ចំណូលមើល៖ @visites@',
309
-	'info_post_scriptum' => 'បដ្ឋនាលិខិត',
310
-	'info_post_scriptum_2' => 'បដ្ឋនាលិខិត',
311
-	'info_pour' => 'សំរាប់',
312
-	'info_preview_texte' => 'គ្មានអាចមើលមុន សៃថ៍ ដូចដែលគ្រប់អត្ថបទ និងខ្ទង់ដំណឹង (ដែលមានយ៉ាងតិច ស្ថានភាព "បានដាក់ស្នើ") ត្រូវបានបោះផ្សាយហើយ។ បែបមើលមុននេះ គួរត្រូវបានអនុញ្ញាត សំរាប់ពួកអ្នកអភិបាល, បើក សំរាប់គ្រប់អ្នកនិពន្ធ, ឬ គ្មានអនុញ្ញាតទាំងស្រុង?', # MODIF
313
-	'info_procedez_par_etape' => 'សូម​ដំណើរការ​មួយ​ជំហាន​ម្ដងៗ',
314
-	'info_procedure_maj_version' => 'គួរ​បើក​ដំណើរការ​នីតិវិធី​កែ​លំអ​ដើម្បី​សម្រួល​ដល់​ការ​ប្រើប្រាស់​ទិន្នន័យ​ទៅ​ក្នុង​វើ​សឹ​ន (version) របស់ SPIP',
315
-	'info_proxy_ok' => 'ការ​ពិនិត្យ​លើ​វើ​សឹ​ន​ថ្មី​ទទួល​បាន​ជោគជ័យ​។',
316
-	'info_ps' => 'បញ្ជាក់(P.S)',
317
-	'info_publier' => 'ចុះ​ផ្សាយ',
318
-	'info_publies' => 'រាល់អត្ថបទ របស់អ្នក ត្រូវបានបោះផ្សាយ លើអិនរើណែត',
319
-	'info_question_accepter_visiteurs' => 'ប្រសិនបើ​ទម្រង់​វ៉ិ​ប​សាយ​របស់​លោក​អ្នក​អនុញ្ញាត​ឱ្យ​អ្នក​ទស្សនា​ចុះ​ឈ្មោះ​ដោយ​មិន​ចាំបាច់​ចូល​ទៅ​ក្នុង​ផ្នែក​ឯកជន សូម​បើកមុខ​ងារ​ជំរើស​ខាងក្រោមៈ',
320
-	'info_question_inscription_nouveaux_redacteurs' => 'តើ​លោក​អ្នក​ត្រូវការ​អនុញ្ញាត​ឱ្យ​អ្នក​សរសេរ​អត្ថបទ​ថ្មី​ចុះ​ឈ្មោះ​ពី​វ៉ិ​ប​សាយ​សាធារណៈ​ដែល​ឬទេ​? ប្រសិនបើ​លោក​អ្នក​យល់ព្រម អ្នក​ទស្សនា​នឹង​អាច​ចុះ​ឈ្មោះ​ដោយ​ប្រើប្រាស់​ទម្រង់​ស្វ័យប្រវត្ដិ​មួយ ហើយ​បន្ទាប់​មក​ចូល​ក្នុង​ផ្នែក​ឯកជន​ដើម្បី​បញ្ចូល​អត្ថបទ​ផ្ទា់ល់​របស់​ពួក​គេ​។ <blockquote> ក្នុង​ពេល​ដំណើរការ​ចុះ​ឈ្មោះ អ្នក​ប្រើប្រាស់​ទទួល​បាន​អ៊ី​ម៉ែ​ល​ស្វ័យប្រវត្ដិ​ដែល​ផ្ដល់​ជូន​ពួក​គេ​នូវ​លេខ​កូដ​ចូល​ទៅ​ក្នុង​ផ្នែក​ឯកជន​។ ក្រុមហ៊ុន​ផ្ដល់​សេវា​មួយ​ចំនួន​មិន​អនុញ្ញាត​ចំពោះ​ការ​ផ្ញើ​អ៊ី​ម៉ែ​ល​ម៉ាស៊ីន​មេ (servers)​របស់​ពួក​គេ​ទេ ៖ ក្នុង​ករណី​នោះ ការ​ចុះ​ឈ្មោះ​ដោយ​ស្វ័យប្រវត្ដិ​គឺ​មិន​អាច​អនុវត្ដ​បាន​ទេ​។', # MODIF
321
-	'info_racine_site' => 'ឫស នៃវ៉ែបសៃថ៍',
322
-	'info_recharger_page' => 'សូម​បញ្ចូល​ទំព័រ​នេះ​ជា​ថ្មី​ម្ដងទៀត​នៅ​មួយសន្ទុះ​ក្រោយ',
323
-	'info_recherche_auteur_zero' => 'គ្មាន​លទ្ធផល​ទេ​សំរាប់ \\"@cherche_auteur@\\".',
324
-	'info_recommencer' => 'សូម​ព្យាយាម​ម្ដងទៀត',
325
-	'info_redacteur_1' => 'Rédacteur',
326
-	'info_redacteur_2' => 'បាន​ចូល​មក​ដល់​ផ្នែក​ឯកជន (<i>recommended</i>)',
327
-	'info_redacteurs' => 'អ្នក​សរសេរ​អត្ថបទ',
328
-	'info_redaction_en_cours' => 'កំពុង តែងអត្ថបទ',
329
-	'info_redirection' => 'ការ​កំណត់​ទិស​ដៅ​ជា​ថ្មី',
330
-	'info_refuses' => 'អត្ថបទ របស់អ្នក ត្រូវបានបដិសេធ',
331
-	'info_reglage_ldap' => 'ជម្រើសៈ<b>Adjusting LDAP import</b>',
332
-	'info_renvoi_article' => '<b>Redirection.</b> អត្ថបទ​នេះ​ត្រូវ​ប្ដូរ​ទិស​ដៅ​ជា​ថ្មី​ទៅៈ',
333
-	'info_reserve_admin' => 'ត្រឹម ពួកអ្នកអភិបាល អាចកែប្រែ អាសយដ្ឋាននេះ។',
334
-	'info_restreindre_rubrique' => 'កំណត់​ការ​គ្រប់គ្រង​ត្រឹមតែ​ចំពោះ​ផ្នែកៈ',
335
-	'info_resultat_recherche' => 'លទ្ធផល​នៃ​ការ​ស្វែងរកៈ',
336
-	'info_rubriques' => 'ផ្នែក',
337
-	'info_rubriques_02' => 'ផ្នែក',
338
-	'info_rubriques_trouvees' => 'ផ្នែក ត្រូវបានរកឃើញ',
339
-	'info_sans_titre' => 'គ្មាន​ចំណងជើង',
340
-	'info_selection_chemin_acces' => '<b>ជ្រើសយក</b> ខាងក្រោម ​ផ្លូវចូល​ទៅ​បញ្ជីឈ្មោះ ៖',
341
-	'info_signatures' => 'ហត្ថលេខា',
342
-	'info_site' => 'សៃថ៍',
343
-	'info_site_2' => 'សៃថ៍៖',
344
-	'info_site_min' => 'សៃថ៍',
345
-	'info_site_reference_2' => 'សៃថ៍​យោង',
346
-	'info_site_web' => 'វ៉ែប​​សៃថ៍ ៖', # MODIF
347
-	'info_sites' => '​​សៃថ៍',
348
-	'info_sites_lies_mot' => '​​សៃថ៍យោង​ ដែល​មាន​ពាក្យ​គន្លឹះ​នេះ',
349
-	'info_sites_proxy' => '​ប្រើប្រាស់​ មួយខំព្យូរើបំរើសេវា Proxy',
350
-	'info_sites_trouves' => 'បានរកឃើញ សៃថ៍',
351
-	'info_sous_titre' => 'ចំណងជើង​រង៖',
352
-	'info_statut_administrateur' => 'អ្នកអភិបាល',
353
-	'info_statut_auteur' => 'ស្ថានភាព នៃអ្នកនិពន្ធ នេះ៖',
354
-	'info_statut_auteur_a_confirmer' => 'ការ​ចុះ​ឈ្មោះ​ ដែល​ត្រូវ​បញ្ជាក់ទទួលស្គាល់',
355
-	'info_statut_auteur_autre' => 'ស្ថានភាព ដទៃ ៖',
356
-	'info_statut_redacteur' => 'អ្នក​តែងនិពន្ធ',
357
-	'info_statut_utilisateurs_1' => 'ស្ថានភាព​ លំនាំដើម នៃអ្នក​ប្រើប្រាស់​ ដែល​បានត្រូវនាំចូល',
358
-	'info_statut_utilisateurs_2' => 'ជ្រើសរើស​ស្ថានភាព​ដែល​បញ្ជាក់​អំពី​បុគ្គល​ដែល​មាននៅ​ក្នុង​បញ្ជី (directory) LDAP នៅ​ពេល​ដែល​ពួក​គេ​ភ្ជាប់​ជា​លើក​ដំបូង​។ ក្រោយមក​លោក​អ្នក​អាច​កែសម្រួល​តម្លៃ​នេះ​សំរាប់​អ្នក​សរសេរ​កម្មវិធី​នីមួយៗ ដោយ​ផ្នែក​លើ​ករណី​មួយៗ​។',
359
-	'info_suivi_activite' => 'ការតាមដាន សកម្មភាពបោះផ្សាយ',
360
-	'info_surtitre' => 'ចំណងជើងកំពូល៖',
361
-	'info_syndication_integrale_1' => 'វ៉ិ​ប​សាយ​របស់​លោក​អ្នក​ផ្ដល់​នូវ​ហ្វា​ល (file) បញ្ចូល(see “<a href=\\"@url@\\">@titre@</a>”)។',
362
-	'info_syndication_integrale_2' => 'អ្នកមានសំណូមពរ ផ្ញើ អត្ថបទទាំងមូល ឬ ត្រឹមមួយសង្ខេប នៃរាប់រយអក្សរ ឬ?',
363
-	'info_taille_maximale_vignette' => 'ទំហំ​អតិបរមា​នៃ​ម៉ូត​រចនា​ដែល​បង្កើត​ឡើង​ដោយ​ប្រព័ន្ធ ៖',
364
-	'info_terminer_installation' => 'អ្នក បច្ចុប្បន្ន អាចបញ្ចប់ ដំណើរតំលើង លំនាំដើម។',
365
-	'info_texte' => 'អត្ថបទ',
366
-	'info_texte_explicatif' => 'អត្ថបទ​ពន្យល់',
367
-	'info_texte_long' => '(​ឯ​កសារ​វែងៈ វា​បង្ហាញ​ជា​ច្រើន​ផ្នែក​ដែល​នឹង​រួម​បញ្ចូល​គ្នា​បន្ទាប់​ពី​មាន​សុពលភាព​។​)',
368
-	'info_texte_message' => 'អត្ថបទ នៃសារ របស់អ្នក៖', # MODIF
369
-	'info_texte_message_02' => 'អត្ថបទ​សារ',
370
-	'info_titre' => 'ចំណងជើង៖',
371
-	'info_total' => 'សរុបៈ',
372
-	'info_tous_articles_en_redaction' => 'គ្រប់អត្ថបទ ក្នុងដំណើរសរសេរ',
373
-	'info_tous_articles_presents' => 'គ្រប់អត្ថបទ ត្រូវបានបោះផ្សាយ ក្នុងផ្នែកនេះ',
374
-	'info_tous_les' => 'រាល់៖',
375
-	'info_tout_site' => 'សៃថ៍ ទាំងមូល',
376
-	'info_tout_site2' => 'អត្ថបទ គ្មានទាន់ត្រូវបាន ប្រែសំរួល ជាភាសានេះ។',
377
-	'info_tout_site3' => 'អត្ថបទ ត្រូវបានប្រែសំរួល ជាភាសានេះ, ប៉ុន្តែ​មានបំលាស់ប្តូរ បន្ទាប់ពីអត្ថបទយោង។ បំរែសំរួល ត្រូវការ ការបន្ទាន់សម័យ។ ',
378
-	'info_tout_site4' => 'អត្ថបទ ត្រូវបានប្រែសំរួល ជាភាសានេះ, និង បំរែសំរួល ត្រូវបានបន្ទាន់សម័យ។',
379
-	'info_tout_site5' => 'អត្ថបទដើម៖',
380
-	'info_tout_site6' => '<b>ប្រយត្ន៖</b> ត្រឹមអត្ថបទដើម ត្រូវបានបង្ហាញ.
286
+    'info_non_envoi_liste_nouveautes' => 'កុំផ្ញើ បញ្ជីដំណឹងចុងក្រោយបំផុត',
287
+    'info_non_modifiable' => 'គ្មានអាចត្រូវបាន កែប្រែ',
288
+    'info_non_suppression_mot_cle' => 'ខ្ញុំ គ្មានចង់លុបចេញ ពាក្យគន្លឹះនេះ។',
289
+    'info_notes' => 'កំណត់សំគាល់​នៅ​ចុង​ទំព័រ',
290
+    'info_nouvel_article' => 'អត្ថបទ​ថ្មី',
291
+    'info_nouvelle_traduction' => 'អត្ថបទ​បកប្រែ​ថ្មីៈ',
292
+    'info_numero_article' => 'លេខ​អត្ថបទៈ',
293
+    'info_obligatoire_02' => '[ចាំបាច់]', # MODIF
294
+    'info_option_accepter_visiteurs' => 'យល់ព្រម ការចុះឈ្មោះ ពួកទស្សនាករ នៃវ៉ែបសៃថ៍​សាធារណះ',
295
+    'info_option_ne_pas_accepter_visiteurs' => 'បដិសេធ ការចុះឈ្មោះ របស់ទស្សនាករ',
296
+    'info_options_avancees' => 'ជំរើស​ពិសេស',
297
+    'info_ou' => 'ឬ​....',
298
+    'info_page_interdite' => 'ទំព័រ​ហាមឃាត់',
299
+    'info_par_nom' => 'តាម​ឈ្មោះ',
300
+    'info_par_nombre_article' => 'តាម​ចំនួន​អត្ថបទ',
301
+    'info_par_statut' => 'តាម​ស្ថានភាព',
302
+    'info_par_tri' => '’(by @tri@)’',
303
+    'info_passe_trop_court' => 'ពាក្យសំងាត់ ខ្លីពេក។',
304
+    'info_passes_identiques' => 'ពាក្យសំងាត់ ទាំងពីរ គ្មានដូចគ្នា។',
305
+    'info_plus_cinq_car' => 'លើសពី​ ៥ អក្សរ',
306
+    'info_plus_cinq_car_2' => '(​លើស​ពី ៥ អក្សរ​)',
307
+    'info_plus_trois_car' => '(​លើស​ពី ៣ អក្សរ​)',
308
+    'info_popularite' => 'ភាពពេញនិយម៖ ៖ @popularite@; ចំណូលមើល៖ @visites@',
309
+    'info_post_scriptum' => 'បដ្ឋនាលិខិត',
310
+    'info_post_scriptum_2' => 'បដ្ឋនាលិខិត',
311
+    'info_pour' => 'សំរាប់',
312
+    'info_preview_texte' => 'គ្មានអាចមើលមុន សៃថ៍ ដូចដែលគ្រប់អត្ថបទ និងខ្ទង់ដំណឹង (ដែលមានយ៉ាងតិច ស្ថានភាព "បានដាក់ស្នើ") ត្រូវបានបោះផ្សាយហើយ។ បែបមើលមុននេះ គួរត្រូវបានអនុញ្ញាត សំរាប់ពួកអ្នកអភិបាល, បើក សំរាប់គ្រប់អ្នកនិពន្ធ, ឬ គ្មានអនុញ្ញាតទាំងស្រុង?', # MODIF
313
+    'info_procedez_par_etape' => 'សូម​ដំណើរការ​មួយ​ជំហាន​ម្ដងៗ',
314
+    'info_procedure_maj_version' => 'គួរ​បើក​ដំណើរការ​នីតិវិធី​កែ​លំអ​ដើម្បី​សម្រួល​ដល់​ការ​ប្រើប្រាស់​ទិន្នន័យ​ទៅ​ក្នុង​វើ​សឹ​ន (version) របស់ SPIP',
315
+    'info_proxy_ok' => 'ការ​ពិនិត្យ​លើ​វើ​សឹ​ន​ថ្មី​ទទួល​បាន​ជោគជ័យ​។',
316
+    'info_ps' => 'បញ្ជាក់(P.S)',
317
+    'info_publier' => 'ចុះ​ផ្សាយ',
318
+    'info_publies' => 'រាល់អត្ថបទ របស់អ្នក ត្រូវបានបោះផ្សាយ លើអិនរើណែត',
319
+    'info_question_accepter_visiteurs' => 'ប្រសិនបើ​ទម្រង់​វ៉ិ​ប​សាយ​របស់​លោក​អ្នក​អនុញ្ញាត​ឱ្យ​អ្នក​ទស្សនា​ចុះ​ឈ្មោះ​ដោយ​មិន​ចាំបាច់​ចូល​ទៅ​ក្នុង​ផ្នែក​ឯកជន សូម​បើកមុខ​ងារ​ជំរើស​ខាងក្រោមៈ',
320
+    'info_question_inscription_nouveaux_redacteurs' => 'តើ​លោក​អ្នក​ត្រូវការ​អនុញ្ញាត​ឱ្យ​អ្នក​សរសេរ​អត្ថបទ​ថ្មី​ចុះ​ឈ្មោះ​ពី​វ៉ិ​ប​សាយ​សាធារណៈ​ដែល​ឬទេ​? ប្រសិនបើ​លោក​អ្នក​យល់ព្រម អ្នក​ទស្សនា​នឹង​អាច​ចុះ​ឈ្មោះ​ដោយ​ប្រើប្រាស់​ទម្រង់​ស្វ័យប្រវត្ដិ​មួយ ហើយ​បន្ទាប់​មក​ចូល​ក្នុង​ផ្នែក​ឯកជន​ដើម្បី​បញ្ចូល​អត្ថបទ​ផ្ទា់ល់​របស់​ពួក​គេ​។ <blockquote> ក្នុង​ពេល​ដំណើរការ​ចុះ​ឈ្មោះ អ្នក​ប្រើប្រាស់​ទទួល​បាន​អ៊ី​ម៉ែ​ល​ស្វ័យប្រវត្ដិ​ដែល​ផ្ដល់​ជូន​ពួក​គេ​នូវ​លេខ​កូដ​ចូល​ទៅ​ក្នុង​ផ្នែក​ឯកជន​។ ក្រុមហ៊ុន​ផ្ដល់​សេវា​មួយ​ចំនួន​មិន​អនុញ្ញាត​ចំពោះ​ការ​ផ្ញើ​អ៊ី​ម៉ែ​ល​ម៉ាស៊ីន​មេ (servers)​របស់​ពួក​គេ​ទេ ៖ ក្នុង​ករណី​នោះ ការ​ចុះ​ឈ្មោះ​ដោយ​ស្វ័យប្រវត្ដិ​គឺ​មិន​អាច​អនុវត្ដ​បាន​ទេ​។', # MODIF
321
+    'info_racine_site' => 'ឫស នៃវ៉ែបសៃថ៍',
322
+    'info_recharger_page' => 'សូម​បញ្ចូល​ទំព័រ​នេះ​ជា​ថ្មី​ម្ដងទៀត​នៅ​មួយសន្ទុះ​ក្រោយ',
323
+    'info_recherche_auteur_zero' => 'គ្មាន​លទ្ធផល​ទេ​សំរាប់ \\"@cherche_auteur@\\".',
324
+    'info_recommencer' => 'សូម​ព្យាយាម​ម្ដងទៀត',
325
+    'info_redacteur_1' => 'Rédacteur',
326
+    'info_redacteur_2' => 'បាន​ចូល​មក​ដល់​ផ្នែក​ឯកជន (<i>recommended</i>)',
327
+    'info_redacteurs' => 'អ្នក​សរសេរ​អត្ថបទ',
328
+    'info_redaction_en_cours' => 'កំពុង តែងអត្ថបទ',
329
+    'info_redirection' => 'ការ​កំណត់​ទិស​ដៅ​ជា​ថ្មី',
330
+    'info_refuses' => 'អត្ថបទ របស់អ្នក ត្រូវបានបដិសេធ',
331
+    'info_reglage_ldap' => 'ជម្រើសៈ<b>Adjusting LDAP import</b>',
332
+    'info_renvoi_article' => '<b>Redirection.</b> អត្ថបទ​នេះ​ត្រូវ​ប្ដូរ​ទិស​ដៅ​ជា​ថ្មី​ទៅៈ',
333
+    'info_reserve_admin' => 'ត្រឹម ពួកអ្នកអភិបាល អាចកែប្រែ អាសយដ្ឋាននេះ។',
334
+    'info_restreindre_rubrique' => 'កំណត់​ការ​គ្រប់គ្រង​ត្រឹមតែ​ចំពោះ​ផ្នែកៈ',
335
+    'info_resultat_recherche' => 'លទ្ធផល​នៃ​ការ​ស្វែងរកៈ',
336
+    'info_rubriques' => 'ផ្នែក',
337
+    'info_rubriques_02' => 'ផ្នែក',
338
+    'info_rubriques_trouvees' => 'ផ្នែក ត្រូវបានរកឃើញ',
339
+    'info_sans_titre' => 'គ្មាន​ចំណងជើង',
340
+    'info_selection_chemin_acces' => '<b>ជ្រើសយក</b> ខាងក្រោម ​ផ្លូវចូល​ទៅ​បញ្ជីឈ្មោះ ៖',
341
+    'info_signatures' => 'ហត្ថលេខា',
342
+    'info_site' => 'សៃថ៍',
343
+    'info_site_2' => 'សៃថ៍៖',
344
+    'info_site_min' => 'សៃថ៍',
345
+    'info_site_reference_2' => 'សៃថ៍​យោង',
346
+    'info_site_web' => 'វ៉ែប​​សៃថ៍ ៖', # MODIF
347
+    'info_sites' => '​​សៃថ៍',
348
+    'info_sites_lies_mot' => '​​សៃថ៍យោង​ ដែល​មាន​ពាក្យ​គន្លឹះ​នេះ',
349
+    'info_sites_proxy' => '​ប្រើប្រាស់​ មួយខំព្យូរើបំរើសេវា Proxy',
350
+    'info_sites_trouves' => 'បានរកឃើញ សៃថ៍',
351
+    'info_sous_titre' => 'ចំណងជើង​រង៖',
352
+    'info_statut_administrateur' => 'អ្នកអភិបាល',
353
+    'info_statut_auteur' => 'ស្ថានភាព នៃអ្នកនិពន្ធ នេះ៖',
354
+    'info_statut_auteur_a_confirmer' => 'ការ​ចុះ​ឈ្មោះ​ ដែល​ត្រូវ​បញ្ជាក់ទទួលស្គាល់',
355
+    'info_statut_auteur_autre' => 'ស្ថានភាព ដទៃ ៖',
356
+    'info_statut_redacteur' => 'អ្នក​តែងនិពន្ធ',
357
+    'info_statut_utilisateurs_1' => 'ស្ថានភាព​ លំនាំដើម នៃអ្នក​ប្រើប្រាស់​ ដែល​បានត្រូវនាំចូល',
358
+    'info_statut_utilisateurs_2' => 'ជ្រើសរើស​ស្ថានភាព​ដែល​បញ្ជាក់​អំពី​បុគ្គល​ដែល​មាននៅ​ក្នុង​បញ្ជី (directory) LDAP នៅ​ពេល​ដែល​ពួក​គេ​ភ្ជាប់​ជា​លើក​ដំបូង​។ ក្រោយមក​លោក​អ្នក​អាច​កែសម្រួល​តម្លៃ​នេះ​សំរាប់​អ្នក​សរសេរ​កម្មវិធី​នីមួយៗ ដោយ​ផ្នែក​លើ​ករណី​មួយៗ​។',
359
+    'info_suivi_activite' => 'ការតាមដាន សកម្មភាពបោះផ្សាយ',
360
+    'info_surtitre' => 'ចំណងជើងកំពូល៖',
361
+    'info_syndication_integrale_1' => 'វ៉ិ​ប​សាយ​របស់​លោក​អ្នក​ផ្ដល់​នូវ​ហ្វា​ល (file) បញ្ចូល(see “<a href=\\"@url@\\">@titre@</a>”)។',
362
+    'info_syndication_integrale_2' => 'អ្នកមានសំណូមពរ ផ្ញើ អត្ថបទទាំងមូល ឬ ត្រឹមមួយសង្ខេប នៃរាប់រយអក្សរ ឬ?',
363
+    'info_taille_maximale_vignette' => 'ទំហំ​អតិបរមា​នៃ​ម៉ូត​រចនា​ដែល​បង្កើត​ឡើង​ដោយ​ប្រព័ន្ធ ៖',
364
+    'info_terminer_installation' => 'អ្នក បច្ចុប្បន្ន អាចបញ្ចប់ ដំណើរតំលើង លំនាំដើម។',
365
+    'info_texte' => 'អត្ថបទ',
366
+    'info_texte_explicatif' => 'អត្ថបទ​ពន្យល់',
367
+    'info_texte_long' => '(​ឯ​កសារ​វែងៈ វា​បង្ហាញ​ជា​ច្រើន​ផ្នែក​ដែល​នឹង​រួម​បញ្ចូល​គ្នា​បន្ទាប់​ពី​មាន​សុពលភាព​។​)',
368
+    'info_texte_message' => 'អត្ថបទ នៃសារ របស់អ្នក៖', # MODIF
369
+    'info_texte_message_02' => 'អត្ថបទ​សារ',
370
+    'info_titre' => 'ចំណងជើង៖',
371
+    'info_total' => 'សរុបៈ',
372
+    'info_tous_articles_en_redaction' => 'គ្រប់អត្ថបទ ក្នុងដំណើរសរសេរ',
373
+    'info_tous_articles_presents' => 'គ្រប់អត្ថបទ ត្រូវបានបោះផ្សាយ ក្នុងផ្នែកនេះ',
374
+    'info_tous_les' => 'រាល់៖',
375
+    'info_tout_site' => 'សៃថ៍ ទាំងមូល',
376
+    'info_tout_site2' => 'អត្ថបទ គ្មានទាន់ត្រូវបាន ប្រែសំរួល ជាភាសានេះ។',
377
+    'info_tout_site3' => 'អត្ថបទ ត្រូវបានប្រែសំរួល ជាភាសានេះ, ប៉ុន្តែ​មានបំលាស់ប្តូរ បន្ទាប់ពីអត្ថបទយោង។ បំរែសំរួល ត្រូវការ ការបន្ទាន់សម័យ។ ',
378
+    'info_tout_site4' => 'អត្ថបទ ត្រូវបានប្រែសំរួល ជាភាសានេះ, និង បំរែសំរួល ត្រូវបានបន្ទាន់សម័យ។',
379
+    'info_tout_site5' => 'អត្ថបទដើម៖',
380
+    'info_tout_site6' => '<b>ប្រយត្ន៖</b> ត្រឹមអត្ថបទដើម ត្រូវបានបង្ហាញ.
381 381
  បំរែសំរួល ត្រូវបានផ្សារជាប់ ទៅអត្ថបទ,
382 382
  ដោយមានមួយពណ៌ បង្ហាញស្ថានភាព របស់វា ៖',
383
-	'info_travail_colaboratif' => 'ការងារ​រួម​សំរាប់​អត្ថបទ',
384
-	'info_un_article' => 'អត្ថបទ',
385
-	'info_un_site' => 'មួយសៃថ៍,',
386
-	'info_une_rubrique' => 'ផ្នែក',
387
-	'info_une_rubrique_02' => 'មួយ​ផ្នែក',
388
-	'info_url' => 'URL ​៖',
389
-	'info_urlref' => 'តំណភ្ជាប់ខ្ពស់ ៖',
390
-	'info_utilisation_spip' => 'ពេលនេះ អ្នកអាចផ្តើមប្រើប្រាស់ SPIP មានការណែនាំ....',
391
-	'info_visites_par_mois' => 'ការ​បង្ហាញ​ចេញ ប្រចាំខែ ៖',
392
-	'info_visiteur_1' => 'ទស្សនាករ',
393
-	'info_visiteur_2' => 'នៃសៃថ៍​សាធារណៈ',
394
-	'info_visiteurs' => 'ទស្សនាករ',
395
-	'info_visiteurs_02' => '​ទស្សនាករ នៃសៃថ៍​សាធារណៈ',
396
-	'install_echec_annonce' => 'ការ​តំលើង​នេះ ​អាច​នឹងបរាជ័យ, ឬ​ អាចនាំ​ទៅ មួយសៃថ៍ខូច...',
397
-	'install_extension_mbstring' => 'SPIP គ្មានធ្វើការ ​ជាមួយ ៖',
398
-	'install_extension_php_obligatoire' => 'SPIP ទាមទារ កន្ទុយ .php ៖',
399
-	'install_pas_table' => 'មូលដ្ឋានទិន្នន័យ គ្មានទាន់មានតារាង',
400
-	'install_php_version' => 'កំណែ PHP @version@ មិនគ្រប់សមត្ថភាព (​យ៉ាងអន់ = @minimum@))',
401
-	'install_select_langue' => 'ជ្រើសយក មួយ​ភាសា រួច​ចុចលើប្រអប់ « បន្ទាប់ » ដើម្បី​ផ្ដើម ដំណើរតំលើង។',
402
-	'install_select_type_mysql' => 'MySQL',
403
-	'install_select_type_sqlite2' => 'SQLite 2',
404
-	'install_select_type_sqlite3' => 'SQLite 3',
405
-	'install_tables_base' => 'ពួកតារាង នៃមូលដ្ឋានទិន្នន័យ',
406
-	'install_types_db_connus' => 'SPIP អាចប្រើប្រាស់ <b>MySQL</b> (ញឹកញាប់បំផុត), <b>PostgreSQL</b> និង <b>SQLite</b>.', # MODIF
407
-	'intem_redacteur' => 'អ្នកតែងនិពន្ធ',
408
-	'intitule_licence' => 'អាជ្ញាបណ្ណ',
409
-	'item_accepter_inscriptions' => 'ព្រមទទួល ការ​ចុះ​ឈ្មោះទាំងឡាយ',
410
-	'item_activer_messages_avertissement' => 'សកម្ម សារព្រមាន',
411
-	'item_administrateur_2' => 'អ្នកអភិបាល',
412
-	'item_afficher_calendrier' => 'បង្ហាញ​ចេញ ក្នុង​ប្រក្រតីទិន',
413
-	'item_autoriser_syndication_integrale' => 'បញ្ចូល​អត្ថបទ​ទាំងមូល​ទៅ​ក្នុង​ហ្វា​ល (files) បញ្ចូល​។',
414
-	'item_choix_administrateurs' => 'អ្នកគ្រប់គ្រង​ប្រព័ន្ធ',
415
-	'item_choix_generation_miniature' => 'បង្កើត​ទម្រង់​រូបភាព​សង្ខេប​ច្បាស់ៗ​ដោយ​ស្វ័យប្រវត្ដិ',
416
-	'item_choix_non_generation_miniature' => 'មិន​បង្កើត​ទម្រង់​រូបភាព​សង្ខេប​ច្បាស់',
417
-	'item_choix_redacteurs' => 'អ្នក​សរសេរ​អត្ថបទ',
418
-	'item_choix_visiteurs' => 'ពួកទស្សនាករ នៃសៃថ៍សាធារណះ',
419
-	'item_creer_fichiers_authent' => 'បង្កើត​ហ្វា​ល (files).htpasswd',
420
-	'item_login' => 'ការពិនិត្យចូល',
421
-	'item_mots_cles_association_articles' => 'អត្ថបទ',
422
-	'item_mots_cles_association_rubriques' => 'ផ្នែក',
423
-	'item_mots_cles_association_sites' => 'ទៅ សៃថ៍ត្រូវបានយោង ឬ ត្រូវបានបានភ្ជាប់។',
424
-	'item_non' => 'ទេ',
425
-	'item_non_accepter_inscriptions' => 'មិន​អនុញ្ញាត​ចំពោះ​ការ​ចុះ​ឈ្មោះ',
426
-	'item_non_activer_messages_avertissement' => 'គ្មាន​សារ​រំលឹក',
427
-	'item_non_afficher_calendrier' => 'គ្មានបង្ហាញ ក្នុងប្រក្រតីទិន',
428
-	'item_non_autoriser_syndication_integrale' => 'គ្រាន់តែ​ផ្ញើ​សេចក្ដី​សង្ខេប',
429
-	'item_non_creer_fichiers_authent' => 'មិន​បង្កើត​ឯកសារ​ទាំងនេះ',
430
-	'item_non_publier_articles' => 'មិន​ចុះ​ផ្សាយ​អត្ថបទ​មុន​កាលបរិច្ឆេទ​ចុះ​ផ្សាយ​របស់​វា',
431
-	'item_nouvel_auteur' => 'អ្នក​សរសេរ​កម្មវិធី​ថ្មី',
432
-	'item_nouvelle_rubrique' => 'ផ្នែក​ថ្មី',
433
-	'item_oui' => 'បាទ​,​ចាស',
434
-	'item_publier_articles' => 'បោះពុម្ព​អត្ថបទ​ដោយ​មិន​គិត​អំពី​កាលបរិច្ឆេទ​បោះពុម្ព​របស់​វា',
435
-	'item_reponse_article' => 'ចំលើយ ទៅអត្ថបទ',
436
-	'item_visiteur' => 'ទស្សនាករ',
383
+    'info_travail_colaboratif' => 'ការងារ​រួម​សំរាប់​អត្ថបទ',
384
+    'info_un_article' => 'អត្ថបទ',
385
+    'info_un_site' => 'មួយសៃថ៍,',
386
+    'info_une_rubrique' => 'ផ្នែក',
387
+    'info_une_rubrique_02' => 'មួយ​ផ្នែក',
388
+    'info_url' => 'URL ​៖',
389
+    'info_urlref' => 'តំណភ្ជាប់ខ្ពស់ ៖',
390
+    'info_utilisation_spip' => 'ពេលនេះ អ្នកអាចផ្តើមប្រើប្រាស់ SPIP មានការណែនាំ....',
391
+    'info_visites_par_mois' => 'ការ​បង្ហាញ​ចេញ ប្រចាំខែ ៖',
392
+    'info_visiteur_1' => 'ទស្សនាករ',
393
+    'info_visiteur_2' => 'នៃសៃថ៍​សាធារណៈ',
394
+    'info_visiteurs' => 'ទស្សនាករ',
395
+    'info_visiteurs_02' => '​ទស្សនាករ នៃសៃថ៍​សាធារណៈ',
396
+    'install_echec_annonce' => 'ការ​តំលើង​នេះ ​អាច​នឹងបរាជ័យ, ឬ​ អាចនាំ​ទៅ មួយសៃថ៍ខូច...',
397
+    'install_extension_mbstring' => 'SPIP គ្មានធ្វើការ ​ជាមួយ ៖',
398
+    'install_extension_php_obligatoire' => 'SPIP ទាមទារ កន្ទុយ .php ៖',
399
+    'install_pas_table' => 'មូលដ្ឋានទិន្នន័យ គ្មានទាន់មានតារាង',
400
+    'install_php_version' => 'កំណែ PHP @version@ មិនគ្រប់សមត្ថភាព (​យ៉ាងអន់ = @minimum@))',
401
+    'install_select_langue' => 'ជ្រើសយក មួយ​ភាសា រួច​ចុចលើប្រអប់ « បន្ទាប់ » ដើម្បី​ផ្ដើម ដំណើរតំលើង។',
402
+    'install_select_type_mysql' => 'MySQL',
403
+    'install_select_type_sqlite2' => 'SQLite 2',
404
+    'install_select_type_sqlite3' => 'SQLite 3',
405
+    'install_tables_base' => 'ពួកតារាង នៃមូលដ្ឋានទិន្នន័យ',
406
+    'install_types_db_connus' => 'SPIP អាចប្រើប្រាស់ <b>MySQL</b> (ញឹកញាប់បំផុត), <b>PostgreSQL</b> និង <b>SQLite</b>.', # MODIF
407
+    'intem_redacteur' => 'អ្នកតែងនិពន្ធ',
408
+    'intitule_licence' => 'អាជ្ញាបណ្ណ',
409
+    'item_accepter_inscriptions' => 'ព្រមទទួល ការ​ចុះ​ឈ្មោះទាំងឡាយ',
410
+    'item_activer_messages_avertissement' => 'សកម្ម សារព្រមាន',
411
+    'item_administrateur_2' => 'អ្នកអភិបាល',
412
+    'item_afficher_calendrier' => 'បង្ហាញ​ចេញ ក្នុង​ប្រក្រតីទិន',
413
+    'item_autoriser_syndication_integrale' => 'បញ្ចូល​អត្ថបទ​ទាំងមូល​ទៅ​ក្នុង​ហ្វា​ល (files) បញ្ចូល​។',
414
+    'item_choix_administrateurs' => 'អ្នកគ្រប់គ្រង​ប្រព័ន្ធ',
415
+    'item_choix_generation_miniature' => 'បង្កើត​ទម្រង់​រូបភាព​សង្ខេប​ច្បាស់ៗ​ដោយ​ស្វ័យប្រវត្ដិ',
416
+    'item_choix_non_generation_miniature' => 'មិន​បង្កើត​ទម្រង់​រូបភាព​សង្ខេប​ច្បាស់',
417
+    'item_choix_redacteurs' => 'អ្នក​សរសេរ​អត្ថបទ',
418
+    'item_choix_visiteurs' => 'ពួកទស្សនាករ នៃសៃថ៍សាធារណះ',
419
+    'item_creer_fichiers_authent' => 'បង្កើត​ហ្វា​ល (files).htpasswd',
420
+    'item_login' => 'ការពិនិត្យចូល',
421
+    'item_mots_cles_association_articles' => 'អត្ថបទ',
422
+    'item_mots_cles_association_rubriques' => 'ផ្នែក',
423
+    'item_mots_cles_association_sites' => 'ទៅ សៃថ៍ត្រូវបានយោង ឬ ត្រូវបានបានភ្ជាប់។',
424
+    'item_non' => 'ទេ',
425
+    'item_non_accepter_inscriptions' => 'មិន​អនុញ្ញាត​ចំពោះ​ការ​ចុះ​ឈ្មោះ',
426
+    'item_non_activer_messages_avertissement' => 'គ្មាន​សារ​រំលឹក',
427
+    'item_non_afficher_calendrier' => 'គ្មានបង្ហាញ ក្នុងប្រក្រតីទិន',
428
+    'item_non_autoriser_syndication_integrale' => 'គ្រាន់តែ​ផ្ញើ​សេចក្ដី​សង្ខេប',
429
+    'item_non_creer_fichiers_authent' => 'មិន​បង្កើត​ឯកសារ​ទាំងនេះ',
430
+    'item_non_publier_articles' => 'មិន​ចុះ​ផ្សាយ​អត្ថបទ​មុន​កាលបរិច្ឆេទ​ចុះ​ផ្សាយ​របស់​វា',
431
+    'item_nouvel_auteur' => 'អ្នក​សរសេរ​កម្មវិធី​ថ្មី',
432
+    'item_nouvelle_rubrique' => 'ផ្នែក​ថ្មី',
433
+    'item_oui' => 'បាទ​,​ចាស',
434
+    'item_publier_articles' => 'បោះពុម្ព​អត្ថបទ​ដោយ​មិន​គិត​អំពី​កាលបរិច្ឆេទ​បោះពុម្ព​របស់​វា',
435
+    'item_reponse_article' => 'ចំលើយ ទៅអត្ថបទ',
436
+    'item_visiteur' => 'ទស្សនាករ',
437 437
 
438
-	// J
439
-	'jour_non_connu_nc' => 'គ្មានស្គាល់',
438
+    // J
439
+    'jour_non_connu_nc' => 'គ្មានស្គាល់',
440 440
 
441
-	// L
442
-	'lien_ajouter_auteur' => 'បន្ថែម​អ្នក​សរសេរ​កម្មវិធី​នេះ',
443
-	'lien_email' => 'អ៊ី​ម៉ែ​ល',
444
-	'lien_nom_site' => 'ឈ្មោះសៃថ៍៖',
445
-	'lien_retirer_auteur' => 'ដកចេញ អ្នកនិពន្ធនេះ',
446
-	'lien_site' => 'សៃថ៍',
447
-	'lien_tout_deplier' => 'ពង្រីក​ ទាំងអស់',
448
-	'lien_tout_replier' => 'រួម​បញ្ចូល​គ្នា​ទាំងអស់',
449
-	'lien_tout_supprimer' => 'លុបចេញ ទាំងអស់',
450
-	'lien_trier_nom' => 'ដាក់​ជា​ក្រុម​ទៅ​តាម​ឈ្មោះ',
451
-	'lien_trier_nombre_articles' => 'ដាក់​ជា​ក្រុម​ទៅ​តាម​ចំនួន​អត្ថបទ',
452
-	'lien_trier_statut' => 'ដាក់​ជា​ក្រុម​ទៅ​តាម​ស្ថានភាព',
453
-	'lien_voir_en_ligne' => 'មើល លើអិនរើណែត៖',
454
-	'logo_article' => 'ឡូ​ហ្គោ​របស់​អត្ថបទ', # MODIF
455
-	'logo_auteur' => 'ឡូ​ហ្គោ​របស់​អ្នក​សរសេរ​កម្មវិធី', # MODIF
456
-	'logo_rubrique' => 'រូបសញ្ញា នៃផ្នែក', # MODIF
457
-	'logo_site' => 'រូបសញ្ញា នៃសៃថ៍នេះ', # MODIF
458
-	'logo_standard_rubrique' => 'រូបសញ្ញាគំរូ របស់ផ្នែក', # MODIF
459
-	'logo_survol' => 'ឡូ​ហ្គោ​សំកាំង', # MODIF
441
+    // L
442
+    'lien_ajouter_auteur' => 'បន្ថែម​អ្នក​សរសេរ​កម្មវិធី​នេះ',
443
+    'lien_email' => 'អ៊ី​ម៉ែ​ល',
444
+    'lien_nom_site' => 'ឈ្មោះសៃថ៍៖',
445
+    'lien_retirer_auteur' => 'ដកចេញ អ្នកនិពន្ធនេះ',
446
+    'lien_site' => 'សៃថ៍',
447
+    'lien_tout_deplier' => 'ពង្រីក​ ទាំងអស់',
448
+    'lien_tout_replier' => 'រួម​បញ្ចូល​គ្នា​ទាំងអស់',
449
+    'lien_tout_supprimer' => 'លុបចេញ ទាំងអស់',
450
+    'lien_trier_nom' => 'ដាក់​ជា​ក្រុម​ទៅ​តាម​ឈ្មោះ',
451
+    'lien_trier_nombre_articles' => 'ដាក់​ជា​ក្រុម​ទៅ​តាម​ចំនួន​អត្ថបទ',
452
+    'lien_trier_statut' => 'ដាក់​ជា​ក្រុម​ទៅ​តាម​ស្ថានភាព',
453
+    'lien_voir_en_ligne' => 'មើល លើអិនរើណែត៖',
454
+    'logo_article' => 'ឡូ​ហ្គោ​របស់​អត្ថបទ', # MODIF
455
+    'logo_auteur' => 'ឡូ​ហ្គោ​របស់​អ្នក​សរសេរ​កម្មវិធី', # MODIF
456
+    'logo_rubrique' => 'រូបសញ្ញា នៃផ្នែក', # MODIF
457
+    'logo_site' => 'រូបសញ្ញា នៃសៃថ៍នេះ', # MODIF
458
+    'logo_standard_rubrique' => 'រូបសញ្ញាគំរូ របស់ផ្នែក', # MODIF
459
+    'logo_survol' => 'ឡូ​ហ្គោ​សំកាំង', # MODIF
460 460
 
461
-	// M
462
-	'menu_aide_installation_choix_base' => 'ការ​ជ្រើសរើស​សំណុំ​ទិន្នន័យ​របស់​លោក​អ្នក',
463
-	'module_fichier_langue' => 'ហ្វា​ល​ភាសា',
464
-	'module_raccourci' => 'ផ្លូវ​កាត់',
465
-	'module_texte_affiche' => 'អត្ថបទ ត្រូវបានបង្ហាញចេញ',
466
-	'module_texte_explicatif' => 'លោក​អ្នក​អាច​បញ្ចូល​ផ្លូវ​កាត់​ខាងក្រោម​នេះ​ទៅ​ក្នុង​ទម្រង់​វ៉ិ​ប​សាយ​របស់​លោក​អ្នក​។ ផ្លូវការ​ទាំងនេះ​នឹង​ត្រូវ​បកប្រែ​ដោយ​ស្វ័យប្រវត្ដិ​ទៅ​ជា​ភាសា​ផ្សេងៗ​ដែល​មាននៅ​ក្នុង​ហ្វា​ល​ភាសា​។',
467
-	'module_texte_traduction' => 'ហ្វា​ល​ភាសារ « @module@ » មាននៅ​ក្នុងៈ',
468
-	'mois_non_connu' => 'គ្មានបានស្គាល់',
461
+    // M
462
+    'menu_aide_installation_choix_base' => 'ការ​ជ្រើសរើស​សំណុំ​ទិន្នន័យ​របស់​លោក​អ្នក',
463
+    'module_fichier_langue' => 'ហ្វា​ល​ភាសា',
464
+    'module_raccourci' => 'ផ្លូវ​កាត់',
465
+    'module_texte_affiche' => 'អត្ថបទ ត្រូវបានបង្ហាញចេញ',
466
+    'module_texte_explicatif' => 'លោក​អ្នក​អាច​បញ្ចូល​ផ្លូវ​កាត់​ខាងក្រោម​នេះ​ទៅ​ក្នុង​ទម្រង់​វ៉ិ​ប​សាយ​របស់​លោក​អ្នក​។ ផ្លូវការ​ទាំងនេះ​នឹង​ត្រូវ​បកប្រែ​ដោយ​ស្វ័យប្រវត្ដិ​ទៅ​ជា​ភាសា​ផ្សេងៗ​ដែល​មាននៅ​ក្នុង​ហ្វា​ល​ភាសា​។',
467
+    'module_texte_traduction' => 'ហ្វា​ល​ភាសារ « @module@ » មាននៅ​ក្នុងៈ',
468
+    'mois_non_connu' => 'គ្មានបានស្គាល់',
469 469
 
470
-	// O
471
-	'onglet_contenu' => 'ខ្លឹមសារ',
472
-	'onglet_declarer_une_autre_base' => 'ប្រកាស មួយមូលដ្ឋានទិន្នន័យ ដទៃ',
473
-	'onglet_discuter' => 'ពិភាក្សា',
474
-	'onglet_proprietes' => 'លក្ខណះ',
475
-	'onglet_repartition_actuelle' => 'ឥឡូវ',
476
-	'onglet_sous_rubriques' => 'ផ្នែករង',
470
+    // O
471
+    'onglet_contenu' => 'ខ្លឹមសារ',
472
+    'onglet_declarer_une_autre_base' => 'ប្រកាស មួយមូលដ្ឋានទិន្នន័យ ដទៃ',
473
+    'onglet_discuter' => 'ពិភាក្សា',
474
+    'onglet_proprietes' => 'លក្ខណះ',
475
+    'onglet_repartition_actuelle' => 'ឥឡូវ',
476
+    'onglet_sous_rubriques' => 'ផ្នែករង',
477 477
 
478
-	// P
479
-	'plugin_erreur_charger' => 'កំហុស៖ គ្មានអាចផ្ទុក @zip@',
480
-	'plugin_etat_developpement' => 'ក្នុងដំណើរ អភិវឌ្ឍ',
481
-	'plugin_etat_experimental' => 'ដែល​ពិសោធន៍',
482
-	'plugin_etat_stable' => 'នឹង',
483
-	'plugin_etat_test' => 'ដែល​ត្រូវ​បាន​ពិសោធ',
484
-	'plugin_impossible_activer' => 'គ្មានអាចធ្វើអោយសកម្ម plugin  @plugin@',
485
-	'plugin_info_automatique2' => 'បង្កើត មួយថតឯកសារ <code>@rep@</code> ;',
486
-	'plugins_liste' => 'បញ្ជី​កម្មវិធី​ជំនួយ',
487
-	'protocole_ldap' => 'វឺ​សឹ​ន (version) ពិធីការ',
478
+    // P
479
+    'plugin_erreur_charger' => 'កំហុស៖ គ្មានអាចផ្ទុក @zip@',
480
+    'plugin_etat_developpement' => 'ក្នុងដំណើរ អភិវឌ្ឍ',
481
+    'plugin_etat_experimental' => 'ដែល​ពិសោធន៍',
482
+    'plugin_etat_stable' => 'នឹង',
483
+    'plugin_etat_test' => 'ដែល​ត្រូវ​បាន​ពិសោធ',
484
+    'plugin_impossible_activer' => 'គ្មានអាចធ្វើអោយសកម្ម plugin  @plugin@',
485
+    'plugin_info_automatique2' => 'បង្កើត មួយថតឯកសារ <code>@rep@</code> ;',
486
+    'plugins_liste' => 'បញ្ជី​កម្មវិធី​ជំនួយ',
487
+    'protocole_ldap' => 'វឺ​សឹ​ន (version) ពិធីការ',
488 488
 
489
-	// R
490
-	'repertoire_plugins' => 'បញ្ជី (directory)',
491
-	'required' => '[ចាំបាច់]', # MODIF
489
+    // R
490
+    'repertoire_plugins' => 'បញ្ជី (directory)',
491
+    'required' => '[ចាំបាច់]', # MODIF
492 492
 
493
-	// S
494
-	'statut_admin_restreint' => '(​អ្នកគ្រប់គ្រង​ប្រព័ន្ធ​ដែល​ត្រូវ​ហាមឃាត់​)', # MODIF
493
+    // S
494
+    'statut_admin_restreint' => '(​អ្នកគ្រប់គ្រង​ប្រព័ន្ធ​ដែល​ត្រូវ​ហាមឃាត់​)', # MODIF
495 495
 
496
-	// T
497
-	'taille_cache_image' => 'រូបភាព ត្រូវបានគណនា ស្វ័យប្រវត្តិ ដោយ SPIP (​ទំរង់សង្ខេប ឯកសារ, ចំណងជើង ត្រូវបានបង្ហាញ ជាក្រាភិក, អនុគមគណិត ជាទំរង់ TeX) មានសរុប @taille@ ​ក្នុង​ថតឯកសារ @dir@ ។',
498
-	'taille_cache_infinie' => 'សៃថ៍នេះ គ្មានកំណត់ ទំហំថតឯកសារ របស់សតិភ្ជាប់។',
499
-	'taille_cache_maxi' => 'SPIP កំពុង​ព្យាយាម​កំណត់​នូវ​ទំហំ​នៃ​ថត (directory) លាក់ខ្លួន​ទៅ​តាម​ទំហំ​ប្រហាក់ប្រហែល​នៃ <b>@octets@</b> របស់​ទិន្នន័យ​។',
500
-	'taille_cache_octets' => 'ទំហំ​ថត​លាក់ខ្លួន​គឺ @octets@ ថ្មីៗ​។', # MODIF
501
-	'taille_cache_vide' => 'ថត​លាក់ខ្លួន​ទទេ​។',
502
-	'taille_repertoire_cache' => 'ទំហំ​បច្ចុប្បន្ន​នៃ​ថត​លាក់ខ្លួន​។',
503
-	'text_article_propose_publication' => 'អត្ថបទ ត្រូវបានស្នើបោះផ្សាយ។',
504
-	'texte_acces_ldap_anonyme_1' => 'ម៉ាស៊ីន​មេLDAP មួយ​ចំនួន​មិន​អនុញ្ញាត​ចំពោះ​ការ​ប្រើប្រាស់​ជា​លក្ខណៈ​អនាមិក​នោះ​ទេ​។ នៅ​ក្នុង​ករណី​នេះ លោក​អ្នក​ត្រូវ​បង្ហាញ​នូវ​អ្នក​កំណត់​អត្ដសញ្ញាណ​ក្នុង​ការ​ប្រើប្រាស់​ដំបូង ដើម្បី​អាច​ស្វែងរក​ព័ត៌មាន​នៅ​ក្នុង​ថត (directory) បន្ទាប់​ពី​នោះ​។ ប៉ុន្ដែ នៅ​ក្នុង​ករណី​ភាគច្រើន​ក្រឡោ​ន​ខាងក្រោម​នេះ​អាច​ទុក​ចំហ​ដដែល​។',
505
-	'texte_admin_effacer_01' => 'បញ្ជា​នេះ​លុប <i>all</i> ខ្លឹមសារ​នៃ​សំណុំ​ទិន្នន័យ រាប់​បញ្ចូល​ទាំង <i>all</i> លក្ខណៈ​តម្រូវ​សំរាប់​ការ​ប្រើប្រាស់​របស់​អ្នក​សរសេរ​អត្ថបទ និង​អ្នកគ្រប់គ្រង​ប្រព័ន្ធ​។ បន្ទាប់​ពី​ប្រើប្រាស់​វា លោក​អ្នក​ត្រូវ​តំឡើង SPIP ជា​ថ្មី ដើម្បី​បង្កើត​ទិន្នន័យ​ថ្មី និង​ការ​ប្រើប្រាស់​អ្នកគ្រប់គ្រង​លើក​ទី​មួយ​ម្ដងទៀត​។',
506
-	'texte_adresse_annuaire_1' => '(​ប្រសិនបើ​ថត​របស់​លោក​អ្នក​ត្រូវ​បាន​តំឡើង​នៅ​ក្នុង​ម៉ាស៊ីន​តែ​មួយ​ដូច​គ្នា​នឹង​វ៉ិ​ប​សាយ​របស់​លោក​អ្នក វា​អាច «localhost»)',
507
-	'texte_ajout_auteur' => 'អ្នក​សរសេរ​កម្មវិធី​ខាងក្រោម​ត្រូវ​បាន​បញ្ចូល​ទៅ​ក្នុង​អត្ថបទៈ',
508
-	'texte_annuaire_ldap_1' => 'ប្រសិនបើ​លោក​អ្នក​អាច​ប្រើប្រាស់​ថត (directory) (LDAP) លោក​អ្នក​អាច​ប្រើប្រាស់​វា​ដើម្បី​បញ្ចូល​អ្នក​ប្រើប្រាស់​ក្រោម SPIP ដោយ​ស្វ័យប្រវត្ដិ​។',
509
-	'texte_article_statut' => 'ស្ថានភាព​អត្ថបទ',
510
-	'texte_article_virtuel' => 'អត្ថបទ​ជាក់ស្ដែង',
511
-	'texte_article_virtuel_reference' => '<b>Virtual article:</b> អត្ថបទ​យោង​នៅ​ក្នុង​វ៉ិ​ប​សាយ SPIP របស់​លោក​អ្នក ប៉ុន្ដែ​ត្រូវ​កំណត់​ទិស​ដៅ​ថ្មី​ទៅ​កាន់ URL មួយ​ផ្សេង​ទៀត​។ ដើម្បី​លុប​ការ​កំណត់​ទិស​ដៅ​ជា​ថ្មី​នេះ សូម​លុបURL ខាងលើ​។',
512
-	'texte_aucun_resultat_auteur' => 'គ្មាន​លទ្ធផល​សំរាប់ \\"@cherche_auteur@\\"។',
513
-	'texte_auteur_messagerie' => 'វ៉ិ​ប​សាយ​នេះ​អាច​តាមដាន​ជា​បន្ដបន្ទាប់​នូវ​បញ្ជី​អ្នក​សរសេរ​អត្ថបទ​ដែល​បាន​ភ្ជាប់ ដែល​អនុញ្ញាត​ឱ្យ​លោក​អ្នក​ដោះ​ដូរ​សារ​តាម​ពេល​ជាក់ស្ដែង​។ លោក​អ្នក​អាច​សំរេច​មិន​បង្ហាញខ្លួន​នៅ​ក្នុង​បញ្ជី​នេះ (​ដូច្នេះ​លោក​អ្នក​ស្ថិត​ក្នុង​សភាព “​មើល​មិនឃើញ​” (\\"invisible\\") សំរាប់​អ្នក​ប្រើប្រាស់​ផ្សេង​ទៀត​។​)',
514
-	'texte_auteurs' => 'អ្នក​សរសេរ​កម្មវិធី',
515
-	'texte_choix_base_1' => 'ជ្រើសយក មូលដ្ឋានទិន្នន័យ របស់អ្នក៖',
516
-	'texte_choix_base_2' => 'ម៉ាស៊ីន​មេMySQL មាន​សំណុំ​ទិន្នន័យ​ច្រើន​។',
517
-	'texte_choix_base_3' => '<b>ជ្រើសយក</b> ខាងក្រោម អ្វីដែល ខំព្យូរើផ្ទុកវ៉ែបសៃថ៍ របស់អ្នក​ បានផ្គត់ផ្គង់ អ្នក៖',
518
-	'texte_compte_element' => 'សមាសធាតុ',
519
-	'texte_compte_elements' => 'សមាសធាតុ',
520
-	'texte_connexion_mysql' => 'ពិនិត្យពត៌មាន បានផ្តល់ដោយ ក្រុមហ៊ុនផ្តល់សេវា របស់អ្នក។ វាប្រហែលមានផ្ទុក អក្សរកូដភ្ជាប់ សំរាប់ខំព្យូរើបំរើសេវា SQL។',
521
-	'texte_contenu_article' => '(​ខ្លឹមសារ​អត្ថបទ​ដោយ​សង្ខេប​)',
522
-	'texte_contenu_articles' => 'ដោយ​ផ្អែក​លើ​ទម្រង់​ដែល​ជ្រើសរើស​សំរាប់​វ៉ិ​ប​សាយ​របស់​លោក​អ្នក លោក​អ្នក​អាច​សំរេច​ថា​ធាតុ​នៃ​អត្ថបទ​ខ្លះ​មិន​ត្រូវ​បាន​ប្រើ​។ សូម​ប្រើ​បញ្ជី​ខាងក្រោម​ដើម្បី​ជ្រើសរើស​ធាតុ​ដែល​គួរ​មាន​។',
523
-	'texte_crash_base' => 'បើមូលដ្ឋានទិន្នន័យ របស់អ្នក បានខូច, អ្នកអាចព្យាយាម ជួសជុលវា ស្វ័យប្រវត្តិ។',
524
-	'texte_creer_rubrique' => 'មុនអាចសរសេរ អត្ថបទ<br /> អ្នកត្រូវតែបង្កើត មួយផ្នែក។',
525
-	'texte_date_creation_article' => 'កាលបរិច្ឆេទ​បង្កើត​អត្ថបទៈ',
526
-	'texte_date_publication_anterieure' => 'កាលបរិច្ឆេទ​បោះពុម្ព​មុនគេៈ',
527
-	'texte_date_publication_anterieure_nonaffichee' => 'លាក់​កាលបរិច្ឆេទ​ការ​បោះពុម្ព​មុនគេ',
528
-	'texte_date_publication_article' => 'ថ្ងៃខែឆ្នាំ បោះផ្សាយ លើអិនរើណែត ៖',
529
-	'texte_descriptif_rapide' => 'ការពិពណ៌នារហ័ស',
530
-	'texte_effacer_base' => 'លុបសំអាត មូលដ្ឋានទិន្នន័យ SPIP',
531
-	'texte_effacer_statistiques' => 'លុបចេញ ស្ថិតិ',
532
-	'texte_en_cours_validation' => 'អត្ថបទ និងពត៌មានខ្លី ខាងក្រោម ត្រូវបានស្នើ បោះផ្សាយ។', # MODIF
533
-	'texte_enrichir_mise_a_jour' => 'លោក​អ្នក​អាច​កែ​លំអ​ទម្រង់​អត្ថបទ​របស់​លោក​អ្នក ដោយ​ប្រើប្រាស់ «typographical shortcuts».',
534
-	'texte_fichier_authent' => '<b>តើ SPIP គួរ​បង្កើត <tt>.htpasswd</tt> និង​ហ្វា​ល<tt>.htpasswd-admin</tt> នៅ​ក្នុង​ថត @dossier@?</b><p> ហ្វា​ល​ទាំងនេះ​អាច​ត្រូវ​បាន​ប្រើប្រាស់​ដើម្បី​កំណត់​ចំពោះ​ការ​ប្រើប្រាស់​របស់​អ្នក​សរសេរ​កម្មវិធី និង​អ្នក​គ្រង់​គ្រង​នៅ​ក្នុង​ផ្នែក​មួយ​ផ្សេង​ទៀត​នៃ​វ៉ិ​ប​សាយ​របស់​លោក​អ្នក (​ឧទាហរណ៍ កម្មវិធី​ស្ថិតិ​ខាងក្រៅ​)​។</p><p> ប្រសិនបើ​លោក​អ្នក​មិន​ត្រូវការ​ហ្វា​ល​បែប​នេះ លោក​អ្នក​អាច​ទុក​ជម្រើស​នៅ​ក្នុង​តម្លៃ​ដើម (​គ្មាន​ការ​បង្កើត​ហ្វា​ល​)​។</p>', # MODIF
535
-	'texte_informations_personnelles_1' => 'ប្រព័ន្ធ​នឹង​ផ្ដល់​ជូន​លោក​អ្នក​នូវ​លទ្ធភាព​ប្រើប្រាស់​ធម្មតា​នូវ​វ៉ិ​ប​សាយ​នេះ​។',
536
-	'texte_informations_personnelles_2' => '(ចំណាំ៖ បើវាជា មួយការតំលើងឡើងវិញ, និងការចូលទៅ របស់អ្នក នៅតែធ្វើការ, អ្នកអាច', # MODIF
537
-	'texte_introductif_article' => '(​អត្ថបទ​សេចក្ដី​ផ្ដើម​នៃ​អត្ថបទ​នេះ)',
538
-	'texte_jeu_caractere' => 'លោក​អ្នក​គួរតែ​ប្រើប្រាស់​អក្ខរាវិរុទ្ធ​សកល',
539
-	'texte_jeu_caractere_3' => 'សៃថ៍ របស់អ្នក បច្ចុប្បន្ន ប្រើប្រាស់កញ្ចប់អក្សរនេះ ៖',
540
-	'texte_jeu_caractere_4' => 'ប្រសិនបើ​មិន​អាច​ឆ្លើយ​តប​ចំពោះ​ស្ថានភាព​ដែល​លោក​អ្នកមាន​ជាមួយ​នឹ​ឹ​ង​ទិន្នន័យ​របស់​លោក​អ្នក (​ឧទាហរណ៍ បន្ទាប់​ពី​សើរើ​សំណុំ​ទិន្ន​ន័៏​យ​ពី​ហ្វា​ល​ថត​ទុក​) ឬ​ប្រសិនបើ <em>លោក​អ្នក​កំពុង​កំណត់​វ៉ិ​ប​សាយ​នេះ</em> និង​ត្រូវការ​ប្រើប្រាស់​សំណុំ​តួអក្សរ​ផ្សេង សូម​បង្ហាញ​សំណុំ​តួអក្សរ​នៅ​ទី​នេះៈ',
541
-	'texte_login_ldap_1' => '(​ត្រូវ​ទុក​ប្រអប់​ភ្ជាប់​អនាមិក ឬ​ចូល​ទៅ​ផ្លូវ​ពេញលេញ ឧទាហរណ៍ «<tt>uid=smith, ou=users, dc=my-domain, dc=com</tt>»)​។',
542
-	'texte_login_precaution' => 'ប្រយត្ន៖ នេះជាការពិនិត្យចូល ជាមួយអ្វី ដែលអ្នកបានភ្ជាប់ ពេលនេះ។ ប្រើប្រាស់ បែបបទនេះ ដោយប្រយត្ន...',
543
-	'texte_mise_a_niveau_base_1' => 'លោក​អ្នក​ទើបតែ​បាន​កែសម្រួល​ហ្វា​លSPIP។ ឥឡូវ​លោក​អ្នក​ត្រូវ​តែ​កែ​លំអ​សំណុំ​ទិន្នន័យ​របស់​វ៉ិ​ប​សាយ​នេះ',
544
-	'texte_modifier_article' => 'កែប្រែ អត្ថបទ៖',
545
-	'texte_multilinguisme' => 'ប្រសិនបើ​លោក​អ្នកមាន​បំណង​គ្រប់គ្រង​អត្ថបទ​ជា​ភាសា​ច្រើន ដែល​មានដំណើរ​ការ​ស្មុគស្មាញ លោក​អ្នក​អាច​បន្ថែម​បញ្ជី​ភាសា​មួយ​ទៅ​ក្នុង​អត្ថបទ និង​/​ឬ​ផ្នែក ទៅ​តាម​ការ​រៀបចំ​នៃ​វ៉ិ​ប​សាយ​របស់​លោក​អ្នក​។', # MODIF
546
-	'texte_multilinguisme_trad' => 'លោក​អ្នក​ក៏​អាច​បើកមុខ​ងារ​ប្រព័ន្ធ​គ្រប់គ្រង​ទំនាក់ទំនង​ក្នុង​ចំណោម​អត្ថបទ​បកប្រែ​ជា​ច្រើន​ភាសា​។', # MODIF
547
-	'texte_non_compresse' => '<i>uncompressed</i> (​ម៉ាស៊ីន​មេ​របស់​លោក​អ្នក​មិន​ប្រើប្រាស់​ជាមួយនឹង​លក្ខណៈ​នេះ​ទេ​)',
548
-	'texte_nouvelle_version_spip_1' => 'អ្នក ​បានតំលើង កំណែថ្មី នៃ SPIP។',
549
-	'texte_nouvelle_version_spip_2' => 'វើ​សឹ​ន​ថ្មី​នេះ​តម្រូវ​ឱ្យ​មានការ​កែសម្រួល​លំអិត​ជា​ការ​កែសម្រួល​ធម្មតា​។ ប្រសើ​ន​បើ​លោក​អ្នក​គឺជា​អ្នក​រចនា​វ៉ិ​ប​សាយ​នេះ សូម​លុប​ហ្វា​ល @connect@ និង​ចាប់ផ្ដើម​តំឡើង​ដើម្បី​អាច​កែសម្រួល​លក្ខណៈ​ទំនាក់ទំនង​សំណុំ​ទិន្នន័យ​របស់​លោក​អ្នក​។ <p>(NB.: ប្រសិនបើ​លោក​អ្នក​បាន​ភ្លើ​ច​លក្ខណៈ​ទំនាក់ទំនង​របស់​លោក​អ្នក សូម​មើល​ក្នុង​ហ្វា​ល@ មុន​នឹង​លុប​វា​!)</p>', # MODIF
550
-	'texte_operation_echec' => 'ត្រលប់ទៅ ទំព័រមុន, ជ្រើសយក មួយមូលដ្ឋានទិន្នន័យដទៃ ឬបង្កើតមួយថ្មី។ ផ្ទៀងពត៌មាន ផ្តល់ដោយ ខំព្យូរើ របស់អ្នក។',
551
-	'texte_plus_trois_car' => 'លើស​ពី ៣ អក្សរ',
552
-	'texte_plusieurs_articles' => 'ឃើញ​មាន​អ្នក​សរសេរ​កម្មវិធី​សំរាប់ \\"@cherche_auteur@\\":',
553
-	'texte_port_annuaire' => '(​តម្លៃ​ដើម​ជា​ទូទៅ​មាន​លក្ខណៈ​ថេរ​)​។',
554
-	'texte_presente_plugin' => 'ទំព័រ​នេះ​រាយ​អំពី​កម្មវិធី​បន្ថែម​ដែល​មាននៅ​ក្នុង​វ៉ិ​ប​សាយ​។ បើកមុខ​ងារ​របស់​កម្មវិធី​បន្ថែម លោក​អ្នក​ត្រូវ​គូស​ក្នុង​ប្រអប់​ដែល​ត្រូវ​គ្នា​នោះ​។',
555
-	'texte_proposer_publication' => 'នៅ​ពេល​ដែល​អត្ថបទ​លោក​អ្នក​ត្រូវ​បាន​បញ្ចប់br /> លោក​អ្នក​អាច​បញ្ជូន​វា​ដើម្បី​ចុះ​ផ្សាយ​។',
556
-	'texte_proxy' => 'នៅ​ក្នុង​ករណី​ខ្លះ (​អ៊ី​ន​ត្រា​ណិ​ត បណ្ដាញ​ដែល​ត្រូវ​ការពារ​......) វា​ជា​ការ​ចាំបាច់​ដែល​ត្រូវ​ប្រើប្រាស់ <i>proxy HTTP</i> ដើម្បី​បើក​វ៉ិ​ប​សាយ​ដែល​បាន​បញ្ចូល​។ ប្រសិនបើ​មាន​តំណាង​មួយ សូម​បញ្ចូល​អាសយដ្ឋាន​របស់​វា​ខាងក្រោម ដូច្នេះ <tt><html>http://proxy:8080</html></tt>។ ជា​ទូទៅ លោក​អ្នក​អាច​ទុក​ប្រអប់​នេះ​ឱ្យ​នៅ​ទំនេរ​បាន​។',
557
-	'texte_publication_articles_post_dates' => 'តើ​ឥរិយាបថ​មួយ​ណា​ដែល SPIP ត្រូវ​ប្រើ ទាក់ទិន​ទៅ​នឹង​អត្ថបទ​ដែល​កំណត់​សំរាប់​ការ​ចុះ​ផ្សាយ​នៅ​អនាគត​?',
558
-	'texte_rappel_selection_champs' => '[ចាំ​ថា ត្រូវ​ជ្រើសរើស​ប្រអប់​នេះ​ឱ្យ​បាន​ត្រឹមត្រូវ​។]',
559
-	'texte_recalcul_page' => 'ប្រសិនបើ​លោក​អ្នក​ត្រូវការ​សម្រួល​ឡើង​វិ​ញុ (refresh) តែ​មួយ​ទំព័រ លោក​អ្នក​ត្រូវធ្វើ​វា​ពី​ផ្នែក​សាធារណៈ និង​ប្រើប្រាស់​ប៊ូ​តុង « refresh ».',
560
-	'texte_recuperer_base' => 'ជួសជុល​សំណុំ​ទិន្នន័យ',
561
-	'texte_reference_mais_redirige' => 'អត្ថបទ​យោង​នៅ​ក្នុង​វ៉ិ​ប​សាយSPIP របស់​លោក​អ្នក ប៉ុន្ដែ​ត្រូវ​បាន​កំណត់​ទិស​ដៅ​ជា​ថ្មី​ទៅ​រកURL មួយ​ផ្សេង​ទៀត​។',
562
-	'texte_requetes_echouent' => '<b>នៅ​ពេល​ដែល​សំណួរ MySQL មិន​ដំណើរការ​ជា​លក្ខណៈ​ប្រព័ន្ធ និង​ដោយ​គ្មាន​ហេតុផល​ច្បាស់លាស់ វា​អាច​ដោយសារ​សំណុំ​ទិន្នន័យ​ផ្ទាល់​របស់​វា​នោះ​។</b><p> MySQL មាន​លក្ខណៈ​ជួសជុល​នូវ​តារាង​របស់​ខ្លួន​ទៅ​តាម​ការ​សំរេច​របស់​ខ្លួន នៅ​ពេល​ដែល​ពួក​វា​មានការ​ខូចខាត​ដោយ​ចៃដន្យ​។ លោក​អ្នក​អាច​ព្យាយាម​ធ្វើការ​ជួសជុល​បែប​នេះ នៅ​ក្នុង​ករណី​មានការ​ខូចខាត លោក​អ្នក​ត្រូវ​រក្សា​ច្បាប់​ថតចំលង​នៃ​ផ្ទាំង​បង្ហាញ ដែល​អាច​មាន​គន្លឹះ​មួយ​ចំនួន​ស្ដី​ពី​អ្វី​ដែល​ខុស​ប្រក្រតី​...</p><p> ប្រសិនបើ​បញ្ហា​ទាំងនោះ​មិន​អាច​ដោះស្រាយ​បាន សូម​ទាក់ទង​ទៅ​ម៉ាស៊ីន​កូន​របស់​លោក​អ្នក​។ host.</p>', # MODIF
563
-	'texte_selection_langue_principale' => 'អ្នក អាចជ្រើសយក "ភាសាចំបង" ខាងក្រោម នៃសៃថ៍។ គ្មានន័យថា អ្នកអាច ត្រឹមសរសេរ អត្ថបទ ក្នុងភាសា បានជ្រើសយក,​ប៉ុន្តែ កំណត់<ul><li> ទំរង់លំនាំដើម នៃថ្ងៃខែឆ្នាំ លើសៃថ៍សាធារណះ </li>
496
+    // T
497
+    'taille_cache_image' => 'រូបភាព ត្រូវបានគណនា ស្វ័យប្រវត្តិ ដោយ SPIP (​ទំរង់សង្ខេប ឯកសារ, ចំណងជើង ត្រូវបានបង្ហាញ ជាក្រាភិក, អនុគមគណិត ជាទំរង់ TeX) មានសរុប @taille@ ​ក្នុង​ថតឯកសារ @dir@ ។',
498
+    'taille_cache_infinie' => 'សៃថ៍នេះ គ្មានកំណត់ ទំហំថតឯកសារ របស់សតិភ្ជាប់។',
499
+    'taille_cache_maxi' => 'SPIP កំពុង​ព្យាយាម​កំណត់​នូវ​ទំហំ​នៃ​ថត (directory) លាក់ខ្លួន​ទៅ​តាម​ទំហំ​ប្រហាក់ប្រហែល​នៃ <b>@octets@</b> របស់​ទិន្នន័យ​។',
500
+    'taille_cache_octets' => 'ទំហំ​ថត​លាក់ខ្លួន​គឺ @octets@ ថ្មីៗ​។', # MODIF
501
+    'taille_cache_vide' => 'ថត​លាក់ខ្លួន​ទទេ​។',
502
+    'taille_repertoire_cache' => 'ទំហំ​បច្ចុប្បន្ន​នៃ​ថត​លាក់ខ្លួន​។',
503
+    'text_article_propose_publication' => 'អត្ថបទ ត្រូវបានស្នើបោះផ្សាយ។',
504
+    'texte_acces_ldap_anonyme_1' => 'ម៉ាស៊ីន​មេLDAP មួយ​ចំនួន​មិន​អនុញ្ញាត​ចំពោះ​ការ​ប្រើប្រាស់​ជា​លក្ខណៈ​អនាមិក​នោះ​ទេ​។ នៅ​ក្នុង​ករណី​នេះ លោក​អ្នក​ត្រូវ​បង្ហាញ​នូវ​អ្នក​កំណត់​អត្ដសញ្ញាណ​ក្នុង​ការ​ប្រើប្រាស់​ដំបូង ដើម្បី​អាច​ស្វែងរក​ព័ត៌មាន​នៅ​ក្នុង​ថត (directory) បន្ទាប់​ពី​នោះ​។ ប៉ុន្ដែ នៅ​ក្នុង​ករណី​ភាគច្រើន​ក្រឡោ​ន​ខាងក្រោម​នេះ​អាច​ទុក​ចំហ​ដដែល​។',
505
+    'texte_admin_effacer_01' => 'បញ្ជា​នេះ​លុប <i>all</i> ខ្លឹមសារ​នៃ​សំណុំ​ទិន្នន័យ រាប់​បញ្ចូល​ទាំង <i>all</i> លក្ខណៈ​តម្រូវ​សំរាប់​ការ​ប្រើប្រាស់​របស់​អ្នក​សរសេរ​អត្ថបទ និង​អ្នកគ្រប់គ្រង​ប្រព័ន្ធ​។ បន្ទាប់​ពី​ប្រើប្រាស់​វា លោក​អ្នក​ត្រូវ​តំឡើង SPIP ជា​ថ្មី ដើម្បី​បង្កើត​ទិន្នន័យ​ថ្មី និង​ការ​ប្រើប្រាស់​អ្នកគ្រប់គ្រង​លើក​ទី​មួយ​ម្ដងទៀត​។',
506
+    'texte_adresse_annuaire_1' => '(​ប្រសិនបើ​ថត​របស់​លោក​អ្នក​ត្រូវ​បាន​តំឡើង​នៅ​ក្នុង​ម៉ាស៊ីន​តែ​មួយ​ដូច​គ្នា​នឹង​វ៉ិ​ប​សាយ​របស់​លោក​អ្នក វា​អាច «localhost»)',
507
+    'texte_ajout_auteur' => 'អ្នក​សរសេរ​កម្មវិធី​ខាងក្រោម​ត្រូវ​បាន​បញ្ចូល​ទៅ​ក្នុង​អត្ថបទៈ',
508
+    'texte_annuaire_ldap_1' => 'ប្រសិនបើ​លោក​អ្នក​អាច​ប្រើប្រាស់​ថត (directory) (LDAP) លោក​អ្នក​អាច​ប្រើប្រាស់​វា​ដើម្បី​បញ្ចូល​អ្នក​ប្រើប្រាស់​ក្រោម SPIP ដោយ​ស្វ័យប្រវត្ដិ​។',
509
+    'texte_article_statut' => 'ស្ថានភាព​អត្ថបទ',
510
+    'texte_article_virtuel' => 'អត្ថបទ​ជាក់ស្ដែង',
511
+    'texte_article_virtuel_reference' => '<b>Virtual article:</b> អត្ថបទ​យោង​នៅ​ក្នុង​វ៉ិ​ប​សាយ SPIP របស់​លោក​អ្នក ប៉ុន្ដែ​ត្រូវ​កំណត់​ទិស​ដៅ​ថ្មី​ទៅ​កាន់ URL មួយ​ផ្សេង​ទៀត​។ ដើម្បី​លុប​ការ​កំណត់​ទិស​ដៅ​ជា​ថ្មី​នេះ សូម​លុបURL ខាងលើ​។',
512
+    'texte_aucun_resultat_auteur' => 'គ្មាន​លទ្ធផល​សំរាប់ \\"@cherche_auteur@\\"។',
513
+    'texte_auteur_messagerie' => 'វ៉ិ​ប​សាយ​នេះ​អាច​តាមដាន​ជា​បន្ដបន្ទាប់​នូវ​បញ្ជី​អ្នក​សរសេរ​អត្ថបទ​ដែល​បាន​ភ្ជាប់ ដែល​អនុញ្ញាត​ឱ្យ​លោក​អ្នក​ដោះ​ដូរ​សារ​តាម​ពេល​ជាក់ស្ដែង​។ លោក​អ្នក​អាច​សំរេច​មិន​បង្ហាញខ្លួន​នៅ​ក្នុង​បញ្ជី​នេះ (​ដូច្នេះ​លោក​អ្នក​ស្ថិត​ក្នុង​សភាព “​មើល​មិនឃើញ​” (\\"invisible\\") សំរាប់​អ្នក​ប្រើប្រាស់​ផ្សេង​ទៀត​។​)',
514
+    'texte_auteurs' => 'អ្នក​សរសេរ​កម្មវិធី',
515
+    'texte_choix_base_1' => 'ជ្រើសយក មូលដ្ឋានទិន្នន័យ របស់អ្នក៖',
516
+    'texte_choix_base_2' => 'ម៉ាស៊ីន​មេMySQL មាន​សំណុំ​ទិន្នន័យ​ច្រើន​។',
517
+    'texte_choix_base_3' => '<b>ជ្រើសយក</b> ខាងក្រោម អ្វីដែល ខំព្យូរើផ្ទុកវ៉ែបសៃថ៍ របស់អ្នក​ បានផ្គត់ផ្គង់ អ្នក៖',
518
+    'texte_compte_element' => 'សមាសធាតុ',
519
+    'texte_compte_elements' => 'សមាសធាតុ',
520
+    'texte_connexion_mysql' => 'ពិនិត្យពត៌មាន បានផ្តល់ដោយ ក្រុមហ៊ុនផ្តល់សេវា របស់អ្នក។ វាប្រហែលមានផ្ទុក អក្សរកូដភ្ជាប់ សំរាប់ខំព្យូរើបំរើសេវា SQL។',
521
+    'texte_contenu_article' => '(​ខ្លឹមសារ​អត្ថបទ​ដោយ​សង្ខេប​)',
522
+    'texte_contenu_articles' => 'ដោយ​ផ្អែក​លើ​ទម្រង់​ដែល​ជ្រើសរើស​សំរាប់​វ៉ិ​ប​សាយ​របស់​លោក​អ្នក លោក​អ្នក​អាច​សំរេច​ថា​ធាតុ​នៃ​អត្ថបទ​ខ្លះ​មិន​ត្រូវ​បាន​ប្រើ​។ សូម​ប្រើ​បញ្ជី​ខាងក្រោម​ដើម្បី​ជ្រើសរើស​ធាតុ​ដែល​គួរ​មាន​។',
523
+    'texte_crash_base' => 'បើមូលដ្ឋានទិន្នន័យ របស់អ្នក បានខូច, អ្នកអាចព្យាយាម ជួសជុលវា ស្វ័យប្រវត្តិ។',
524
+    'texte_creer_rubrique' => 'មុនអាចសរសេរ អត្ថបទ<br /> អ្នកត្រូវតែបង្កើត មួយផ្នែក។',
525
+    'texte_date_creation_article' => 'កាលបរិច្ឆេទ​បង្កើត​អត្ថបទៈ',
526
+    'texte_date_publication_anterieure' => 'កាលបរិច្ឆេទ​បោះពុម្ព​មុនគេៈ',
527
+    'texte_date_publication_anterieure_nonaffichee' => 'លាក់​កាលបរិច្ឆេទ​ការ​បោះពុម្ព​មុនគេ',
528
+    'texte_date_publication_article' => 'ថ្ងៃខែឆ្នាំ បោះផ្សាយ លើអិនរើណែត ៖',
529
+    'texte_descriptif_rapide' => 'ការពិពណ៌នារហ័ស',
530
+    'texte_effacer_base' => 'លុបសំអាត មូលដ្ឋានទិន្នន័យ SPIP',
531
+    'texte_effacer_statistiques' => 'លុបចេញ ស្ថិតិ',
532
+    'texte_en_cours_validation' => 'អត្ថបទ និងពត៌មានខ្លី ខាងក្រោម ត្រូវបានស្នើ បោះផ្សាយ។', # MODIF
533
+    'texte_enrichir_mise_a_jour' => 'លោក​អ្នក​អាច​កែ​លំអ​ទម្រង់​អត្ថបទ​របស់​លោក​អ្នក ដោយ​ប្រើប្រាស់ «typographical shortcuts».',
534
+    'texte_fichier_authent' => '<b>តើ SPIP គួរ​បង្កើត <tt>.htpasswd</tt> និង​ហ្វា​ល<tt>.htpasswd-admin</tt> នៅ​ក្នុង​ថត @dossier@?</b><p> ហ្វា​ល​ទាំងនេះ​អាច​ត្រូវ​បាន​ប្រើប្រាស់​ដើម្បី​កំណត់​ចំពោះ​ការ​ប្រើប្រាស់​របស់​អ្នក​សរសេរ​កម្មវិធី និង​អ្នក​គ្រង់​គ្រង​នៅ​ក្នុង​ផ្នែក​មួយ​ផ្សេង​ទៀត​នៃ​វ៉ិ​ប​សាយ​របស់​លោក​អ្នក (​ឧទាហរណ៍ កម្មវិធី​ស្ថិតិ​ខាងក្រៅ​)​។</p><p> ប្រសិនបើ​លោក​អ្នក​មិន​ត្រូវការ​ហ្វា​ល​បែប​នេះ លោក​អ្នក​អាច​ទុក​ជម្រើស​នៅ​ក្នុង​តម្លៃ​ដើម (​គ្មាន​ការ​បង្កើត​ហ្វា​ល​)​។</p>', # MODIF
535
+    'texte_informations_personnelles_1' => 'ប្រព័ន្ធ​នឹង​ផ្ដល់​ជូន​លោក​អ្នក​នូវ​លទ្ធភាព​ប្រើប្រាស់​ធម្មតា​នូវ​វ៉ិ​ប​សាយ​នេះ​។',
536
+    'texte_informations_personnelles_2' => '(ចំណាំ៖ បើវាជា មួយការតំលើងឡើងវិញ, និងការចូលទៅ របស់អ្នក នៅតែធ្វើការ, អ្នកអាច', # MODIF
537
+    'texte_introductif_article' => '(​អត្ថបទ​សេចក្ដី​ផ្ដើម​នៃ​អត្ថបទ​នេះ)',
538
+    'texte_jeu_caractere' => 'លោក​អ្នក​គួរតែ​ប្រើប្រាស់​អក្ខរាវិរុទ្ធ​សកល',
539
+    'texte_jeu_caractere_3' => 'សៃថ៍ របស់អ្នក បច្ចុប្បន្ន ប្រើប្រាស់កញ្ចប់អក្សរនេះ ៖',
540
+    'texte_jeu_caractere_4' => 'ប្រសិនបើ​មិន​អាច​ឆ្លើយ​តប​ចំពោះ​ស្ថានភាព​ដែល​លោក​អ្នកមាន​ជាមួយ​នឹ​ឹ​ង​ទិន្នន័យ​របស់​លោក​អ្នក (​ឧទាហរណ៍ បន្ទាប់​ពី​សើរើ​សំណុំ​ទិន្ន​ន័៏​យ​ពី​ហ្វា​ល​ថត​ទុក​) ឬ​ប្រសិនបើ <em>លោក​អ្នក​កំពុង​កំណត់​វ៉ិ​ប​សាយ​នេះ</em> និង​ត្រូវការ​ប្រើប្រាស់​សំណុំ​តួអក្សរ​ផ្សេង សូម​បង្ហាញ​សំណុំ​តួអក្សរ​នៅ​ទី​នេះៈ',
541
+    'texte_login_ldap_1' => '(​ត្រូវ​ទុក​ប្រអប់​ភ្ជាប់​អនាមិក ឬ​ចូល​ទៅ​ផ្លូវ​ពេញលេញ ឧទាហរណ៍ «<tt>uid=smith, ou=users, dc=my-domain, dc=com</tt>»)​។',
542
+    'texte_login_precaution' => 'ប្រយត្ន៖ នេះជាការពិនិត្យចូល ជាមួយអ្វី ដែលអ្នកបានភ្ជាប់ ពេលនេះ។ ប្រើប្រាស់ បែបបទនេះ ដោយប្រយត្ន...',
543
+    'texte_mise_a_niveau_base_1' => 'លោក​អ្នក​ទើបតែ​បាន​កែសម្រួល​ហ្វា​លSPIP។ ឥឡូវ​លោក​អ្នក​ត្រូវ​តែ​កែ​លំអ​សំណុំ​ទិន្នន័យ​របស់​វ៉ិ​ប​សាយ​នេះ',
544
+    'texte_modifier_article' => 'កែប្រែ អត្ថបទ៖',
545
+    'texte_multilinguisme' => 'ប្រសិនបើ​លោក​អ្នកមាន​បំណង​គ្រប់គ្រង​អត្ថបទ​ជា​ភាសា​ច្រើន ដែល​មានដំណើរ​ការ​ស្មុគស្មាញ លោក​អ្នក​អាច​បន្ថែម​បញ្ជី​ភាសា​មួយ​ទៅ​ក្នុង​អត្ថបទ និង​/​ឬ​ផ្នែក ទៅ​តាម​ការ​រៀបចំ​នៃ​វ៉ិ​ប​សាយ​របស់​លោក​អ្នក​។', # MODIF
546
+    'texte_multilinguisme_trad' => 'លោក​អ្នក​ក៏​អាច​បើកមុខ​ងារ​ប្រព័ន្ធ​គ្រប់គ្រង​ទំនាក់ទំនង​ក្នុង​ចំណោម​អត្ថបទ​បកប្រែ​ជា​ច្រើន​ភាសា​។', # MODIF
547
+    'texte_non_compresse' => '<i>uncompressed</i> (​ម៉ាស៊ីន​មេ​របស់​លោក​អ្នក​មិន​ប្រើប្រាស់​ជាមួយនឹង​លក្ខណៈ​នេះ​ទេ​)',
548
+    'texte_nouvelle_version_spip_1' => 'អ្នក ​បានតំលើង កំណែថ្មី នៃ SPIP។',
549
+    'texte_nouvelle_version_spip_2' => 'វើ​សឹ​ន​ថ្មី​នេះ​តម្រូវ​ឱ្យ​មានការ​កែសម្រួល​លំអិត​ជា​ការ​កែសម្រួល​ធម្មតា​។ ប្រសើ​ន​បើ​លោក​អ្នក​គឺជា​អ្នក​រចនា​វ៉ិ​ប​សាយ​នេះ សូម​លុប​ហ្វា​ល @connect@ និង​ចាប់ផ្ដើម​តំឡើង​ដើម្បី​អាច​កែសម្រួល​លក្ខណៈ​ទំនាក់ទំនង​សំណុំ​ទិន្នន័យ​របស់​លោក​អ្នក​។ <p>(NB.: ប្រសិនបើ​លោក​អ្នក​បាន​ភ្លើ​ច​លក្ខណៈ​ទំនាក់ទំនង​របស់​លោក​អ្នក សូម​មើល​ក្នុង​ហ្វា​ល@ មុន​នឹង​លុប​វា​!)</p>', # MODIF
550
+    'texte_operation_echec' => 'ត្រលប់ទៅ ទំព័រមុន, ជ្រើសយក មួយមូលដ្ឋានទិន្នន័យដទៃ ឬបង្កើតមួយថ្មី។ ផ្ទៀងពត៌មាន ផ្តល់ដោយ ខំព្យូរើ របស់អ្នក។',
551
+    'texte_plus_trois_car' => 'លើស​ពី ៣ អក្សរ',
552
+    'texte_plusieurs_articles' => 'ឃើញ​មាន​អ្នក​សរសេរ​កម្មវិធី​សំរាប់ \\"@cherche_auteur@\\":',
553
+    'texte_port_annuaire' => '(​តម្លៃ​ដើម​ជា​ទូទៅ​មាន​លក្ខណៈ​ថេរ​)​។',
554
+    'texte_presente_plugin' => 'ទំព័រ​នេះ​រាយ​អំពី​កម្មវិធី​បន្ថែម​ដែល​មាននៅ​ក្នុង​វ៉ិ​ប​សាយ​។ បើកមុខ​ងារ​របស់​កម្មវិធី​បន្ថែម លោក​អ្នក​ត្រូវ​គូស​ក្នុង​ប្រអប់​ដែល​ត្រូវ​គ្នា​នោះ​។',
555
+    'texte_proposer_publication' => 'នៅ​ពេល​ដែល​អត្ថបទ​លោក​អ្នក​ត្រូវ​បាន​បញ្ចប់br /> លោក​អ្នក​អាច​បញ្ជូន​វា​ដើម្បី​ចុះ​ផ្សាយ​។',
556
+    'texte_proxy' => 'នៅ​ក្នុង​ករណី​ខ្លះ (​អ៊ី​ន​ត្រា​ណិ​ត បណ្ដាញ​ដែល​ត្រូវ​ការពារ​......) វា​ជា​ការ​ចាំបាច់​ដែល​ត្រូវ​ប្រើប្រាស់ <i>proxy HTTP</i> ដើម្បី​បើក​វ៉ិ​ប​សាយ​ដែល​បាន​បញ្ចូល​។ ប្រសិនបើ​មាន​តំណាង​មួយ សូម​បញ្ចូល​អាសយដ្ឋាន​របស់​វា​ខាងក្រោម ដូច្នេះ <tt><html>http://proxy:8080</html></tt>។ ជា​ទូទៅ លោក​អ្នក​អាច​ទុក​ប្រអប់​នេះ​ឱ្យ​នៅ​ទំនេរ​បាន​។',
557
+    'texte_publication_articles_post_dates' => 'តើ​ឥរិយាបថ​មួយ​ណា​ដែល SPIP ត្រូវ​ប្រើ ទាក់ទិន​ទៅ​នឹង​អត្ថបទ​ដែល​កំណត់​សំរាប់​ការ​ចុះ​ផ្សាយ​នៅ​អនាគត​?',
558
+    'texte_rappel_selection_champs' => '[ចាំ​ថា ត្រូវ​ជ្រើសរើស​ប្រអប់​នេះ​ឱ្យ​បាន​ត្រឹមត្រូវ​។]',
559
+    'texte_recalcul_page' => 'ប្រសិនបើ​លោក​អ្នក​ត្រូវការ​សម្រួល​ឡើង​វិ​ញុ (refresh) តែ​មួយ​ទំព័រ លោក​អ្នក​ត្រូវធ្វើ​វា​ពី​ផ្នែក​សាធារណៈ និង​ប្រើប្រាស់​ប៊ូ​តុង « refresh ».',
560
+    'texte_recuperer_base' => 'ជួសជុល​សំណុំ​ទិន្នន័យ',
561
+    'texte_reference_mais_redirige' => 'អត្ថបទ​យោង​នៅ​ក្នុង​វ៉ិ​ប​សាយSPIP របស់​លោក​អ្នក ប៉ុន្ដែ​ត្រូវ​បាន​កំណត់​ទិស​ដៅ​ជា​ថ្មី​ទៅ​រកURL មួយ​ផ្សេង​ទៀត​។',
562
+    'texte_requetes_echouent' => '<b>នៅ​ពេល​ដែល​សំណួរ MySQL មិន​ដំណើរការ​ជា​លក្ខណៈ​ប្រព័ន្ធ និង​ដោយ​គ្មាន​ហេតុផល​ច្បាស់លាស់ វា​អាច​ដោយសារ​សំណុំ​ទិន្នន័យ​ផ្ទាល់​របស់​វា​នោះ​។</b><p> MySQL មាន​លក្ខណៈ​ជួសជុល​នូវ​តារាង​របស់​ខ្លួន​ទៅ​តាម​ការ​សំរេច​របស់​ខ្លួន នៅ​ពេល​ដែល​ពួក​វា​មានការ​ខូចខាត​ដោយ​ចៃដន្យ​។ លោក​អ្នក​អាច​ព្យាយាម​ធ្វើការ​ជួសជុល​បែប​នេះ នៅ​ក្នុង​ករណី​មានការ​ខូចខាត លោក​អ្នក​ត្រូវ​រក្សា​ច្បាប់​ថតចំលង​នៃ​ផ្ទាំង​បង្ហាញ ដែល​អាច​មាន​គន្លឹះ​មួយ​ចំនួន​ស្ដី​ពី​អ្វី​ដែល​ខុស​ប្រក្រតី​...</p><p> ប្រសិនបើ​បញ្ហា​ទាំងនោះ​មិន​អាច​ដោះស្រាយ​បាន សូម​ទាក់ទង​ទៅ​ម៉ាស៊ីន​កូន​របស់​លោក​អ្នក​។ host.</p>', # MODIF
563
+    'texte_selection_langue_principale' => 'អ្នក អាចជ្រើសយក "ភាសាចំបង" ខាងក្រោម នៃសៃថ៍។ គ្មានន័យថា អ្នកអាច ត្រឹមសរសេរ អត្ថបទ ក្នុងភាសា បានជ្រើសយក,​ប៉ុន្តែ កំណត់<ul><li> ទំរង់លំនាំដើម នៃថ្ងៃខែឆ្នាំ លើសៃថ៍សាធារណះ </li>
564 564
  <li>លក្ខណះនៃឧបកររៀបពុម្ភអក្សរ ដែលនឹងត្រូវបានប្រើប្រាស់ ដោយ SPIP សំរាប់ បង្កើតអត្ថបទ;</li>
565 565
  <li> ភាសា ត្រូវបានប្រើប្រាស់ ក្រោមរូបភាព ជាសៃថ៍សាធារណះ</li>
566 566
  <li> ភាសាលំនាំដើម បានបង្ហាញចេញ ក្នុងផ្នែកឯកជន។</li></ul>',
567
-	'texte_sous_titre' => 'ចំណងជើង​រង',
568
-	'texte_statistiques_visites' => '(​របារ​ខ្មៅៈ​ថ្ងៃអាទិត្យ​/​កំណោង​ខ្មៅៈ កំរិត​មធ្យម',
569
-	'texte_statut_attente_validation' => 'ការ​រង់ចាំ​ការ​ផ្ដល់​សុពលភាព',
570
-	'texte_statut_publies' => 'បានបោះផ្សាយ លើអិនរើណែត',
571
-	'texte_statut_refuses' => 'ត្រូវ​បាន​បដិសេធ',
572
-	'texte_suppression_fichiers' => 'ប្រើប្រាស់​បញ្ជា​នេះ​ដើម្បី​លុប​ហ្វា​ល​ទាំងអស់​នៅ​ក្នុង​សំណុំ​ហ្វា​ល​លាក់ខ្លួន​របស់ SPIP។ វា​អនុញ្ញាត​ឱ្យ​លោក​អ្នក បង្ខំ​ការ​សម្រួល​ដំណើរការ​ឡើង​វិញ​នូវ​ទំព័រ​ទាំងអស់ ក្នុង​ចំ​ណោំ​អ្វី​ផ្សេងៗ​ទៀត នៅ​ក្នុង​ករណី​លោក​អ្នក​បាន​ធើ​ការ​កែប្រែ​សំខាន់ៗ​ទៅ​លើ​ក្រាហ្វិក ឬ​រចនាសម្ព័ន្ធ​របស់​វ៉ិ​ប​សាយ​។',
573
-	'texte_sur_titre' => 'ចំណងជើងកំពូល',
574
-	'texte_table_ok' => '៖ តារាង​នេះ​គឺ​ត្រឹមត្រូវ',
575
-	'texte_tentative_recuperation' => 'ការ​ប៉ុនប៉ង​ជួសជុល',
576
-	'texte_tenter_reparation' => 'ការ​ប៉ុនប៉ង​ជួសជុល​សំណុំ​ទិន្នន័យ',
577
-	'texte_test_proxy' => 'ដើម្បី​ពិសោធ​តំណាង​នេះ សូម​បញ្ចូល​អាសយដ្ឋាន​វ៉ិ​ប​សាយ​ដែល​លោក​អ្នក​ត្រូវការ​ពិសោធន៍',
578
-	'texte_titre_02' => 'ប្រធានបទៈ',
579
-	'texte_titre_obligatoire' => '<b>Title</b> [ចាំបាច់]',
580
-	'texte_travail_article' => 'បាន​ដំណើរការ​លើ​អត្ថបទ​នេះ @date_diff@ នាទី​ក្រោម​មក',
581
-	'texte_travail_collaboratif' => 'ប្រសិនបើជា​រឿយៗ មាន​អ្នក​សរសេរ​កម្មវិធី​ច្រើន​អាច​ធ្វើការ​ងារ​លើ​អត្ថបទ​តែ​មួយ ប្រព័ន្ធ​អាច​កត់សំគាល់​ការងារ​ថ្មី​ជាងគេ «opened&raquo។ អត្ថបទ​ត្រូវ​រៀបចំ​ឱ្យ​មាន​របៀបរៀបរយ ដើម្បី​ជៀសវាង​ការ​កែប្រែ​រួម​គ្នា​ដែល​ធ្វើ​ឡើង​។ ជម្រើស​នេះ​ត្រូវ​បាន​បិទមុខ​ងារ​ដោយ​ក្រុមហ៊ុន​ផលិត ដើម្បី​ជៀស​វា​ពី​ការ​រំលឹក​មិន​ចាំបាច់​។ សារ​។',
582
-	'texte_vide' => 'ទទេ',
583
-	'texte_vider_cache' => 'លុបសំអាត សតិភ្ជាប់',
584
-	'titre_admin_tech' => 'តំហែទាំ បច្ចេកទេស',
585
-	'titre_admin_vider' => 'តំហែទាំ បច្ចេកទេស',
586
-	'titre_cadre_afficher_article' => 'បង្ហាញ អត្ថបទ៖',
587
-	'titre_cadre_afficher_traductions' => 'បង្ហាញ ស្ថានភាពប្រែសំរួល សំរាប់ ភាសាខាងក្រោម ៖',
588
-	'titre_cadre_ajouter_auteur' => 'បន្ថែម​អ្នក​សរសេរ​កម្មវិធី',
589
-	'titre_cadre_interieur_rubrique' => 'នៅ​ក្នុង​ផ្នែក',
590
-	'titre_cadre_numero_auteur' => 'អ្នក​សរសេរ​កម្មវិធី​លេខ',
591
-	'titre_cadre_signature_obligatoire' => '<b>Signature</b> [ចាំបាច់]<br />',
592
-	'titre_config_contenu_public' => 'លើ សៃថ៍សាធារណះ',
593
-	'titre_config_fonctions' => 'ការកំណត់ទំរង់ សៃថ៍',
594
-	'titre_configuration' => 'ការកំណត់ទំរង់ សៃថ៍',
595
-	'titre_connexion_ldap' => 'ជម្រើស <b>Your LDAP បណ្ដាញ</b>',
596
-	'titre_groupe_mots' => 'ក្រុម​ពាក្យ​គន្លឹះៈ',
597
-	'titre_langue_article' => 'ភាសា​របស់​អត្ថបទ', # MODIF
598
-	'titre_langue_rubrique' => 'ភាសា ក្នុងផ្នែក', # MODIF
599
-	'titre_langue_trad_article' => 'ភាសា និង​ការ​បកប្រែ​អត្ថបទ',
600
-	'titre_les_articles' => 'អត្ថបទ',
601
-	'titre_naviguer_dans_le_site' => 'ត្រាច់ចរ ក្នុងសៃថ៍​...',
602
-	'titre_nouvelle_rubrique' => 'ផ្នែក​ថ្មី',
603
-	'titre_numero_rubrique' => 'លេខ​ផ្នែកៈ',
604
-	'titre_page_articles_edit' => 'កែប្រែ ៖ @titre@',
605
-	'titre_page_articles_page' => 'អត្ថបទ',
606
-	'titre_page_articles_tous' => 'សៃថ៍ ទាំងមូល',
607
-	'titre_page_calendrier' => 'ប្រតិទិន @nom_mois@ @annee@',
608
-	'titre_page_config_contenu' => 'ការកំណត់ទំរង់ សៃថ៍',
609
-	'titre_page_delete_all' => 'ការ​លុប​ចោល​ទាំងស្រុង និង​មិន​អាច​បដិសេធ​វិញ​បាន',
610
-	'titre_page_recherche' => 'លទ្ធផល​នៃ​ការ​ស្វែងរក @recherche@',
611
-	'titre_page_statistiques_referers' => 'ស្ថិតិ (​ទំនាក់ទំនង​ចូល​)',
612
-	'titre_page_upgrade' => 'ការ​កែ​លំអSPIP',
613
-	'titre_publication_articles_post_dates' => 'ការ​ចុះ​ផ្សាយ​អត្ថបទ​ដែល​ចុះ​កាលបរិច្ឆេទ​យឺត',
614
-	'titre_reparation' => 'ជួសជុល',
615
-	'titre_suivi_petition' => 'ការ​តាមដាន​បដ្ឋនាលិខិត',
616
-	'tls_ldap' => 'សុវត្ថិភាព​គាំទ្រ​ការ​ជញ្ជូន (Transport Layer Security)​ៈ',
617
-	'trad_article_traduction' => 'គ្រប់កំណែ នៃអត្ថបទនេះ ៖',
618
-	'trad_delier' => 'ឈប់​ភ្ជាប់​អត្ថបទ​នេះ​ទៅ​អត្ថបទ​បកប្រែ​របស់​វា​។', # MODIF
619
-	'trad_lier' => 'អត្ថបទ​នេះ​គឺជា​អត្ថបទ​បកប្រែ​ដែល​មាន​លេខៈ',
620
-	'trad_new' => 'សរសេរ​អត្ថបទ​បកប្រែ​ថ្មី​នៃ​អត្ថបទ​នេះ', # MODIF
567
+    'texte_sous_titre' => 'ចំណងជើង​រង',
568
+    'texte_statistiques_visites' => '(​របារ​ខ្មៅៈ​ថ្ងៃអាទិត្យ​/​កំណោង​ខ្មៅៈ កំរិត​មធ្យម',
569
+    'texte_statut_attente_validation' => 'ការ​រង់ចាំ​ការ​ផ្ដល់​សុពលភាព',
570
+    'texte_statut_publies' => 'បានបោះផ្សាយ លើអិនរើណែត',
571
+    'texte_statut_refuses' => 'ត្រូវ​បាន​បដិសេធ',
572
+    'texte_suppression_fichiers' => 'ប្រើប្រាស់​បញ្ជា​នេះ​ដើម្បី​លុប​ហ្វា​ល​ទាំងអស់​នៅ​ក្នុង​សំណុំ​ហ្វា​ល​លាក់ខ្លួន​របស់ SPIP។ វា​អនុញ្ញាត​ឱ្យ​លោក​អ្នក បង្ខំ​ការ​សម្រួល​ដំណើរការ​ឡើង​វិញ​នូវ​ទំព័រ​ទាំងអស់ ក្នុង​ចំ​ណោំ​អ្វី​ផ្សេងៗ​ទៀត នៅ​ក្នុង​ករណី​លោក​អ្នក​បាន​ធើ​ការ​កែប្រែ​សំខាន់ៗ​ទៅ​លើ​ក្រាហ្វិក ឬ​រចនាសម្ព័ន្ធ​របស់​វ៉ិ​ប​សាយ​។',
573
+    'texte_sur_titre' => 'ចំណងជើងកំពូល',
574
+    'texte_table_ok' => '៖ តារាង​នេះ​គឺ​ត្រឹមត្រូវ',
575
+    'texte_tentative_recuperation' => 'ការ​ប៉ុនប៉ង​ជួសជុល',
576
+    'texte_tenter_reparation' => 'ការ​ប៉ុនប៉ង​ជួសជុល​សំណុំ​ទិន្នន័យ',
577
+    'texte_test_proxy' => 'ដើម្បី​ពិសោធ​តំណាង​នេះ សូម​បញ្ចូល​អាសយដ្ឋាន​វ៉ិ​ប​សាយ​ដែល​លោក​អ្នក​ត្រូវការ​ពិសោធន៍',
578
+    'texte_titre_02' => 'ប្រធានបទៈ',
579
+    'texte_titre_obligatoire' => '<b>Title</b> [ចាំបាច់]',
580
+    'texte_travail_article' => 'បាន​ដំណើរការ​លើ​អត្ថបទ​នេះ @date_diff@ នាទី​ក្រោម​មក',
581
+    'texte_travail_collaboratif' => 'ប្រសិនបើជា​រឿយៗ មាន​អ្នក​សរសេរ​កម្មវិធី​ច្រើន​អាច​ធ្វើការ​ងារ​លើ​អត្ថបទ​តែ​មួយ ប្រព័ន្ធ​អាច​កត់សំគាល់​ការងារ​ថ្មី​ជាងគេ «opened&raquo។ អត្ថបទ​ត្រូវ​រៀបចំ​ឱ្យ​មាន​របៀបរៀបរយ ដើម្បី​ជៀសវាង​ការ​កែប្រែ​រួម​គ្នា​ដែល​ធ្វើ​ឡើង​។ ជម្រើស​នេះ​ត្រូវ​បាន​បិទមុខ​ងារ​ដោយ​ក្រុមហ៊ុន​ផលិត ដើម្បី​ជៀស​វា​ពី​ការ​រំលឹក​មិន​ចាំបាច់​។ សារ​។',
582
+    'texte_vide' => 'ទទេ',
583
+    'texte_vider_cache' => 'លុបសំអាត សតិភ្ជាប់',
584
+    'titre_admin_tech' => 'តំហែទាំ បច្ចេកទេស',
585
+    'titre_admin_vider' => 'តំហែទាំ បច្ចេកទេស',
586
+    'titre_cadre_afficher_article' => 'បង្ហាញ អត្ថបទ៖',
587
+    'titre_cadre_afficher_traductions' => 'បង្ហាញ ស្ថានភាពប្រែសំរួល សំរាប់ ភាសាខាងក្រោម ៖',
588
+    'titre_cadre_ajouter_auteur' => 'បន្ថែម​អ្នក​សរសេរ​កម្មវិធី',
589
+    'titre_cadre_interieur_rubrique' => 'នៅ​ក្នុង​ផ្នែក',
590
+    'titre_cadre_numero_auteur' => 'អ្នក​សរសេរ​កម្មវិធី​លេខ',
591
+    'titre_cadre_signature_obligatoire' => '<b>Signature</b> [ចាំបាច់]<br />',
592
+    'titre_config_contenu_public' => 'លើ សៃថ៍សាធារណះ',
593
+    'titre_config_fonctions' => 'ការកំណត់ទំរង់ សៃថ៍',
594
+    'titre_configuration' => 'ការកំណត់ទំរង់ សៃថ៍',
595
+    'titre_connexion_ldap' => 'ជម្រើស <b>Your LDAP បណ្ដាញ</b>',
596
+    'titre_groupe_mots' => 'ក្រុម​ពាក្យ​គន្លឹះៈ',
597
+    'titre_langue_article' => 'ភាសា​របស់​អត្ថបទ', # MODIF
598
+    'titre_langue_rubrique' => 'ភាសា ក្នុងផ្នែក', # MODIF
599
+    'titre_langue_trad_article' => 'ភាសា និង​ការ​បកប្រែ​អត្ថបទ',
600
+    'titre_les_articles' => 'អត្ថបទ',
601
+    'titre_naviguer_dans_le_site' => 'ត្រាច់ចរ ក្នុងសៃថ៍​...',
602
+    'titre_nouvelle_rubrique' => 'ផ្នែក​ថ្មី',
603
+    'titre_numero_rubrique' => 'លេខ​ផ្នែកៈ',
604
+    'titre_page_articles_edit' => 'កែប្រែ ៖ @titre@',
605
+    'titre_page_articles_page' => 'អត្ថបទ',
606
+    'titre_page_articles_tous' => 'សៃថ៍ ទាំងមូល',
607
+    'titre_page_calendrier' => 'ប្រតិទិន @nom_mois@ @annee@',
608
+    'titre_page_config_contenu' => 'ការកំណត់ទំរង់ សៃថ៍',
609
+    'titre_page_delete_all' => 'ការ​លុប​ចោល​ទាំងស្រុង និង​មិន​អាច​បដិសេធ​វិញ​បាន',
610
+    'titre_page_recherche' => 'លទ្ធផល​នៃ​ការ​ស្វែងរក @recherche@',
611
+    'titre_page_statistiques_referers' => 'ស្ថិតិ (​ទំនាក់ទំនង​ចូល​)',
612
+    'titre_page_upgrade' => 'ការ​កែ​លំអSPIP',
613
+    'titre_publication_articles_post_dates' => 'ការ​ចុះ​ផ្សាយ​អត្ថបទ​ដែល​ចុះ​កាលបរិច្ឆេទ​យឺត',
614
+    'titre_reparation' => 'ជួសជុល',
615
+    'titre_suivi_petition' => 'ការ​តាមដាន​បដ្ឋនាលិខិត',
616
+    'tls_ldap' => 'សុវត្ថិភាព​គាំទ្រ​ការ​ជញ្ជូន (Transport Layer Security)​ៈ',
617
+    'trad_article_traduction' => 'គ្រប់កំណែ នៃអត្ថបទនេះ ៖',
618
+    'trad_delier' => 'ឈប់​ភ្ជាប់​អត្ថបទ​នេះ​ទៅ​អត្ថបទ​បកប្រែ​របស់​វា​។', # MODIF
619
+    'trad_lier' => 'អត្ថបទ​នេះ​គឺជា​អត្ថបទ​បកប្រែ​ដែល​មាន​លេខៈ',
620
+    'trad_new' => 'សរសេរ​អត្ថបទ​បកប្រែ​ថ្មី​នៃ​អត្ថបទ​នេះ', # MODIF
621 621
 
622
-	// U
623
-	'utf8_convert_erreur_orig' => 'កំហុស ៖ មិនគាំទ្រ កញ្ចប់អក្សរ @charset@។',
622
+    // U
623
+    'utf8_convert_erreur_orig' => 'កំហុស ៖ មិនគាំទ្រ កញ្ចប់អក្សរ @charset@។',
624 624
 
625
-	// V
626
-	'version' => 'កំណែ ៖'
625
+    // V
626
+    'version' => 'កំណែ ៖'
627 627
 );
Please login to merge, or discard this patch.
ecrire/lang/public_fa.php 1 patch
Indentation   +110 added lines, -110 removed lines patch added patch discarded remove patch
@@ -4,118 +4,118 @@
 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
-	'rubrique' => 'بخش',
100
-	'rubriques' => 'بخش‌ها',
101
-
102
-	// S
103
-	'signatures_petition' => 'امضاها',
104
-	'site_realise_avec_spip' => 'سايت با اسپيپ درست شده است',
105
-	'sites_web' => 'وب سايت‌ها',
106
-	'sous_rubriques' => 'زيربخش‌ها',
107
-	'spam' => 'اسپم',
108
-	'suite' => 'دنباله',
109
-	'sur_web' => 'در تارنما',
110
-	'syndiquer_rubrique' => 'مشترک سازی اين بخش',
111
-	'syndiquer_site' => 'مشترک سازی تمام سايت',
112
-
113
-	// T
114
-	'texte_lettre_information' => 'نامه‌ى اطلاع رسانى سايت',
115
-	'texte_lettre_information_2' => 'نامه سرشمارى تازه‌هاي منتشر شده از :',
116
-
117
-	// V
118
-	'ver_imprimer' => 'نسخه‌ى چاپى',
119
-	'voir_en_ligne' => 'آنلاين بنگريد',
120
-	'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
+    'rubrique' => 'بخش',
100
+    'rubriques' => 'بخش‌ها',
101
+
102
+    // S
103
+    'signatures_petition' => 'امضاها',
104
+    'site_realise_avec_spip' => 'سايت با اسپيپ درست شده است',
105
+    'sites_web' => 'وب سايت‌ها',
106
+    'sous_rubriques' => 'زيربخش‌ها',
107
+    'spam' => 'اسپم',
108
+    'suite' => 'دنباله',
109
+    'sur_web' => 'در تارنما',
110
+    'syndiquer_rubrique' => 'مشترک سازی اين بخش',
111
+    'syndiquer_site' => 'مشترک سازی تمام سايت',
112
+
113
+    // T
114
+    'texte_lettre_information' => 'نامه‌ى اطلاع رسانى سايت',
115
+    'texte_lettre_information_2' => 'نامه سرشمارى تازه‌هاي منتشر شده از :',
116
+
117
+    // V
118
+    'ver_imprimer' => 'نسخه‌ى چاپى',
119
+    'voir_en_ligne' => 'آنلاين بنگريد',
120
+    'voir_squelette' => 'اسكلت اين صفحه را ببينيد'
121 121
 );
Please login to merge, or discard this patch.
ecrire/inc/bandeau.php 1 patch
Indentation   +148 added lines, -148 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 include_spip('inc/boutons');
@@ -37,33 +37,33 @@  discard block
 block discarded – undo
37 37
  *     Contexte
38 38
  **/
39 39
 function definir_barre_contexte($contexte = null) {
40
-	if (is_null($contexte)) {
41
-		$contexte = $_GET;
42
-	} elseif (is_string($contexte)) {
43
-		$contexte = unserialize($contexte);
44
-	}
45
-	if (!isset($contexte['id_rubrique']) and isset($contexte['exec'])) {
46
-		if (!function_exists('trouver_objet_exec')) {
47
-			include_spip('inc/pipelines_ecrire');
48
-		}
49
-		if ($e = trouver_objet_exec($contexte['exec'])) {
50
-			$_id = $e['id_table_objet'];
51
-			if (isset($contexte[$_id]) and $id = intval($contexte[$_id])) {
52
-				$table = $e['table_objet_sql'];
53
-				$row = sql_fetsel('*', $table, "$_id=" . intval($id));
54
-				if (isset($row['id_rubrique'])) {
55
-					$contexte['id_rubrique'] = $row['id_rubrique'];
56
-					if (isset($row['id_secteur'])) {
57
-						$contexte['id_secteur'] = $row['id_secteur'];
58
-					}
59
-				} elseif (isset($row['id_groupe'])) {
60
-					// TODO supprimer ce bloc quand https://core.spip.net/issues/3844 sera réalisé
61
-					$contexte['id_groupe'] = $row['id_groupe'];
62
-				}
63
-			}
64
-		}
65
-	}
66
-	return $contexte;
40
+    if (is_null($contexte)) {
41
+        $contexte = $_GET;
42
+    } elseif (is_string($contexte)) {
43
+        $contexte = unserialize($contexte);
44
+    }
45
+    if (!isset($contexte['id_rubrique']) and isset($contexte['exec'])) {
46
+        if (!function_exists('trouver_objet_exec')) {
47
+            include_spip('inc/pipelines_ecrire');
48
+        }
49
+        if ($e = trouver_objet_exec($contexte['exec'])) {
50
+            $_id = $e['id_table_objet'];
51
+            if (isset($contexte[$_id]) and $id = intval($contexte[$_id])) {
52
+                $table = $e['table_objet_sql'];
53
+                $row = sql_fetsel('*', $table, "$_id=" . intval($id));
54
+                if (isset($row['id_rubrique'])) {
55
+                    $contexte['id_rubrique'] = $row['id_rubrique'];
56
+                    if (isset($row['id_secteur'])) {
57
+                        $contexte['id_secteur'] = $row['id_secteur'];
58
+                    }
59
+                } elseif (isset($row['id_groupe'])) {
60
+                    // TODO supprimer ce bloc quand https://core.spip.net/issues/3844 sera réalisé
61
+                    $contexte['id_groupe'] = $row['id_groupe'];
62
+                }
63
+            }
64
+        }
65
+    }
66
+    return $contexte;
67 67
 }
68 68
 
69 69
 /**
@@ -79,88 +79,88 @@  discard block
 block discarded – undo
79 79
  * @return array
80 80
  */
81 81
 function definir_barre_boutons($contexte = array(), $icones = true, $autorise = true) {
82
-	include_spip('inc/autoriser');
83
-	$boutons_admin = array();
82
+    include_spip('inc/autoriser');
83
+    $boutons_admin = array();
84 84
 
85
-	// les boutons du core, issus de ecrire/paquet.xml
86
-	$liste_boutons = array();
85
+    // les boutons du core, issus de ecrire/paquet.xml
86
+    $liste_boutons = array();
87 87
 
88
-	// ajouter les boutons issus des plugin via paquet.xml
89
-	if (function_exists('boutons_plugins')
90
-		and is_array($liste_boutons_plugins = boutons_plugins())
91
-	) {
92
-		$liste_boutons = &$liste_boutons_plugins;
93
-	}
88
+    // ajouter les boutons issus des plugin via paquet.xml
89
+    if (function_exists('boutons_plugins')
90
+        and is_array($liste_boutons_plugins = boutons_plugins())
91
+    ) {
92
+        $liste_boutons = &$liste_boutons_plugins;
93
+    }
94 94
 
95
-	foreach ($liste_boutons as $id => $infos) {
96
-		$parent = '';
97
-		// les boutons principaux ne sont pas soumis a autorisation
98
-		if (!isset($infos['parent'])
99
-			or !($parent = $infos['parent'])
100
-			or !$autorise
101
-			or autoriser('menu', "_$id", 0, null, array('contexte' => $contexte))
102
-		) {
103
-			if ($parent
104
-				and $parent = preg_replace(',^bando_,', 'menu_', $parent)
105
-				and isset($boutons_admin[$parent])
106
-			) {
107
-				if (!is_array($boutons_admin[$parent]->sousmenu)) {
108
-					$boutons_admin[$parent]->sousmenu = array();
109
-				}
110
-				$position = (isset($infos['position']) and strlen($infos['position'])) ? intval($infos['position']) : count($boutons_admin[$parent]->sousmenu);
111
-				if ($position < 0) {
112
-					$position = count($boutons_admin[$parent]->sousmenu) + 1 + $position;
113
-				}
114
-				$boutons_admin[$parent]->sousmenu = array_slice($boutons_admin[$parent]->sousmenu, 0, $position)
115
-					+ array(
116
-						$id => new Bouton(
117
-							($icones and !empty($infos['icone'])) ? find_in_theme($infos['icone']) : '',  // icone
118
-							$infos['titre'],  // titre
119
-							(isset($infos['action']) and $infos['action']) ? $infos['action'] : null,
120
-							(isset($infos['parametres']) and $infos['parametres']) ? $infos['parametres'] : null
121
-						)
122
-					)
123
-					+ array_slice($boutons_admin[$parent]->sousmenu, $position, 100);
124
-			}
125
-			if (!$parent
126
-				// provisoire, eviter les vieux boutons
127
-				and (!in_array($id, array('forum', 'statistiques_visites')))
128
-				and (!$autorise or autoriser('menugrandeentree', "_$id", 0, null, array('contexte' => $contexte)))
129
-			) {
130
-				$position = (isset($infos['position']) and $infos['position']) ? $infos['position'] : count($boutons_admin);
131
-				$boutons_admin = array_slice($boutons_admin, 0, $position)
132
-					+ array(
133
-						$id => new Bouton(
134
-							($icones and isset($infos['icone']) and $infos['icone']) ? find_in_theme($infos['icone']) : '',  // icone
135
-							$infos['titre'],  // titre
136
-							(isset($infos['action']) and $infos['action']) ? $infos['action'] : null,
137
-							(isset($infos['parametres']) and $infos['parametres']) ? $infos['parametres'] : null
138
-						)
139
-					)
140
-					+ array_slice($boutons_admin, $position, 100);
141
-			}
142
-		}
143
-	}
144
-	$boutons_admin = pipeline('ajouter_menus', $boutons_admin);
95
+    foreach ($liste_boutons as $id => $infos) {
96
+        $parent = '';
97
+        // les boutons principaux ne sont pas soumis a autorisation
98
+        if (!isset($infos['parent'])
99
+            or !($parent = $infos['parent'])
100
+            or !$autorise
101
+            or autoriser('menu', "_$id", 0, null, array('contexte' => $contexte))
102
+        ) {
103
+            if ($parent
104
+                and $parent = preg_replace(',^bando_,', 'menu_', $parent)
105
+                and isset($boutons_admin[$parent])
106
+            ) {
107
+                if (!is_array($boutons_admin[$parent]->sousmenu)) {
108
+                    $boutons_admin[$parent]->sousmenu = array();
109
+                }
110
+                $position = (isset($infos['position']) and strlen($infos['position'])) ? intval($infos['position']) : count($boutons_admin[$parent]->sousmenu);
111
+                if ($position < 0) {
112
+                    $position = count($boutons_admin[$parent]->sousmenu) + 1 + $position;
113
+                }
114
+                $boutons_admin[$parent]->sousmenu = array_slice($boutons_admin[$parent]->sousmenu, 0, $position)
115
+                    + array(
116
+                        $id => new Bouton(
117
+                            ($icones and !empty($infos['icone'])) ? find_in_theme($infos['icone']) : '',  // icone
118
+                            $infos['titre'],  // titre
119
+                            (isset($infos['action']) and $infos['action']) ? $infos['action'] : null,
120
+                            (isset($infos['parametres']) and $infos['parametres']) ? $infos['parametres'] : null
121
+                        )
122
+                    )
123
+                    + array_slice($boutons_admin[$parent]->sousmenu, $position, 100);
124
+            }
125
+            if (!$parent
126
+                // provisoire, eviter les vieux boutons
127
+                and (!in_array($id, array('forum', 'statistiques_visites')))
128
+                and (!$autorise or autoriser('menugrandeentree', "_$id", 0, null, array('contexte' => $contexte)))
129
+            ) {
130
+                $position = (isset($infos['position']) and $infos['position']) ? $infos['position'] : count($boutons_admin);
131
+                $boutons_admin = array_slice($boutons_admin, 0, $position)
132
+                    + array(
133
+                        $id => new Bouton(
134
+                            ($icones and isset($infos['icone']) and $infos['icone']) ? find_in_theme($infos['icone']) : '',  // icone
135
+                            $infos['titre'],  // titre
136
+                            (isset($infos['action']) and $infos['action']) ? $infos['action'] : null,
137
+                            (isset($infos['parametres']) and $infos['parametres']) ? $infos['parametres'] : null
138
+                        )
139
+                    )
140
+                    + array_slice($boutons_admin, $position, 100);
141
+            }
142
+        }
143
+    }
144
+    $boutons_admin = pipeline('ajouter_menus', $boutons_admin);
145 145
 
146
-	// définir les favoris et positions d’origine
147
-	if ($boutons_admin) {
148
-		$menus_favoris = obtenir_menus_favoris();
149
-		$i = 1;
150
-		foreach ($boutons_admin as $key => $menu) {
151
-			$menu->favori = table_valeur($menus_favoris, $key, false);
152
-			$menu->position = $i++;
153
-			if ($menu->sousmenu) {
154
-				$j = 1;
155
-				foreach ($menu->sousmenu as $key => $bouton) {
156
-					$bouton->favori = table_valeur($menus_favoris, $key, false);
157
-					$bouton->position = $j++;
158
-				}
159
-			}
160
-		}
161
-	}
146
+    // définir les favoris et positions d’origine
147
+    if ($boutons_admin) {
148
+        $menus_favoris = obtenir_menus_favoris();
149
+        $i = 1;
150
+        foreach ($boutons_admin as $key => $menu) {
151
+            $menu->favori = table_valeur($menus_favoris, $key, false);
152
+            $menu->position = $i++;
153
+            if ($menu->sousmenu) {
154
+                $j = 1;
155
+                foreach ($menu->sousmenu as $key => $bouton) {
156
+                    $bouton->favori = table_valeur($menus_favoris, $key, false);
157
+                    $bouton->position = $j++;
158
+                }
159
+            }
160
+        }
161
+    }
162 162
 
163
-	return $boutons_admin;
163
+    return $boutons_admin;
164 164
 }
165 165
 
166 166
 /**
@@ -172,22 +172,22 @@  discard block
 block discarded – undo
172 172
  * @return Bouton[]
173 173
  */
174 174
 function trier_boutons_enfants_par_alpha($menus, $avec_favoris = false) {
175
-	foreach ($menus as $menu) {
176
-		if ($menu->sousmenu) {
177
-			$libelles = $isfavoris = $favoris = array();
178
-			foreach ($menu->sousmenu as $key => $item) {
179
-				$libelles[$key] = strtolower(translitteration(_T($item->libelle)));
180
-				$isfavoris[$key] = (bool)$item->favori;
181
-				$favoris[$key] = $item->favori;
182
-			}
183
-			if ($avec_favoris) {
184
-				array_multisort($isfavoris, SORT_DESC, $favoris, SORT_ASC, $libelles, SORT_ASC, $menu->sousmenu);
185
-			} else {
186
-				array_multisort($libelles, SORT_ASC, $menu->sousmenu);
187
-			}
188
-		}
189
-	}
190
-	return $menus;
175
+    foreach ($menus as $menu) {
176
+        if ($menu->sousmenu) {
177
+            $libelles = $isfavoris = $favoris = array();
178
+            foreach ($menu->sousmenu as $key => $item) {
179
+                $libelles[$key] = strtolower(translitteration(_T($item->libelle)));
180
+                $isfavoris[$key] = (bool)$item->favori;
181
+                $favoris[$key] = $item->favori;
182
+            }
183
+            if ($avec_favoris) {
184
+                array_multisort($isfavoris, SORT_DESC, $favoris, SORT_ASC, $libelles, SORT_ASC, $menu->sousmenu);
185
+            } else {
186
+                array_multisort($libelles, SORT_ASC, $menu->sousmenu);
187
+            }
188
+        }
189
+    }
190
+    return $menus;
191 191
 }
192 192
 
193 193
 /**
@@ -198,7 +198,7 @@  discard block
 block discarded – undo
198 198
  * @return Bouton[]
199 199
  */
200 200
 function trier_boutons_enfants_par_favoris_alpha($menus) {
201
-	return trier_boutons_enfants_par_alpha($menus, true);
201
+    return trier_boutons_enfants_par_alpha($menus, true);
202 202
 }
203 203
 
204 204
 
@@ -211,23 +211,23 @@  discard block
 block discarded – undo
211 211
  * @return string
212 212
  */
213 213
 function bandeau_creer_url($url, $args = '', $contexte = null) {
214
-	if (!preg_match(',[\/\?],', $url)) {
215
-		$url = generer_url_ecrire($url, $args, true);
216
-		// recuperer les parametres du contexte demande par l'url sous la forme
217
-		// &truc=@machin@
218
-		// @machin@ etant remplace par _request('machin')
219
-		$url = str_replace('&amp;', '&', $url);
220
-		while (preg_match(',[&?]([a-z_]+)=@([a-z_]+)@,i', $url, $matches)) {
221
-			if ($matches[2] == 'id_secteur' and !isset($contexte['id_secteur']) and isset($contexte['id_rubrique'])) {
222
-				$contexte['id_secteur'] = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($contexte['id_rubrique']));
223
-			}
224
-			$val = _request($matches[2], $contexte);
225
-			$url = parametre_url($url, $matches[1], $val ? $val : '', '&');
226
-		}
227
-		$url = str_replace('&', '&amp;', $url);
228
-	}
214
+    if (!preg_match(',[\/\?],', $url)) {
215
+        $url = generer_url_ecrire($url, $args, true);
216
+        // recuperer les parametres du contexte demande par l'url sous la forme
217
+        // &truc=@machin@
218
+        // @machin@ etant remplace par _request('machin')
219
+        $url = str_replace('&amp;', '&', $url);
220
+        while (preg_match(',[&?]([a-z_]+)=@([a-z_]+)@,i', $url, $matches)) {
221
+            if ($matches[2] == 'id_secteur' and !isset($contexte['id_secteur']) and isset($contexte['id_rubrique'])) {
222
+                $contexte['id_secteur'] = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($contexte['id_rubrique']));
223
+            }
224
+            $val = _request($matches[2], $contexte);
225
+            $url = parametre_url($url, $matches[1], $val ? $val : '', '&');
226
+        }
227
+        $url = str_replace('&', '&amp;', $url);
228
+    }
229 229
 
230
-	return $url;
230
+    return $url;
231 231
 }
232 232
 
233 233
 /**
@@ -237,7 +237,7 @@  discard block
 block discarded – undo
237 237
  *     Code HTML du bandeau
238 238
  */
239 239
 function inc_bandeau_dist() {
240
-	return recuperer_fond('prive/squelettes/inclure/barre-nav', $_GET);
240
+    return recuperer_fond('prive/squelettes/inclure/barre-nav', $_GET);
241 241
 }
242 242
 
243 243
 
@@ -246,13 +246,13 @@  discard block
 block discarded – undo
246 246
  * @return array
247 247
  */
248 248
 function obtenir_menus_favoris() {
249
-	if (
250
-		isset($GLOBALS['visiteur_session']['prefs']['menus_favoris'])
251
-		and is_array($GLOBALS['visiteur_session']['prefs']['menus_favoris'])
252
-		and $GLOBALS['visiteur_session']['prefs']['menus_favoris']
253
-	) {
254
-		return $GLOBALS['visiteur_session']['prefs']['menus_favoris'];
255
-	}
256
-	$definir_menus_favoris = charger_fonction('definir_menus_favoris', 'inc');
257
-	return $definir_menus_favoris();
249
+    if (
250
+        isset($GLOBALS['visiteur_session']['prefs']['menus_favoris'])
251
+        and is_array($GLOBALS['visiteur_session']['prefs']['menus_favoris'])
252
+        and $GLOBALS['visiteur_session']['prefs']['menus_favoris']
253
+    ) {
254
+        return $GLOBALS['visiteur_session']['prefs']['menus_favoris'];
255
+    }
256
+    $definir_menus_favoris = charger_fonction('definir_menus_favoris', 'inc');
257
+    return $definir_menus_favoris();
258 258
 }
259 259
\ No newline at end of file
Please login to merge, or discard this patch.
ecrire/inc/documents.php 1 patch
Indentation   +173 added lines, -173 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  */
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 /**
@@ -30,11 +30,11 @@  discard block
 block discarded – undo
30 30
  * @return string
31 31
  */
32 32
 function set_spip_doc($fichier) {
33
-	if (strpos($fichier, _DIR_IMG) === 0) {
34
-		return substr($fichier, strlen(_DIR_IMG));
35
-	} else {
36
-		return $fichier;
37
-	} // ex: fichier distant
33
+    if (strpos($fichier, _DIR_IMG) === 0) {
34
+        return substr($fichier, strlen(_DIR_IMG));
35
+    } else {
36
+        return $fichier;
37
+    } // ex: fichier distant
38 38
 }
39 39
 
40 40
 /**
@@ -46,24 +46,24 @@  discard block
 block discarded – undo
46 46
  * @return bool|string
47 47
  */
48 48
 function get_spip_doc($fichier) {
49
-	// fichier distant
50
-	if (tester_url_absolue($fichier)) {
51
-		return $fichier;
52
-	}
53
-
54
-	// gestion d'erreurs, fichier=''
55
-	if (!strlen($fichier)) {
56
-		return false;
57
-	}
58
-
59
-	$fichier = (
60
-		strncmp($fichier, _DIR_IMG, strlen(_DIR_IMG)) != 0
61
-	)
62
-		? _DIR_IMG . $fichier
63
-		: $fichier;
64
-
65
-	// fichier normal
66
-	return $fichier;
49
+    // fichier distant
50
+    if (tester_url_absolue($fichier)) {
51
+        return $fichier;
52
+    }
53
+
54
+    // gestion d'erreurs, fichier=''
55
+    if (!strlen($fichier)) {
56
+        return false;
57
+    }
58
+
59
+    $fichier = (
60
+        strncmp($fichier, _DIR_IMG, strlen(_DIR_IMG)) != 0
61
+    )
62
+        ? _DIR_IMG . $fichier
63
+        : $fichier;
64
+
65
+    // fichier normal
66
+    return $fichier;
67 67
 }
68 68
 
69 69
 /**
@@ -77,24 +77,24 @@  discard block
 block discarded – undo
77 77
  * @return string
78 78
  */
79 79
 function creer_repertoire_documents($ext) {
80
-	$rep = sous_repertoire(_DIR_IMG, $ext);
81
-
82
-	if (!$ext or !$rep) {
83
-		spip_log("creer_repertoire_documents '$rep' interdit");
84
-		exit;
85
-	}
86
-
87
-	// Cette variable de configuration peut etre posee par un plugin
88
-	// par exemple acces_restreint
89
-	// sauf pour logo/ utilise pour stocker les logoon et logooff
90
-	if (isset($GLOBALS['meta']["creer_htaccess"])
91
-		and $GLOBALS['meta']["creer_htaccess"] == 'oui'
92
-	  and $ext !== 'logo') {
93
-		include_spip('inc/acces');
94
-		verifier_htaccess($rep);
95
-	}
96
-
97
-	return $rep;
80
+    $rep = sous_repertoire(_DIR_IMG, $ext);
81
+
82
+    if (!$ext or !$rep) {
83
+        spip_log("creer_repertoire_documents '$rep' interdit");
84
+        exit;
85
+    }
86
+
87
+    // Cette variable de configuration peut etre posee par un plugin
88
+    // par exemple acces_restreint
89
+    // sauf pour logo/ utilise pour stocker les logoon et logooff
90
+    if (isset($GLOBALS['meta']["creer_htaccess"])
91
+        and $GLOBALS['meta']["creer_htaccess"] == 'oui'
92
+      and $ext !== 'logo') {
93
+        include_spip('inc/acces');
94
+        verifier_htaccess($rep);
95
+    }
96
+
97
+    return $rep;
98 98
 }
99 99
 
100 100
 /**
@@ -103,21 +103,21 @@  discard block
 block discarded – undo
103 103
  * @param string $nom
104 104
  */
105 105
 function effacer_repertoire_temporaire($nom) {
106
-	if ($d = opendir($nom)) {
107
-		while (($f = readdir($d)) !== false) {
108
-			if (is_file("$nom/$f")) {
109
-				spip_unlink("$nom/$f");
110
-			} else {
111
-				if ($f <> '.' and $f <> '..'
112
-					and is_dir("$nom/$f")
113
-				) {
114
-					effacer_repertoire_temporaire("$nom/$f");
115
-				}
116
-			}
117
-		}
118
-	}
119
-	closedir($d);
120
-	@rmdir($nom);
106
+    if ($d = opendir($nom)) {
107
+        while (($f = readdir($d)) !== false) {
108
+            if (is_file("$nom/$f")) {
109
+                spip_unlink("$nom/$f");
110
+            } else {
111
+                if ($f <> '.' and $f <> '..'
112
+                    and is_dir("$nom/$f")
113
+                ) {
114
+                    effacer_repertoire_temporaire("$nom/$f");
115
+                }
116
+            }
117
+        }
118
+    }
119
+    closedir($d);
120
+    @rmdir($nom);
121 121
 }
122 122
 
123 123
 //
@@ -134,28 +134,28 @@  discard block
 block discarded – undo
134 134
  */
135 135
 function copier_document($ext, $orig, $source, $subdir = null) {
136 136
 
137
-	$orig = preg_replace(',\.\.+,', '.', $orig); // pas de .. dans le nom du doc
138
-	$dir = creer_repertoire_documents($subdir ? $subdir : $ext);
139
-	$dest = preg_replace("/[^.=\w-]+/", "_",
140
-		translitteration(preg_replace("/\.([^.]+)$/", "",
141
-			preg_replace("/<[^>]*>/", '', basename($orig)))));
137
+    $orig = preg_replace(',\.\.+,', '.', $orig); // pas de .. dans le nom du doc
138
+    $dir = creer_repertoire_documents($subdir ? $subdir : $ext);
139
+    $dest = preg_replace("/[^.=\w-]+/", "_",
140
+        translitteration(preg_replace("/\.([^.]+)$/", "",
141
+            preg_replace("/<[^>]*>/", '', basename($orig)))));
142 142
 
143
-	// ne pas accepter de noms de la forme -r90.jpg qui sont reserves
144
-	// pour les images transformees par rotation (action/documenter)
145
-	$dest = preg_replace(',-r(90|180|270)$,', '', $dest);
143
+    // ne pas accepter de noms de la forme -r90.jpg qui sont reserves
144
+    // pour les images transformees par rotation (action/documenter)
145
+    $dest = preg_replace(',-r(90|180|270)$,', '', $dest);
146 146
 
147
-	// Si le document "source" est deja au bon endroit, ne rien faire
148
-	if ($source == ($dir . $dest . '.' . $ext)) {
149
-		return $source;
150
-	}
147
+    // Si le document "source" est deja au bon endroit, ne rien faire
148
+    if ($source == ($dir . $dest . '.' . $ext)) {
149
+        return $source;
150
+    }
151 151
 
152
-	// sinon tourner jusqu'a trouver un numero correct
153
-	$n = 0;
154
-	while (@file_exists($newFile = $dir . $dest . ($n++ ? ('-' . $n) : '') . '.' . $ext)) {
155
-		;
156
-	}
152
+    // sinon tourner jusqu'a trouver un numero correct
153
+    $n = 0;
154
+    while (@file_exists($newFile = $dir . $dest . ($n++ ? ('-' . $n) : '') . '.' . $ext)) {
155
+        ;
156
+    }
157 157
 
158
-	return deplacer_fichier_upload($source, $newFile);
158
+    return deplacer_fichier_upload($source, $newFile);
159 159
 }
160 160
 
161 161
 /**
@@ -170,28 +170,28 @@  discard block
 block discarded – undo
170 170
  * @return bool|string
171 171
  */
172 172
 function determine_upload($type = '') {
173
-	if (!function_exists('autoriser')) {
174
-		include_spip('inc/autoriser');
175
-	}
176
-
177
-	if (!autoriser('chargerftp')
178
-		or $type == 'logos'
179
-	) # on ne le permet pas pour les logos
180
-	{
181
-		return false;
182
-	}
183
-
184
-	$repertoire = _DIR_TRANSFERT;
185
-	if (!@is_dir($repertoire)) {
186
-		$repertoire = str_replace(_DIR_TMP, '', $repertoire);
187
-		$repertoire = sous_repertoire(_DIR_TMP, $repertoire);
188
-	}
189
-
190
-	if (!$GLOBALS['visiteur_session']['restreint']) {
191
-		return $repertoire;
192
-	} else {
193
-		return sous_repertoire($repertoire, $GLOBALS['visiteur_session']['login']);
194
-	}
173
+    if (!function_exists('autoriser')) {
174
+        include_spip('inc/autoriser');
175
+    }
176
+
177
+    if (!autoriser('chargerftp')
178
+        or $type == 'logos'
179
+    ) # on ne le permet pas pour les logos
180
+    {
181
+        return false;
182
+    }
183
+
184
+    $repertoire = _DIR_TRANSFERT;
185
+    if (!@is_dir($repertoire)) {
186
+        $repertoire = str_replace(_DIR_TMP, '', $repertoire);
187
+        $repertoire = sous_repertoire(_DIR_TMP, $repertoire);
188
+    }
189
+
190
+    if (!$GLOBALS['visiteur_session']['restreint']) {
191
+        return $repertoire;
192
+    } else {
193
+        return sous_repertoire($repertoire, $GLOBALS['visiteur_session']['login']);
194
+    }
195 195
 }
196 196
 
197 197
 /**
@@ -210,35 +210,35 @@  discard block
 block discarded – undo
210 210
  * @return bool|mixed|string
211 211
  */
212 212
 function deplacer_fichier_upload($source, $dest, $move = false) {
213
-	// Securite
214
-	if (substr($dest, 0, strlen(_DIR_RACINE)) == _DIR_RACINE) {
215
-		$dest = _DIR_RACINE . preg_replace(',\.\.+,', '.', substr($dest, strlen(_DIR_RACINE)));
216
-	} else {
217
-		$dest = preg_replace(',\.\.+,', '.', $dest);
218
-	}
219
-
220
-	if ($move) {
221
-		$ok = @rename($source, $dest);
222
-	} else {
223
-		$ok = @copy($source, $dest);
224
-	}
225
-	if (!$ok) {
226
-		$ok = @move_uploaded_file($source, $dest);
227
-	}
228
-	if ($ok) {
229
-		@chmod($dest, _SPIP_CHMOD & ~0111);
230
-	} else {
231
-		$f = @fopen($dest, 'w');
232
-		if ($f) {
233
-			fclose($f);
234
-		} else {
235
-			include_spip('inc/flock');
236
-			raler_fichier($dest);
237
-		}
238
-		spip_unlink($dest);
239
-	}
240
-
241
-	return $ok ? $dest : false;
213
+    // Securite
214
+    if (substr($dest, 0, strlen(_DIR_RACINE)) == _DIR_RACINE) {
215
+        $dest = _DIR_RACINE . preg_replace(',\.\.+,', '.', substr($dest, strlen(_DIR_RACINE)));
216
+    } else {
217
+        $dest = preg_replace(',\.\.+,', '.', $dest);
218
+    }
219
+
220
+    if ($move) {
221
+        $ok = @rename($source, $dest);
222
+    } else {
223
+        $ok = @copy($source, $dest);
224
+    }
225
+    if (!$ok) {
226
+        $ok = @move_uploaded_file($source, $dest);
227
+    }
228
+    if ($ok) {
229
+        @chmod($dest, _SPIP_CHMOD & ~0111);
230
+    } else {
231
+        $f = @fopen($dest, 'w');
232
+        if ($f) {
233
+            fclose($f);
234
+        } else {
235
+            include_spip('inc/flock');
236
+            raler_fichier($dest);
237
+        }
238
+        spip_unlink($dest);
239
+    }
240
+
241
+    return $ok ? $dest : false;
242 242
 }
243 243
 
244 244
 
@@ -262,51 +262,51 @@  discard block
 block discarded – undo
262 262
  */
263 263
 function check_upload_error($error, $msg = '', $return = false) {
264 264
 
265
-	if (!$error) {
266
-		return false;
267
-	}
268
-
269
-	spip_log("Erreur upload $error -- cf. http://php.net/manual/fr/features.file-upload.errors.php");
270
-
271
-	switch ($error) {
272
-
273
-		case 4: /* UPLOAD_ERR_NO_FILE */
274
-			return true;
275
-
276
-		# on peut affiner les differents messages d'erreur
277
-		case 1: /* UPLOAD_ERR_INI_SIZE */
278
-			$msg = _T('upload_limit',
279
-				array('max' => ini_get('upload_max_filesize')));
280
-			break;
281
-		case 2: /* UPLOAD_ERR_FORM_SIZE */
282
-			$msg = _T('upload_limit',
283
-				array('max' => ini_get('upload_max_filesize')));
284
-			break;
285
-		case 3: /* UPLOAD_ERR_PARTIAL  */
286
-			$msg = _T('upload_limit',
287
-				array('max' => ini_get('upload_max_filesize')));
288
-			break;
289
-
290
-		default: /* autre */
291
-			if (!$msg) {
292
-				$msg = _T('pass_erreur') . ' ' . $error
293
-					. '<br />' . propre("[->http://php.net/manual/fr/features.file-upload.errors.php]");
294
-			}
295
-			break;
296
-	}
297
-
298
-	spip_log("erreur upload $error");
299
-	if ($return) {
300
-		return $msg;
301
-	}
302
-
303
-	if (_request("iframe") == "iframe") {
304
-		echo "<div class='upload_answer upload_error'>$msg</div>";
305
-		exit;
306
-	}
307
-
308
-	include_spip('inc/minipres');
309
-	echo minipres($msg,
310
-		"<div style='text-align: " . $GLOBALS['spip_lang_right'] . "'><a href='" . rawurldecode($GLOBALS['redirect']) . "'><button type='button'>" . _T('ecrire:bouton_suivant') . "</button></a></div>");
311
-	exit;
265
+    if (!$error) {
266
+        return false;
267
+    }
268
+
269
+    spip_log("Erreur upload $error -- cf. http://php.net/manual/fr/features.file-upload.errors.php");
270
+
271
+    switch ($error) {
272
+
273
+        case 4: /* UPLOAD_ERR_NO_FILE */
274
+            return true;
275
+
276
+        # on peut affiner les differents messages d'erreur
277
+        case 1: /* UPLOAD_ERR_INI_SIZE */
278
+            $msg = _T('upload_limit',
279
+                array('max' => ini_get('upload_max_filesize')));
280
+            break;
281
+        case 2: /* UPLOAD_ERR_FORM_SIZE */
282
+            $msg = _T('upload_limit',
283
+                array('max' => ini_get('upload_max_filesize')));
284
+            break;
285
+        case 3: /* UPLOAD_ERR_PARTIAL  */
286
+            $msg = _T('upload_limit',
287
+                array('max' => ini_get('upload_max_filesize')));
288
+            break;
289
+
290
+        default: /* autre */
291
+            if (!$msg) {
292
+                $msg = _T('pass_erreur') . ' ' . $error
293
+                    . '<br />' . propre("[->http://php.net/manual/fr/features.file-upload.errors.php]");
294
+            }
295
+            break;
296
+    }
297
+
298
+    spip_log("erreur upload $error");
299
+    if ($return) {
300
+        return $msg;
301
+    }
302
+
303
+    if (_request("iframe") == "iframe") {
304
+        echo "<div class='upload_answer upload_error'>$msg</div>";
305
+        exit;
306
+    }
307
+
308
+    include_spip('inc/minipres');
309
+    echo minipres($msg,
310
+        "<div style='text-align: " . $GLOBALS['spip_lang_right'] . "'><a href='" . rawurldecode($GLOBALS['redirect']) . "'><button type='button'>" . _T('ecrire:bouton_suivant') . "</button></a></div>");
311
+    exit;
312 312
 }
Please login to merge, or discard this patch.
ecrire/public/styliser.php 1 patch
Indentation   +124 added lines, -124 removed lines patch added patch discarded remove patch
@@ -20,7 +20,7 @@  discard block
 block discarded – undo
20 20
  **/
21 21
 
22 22
 if (!defined('_ECRIRE_INC_VERSION')) {
23
-	return;
23
+    return;
24 24
 }
25 25
 
26 26
 // Ce fichier doit imperativement definir la fonction ci-dessous:
@@ -39,59 +39,59 @@  discard block
 block discarded – undo
39 39
  * @return array
40 40
  */
41 41
 function public_styliser_dist($fond, $contexte, $lang = '', $connect = '') {
42
-	static $styliser_par_z;
43
-
44
-	// s'assurer que le fond est licite
45
-	// car il peut etre construit a partir d'une variable d'environnement
46
-	if (strpos($fond, "../") !== false or strncmp($fond, '/', 1) == 0) {
47
-		$fond = "404";
48
-	}
49
-
50
-	if (strncmp($fond, 'modeles/', 8) == 0) {
51
-		$modele = substr($fond, 8);
52
-		$modele = styliser_modele($modele, null, $contexte);
53
-		$fond = "modeles/$modele";
54
-	}
55
-
56
-	// Choisir entre $fond-dist.html, $fond=7.html, etc?
57
-	$id_rubrique = 0;
58
-	// Chercher le fond qui va servir de squelette
59
-	if ($r = quete_rubrique_fond($contexte)) {
60
-		list($id_rubrique, $lang) = $r;
61
-	}
62
-
63
-	// trouver un squelette du nom demande
64
-	// ne rien dire si on ne trouve pas, 
65
-	// c'est l'appelant qui sait comment gerer la situation
66
-	// ou les plugins qui feront mieux dans le pipeline
67
-	$squelette = trouver_fond($fond, "", true);
68
-	$ext = $squelette['extension'];
69
-
70
-	$flux = array(
71
-		'args' => array(
72
-			'id_rubrique' => $id_rubrique,
73
-			'ext' => $ext,
74
-			'fond' => $fond,
75
-			'lang' => $lang,
76
-			'contexte' => $contexte, // le style d'un objet peut dependre de lui meme
77
-			'connect' => $connect
78
-		),
79
-		'data' => $squelette['fond'],
80
-	);
81
-
82
-	if (test_espace_prive() or defined('_ZPIP')) {
83
-		if (!$styliser_par_z) {
84
-			$styliser_par_z = charger_fonction('styliser_par_z', 'public');
85
-		}
86
-		$flux = $styliser_par_z($flux);
87
-	}
88
-
89
-	$flux = styliser_par_objets($flux);
90
-
91
-	// pipeline styliser
92
-	$squelette = pipeline('styliser', $flux);
93
-
94
-	return array($squelette, $ext, $ext, "$squelette.$ext");
42
+    static $styliser_par_z;
43
+
44
+    // s'assurer que le fond est licite
45
+    // car il peut etre construit a partir d'une variable d'environnement
46
+    if (strpos($fond, "../") !== false or strncmp($fond, '/', 1) == 0) {
47
+        $fond = "404";
48
+    }
49
+
50
+    if (strncmp($fond, 'modeles/', 8) == 0) {
51
+        $modele = substr($fond, 8);
52
+        $modele = styliser_modele($modele, null, $contexte);
53
+        $fond = "modeles/$modele";
54
+    }
55
+
56
+    // Choisir entre $fond-dist.html, $fond=7.html, etc?
57
+    $id_rubrique = 0;
58
+    // Chercher le fond qui va servir de squelette
59
+    if ($r = quete_rubrique_fond($contexte)) {
60
+        list($id_rubrique, $lang) = $r;
61
+    }
62
+
63
+    // trouver un squelette du nom demande
64
+    // ne rien dire si on ne trouve pas, 
65
+    // c'est l'appelant qui sait comment gerer la situation
66
+    // ou les plugins qui feront mieux dans le pipeline
67
+    $squelette = trouver_fond($fond, "", true);
68
+    $ext = $squelette['extension'];
69
+
70
+    $flux = array(
71
+        'args' => array(
72
+            'id_rubrique' => $id_rubrique,
73
+            'ext' => $ext,
74
+            'fond' => $fond,
75
+            'lang' => $lang,
76
+            'contexte' => $contexte, // le style d'un objet peut dependre de lui meme
77
+            'connect' => $connect
78
+        ),
79
+        'data' => $squelette['fond'],
80
+    );
81
+
82
+    if (test_espace_prive() or defined('_ZPIP')) {
83
+        if (!$styliser_par_z) {
84
+            $styliser_par_z = charger_fonction('styliser_par_z', 'public');
85
+        }
86
+        $flux = $styliser_par_z($flux);
87
+    }
88
+
89
+    $flux = styliser_par_objets($flux);
90
+
91
+    // pipeline styliser
92
+    $squelette = pipeline('styliser', $flux);
93
+
94
+    return array($squelette, $ext, $ext, "$squelette.$ext");
95 95
 }
96 96
 
97 97
 /**
@@ -110,31 +110,31 @@  discard block
 block discarded – undo
110 110
  *     Données du pipeline styliser
111 111
  **/
112 112
 function styliser_par_objets($flux) {
113
-	if (test_espace_prive()
114
-		and !$squelette = $flux['data']
115
-		and strncmp($flux['args']['fond'], 'prive/objets/', 13) == 0
116
-		and $echafauder = charger_fonction('echafauder', 'prive', true)
117
-	) {
118
-		if (strncmp($flux['args']['fond'], 'prive/objets/liste/', 19) == 0) {
119
-			$table = table_objet(substr($flux['args']['fond'], 19));
120
-			$table_sql = table_objet_sql($table);
121
-			$objets = lister_tables_objets_sql();
122
-			if (isset($objets[$table_sql])) {
123
-				$flux['data'] = $echafauder($table, $table, $table_sql, "prive/objets/liste/objets", $flux['args']['ext']);
124
-			}
125
-		}
126
-		if (strncmp($flux['args']['fond'], 'prive/objets/contenu/', 21) == 0) {
127
-			$type = substr($flux['args']['fond'], 21);
128
-			$table = table_objet($type);
129
-			$table_sql = table_objet_sql($table);
130
-			$objets = lister_tables_objets_sql();
131
-			if (isset($objets[$table_sql])) {
132
-				$flux['data'] = $echafauder($type, $table, $table_sql, "prive/objets/contenu/objet", $flux['args']['ext']);
133
-			}
134
-		}
135
-	}
136
-
137
-	return $flux;
113
+    if (test_espace_prive()
114
+        and !$squelette = $flux['data']
115
+        and strncmp($flux['args']['fond'], 'prive/objets/', 13) == 0
116
+        and $echafauder = charger_fonction('echafauder', 'prive', true)
117
+    ) {
118
+        if (strncmp($flux['args']['fond'], 'prive/objets/liste/', 19) == 0) {
119
+            $table = table_objet(substr($flux['args']['fond'], 19));
120
+            $table_sql = table_objet_sql($table);
121
+            $objets = lister_tables_objets_sql();
122
+            if (isset($objets[$table_sql])) {
123
+                $flux['data'] = $echafauder($table, $table, $table_sql, "prive/objets/liste/objets", $flux['args']['ext']);
124
+            }
125
+        }
126
+        if (strncmp($flux['args']['fond'], 'prive/objets/contenu/', 21) == 0) {
127
+            $type = substr($flux['args']['fond'], 21);
128
+            $table = table_objet($type);
129
+            $table_sql = table_objet_sql($table);
130
+            $objets = lister_tables_objets_sql();
131
+            if (isset($objets[$table_sql])) {
132
+                $flux['data'] = $echafauder($type, $table, $table_sql, "prive/objets/contenu/objet", $flux['args']['ext']);
133
+            }
134
+        }
135
+    }
136
+
137
+    return $flux;
138 138
 }
139 139
 
140 140
 /**
@@ -150,49 +150,49 @@  discard block
 block discarded – undo
150 150
  * @return array
151 151
  */
152 152
 function quete_rubrique_fond($contexte) {
153
-	static $liste_objets = null;
154
-	static $quete = array();
155
-	if (is_null($liste_objets)) {
156
-		$liste_objets = array();
157
-		include_spip('inc/urls');
158
-		include_spip('public/quete');
159
-		$l = urls_liste_objets(false);
160
-		// placer la rubrique en tete des objets
161
-		$l = array_diff($l, array('rubrique'));
162
-		array_unshift($l, 'rubrique');
163
-		foreach ($l as $objet) {
164
-			$id = id_table_objet($objet);
165
-			if (!isset($liste_objets[$id])) {
166
-				$liste_objets[$id] = objet_type($objet, false);
167
-			}
168
-		}
169
-	}
170
-	$c = array_intersect_key($contexte, $liste_objets);
171
-	if (!count($c)) {
172
-		return false;
173
-	}
174
-
175
-	$c = array_map('intval', $c);
176
-	$s = serialize($c);
177
-	if (isset($quete[$s])) {
178
-		return $quete[$s];
179
-	}
180
-
181
-	if (isset($c['id_rubrique']) and $r = $c['id_rubrique']) {
182
-		unset($c['id_rubrique']);
183
-		$c = array('id_rubrique' => $r) + $c;
184
-	}
185
-
186
-	foreach ($c as $_id => $id) {
187
-		if ($id
188
-			and $row = quete_parent_lang(table_objet_sql($liste_objets[$_id]), $id)
189
-		) {
190
-			$lang = isset($row['lang']) ? $row['lang'] : '';
191
-			if ($_id == 'id_rubrique' or (isset($row['id_rubrique']) and $id = $row['id_rubrique'])) {
192
-				return $quete[$s] = array($id, $lang);
193
-			}
194
-		}
195
-	}
196
-
197
-	return $quete[$s] = false;
153
+    static $liste_objets = null;
154
+    static $quete = array();
155
+    if (is_null($liste_objets)) {
156
+        $liste_objets = array();
157
+        include_spip('inc/urls');
158
+        include_spip('public/quete');
159
+        $l = urls_liste_objets(false);
160
+        // placer la rubrique en tete des objets
161
+        $l = array_diff($l, array('rubrique'));
162
+        array_unshift($l, 'rubrique');
163
+        foreach ($l as $objet) {
164
+            $id = id_table_objet($objet);
165
+            if (!isset($liste_objets[$id])) {
166
+                $liste_objets[$id] = objet_type($objet, false);
167
+            }
168
+        }
169
+    }
170
+    $c = array_intersect_key($contexte, $liste_objets);
171
+    if (!count($c)) {
172
+        return false;
173
+    }
174
+
175
+    $c = array_map('intval', $c);
176
+    $s = serialize($c);
177
+    if (isset($quete[$s])) {
178
+        return $quete[$s];
179
+    }
180
+
181
+    if (isset($c['id_rubrique']) and $r = $c['id_rubrique']) {
182
+        unset($c['id_rubrique']);
183
+        $c = array('id_rubrique' => $r) + $c;
184
+    }
185
+
186
+    foreach ($c as $_id => $id) {
187
+        if ($id
188
+            and $row = quete_parent_lang(table_objet_sql($liste_objets[$_id]), $id)
189
+        ) {
190
+            $lang = isset($row['lang']) ? $row['lang'] : '';
191
+            if ($_id == 'id_rubrique' or (isset($row['id_rubrique']) and $id = $row['id_rubrique'])) {
192
+                return $quete[$s] = array($id, $lang);
193
+            }
194
+        }
195
+    }
196
+
197
+    return $quete[$s] = false;
198 198
 }
Please login to merge, or discard this patch.
ecrire/balise/logo_.php 1 patch
Indentation   +95 added lines, -95 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 
@@ -54,84 +54,84 @@  discard block
 block discarded – undo
54 54
  */
55 55
 function balise_LOGO__dist($p) {
56 56
 
57
-	preg_match(',^LOGO_([A-Z_]+?)(|_NORMAL|_SURVOL|_RUBRIQUE)$,i', $p->nom_champ, $regs);
58
-	$type = strtolower($regs[1]);
59
-	$suite_logo = $regs[2];
60
-
61
-	// cas de #LOGO_SITE_SPIP
62
-	if ($type == 'site_spip') {
63
-		$type = 'site';
64
-		$_id_objet = "\"'0'\"";
65
-	}
66
-
67
-	$id_objet = id_table_objet($type);
68
-	if (!isset($_id_objet)) {
69
-		$_id_objet = champ_sql($id_objet, $p);
70
-	}
71
-
72
-	$fichier = ($p->etoile === '**') ? -1 : 0;
73
-	$coord = array();
74
-	$align = $lien = '';
75
-	$mode_logo = '';
76
-
77
-	if ($p->param and !$p->param[0][0]) {
78
-		$params = $p->param[0];
79
-		array_shift($params);
80
-		foreach ($params as $a) {
81
-			if ($a[0]->type === 'texte') {
82
-				$n = $a[0]->texte;
83
-				if (is_numeric($n)) {
84
-					$coord[] = $n;
85
-				} elseif (in_array($n, array('top', 'left', 'right', 'center', 'bottom'))) {
86
-					$align = $n;
87
-				} elseif (in_array($n, array('auto', 'icone', 'apercu', 'vignette'))) {
88
-					$mode_logo = $n;
89
-				}
90
-			} else {
91
-				$lien = calculer_liste($a, $p->descr, $p->boucles, $p->id_boucle);
92
-			}
93
-		}
94
-	}
95
-
96
-	$coord_x = !$coord ? 0 : intval(array_shift($coord));
97
-	$coord_y = !$coord ? 0 : intval(array_shift($coord));
98
-
99
-	if ($p->etoile === '*') {
100
-		include_spip('balise/url_');
101
-		$lien = generer_generer_url_arg($type, $p, $_id_objet);
102
-	}
103
-
104
-	$connect = $p->id_boucle ? $p->boucles[$p->id_boucle]->sql_serveur : '';
105
-	if ($type == 'document') {
106
-		$qconnect = _q($connect);
107
-		$doc = "quete_document($_id_objet, $qconnect)";
108
-		if ($fichier) {
109
-			$code = "quete_logo_file($doc, $qconnect)";
110
-		} else {
111
-			$code = "quete_logo_document($doc, " . ($lien ? $lien : "''") . ", '$align', '$mode_logo', $coord_x, $coord_y, $qconnect)";
112
-		}
113
-		// (x=non-faux ? y : '') pour affecter x en retournant y
114
-		if ($p->descr['documents']) {
115
-			$code = '(($doublons["documents"] .= ",". '
116
-				. $_id_objet
117
-				. ") ? $code : '')";
118
-		}
119
-	} elseif ($connect) {
120
-		$code = "''";
121
-		spip_log('Les logos distants ne sont pas prevus');
122
-	} else {
123
-		$code = logo_survol($id_objet, $_id_objet, $type, $align, $fichier, $lien, $p, $suite_logo);
124
-	}
125
-
126
-	// demande de reduction sur logo avec ecriture spip 2.1 : #LOGO_xxx{200, 0}
127
-	if ($coord_x or $coord_y) {
128
-		$code = "filtrer('image_graver',filtrer('image_reduire'," . $code . ", '$coord_x', '$coord_y'))";
129
-	}
130
-
131
-	$p->code = $code;
132
-	$p->interdire_scripts = false;
133
-
134
-	return $p;
57
+    preg_match(',^LOGO_([A-Z_]+?)(|_NORMAL|_SURVOL|_RUBRIQUE)$,i', $p->nom_champ, $regs);
58
+    $type = strtolower($regs[1]);
59
+    $suite_logo = $regs[2];
60
+
61
+    // cas de #LOGO_SITE_SPIP
62
+    if ($type == 'site_spip') {
63
+        $type = 'site';
64
+        $_id_objet = "\"'0'\"";
65
+    }
66
+
67
+    $id_objet = id_table_objet($type);
68
+    if (!isset($_id_objet)) {
69
+        $_id_objet = champ_sql($id_objet, $p);
70
+    }
71
+
72
+    $fichier = ($p->etoile === '**') ? -1 : 0;
73
+    $coord = array();
74
+    $align = $lien = '';
75
+    $mode_logo = '';
76
+
77
+    if ($p->param and !$p->param[0][0]) {
78
+        $params = $p->param[0];
79
+        array_shift($params);
80
+        foreach ($params as $a) {
81
+            if ($a[0]->type === 'texte') {
82
+                $n = $a[0]->texte;
83
+                if (is_numeric($n)) {
84
+                    $coord[] = $n;
85
+                } elseif (in_array($n, array('top', 'left', 'right', 'center', 'bottom'))) {
86
+                    $align = $n;
87
+                } elseif (in_array($n, array('auto', 'icone', 'apercu', 'vignette'))) {
88
+                    $mode_logo = $n;
89
+                }
90
+            } else {
91
+                $lien = calculer_liste($a, $p->descr, $p->boucles, $p->id_boucle);
92
+            }
93
+        }
94
+    }
95
+
96
+    $coord_x = !$coord ? 0 : intval(array_shift($coord));
97
+    $coord_y = !$coord ? 0 : intval(array_shift($coord));
98
+
99
+    if ($p->etoile === '*') {
100
+        include_spip('balise/url_');
101
+        $lien = generer_generer_url_arg($type, $p, $_id_objet);
102
+    }
103
+
104
+    $connect = $p->id_boucle ? $p->boucles[$p->id_boucle]->sql_serveur : '';
105
+    if ($type == 'document') {
106
+        $qconnect = _q($connect);
107
+        $doc = "quete_document($_id_objet, $qconnect)";
108
+        if ($fichier) {
109
+            $code = "quete_logo_file($doc, $qconnect)";
110
+        } else {
111
+            $code = "quete_logo_document($doc, " . ($lien ? $lien : "''") . ", '$align', '$mode_logo', $coord_x, $coord_y, $qconnect)";
112
+        }
113
+        // (x=non-faux ? y : '') pour affecter x en retournant y
114
+        if ($p->descr['documents']) {
115
+            $code = '(($doublons["documents"] .= ",". '
116
+                . $_id_objet
117
+                . ") ? $code : '')";
118
+        }
119
+    } elseif ($connect) {
120
+        $code = "''";
121
+        spip_log('Les logos distants ne sont pas prevus');
122
+    } else {
123
+        $code = logo_survol($id_objet, $_id_objet, $type, $align, $fichier, $lien, $p, $suite_logo);
124
+    }
125
+
126
+    // demande de reduction sur logo avec ecriture spip 2.1 : #LOGO_xxx{200, 0}
127
+    if ($coord_x or $coord_y) {
128
+        $code = "filtrer('image_graver',filtrer('image_reduire'," . $code . ", '$coord_x', '$coord_y'))";
129
+    }
130
+
131
+    $p->code = $code;
132
+    $p->interdire_scripts = false;
133
+
134
+    return $p;
135 135
 }
136 136
 
137 137
 /**
@@ -158,20 +158,20 @@  discard block
 block discarded – undo
158 158
  *     Code compilé retournant le chemin du logo ou le code HTML du logo.
159 159
  **/
160 160
 function logo_survol($id_objet, $_id_objet, $type, $align, $fichier, $_lien, $p, $suite) {
161
-	$code = "quete_logo('$id_objet', '" .
162
-		(($suite == '_SURVOL') ? 'off' :
163
-			(($suite == '_NORMAL') ? 'on' : 'ON')) .
164
-		"', $_id_objet," .
165
-		(($suite == '_RUBRIQUE') ?
166
-			champ_sql('id_rubrique', $p) :
167
-			(($type == 'rubrique') ? "quete_parent($_id_objet)" : "''")) .
168
-		', ' . intval($fichier) . ')';
169
-
170
-	if ($fichier) {
171
-		return $code;
172
-	}
173
-
174
-	$align = preg_replace(",\W,", "", $align);
175
-
176
-	return "quete_html_logo($code, '$align', " .($_lien ? $_lien : "''") .")";
161
+    $code = "quete_logo('$id_objet', '" .
162
+        (($suite == '_SURVOL') ? 'off' :
163
+            (($suite == '_NORMAL') ? 'on' : 'ON')) .
164
+        "', $_id_objet," .
165
+        (($suite == '_RUBRIQUE') ?
166
+            champ_sql('id_rubrique', $p) :
167
+            (($type == 'rubrique') ? "quete_parent($_id_objet)" : "''")) .
168
+        ', ' . intval($fichier) . ')';
169
+
170
+    if ($fichier) {
171
+        return $code;
172
+    }
173
+
174
+    $align = preg_replace(",\W,", "", $align);
175
+
176
+    return "quete_html_logo($code, '$align', " .($_lien ? $_lien : "''") .")";
177 177
 }
Please login to merge, or discard this patch.
ecrire/auth/spip.php 1 patch
Indentation   +260 added lines, -260 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 /**
@@ -32,78 +32,78 @@  discard block
 block discarded – undo
32 32
  */
33 33
 function auth_spip_dist($login, $pass, $serveur = '', $phpauth = false) {
34 34
 
35
-	// retrouver le login
36
-	$login = auth_spip_retrouver_login($login);
37
-	// login inconnu, n'allons pas plus loin
38
-	if (!$login) {
39
-		return array();
40
-	}
41
-
42
-	$md5pass = "";
43
-	$shapass = $shanext = "";
44
-
45
-	if (preg_match(",^\{([0-9a-f]{64});([0-9a-f]{64})\}$,i", $pass, $regs)) {
46
-		$shapass = $regs[1];
47
-		$shanext = $regs[2];
48
-	} // compat avec une base mixte md5/sha256 : le js a envoye les 2 hash
49
-	elseif (preg_match(",^\{([0-9a-f]{64});([0-9a-f]{64});([0-9a-f]{32});([0-9a-f]{32})\}$,i", $pass, $regs)) {
50
-		$shapass = $regs[1];
51
-		$shanext = $regs[2];
52
-		$md5pass = $regs[3];
53
-		//$md5next = $regs[4];
54
-	} // si envoi non crypte, crypter maintenant
55
-	elseif ($pass) {
56
-		$row = sql_fetsel("alea_actuel, alea_futur", "spip_auteurs", "login=" . sql_quote($login, $serveur, 'text'), '', '',
57
-			'', '', $serveur);
58
-
59
-		if ($row) {
60
-			include_spip('auth/sha256.inc');
61
-			$shapass = spip_sha256($row['alea_actuel'] . $pass);
62
-			$shanext = spip_sha256($row['alea_futur'] . $pass);
63
-			$md5pass = md5($row['alea_actuel'] . $pass);
64
-		}
65
-	}
66
-
67
-	// login inexistant ou mot de passe vide
68
-	if (!$shapass and !$md5pass) {
69
-		return array();
70
-	}
71
-
72
-	$row = sql_fetsel("*", "spip_auteurs",
73
-		"login=" . sql_quote($login, $serveur, 'text') . " AND pass=" . sql_quote($shapass, $serveur,
74
-			'text') . " AND statut<>'5poubelle'", '', '', '', '', $serveur);
75
-
76
-	// compat avec les anciennes bases en md5
77
-	if (!$row and $md5pass) {
78
-		$row = sql_fetsel("*", "spip_auteurs",
79
-			"login=" . sql_quote($login, $serveur, 'text') . " AND pass=" . sql_quote($md5pass, $serveur,
80
-				'text') . " AND statut<>'5poubelle'", '', '', '', '', $serveur);
81
-	}
82
-
83
-	// login/mot de passe incorrect
84
-	if (!$row) {
85
-		return array();
86
-	}
87
-
88
-	// fait tourner le codage du pass dans la base
89
-	// sauf si phpauth : cela reviendrait a changer l'alea a chaque hit, et aucune action verifiable par securiser_action()
90
-	if ($shanext and !$phpauth) {
91
-
92
-		include_spip('inc/acces'); // pour creer_uniqid
93
-		@sql_update('spip_auteurs', array(
94
-			'alea_actuel' => 'alea_futur',
95
-			'pass' => sql_quote($shanext, $serveur, 'text'),
96
-			'alea_futur' => sql_quote(creer_uniqid(), $serveur, 'text')
97
-		), "id_auteur=" . $row['id_auteur'] . ' AND pass IN (' . sql_quote($shapass, $serveur,
98
-				'text') . ', ' . sql_quote($md5pass, $serveur, 'text') . ')', '', $serveur);
99
-		// En profiter pour verifier la securite de tmp/
100
-		// Si elle ne fonctionne pas a l'installation, prevenir
101
-		if (!verifier_htaccess(_DIR_TMP) and defined('_ECRIRE_INSTALL')) {
102
-			return false;
103
-		}
104
-	}
105
-
106
-	return $row;
35
+    // retrouver le login
36
+    $login = auth_spip_retrouver_login($login);
37
+    // login inconnu, n'allons pas plus loin
38
+    if (!$login) {
39
+        return array();
40
+    }
41
+
42
+    $md5pass = "";
43
+    $shapass = $shanext = "";
44
+
45
+    if (preg_match(",^\{([0-9a-f]{64});([0-9a-f]{64})\}$,i", $pass, $regs)) {
46
+        $shapass = $regs[1];
47
+        $shanext = $regs[2];
48
+    } // compat avec une base mixte md5/sha256 : le js a envoye les 2 hash
49
+    elseif (preg_match(",^\{([0-9a-f]{64});([0-9a-f]{64});([0-9a-f]{32});([0-9a-f]{32})\}$,i", $pass, $regs)) {
50
+        $shapass = $regs[1];
51
+        $shanext = $regs[2];
52
+        $md5pass = $regs[3];
53
+        //$md5next = $regs[4];
54
+    } // si envoi non crypte, crypter maintenant
55
+    elseif ($pass) {
56
+        $row = sql_fetsel("alea_actuel, alea_futur", "spip_auteurs", "login=" . sql_quote($login, $serveur, 'text'), '', '',
57
+            '', '', $serveur);
58
+
59
+        if ($row) {
60
+            include_spip('auth/sha256.inc');
61
+            $shapass = spip_sha256($row['alea_actuel'] . $pass);
62
+            $shanext = spip_sha256($row['alea_futur'] . $pass);
63
+            $md5pass = md5($row['alea_actuel'] . $pass);
64
+        }
65
+    }
66
+
67
+    // login inexistant ou mot de passe vide
68
+    if (!$shapass and !$md5pass) {
69
+        return array();
70
+    }
71
+
72
+    $row = sql_fetsel("*", "spip_auteurs",
73
+        "login=" . sql_quote($login, $serveur, 'text') . " AND pass=" . sql_quote($shapass, $serveur,
74
+            'text') . " AND statut<>'5poubelle'", '', '', '', '', $serveur);
75
+
76
+    // compat avec les anciennes bases en md5
77
+    if (!$row and $md5pass) {
78
+        $row = sql_fetsel("*", "spip_auteurs",
79
+            "login=" . sql_quote($login, $serveur, 'text') . " AND pass=" . sql_quote($md5pass, $serveur,
80
+                'text') . " AND statut<>'5poubelle'", '', '', '', '', $serveur);
81
+    }
82
+
83
+    // login/mot de passe incorrect
84
+    if (!$row) {
85
+        return array();
86
+    }
87
+
88
+    // fait tourner le codage du pass dans la base
89
+    // sauf si phpauth : cela reviendrait a changer l'alea a chaque hit, et aucune action verifiable par securiser_action()
90
+    if ($shanext and !$phpauth) {
91
+
92
+        include_spip('inc/acces'); // pour creer_uniqid
93
+        @sql_update('spip_auteurs', array(
94
+            'alea_actuel' => 'alea_futur',
95
+            'pass' => sql_quote($shanext, $serveur, 'text'),
96
+            'alea_futur' => sql_quote(creer_uniqid(), $serveur, 'text')
97
+        ), "id_auteur=" . $row['id_auteur'] . ' AND pass IN (' . sql_quote($shapass, $serveur,
98
+                'text') . ', ' . sql_quote($md5pass, $serveur, 'text') . ')', '', $serveur);
99
+        // En profiter pour verifier la securite de tmp/
100
+        // Si elle ne fonctionne pas a l'installation, prevenir
101
+        if (!verifier_htaccess(_DIR_TMP) and defined('_ECRIRE_INSTALL')) {
102
+            return false;
103
+        }
104
+    }
105
+
106
+    return $row;
107 107
 }
108 108
 
109 109
 /**
@@ -113,41 +113,41 @@  discard block
 block discarded – undo
113 113
  * @return array
114 114
  */
115 115
 function auth_spip_formulaire_login($flux) {
116
-	// faut il encore envoyer md5 ?
117
-	// on regarde si il reste des pass md5 en base pour des auteurs en statut pas poubelle
118
-	// les hash md5 ont une longueur 32, les sha 64
119
-	// en evitant une requete sql a chaque affichage du formulaire login sans session
120
-	// (perf issue pour les sites qui mettent le formulaire de login sur la home)
121
-	$compat_md5 = false;
122
-	if (!isset($GLOBALS['meta']['sha_256_only']) or _request('var_mode')) {
123
-		$compat_md5 = sql_countsel("spip_auteurs", "length(pass)=32 AND statut<>'poubelle'");
124
-		if ($compat_md5 and isset($GLOBALS['meta']['sha_256_only'])) {
125
-			effacer_meta('sha_256_only');
126
-		}
127
-		if (!$compat_md5) {
128
-			ecrire_meta('sha_256_only', 'oui');
129
-		}
130
-	}
131
-
132
-	// javascript qui gere la securite du login en evitant de faire circuler le pass en clair
133
-	$flux['data'] .=
134
-		($compat_md5 ? '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'md5.js"></script>' : '')
135
-		. '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'login-sha-min.js"></script>'
136
-		. '<script type="text/javascript">/*<![CDATA[*/'
137
-		. "var login_info={'alea_actuel':'" . $flux['args']['contexte']['_alea_actuel'] . "',"
138
-		. "'alea_futur':'" . $flux['args']['contexte']['_alea_futur'] . "',"
139
-		. "'login':'" . $flux['args']['contexte']['var_login'] . "',"
140
-		. "'page_auteur': '" . generer_url_public('informer_auteur') . "',"
141
-		. "'informe_auteur_en_cours':false,"
142
-		. "'attente_informe':0,"
143
-		. "'compat_md5':" . ($compat_md5 ? "true" : "false") . "};"
144
-		. "jQuery(function(){
116
+    // faut il encore envoyer md5 ?
117
+    // on regarde si il reste des pass md5 en base pour des auteurs en statut pas poubelle
118
+    // les hash md5 ont une longueur 32, les sha 64
119
+    // en evitant une requete sql a chaque affichage du formulaire login sans session
120
+    // (perf issue pour les sites qui mettent le formulaire de login sur la home)
121
+    $compat_md5 = false;
122
+    if (!isset($GLOBALS['meta']['sha_256_only']) or _request('var_mode')) {
123
+        $compat_md5 = sql_countsel("spip_auteurs", "length(pass)=32 AND statut<>'poubelle'");
124
+        if ($compat_md5 and isset($GLOBALS['meta']['sha_256_only'])) {
125
+            effacer_meta('sha_256_only');
126
+        }
127
+        if (!$compat_md5) {
128
+            ecrire_meta('sha_256_only', 'oui');
129
+        }
130
+    }
131
+
132
+    // javascript qui gere la securite du login en evitant de faire circuler le pass en clair
133
+    $flux['data'] .=
134
+        ($compat_md5 ? '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'md5.js"></script>' : '')
135
+        . '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'login-sha-min.js"></script>'
136
+        . '<script type="text/javascript">/*<![CDATA[*/'
137
+        . "var login_info={'alea_actuel':'" . $flux['args']['contexte']['_alea_actuel'] . "',"
138
+        . "'alea_futur':'" . $flux['args']['contexte']['_alea_futur'] . "',"
139
+        . "'login':'" . $flux['args']['contexte']['var_login'] . "',"
140
+        . "'page_auteur': '" . generer_url_public('informer_auteur') . "',"
141
+        . "'informe_auteur_en_cours':false,"
142
+        . "'attente_informe':0,"
143
+        . "'compat_md5':" . ($compat_md5 ? "true" : "false") . "};"
144
+        . "jQuery(function(){
145 145
 	jQuery('#var_login').change(actualise_auteur);
146 146
 	jQuery('form#formulaire_login').submit(login_submit);
147 147
 });"
148
-		. "/*]]>*/</script>";
148
+        . "/*]]>*/</script>";
149 149
 
150
-	return $flux;
150
+    return $flux;
151 151
 }
152 152
 
153 153
 
@@ -159,10 +159,10 @@  discard block
 block discarded – undo
159 159
  *   toujours true pour un auteur cree dans SPIP
160 160
  */
161 161
 function auth_spip_autoriser_modifier_login($serveur = '') {
162
-	if (strlen($serveur)) {
163
-		return false;
164
-	} // les fonctions d'ecriture sur base distante sont encore incompletes
165
-	return true;
162
+    if (strlen($serveur)) {
163
+        return false;
164
+    } // les fonctions d'ecriture sur base distante sont encore incompletes
165
+    return true;
166 166
 }
167 167
 
168 168
 /**
@@ -176,21 +176,21 @@  discard block
 block discarded – undo
176 176
  *  message d'erreur si login non valide, chaine vide sinon
177 177
  */
178 178
 function auth_spip_verifier_login($new_login, $id_auteur = 0, $serveur = '') {
179
-	// login et mot de passe
180
-	if (strlen($new_login)) {
181
-		if (strlen($new_login) < _LOGIN_TROP_COURT) {
182
-			return _T('info_login_trop_court_car_pluriel', array('nb' => _LOGIN_TROP_COURT));
183
-		} else {
184
-			$n = sql_countsel('spip_auteurs',
185
-				"login=" . sql_quote($new_login) . " AND id_auteur!=" . intval($id_auteur) . " AND statut!='5poubelle'", '', '',
186
-				$serveur);
187
-			if ($n) {
188
-				return _T('info_login_existant');
189
-			}
190
-		}
191
-	}
192
-
193
-	return '';
179
+    // login et mot de passe
180
+    if (strlen($new_login)) {
181
+        if (strlen($new_login) < _LOGIN_TROP_COURT) {
182
+            return _T('info_login_trop_court_car_pluriel', array('nb' => _LOGIN_TROP_COURT));
183
+        } else {
184
+            $n = sql_countsel('spip_auteurs',
185
+                "login=" . sql_quote($new_login) . " AND id_auteur!=" . intval($id_auteur) . " AND statut!='5poubelle'", '', '',
186
+                $serveur);
187
+            if ($n) {
188
+                return _T('info_login_existant');
189
+            }
190
+        }
191
+    }
192
+
193
+    return '';
194 194
 }
195 195
 
196 196
 /**
@@ -202,32 +202,32 @@  discard block
 block discarded – undo
202 202
  * @return bool
203 203
  */
204 204
 function auth_spip_modifier_login($new_login, $id_auteur, $serveur = '') {
205
-	if (is_null($new_login) or auth_spip_verifier_login($new_login, $id_auteur, $serveur) != '') {
206
-		return false;
207
-	}
208
-	if (!$id_auteur = intval($id_auteur)
209
-		or !$auteur = sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur), '', '', '', '', $serveur)
210
-	) {
211
-		return false;
212
-	}
213
-	if ($new_login == $auteur['login']) {
214
-		return true;
215
-	} // on a rien fait mais c'est bon !
216
-
217
-	include_spip('action/editer_auteur');
218
-
219
-	// vider le login des auteurs a la poubelle qui avaient ce meme login
220
-	if (strlen($new_login)) {
221
-		$anciens = sql_allfetsel('id_auteur', 'spip_auteurs',
222
-			'login=' . sql_quote($new_login, $serveur, 'text') . " AND statut='5poubelle'", '', '', '', '', $serveur);
223
-		while ($row = array_pop($anciens)) {
224
-			auteur_modifier($row['id_auteur'], array('login' => ''), true); // manque la gestion de $serveur
225
-		}
226
-	}
227
-
228
-	auteur_modifier($id_auteur, array('login' => $new_login), true); // manque la gestion de $serveur
229
-
230
-	return true;
205
+    if (is_null($new_login) or auth_spip_verifier_login($new_login, $id_auteur, $serveur) != '') {
206
+        return false;
207
+    }
208
+    if (!$id_auteur = intval($id_auteur)
209
+        or !$auteur = sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur), '', '', '', '', $serveur)
210
+    ) {
211
+        return false;
212
+    }
213
+    if ($new_login == $auteur['login']) {
214
+        return true;
215
+    } // on a rien fait mais c'est bon !
216
+
217
+    include_spip('action/editer_auteur');
218
+
219
+    // vider le login des auteurs a la poubelle qui avaient ce meme login
220
+    if (strlen($new_login)) {
221
+        $anciens = sql_allfetsel('id_auteur', 'spip_auteurs',
222
+            'login=' . sql_quote($new_login, $serveur, 'text') . " AND statut='5poubelle'", '', '', '', '', $serveur);
223
+        while ($row = array_pop($anciens)) {
224
+            auteur_modifier($row['id_auteur'], array('login' => ''), true); // manque la gestion de $serveur
225
+        }
226
+    }
227
+
228
+    auteur_modifier($id_auteur, array('login' => $new_login), true); // manque la gestion de $serveur
229
+
230
+    return true;
231 231
 }
232 232
 
233 233
 /**
@@ -239,27 +239,27 @@  discard block
 block discarded – undo
239 239
  * @return string
240 240
  */
241 241
 function auth_spip_retrouver_login($login, $serveur = '') {
242
-	if (!strlen($login)) {
243
-		return null;
244
-	} // pas la peine de requeter
245
-	$l = sql_quote($login, $serveur, 'text');
246
-	if ($r = sql_getfetsel('login', 'spip_auteurs',
247
-		"statut<>'5poubelle'" .
248
-		" AND (length(pass)>0)" .
249
-		" AND (login=$l)", '', '', '', '', $serveur)
250
-	) {
251
-		return $r;
252
-	}
253
-	// Si pas d'auteur avec ce login
254
-	// regarder s'il a saisi son nom ou son mail.
255
-	// Ne pas fusionner avec la requete precedente
256
-	// car un nom peut etre homonyme d'un autre login
257
-	else {
258
-		return sql_getfetsel('login', 'spip_auteurs',
259
-			"statut<>'5poubelle'" .
260
-			" AND (length(pass)>0)" .
261
-			" AND (login<>'' AND (nom=$l OR email=$l))", '', '', '', '', $serveur);
262
-	}
242
+    if (!strlen($login)) {
243
+        return null;
244
+    } // pas la peine de requeter
245
+    $l = sql_quote($login, $serveur, 'text');
246
+    if ($r = sql_getfetsel('login', 'spip_auteurs',
247
+        "statut<>'5poubelle'" .
248
+        " AND (length(pass)>0)" .
249
+        " AND (login=$l)", '', '', '', '', $serveur)
250
+    ) {
251
+        return $r;
252
+    }
253
+    // Si pas d'auteur avec ce login
254
+    // regarder s'il a saisi son nom ou son mail.
255
+    // Ne pas fusionner avec la requete precedente
256
+    // car un nom peut etre homonyme d'un autre login
257
+    else {
258
+        return sql_getfetsel('login', 'spip_auteurs',
259
+            "statut<>'5poubelle'" .
260
+            " AND (length(pass)>0)" .
261
+            " AND (login<>'' AND (nom=$l OR email=$l))", '', '', '', '', $serveur);
262
+    }
263 263
 }
264 264
 
265 265
 
@@ -277,11 +277,11 @@  discard block
 block discarded – undo
277 277
  */
278 278
 function auth_spip_informer_login($infos, $row, $serveur = '') {
279 279
 
280
-	// pour la methode SPIP on a besoin des alea en plus pour encoder le pass avec
281
-	$infos['alea_actuel'] = $row['alea_actuel'];
282
-	$infos['alea_futur'] = $row['alea_futur'];
280
+    // pour la methode SPIP on a besoin des alea en plus pour encoder le pass avec
281
+    $infos['alea_actuel'] = $row['alea_actuel'];
282
+    $infos['alea_futur'] = $row['alea_futur'];
283 283
 
284
-	return $infos;
284
+    return $infos;
285 285
 }
286 286
 
287 287
 /**
@@ -292,10 +292,10 @@  discard block
 block discarded – undo
292 292
  *  toujours true pour un auteur cree dans SPIP
293 293
  */
294 294
 function auth_spip_autoriser_modifier_pass($serveur = '') {
295
-	if (strlen($serveur)) {
296
-		return false;
297
-	} // les fonctions d'ecriture sur base distante sont encore incompletes
298
-	return true;
295
+    if (strlen($serveur)) {
296
+        return false;
297
+    } // les fonctions d'ecriture sur base distante sont encore incompletes
298
+    return true;
299 299
 }
300 300
 
301 301
 
@@ -316,12 +316,12 @@  discard block
 block discarded – undo
316 316
  *  message d'erreur si login non valide, chaine vide sinon
317 317
  */
318 318
 function auth_spip_verifier_pass($login, $new_pass, $id_auteur = 0, $serveur = '') {
319
-	// login et mot de passe
320
-	if (strlen($new_pass) < _PASS_LONGUEUR_MINI) {
321
-		return _T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI));
322
-	}
319
+    // login et mot de passe
320
+    if (strlen($new_pass) < _PASS_LONGUEUR_MINI) {
321
+        return _T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI));
322
+    }
323 323
 
324
-	return '';
324
+    return '';
325 325
 }
326 326
 
327 327
 /**
@@ -335,33 +335,33 @@  discard block
 block discarded – undo
335 335
  * @return bool
336 336
  */
337 337
 function auth_spip_modifier_pass($login, $new_pass, $id_auteur, $serveur = '') {
338
-	if (is_null($new_pass) or auth_spip_verifier_pass($login, $new_pass, $id_auteur, $serveur) != '') {
339
-		return false;
340
-	}
341
-
342
-	if (!$id_auteur = intval($id_auteur)
343
-		or !sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur), '', '', '', '', $serveur)
344
-	) {
345
-		return false;
346
-	}
347
-
348
-	$c = array();
349
-	include_spip('inc/acces');
350
-	include_spip('auth/sha256.inc');
351
-	$htpass = generer_htpass($new_pass);
352
-	$alea_actuel = creer_uniqid();
353
-	$alea_futur = creer_uniqid();
354
-	$pass = spip_sha256($alea_actuel . $new_pass);
355
-	$c['pass'] = $pass;
356
-	$c['htpass'] = $htpass;
357
-	$c['alea_actuel'] = $alea_actuel;
358
-	$c['alea_futur'] = $alea_futur;
359
-	$c['low_sec'] = '';
360
-
361
-	include_spip('action/editer_auteur');
362
-	auteur_modifier($id_auteur, $c, true); // manque la gestion de $serveur
363
-
364
-	return true; // on a bien modifie le pass
338
+    if (is_null($new_pass) or auth_spip_verifier_pass($login, $new_pass, $id_auteur, $serveur) != '') {
339
+        return false;
340
+    }
341
+
342
+    if (!$id_auteur = intval($id_auteur)
343
+        or !sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur), '', '', '', '', $serveur)
344
+    ) {
345
+        return false;
346
+    }
347
+
348
+    $c = array();
349
+    include_spip('inc/acces');
350
+    include_spip('auth/sha256.inc');
351
+    $htpass = generer_htpass($new_pass);
352
+    $alea_actuel = creer_uniqid();
353
+    $alea_futur = creer_uniqid();
354
+    $pass = spip_sha256($alea_actuel . $new_pass);
355
+    $c['pass'] = $pass;
356
+    $c['htpass'] = $htpass;
357
+    $c['alea_actuel'] = $alea_actuel;
358
+    $c['alea_futur'] = $alea_futur;
359
+    $c['low_sec'] = '';
360
+
361
+    include_spip('action/editer_auteur');
362
+    auteur_modifier($id_auteur, $c, true); // manque la gestion de $serveur
363
+
364
+    return true; // on a bien modifie le pass
365 365
 }
366 366
 
367 367
 /**
@@ -375,54 +375,54 @@  discard block
 block discarded – undo
375 375
  * @return void
376 376
  */
377 377
 function auth_spip_synchroniser_distant($id_auteur, $champs, $options = array(), $serveur = '') {
378
-	// ne rien faire pour une base distante : on ne sait pas regenerer les htaccess
379
-	if (strlen($serveur)) {
380
-		return;
381
-	}
382
-	// si un login, pass ou statut a ete modifie
383
-	// regenerer les fichier htpass
384
-	if (isset($champs['login'])
385
-		or isset($champs['pass'])
386
-		or isset($champs['statut'])
387
-		or (isset($options['all']) and $options['all'])
388
-	) {
389
-
390
-		$htaccess = _DIR_RESTREINT . _ACCESS_FILE_NAME;
391
-		$htpasswd = _DIR_TMP . _AUTH_USER_FILE;
392
-
393
-		// Cette variable de configuration peut etre posee par un plugin
394
-		// par exemple acces_restreint ;
395
-		// si .htaccess existe, outrepasser spip_meta
396
-		if ((!isset($GLOBALS['meta']['creer_htpasswd']) or ($GLOBALS['meta']['creer_htpasswd'] != 'oui'))
397
-			and !@file_exists($htaccess)
398
-		) {
399
-			spip_unlink($htpasswd);
400
-			spip_unlink($htpasswd . "-admin");
401
-
402
-			return;
403
-		}
404
-
405
-		# remarque : ici on laisse passer les "nouveau" de maniere a leur permettre
406
-		# de devenir redacteur le cas echeant (auth http)... a nettoyer
407
-		// attention, il faut au prealable se connecter a la base (necessaire car utilise par install)
408
-
409
-		$p1 = ''; // login:htpass pour tous
410
-		$p2 = ''; // login:htpass pour les admins
411
-		$s = sql_select("login, htpass, statut", "spip_auteurs",
412
-			sql_in("statut", array('1comite', '0minirezo', 'nouveau')));
413
-		while ($t = sql_fetch($s)) {
414
-			if (strlen($t['login']) and strlen($t['htpass'])) {
415
-				$p1 .= $t['login'] . ':' . $t['htpass'] . "\n";
416
-				if ($t['statut'] == '0minirezo') {
417
-					$p2 .= $t['login'] . ':' . $t['htpass'] . "\n";
418
-				}
419
-			}
420
-		}
421
-		sql_free($s);
422
-		if ($p1) {
423
-			ecrire_fichier($htpasswd, $p1);
424
-			ecrire_fichier($htpasswd . '-admin', $p2);
425
-			spip_log("Ecriture de $htpasswd et $htpasswd-admin");
426
-		}
427
-	}
378
+    // ne rien faire pour une base distante : on ne sait pas regenerer les htaccess
379
+    if (strlen($serveur)) {
380
+        return;
381
+    }
382
+    // si un login, pass ou statut a ete modifie
383
+    // regenerer les fichier htpass
384
+    if (isset($champs['login'])
385
+        or isset($champs['pass'])
386
+        or isset($champs['statut'])
387
+        or (isset($options['all']) and $options['all'])
388
+    ) {
389
+
390
+        $htaccess = _DIR_RESTREINT . _ACCESS_FILE_NAME;
391
+        $htpasswd = _DIR_TMP . _AUTH_USER_FILE;
392
+
393
+        // Cette variable de configuration peut etre posee par un plugin
394
+        // par exemple acces_restreint ;
395
+        // si .htaccess existe, outrepasser spip_meta
396
+        if ((!isset($GLOBALS['meta']['creer_htpasswd']) or ($GLOBALS['meta']['creer_htpasswd'] != 'oui'))
397
+            and !@file_exists($htaccess)
398
+        ) {
399
+            spip_unlink($htpasswd);
400
+            spip_unlink($htpasswd . "-admin");
401
+
402
+            return;
403
+        }
404
+
405
+        # remarque : ici on laisse passer les "nouveau" de maniere a leur permettre
406
+        # de devenir redacteur le cas echeant (auth http)... a nettoyer
407
+        // attention, il faut au prealable se connecter a la base (necessaire car utilise par install)
408
+
409
+        $p1 = ''; // login:htpass pour tous
410
+        $p2 = ''; // login:htpass pour les admins
411
+        $s = sql_select("login, htpass, statut", "spip_auteurs",
412
+            sql_in("statut", array('1comite', '0minirezo', 'nouveau')));
413
+        while ($t = sql_fetch($s)) {
414
+            if (strlen($t['login']) and strlen($t['htpass'])) {
415
+                $p1 .= $t['login'] . ':' . $t['htpass'] . "\n";
416
+                if ($t['statut'] == '0minirezo') {
417
+                    $p2 .= $t['login'] . ':' . $t['htpass'] . "\n";
418
+                }
419
+            }
420
+        }
421
+        sql_free($s);
422
+        if ($p1) {
423
+            ecrire_fichier($htpasswd, $p1);
424
+            ecrire_fichier($htpasswd . '-admin', $p2);
425
+            spip_log("Ecriture de $htpasswd et $htpasswd-admin");
426
+        }
427
+    }
428 428
 }
Please login to merge, or discard this patch.
ecrire/install/etape_3b.php 1 patch
Indentation   +134 added lines, -134 removed lines patch added patch discarded remove patch
@@ -11,143 +11,143 @@
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 include_spip('inc/headers');
18 18
 
19 19
 function install_etape_3b_dist() {
20
-	$login = _request('login');
21
-	$email = _request('email');
22
-	$nom = _request('nom');
23
-	$pass = _request('pass');
24
-	$pass_verif = _request('pass_verif');
25
-
26
-	$server_db = defined('_INSTALL_SERVER_DB')
27
-		? _INSTALL_SERVER_DB
28
-		: _request('server_db');
29
-
30
-	if (!defined('_PASS_LONGUEUR_MINI')) {
31
-		define('_PASS_LONGUEUR_MINI', 6);
32
-	}
33
-	if (!defined('_LOGIN_TROP_COURT')) {
34
-		define('_LOGIN_TROP_COURT', 4);
35
-	}
36
-	if ($login) {
37
-		$echec = ($pass != $pass_verif) ?
38
-			_T('info_passes_identiques')
39
-			: ((strlen($pass) < _PASS_LONGUEUR_MINI) ?
40
-				_T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI))
41
-				: ((strlen($login) < _LOGIN_TROP_COURT) ?
42
-					_T('info_login_trop_court')
43
-					: ''));
44
-		include_spip('inc/filtres');
45
-		if (!$echec and $email and !email_valide($email)) {
46
-			$echec = _T('form_email_non_valide');
47
-		}
48
-		if ($echec) {
49
-			echo minipres(
50
-				'AUTO',
51
-				info_progression_etape(3, 'etape_', 'install/', true) .
52
-				"<div class='error'><h3>$echec</h3>\n" .
53
-				'<p>' . _T('avis_connexion_echec_2') . '</p>' .
54
-				'</div>'
55
-			);
56
-			exit;
57
-		}
58
-	}
59
-
60
-	if (@file_exists(_FILE_CHMOD_TMP)) {
61
-		include(_FILE_CHMOD_TMP);
62
-	} else {
63
-		redirige_url_ecrire('install');
64
-	}
65
-
66
-	if (!@file_exists(_FILE_CONNECT_TMP)) {
67
-		redirige_url_ecrire('install');
68
-	}
69
-
70
-	# maintenant on connait le vrai charset du site s'il est deja configure
71
-	# sinon par defaut lire_meta reglera _DEFAULT_CHARSET
72
-	# (les donnees arrivent de toute facon postees en _DEFAULT_CHARSET)
73
-
74
-	lire_metas();
75
-	if ($login) {
76
-		include_spip('inc/charsets');
77
-
78
-		$nom = (importer_charset($nom, _DEFAULT_CHARSET));
79
-		$login = (importer_charset($login, _DEFAULT_CHARSET));
80
-		$email = (importer_charset($email, _DEFAULT_CHARSET));
81
-		# pour le passwd, bizarrement il faut le convertir comme s'il avait
82
-		# ete tape en iso-8859-1 ; car c'est en fait ce que voit md5.js
83
-		$pass = unicode2charset(utf_8_to_unicode($pass), 'iso-8859-1');
84
-		include_spip('auth/sha256.inc');
85
-		include_spip('inc/acces');
86
-		$htpass = generer_htpass($pass);
87
-		$alea_actuel = creer_uniqid();
88
-		$alea_futur = creer_uniqid();
89
-		$shapass = spip_sha256($alea_actuel . $pass);
90
-		// prelablement, creer le champ webmestre si il n'existe pas (install neuve
91
-		// sur une vieille base
92
-		$t = sql_showtable('spip_auteurs', true);
93
-		if (!isset($t['field']['webmestre'])) {
94
-			@sql_alter("TABLE spip_auteurs ADD webmestre varchar(3)  DEFAULT 'non' NOT NULL");
95
-		}
96
-
97
-		$id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'login=' . sql_quote($login));
98
-		if ($id_auteur !== null) {
99
-			sql_updateq('spip_auteurs', array(
100
-				'nom' => $nom,
101
-				'email' => $email,
102
-				'login' => $login,
103
-				'pass' => $shapass,
104
-				'alea_actuel' => $alea_actuel,
105
-				'alea_futur' => $alea_futur,
106
-				'htpass' => $htpass,
107
-				'statut' => '0minirezo'
108
-			), "id_auteur=$id_auteur");
109
-		} else {
110
-			$id_auteur = sql_insertq('spip_auteurs', array(
111
-				'nom' => $nom,
112
-				'email' => $email,
113
-				'login' => $login,
114
-				'pass' => $shapass,
115
-				'htpass' => $htpass,
116
-				'alea_actuel' => $alea_actuel,
117
-				'alea_futur' => $alea_futur,
118
-				'statut' => '0minirezo'
119
-			));
120
-		}
121
-		// le passer webmestre separrement du reste, au cas ou l'alter n'aurait pas fonctionne
122
-		@sql_updateq('spip_auteurs', array('webmestre' => 'oui'), "id_auteur=$id_auteur");
123
-
124
-		// inserer email comme email webmaster principal
125
-		// (sauf s'il est vide: cas de la re-installation)
126
-		if ($email) {
127
-			ecrire_meta('email_webmaster', $email);
128
-		}
129
-
130
-		// Connecter directement celui qui vient de (re)donner son login
131
-		// mais sans cookie d'admin ni connexion longue
132
-		include_spip('inc/auth');
133
-		if (!$auteur = auth_identifier_login($login, $pass)
134
-			or !auth_loger($auteur, true)
135
-		) {
136
-			spip_log("login automatique impossible $auth_spip $session" . count($row));
137
-		}
138
-	}
139
-
140
-	// installer les metas
141
-	$config = charger_fonction('config', 'inc');
142
-	$config();
143
-
144
-	// activer les plugins
145
-	// leur installation ne peut pas se faire sur le meme hit, il faudra donc
146
-	// poursuivre au hit suivant
147
-	include_spip('inc/plugin');
148
-	actualise_plugins_actifs();
149
-
150
-
151
-	include_spip('inc/distant');
152
-	redirige_par_entete(parametre_url(self(), 'etape', '4', '&'));
20
+    $login = _request('login');
21
+    $email = _request('email');
22
+    $nom = _request('nom');
23
+    $pass = _request('pass');
24
+    $pass_verif = _request('pass_verif');
25
+
26
+    $server_db = defined('_INSTALL_SERVER_DB')
27
+        ? _INSTALL_SERVER_DB
28
+        : _request('server_db');
29
+
30
+    if (!defined('_PASS_LONGUEUR_MINI')) {
31
+        define('_PASS_LONGUEUR_MINI', 6);
32
+    }
33
+    if (!defined('_LOGIN_TROP_COURT')) {
34
+        define('_LOGIN_TROP_COURT', 4);
35
+    }
36
+    if ($login) {
37
+        $echec = ($pass != $pass_verif) ?
38
+            _T('info_passes_identiques')
39
+            : ((strlen($pass) < _PASS_LONGUEUR_MINI) ?
40
+                _T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI))
41
+                : ((strlen($login) < _LOGIN_TROP_COURT) ?
42
+                    _T('info_login_trop_court')
43
+                    : ''));
44
+        include_spip('inc/filtres');
45
+        if (!$echec and $email and !email_valide($email)) {
46
+            $echec = _T('form_email_non_valide');
47
+        }
48
+        if ($echec) {
49
+            echo minipres(
50
+                'AUTO',
51
+                info_progression_etape(3, 'etape_', 'install/', true) .
52
+                "<div class='error'><h3>$echec</h3>\n" .
53
+                '<p>' . _T('avis_connexion_echec_2') . '</p>' .
54
+                '</div>'
55
+            );
56
+            exit;
57
+        }
58
+    }
59
+
60
+    if (@file_exists(_FILE_CHMOD_TMP)) {
61
+        include(_FILE_CHMOD_TMP);
62
+    } else {
63
+        redirige_url_ecrire('install');
64
+    }
65
+
66
+    if (!@file_exists(_FILE_CONNECT_TMP)) {
67
+        redirige_url_ecrire('install');
68
+    }
69
+
70
+    # maintenant on connait le vrai charset du site s'il est deja configure
71
+    # sinon par defaut lire_meta reglera _DEFAULT_CHARSET
72
+    # (les donnees arrivent de toute facon postees en _DEFAULT_CHARSET)
73
+
74
+    lire_metas();
75
+    if ($login) {
76
+        include_spip('inc/charsets');
77
+
78
+        $nom = (importer_charset($nom, _DEFAULT_CHARSET));
79
+        $login = (importer_charset($login, _DEFAULT_CHARSET));
80
+        $email = (importer_charset($email, _DEFAULT_CHARSET));
81
+        # pour le passwd, bizarrement il faut le convertir comme s'il avait
82
+        # ete tape en iso-8859-1 ; car c'est en fait ce que voit md5.js
83
+        $pass = unicode2charset(utf_8_to_unicode($pass), 'iso-8859-1');
84
+        include_spip('auth/sha256.inc');
85
+        include_spip('inc/acces');
86
+        $htpass = generer_htpass($pass);
87
+        $alea_actuel = creer_uniqid();
88
+        $alea_futur = creer_uniqid();
89
+        $shapass = spip_sha256($alea_actuel . $pass);
90
+        // prelablement, creer le champ webmestre si il n'existe pas (install neuve
91
+        // sur une vieille base
92
+        $t = sql_showtable('spip_auteurs', true);
93
+        if (!isset($t['field']['webmestre'])) {
94
+            @sql_alter("TABLE spip_auteurs ADD webmestre varchar(3)  DEFAULT 'non' NOT NULL");
95
+        }
96
+
97
+        $id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'login=' . sql_quote($login));
98
+        if ($id_auteur !== null) {
99
+            sql_updateq('spip_auteurs', array(
100
+                'nom' => $nom,
101
+                'email' => $email,
102
+                'login' => $login,
103
+                'pass' => $shapass,
104
+                'alea_actuel' => $alea_actuel,
105
+                'alea_futur' => $alea_futur,
106
+                'htpass' => $htpass,
107
+                'statut' => '0minirezo'
108
+            ), "id_auteur=$id_auteur");
109
+        } else {
110
+            $id_auteur = sql_insertq('spip_auteurs', array(
111
+                'nom' => $nom,
112
+                'email' => $email,
113
+                'login' => $login,
114
+                'pass' => $shapass,
115
+                'htpass' => $htpass,
116
+                'alea_actuel' => $alea_actuel,
117
+                'alea_futur' => $alea_futur,
118
+                'statut' => '0minirezo'
119
+            ));
120
+        }
121
+        // le passer webmestre separrement du reste, au cas ou l'alter n'aurait pas fonctionne
122
+        @sql_updateq('spip_auteurs', array('webmestre' => 'oui'), "id_auteur=$id_auteur");
123
+
124
+        // inserer email comme email webmaster principal
125
+        // (sauf s'il est vide: cas de la re-installation)
126
+        if ($email) {
127
+            ecrire_meta('email_webmaster', $email);
128
+        }
129
+
130
+        // Connecter directement celui qui vient de (re)donner son login
131
+        // mais sans cookie d'admin ni connexion longue
132
+        include_spip('inc/auth');
133
+        if (!$auteur = auth_identifier_login($login, $pass)
134
+            or !auth_loger($auteur, true)
135
+        ) {
136
+            spip_log("login automatique impossible $auth_spip $session" . count($row));
137
+        }
138
+    }
139
+
140
+    // installer les metas
141
+    $config = charger_fonction('config', 'inc');
142
+    $config();
143
+
144
+    // activer les plugins
145
+    // leur installation ne peut pas se faire sur le meme hit, il faudra donc
146
+    // poursuivre au hit suivant
147
+    include_spip('inc/plugin');
148
+    actualise_plugins_actifs();
149
+
150
+
151
+    include_spip('inc/distant');
152
+    redirige_par_entete(parametre_url(self(), 'etape', '4', '&'));
153 153
 }
Please login to merge, or discard this patch.
prive/objets/liste/auteurs_fonctions.php 1 patch
Indentation   +74 added lines, -74 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\Fonctions
17 17
  **/
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 /**
@@ -29,29 +29,29 @@  discard block
 block discarded – undo
29 29
  * @param bool $left
30 30
  */
31 31
 function critere_compteur_articles_filtres_dist($idb, &$boucles, $crit, $left = false) {
32
-	$boucle = &$boucles[$idb];
32
+    $boucle = &$boucles[$idb];
33 33
 
34
-	$_statut = calculer_liste($crit->param[0], array(), $boucles, $boucle->id_parent);
34
+    $_statut = calculer_liste($crit->param[0], array(), $boucles, $boucle->id_parent);
35 35
 
36
-	$not = '';
37
-	if ($crit->not) {
38
-		$not = ", 'NOT'";
39
-	}
40
-	$boucle->from['LAA'] = 'spip_auteurs_liens';
41
-	$boucle->from_type['LAA'] = 'left';
42
-	$boucle->join['LAA'] = array("'auteurs'", "'id_auteur'", "'id_auteur'", "'LAA.objet=\'article\''");
36
+    $not = '';
37
+    if ($crit->not) {
38
+        $not = ", 'NOT'";
39
+    }
40
+    $boucle->from['LAA'] = 'spip_auteurs_liens';
41
+    $boucle->from_type['LAA'] = 'left';
42
+    $boucle->join['LAA'] = array("'auteurs'", "'id_auteur'", "'id_auteur'", "'LAA.objet=\'article\''");
43 43
 
44
-	$boucle->from['articles'] = 'spip_articles';
45
-	$boucle->from_type['articles'] = 'left';
46
-	$boucle->join['articles'] = array(
47
-		"'LAA'",
48
-		"'id_article'",
49
-		"'id_objet'",
50
-		"'(articles.statut IS NULL OR '.sql_in('articles.statut',_q($_statut)$not).')'"
51
-	);
44
+    $boucle->from['articles'] = 'spip_articles';
45
+    $boucle->from_type['articles'] = 'left';
46
+    $boucle->join['articles'] = array(
47
+        "'LAA'",
48
+        "'id_article'",
49
+        "'id_objet'",
50
+        "'(articles.statut IS NULL OR '.sql_in('articles.statut',_q($_statut)$not).')'"
51
+    );
52 52
 
53
-	$boucle->select[] = 'COUNT(articles.id_article) AS compteur_articles';
54
-	$boucle->group[] = 'auteurs.id_auteur';
53
+    $boucle->select[] = 'COUNT(articles.id_article) AS compteur_articles';
54
+    $boucle->group[] = 'auteurs.id_auteur';
55 55
 }
56 56
 
57 57
 /**
@@ -69,7 +69,7 @@  discard block
 block discarded – undo
69 69
  *     Pile complétée par le code à générer
70 70
  */
71 71
 function balise_COMPTEUR_ARTICLES_dist($p) {
72
-	return rindex_pile($p, 'compteur_articles', 'compteur_articles_filtres');
72
+    return rindex_pile($p, 'compteur_articles', 'compteur_articles_filtres');
73 73
 }
74 74
 
75 75
 
@@ -85,43 +85,43 @@  discard block
 block discarded – undo
85 85
  * @return string
86 86
  */
87 87
 function afficher_initiale($url, $initiale, $compteur, $debut, $pas) {
88
-	static $memo = null;
89
-	static $res = [];
90
-	$out = '';
91
-	if (!$memo
92
-		or (!$initiale and !$url)
93
-		or ($initiale !== $memo['initiale'])
94
-	) {
95
-		$newcompt = intval(floor(($compteur - 1) / $pas) * $pas);
96
-		// si fin de la pagination et une seule entree, ne pas l'afficher, ca ne sert a rien
97
-		if (!$initiale and !$url and !$memo['compteur']) {
98
-			$memo = null;
99
-		}
100
-		if ($memo) {
101
-			$on = (($memo['compteur'] <= $debut)
102
-				and (
103
-					$newcompt > $debut or ($newcompt == $debut and $newcompt == $memo['compteur'])
104
-				));
105
-			$res[] = lien_ou_expose($memo['url'], $memo['initiale'], $on, 'lien_pagination');
106
-		}
107
-		if ($initiale) {
108
-			$memo = array(
109
-				'entree' => isset($memo['entree']) ? $memo['entree'] + 1 : 0,
110
-				'initiale' => $initiale,
111
-				'url' => parametre_url($url, 'i', $initiale),
112
-				'compteur' => $newcompt
113
-			);
114
-		}
115
-	}
116
-	if (!$initiale and !$url) {
117
-		if (count($res) > 1) {
118
-			$out = implode(' ', $res);
119
-		}
120
-		$memo = null;
121
-		$res = [];
122
-	}
88
+    static $memo = null;
89
+    static $res = [];
90
+    $out = '';
91
+    if (!$memo
92
+        or (!$initiale and !$url)
93
+        or ($initiale !== $memo['initiale'])
94
+    ) {
95
+        $newcompt = intval(floor(($compteur - 1) / $pas) * $pas);
96
+        // si fin de la pagination et une seule entree, ne pas l'afficher, ca ne sert a rien
97
+        if (!$initiale and !$url and !$memo['compteur']) {
98
+            $memo = null;
99
+        }
100
+        if ($memo) {
101
+            $on = (($memo['compteur'] <= $debut)
102
+                and (
103
+                    $newcompt > $debut or ($newcompt == $debut and $newcompt == $memo['compteur'])
104
+                ));
105
+            $res[] = lien_ou_expose($memo['url'], $memo['initiale'], $on, 'lien_pagination');
106
+        }
107
+        if ($initiale) {
108
+            $memo = array(
109
+                'entree' => isset($memo['entree']) ? $memo['entree'] + 1 : 0,
110
+                'initiale' => $initiale,
111
+                'url' => parametre_url($url, 'i', $initiale),
112
+                'compteur' => $newcompt
113
+            );
114
+        }
115
+    }
116
+    if (!$initiale and !$url) {
117
+        if (count($res) > 1) {
118
+            $out = implode(' ', $res);
119
+        }
120
+        $memo = null;
121
+        $res = [];
122
+    }
123 123
 
124
-	return $out;
124
+    return $out;
125 125
 }
126 126
 
127 127
 /**
@@ -140,23 +140,23 @@  discard block
 block discarded – undo
140 140
  * @return string
141 141
  */
142 142
 function auteur_lien_messagerie($id_auteur, $en_ligne, $statut, $imessage, $email = '') {
143
-	static $time = null;
144
-	if (!in_array($statut, array('0minirezo', '1comite'))) {
145
-		return '';
146
-	}
143
+    static $time = null;
144
+    if (!in_array($statut, array('0minirezo', '1comite'))) {
145
+        return '';
146
+    }
147 147
 
148
-	if (is_null($time)) {
149
-		$time = time();
150
-	}
151
-	$parti = (($time - strtotime($en_ligne)) > 15 * 60);
148
+    if (is_null($time)) {
149
+        $time = time();
150
+    }
151
+    $parti = (($time - strtotime($en_ligne)) > 15 * 60);
152 152
 
153
-	if ($imessage != 'non' and !$parti // historique : est-ce que ca a encore un sens de limiter vu qu'on a la notification par email ?
154
-		and $GLOBALS['meta']['messagerie_agenda'] != 'non'
155
-	) {
156
-		return parametre_url(parametre_url(generer_url_ecrire('message_edit', 'new=oui'), 'to', $id_auteur), 'redirect', self());
157
-	} elseif (strlen($email) and autoriser('voir', 'auteur', $id_auteur)) {
158
-		return 'mailto:' . $email;
159
-	} else {
160
-		return '';
161
-	}
153
+    if ($imessage != 'non' and !$parti // historique : est-ce que ca a encore un sens de limiter vu qu'on a la notification par email ?
154
+        and $GLOBALS['meta']['messagerie_agenda'] != 'non'
155
+    ) {
156
+        return parametre_url(parametre_url(generer_url_ecrire('message_edit', 'new=oui'), 'to', $id_auteur), 'redirect', self());
157
+    } elseif (strlen($email) and autoriser('voir', 'auteur', $id_auteur)) {
158
+        return 'mailto:' . $email;
159
+    } else {
160
+        return '';
161
+    }
162 162
 }
Please login to merge, or discard this patch.