source: trunk/plugins/admin_advices/fr_FR/lang.adv.php @ 2297

Last change on this file since 2297 was 2297, checked in by plg, 16 years ago

Modification: new header on PHP files, PhpWebGallery renamed Piwigo.

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Author Date Id Revision
File size: 22.0 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// | Piwigo - a PHP based picture gallery                                  |
4// +-----------------------------------------------------------------------+
5// | Copyright(C) 2008      Piwigo Team                  http://piwigo.org |
6// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net |
7// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick |
8// +-----------------------------------------------------------------------+
9// | This program is free software; you can redistribute it and/or modify  |
10// | it under the terms of the GNU General Public License as published by  |
11// | the Free Software Foundation                                          |
12// |                                                                       |
13// | This program is distributed in the hope that it will be useful, but   |
14// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
15// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
16// | General Public License for more details.                              |
17// |                                                                       |
18// | You should have received a copy of the GNU General Public License     |
19// | along with this program; if not, write to the Free Software           |
20// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
21// | USA.                                                                  |
22// +-----------------------------------------------------------------------+
23// +-----------------------------------------------------------------------+
24// | PhpWebGallery - a PHP based picture gallery                           |
25// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
26// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net |
27// +-----------------------------------------------------------------------+
28
29global $lang;
30$lang['An_advice_about'] = 'Un nouveau conseil à propos de ';
31$lang['Metadata'] = 'Méta-données';
32
33foreach ($conf as $key => $value)
34{
35  if ( is_string($value) )
36  {
37    $bool = ($value == 'false') ? false : $value;
38    $bool = ($value == 'true') ? true : $bool;
39    $conf[$key] = $bool;
40  }
41}
42
43//
44//               Don't forget to update range for new advices
45//
46$cases = range(1,34);
47srand ((double) microtime() * 10000000);
48shuffle($cases);
49
50$cond = false;
51foreach ($cases as $id_adv)
52{
53  if ($cond) break;
54  $adv = array();
55  switch ($id_adv) {
56    Case 1 :
57      $adv[] = 'Valeur actuelle : public. ';
58      $adv[] = 'Essayez $conf[\'newcat_default_status\'] = \'private\';';
59      $adv[] = 'Vous aurez plus de temps pour décrire et contrôler vos images. '
60             . 'Du temps pour vous décider entre un statut privé ou public.';
61      $adv[] = 'Si vous choisissez de rester privé, vous passerez directement '
62             . 'à l\'attribution des autorisations. <br />'
63             . 'Vos nouvelles catégories seront préparées plus facilement.';
64      $cond = ($conf['newcat_default_status'] !== 'public');
65      $confk = 'newcat_default_status';
66      break;
67
68    Case 2 :
69      $adv[] = 'Valeur actuelle : ' . (string) $conf['slideshow_period'] . '.';
70      $adv[] = 'Ce délai pourrait être trop petit pour les connexions '
71             . 'en bas débit.';
72      $adv[] = 'Pensez à une valeur supérieure comme 4.';
73      $cond = ( $conf['slideshow_period'] < 4 );
74      $confk = 'slideshow_period';
75      break;
76
77    Case 3 :
78      $adv[] = 'Valeur actuelle : ' . implode(', ', $conf['file_ext']) . '. ';
79      $adv[] = 'Ne devrait jamais contenir des extensions pouvant être ';
80      $adv[] = 'exécutées sur le serveur comme *.php, *.PHP, *.asp, ...';
81      $cond = ( in_array('php',$conf['file_ext']) );
82      $confk = 'file_ext';
83      break;
84
85    Case 4 :
86      $adv[] = 'Comment gérer les IPTC:';
87      $adv[] = ' 1 - Copiez une image jpg (publique) dans ./tools/<br />'
88             . ' 2 - Renommez celle-ci en sample.jpg.<br />'
89             . ' 3 - Lancez ./tools/metadata.php<br />'
90             . ' 4 - Analysez les résultats pour déterminer quels champs '
91             . 'IPTC pourraient intéresser vos visiteurs.';
92      $adv[] = 'Les débutants laisseront $conf[\'show_iptc\'] = false;';
93      $adv[] = 'Les utilisateurs avancés penseront aux valeurs du tableau '
94             . '$lang; voire même à l\'impact possible sur les templates.';
95      $cond = true;
96      $confk = 'show_iptc_mapping';
97      break;
98
99     Case 5 :
100      $adv[] = 'Valeur actuelle : ' . (string) $conf['top_number'] . '.';
101      $adv[] = 'Cette valeur pourrait être trop grande pour des connexions '
102             . 'bas débit.<br /> Pensez à une valeur située entre 25-50 '
103             . 'en fonction de la taille de vos minitures.';
104      $cond = ( $conf['top_number'] > 50 );
105      $confk = 'top_number';
106      break;
107
108     Case 6 :
109      $adv[] = 'Valeur actuelle : ' . (string) $conf['top_number'] . '.';
110      $adv[] = 'Une seule? Au moins pour les images aléatoires, pensez '
111             . 'autour de 5-10 selon la tailles de vos miniatures.';
112      $cond = ( $conf['top_number'] < 2 ) ? true : false;
113      $confk = 'top_number';
114      break;
115
116     Case 7 :
117      $adv[] = 'Valeur actuelle : ' . (string) $conf['anti-flood_time'] . '.';
118      $adv[] = 'Pour un traitement fluide, votre valeur est sans doute trop '
119             . 'grande. Une valeur raisonnable serait 60 (valeur par défaut).' ;
120      $cond = ( $conf['anti-flood_time'] > 100 ) ? true : false;
121      $confk = 'anti-flood_time';
122      break;
123
124     Case 8 :
125      $adv[] = 'Valeur actuelle : ' . (string) $conf['calendar_datefield'] .'.';
126      $adv[] = 'Les valeurs admises sont '
127             . "'date_creation' ou 'date_available'" . ', toute autre valeur'
128             . 'peut aboutir à des résultats imprévisibles.' ;
129      $cond = ( !in_array($conf['calendar_datefield'],
130        array('date_creation','date_available')) );
131      $confk = 'calendar_datefield';
132      break;
133
134     Case 9 :
135      // If (iptc or exif) are used and date_creation is updated
136      // Then it's Ok, you can use date_creation by default for calendar
137      // else ... Advise
138      $adv[] = 'Valeur actuelle : ' . (string) $conf['calendar_datefield'] .'.';
139      $adv[] = "La 'date_creation'" . ' n\'est pas renseignée. Aucun champ '
140             . 'des méta-données (use_) n\'actualise la base.';
141      $adv[] = 'Soit vous activez l\'usage des méta-données <strong>ou'
142             . '</strong> changez pour '
143             . '$conf[\'calendar_datefield\'] = \'date_available\'';
144      $adv[] = 'Activez l\'usage des méta-données simplement par: <br />'
145             . '1 - $conf[\'use_iptc\'] = true; ou $conf[\'use_exif\'] = true; '
146             . 'au choix, les 2 sont valables.<br />'
147             . '2 - Respectivement à chacune faire la modif:<br />'
148             . '$conf[\'use_iptc_mapping\'] = array( ..., \'date_creation\' '
149             . '=> \'2#055\', ...<br />'
150             . 'et/ou:<br />'
151             . '$conf[\'use_exif_mapping\'] = array(\'date_creation\' '
152             . '=> \'DateTimeOriginal\', ...<br />'
153             . '3 - Enfin une nouvelle tache vous est destinée: '
154             . 'la synchronisation des méta-données.' ;
155      $cond2 = ( $conf['use_exif'] and
156                isset($conf['use_exif_mapping']['date_creation']) );
157      $cond3 = ( $conf['use_iptc'] and
158                isset($conf['use_iptc_mapping']['date_creation']) );
159      $cond = ( $conf['calendar_datefield'] == 'date_creation' );
160      $cond = ( ($cond2 or $cond3) and $cond ) ? false : true;
161      $confk = 'calendar_datefield';
162      break;
163
164     Case 10 :
165      $adv[] = 'Valeur actuelle : false.';
166      $adv[] = 'C\'est une erreur, un statut "private" est plus simple, '
167             . 'alors choisissez $conf[\'newcat_default_visible\'] = true;' ;
168      $cond = !$conf['newcat_default_visible'];
169      $confk = 'newcat_default_visible';
170      break;
171
172     Case 11 :
173      $adv[] = 'Valeur actuelle : ' . (string) $conf['level_separator'] . '.';
174      $adv[] = 'Vous pouvez toujours essayer un autre séparateur comme :'
175             . '<br />$conf[\'level_separator\'] = \'+ \';';
176      $cond = ( $conf['level_separator'] == ' / ' );
177      $confk = 'level_separator';
178      break;
179
180     Case 12 :
181      $adv[] = 'Valeur actuelle : ' . (string) $conf['paginate_pages_around']
182             . '.';
183      $adv[] = 'Les valeurs habituelles se situent entre 2 et 5.'
184             . 'Pour un site avec une interface légère, on choisira : <br />'
185             . '$conf[\'paginate_pages_around\'] = 2; <br />'
186             . 'Afin de proposer plus d\'accès directs, on choisira : <br />'
187             . '$conf[\'paginate_pages_around\'] = 7;';
188      $cond = (($conf['paginate_pages_around'] < 2)
189            or ($conf['paginate_pages_around'] > 12));
190      $confk = 'paginate_pages_around';
191      break;
192
193     Case 13 :
194      $adv[] = 'Valeur actuelle : ' . (string) $conf['tn_width'] . '.';
195      $adv[] = 'Doit être une valeur proche de la largeur de vos miniatures.';
196      $adv[] = 'Les valeurs habituelles se situent entre 96 et 150, '
197             . 'comme $conf[\'tn_width\'] = 128;';
198      $cond = (($conf['tn_width'] < 66)
199            or ($conf['tn_width'] > 180));
200      $confk = 'tn_width';
201      break;
202
203     Case 14 :
204      $adv[] = 'Valeur actuelle : ' . (string) $conf['tn_height'] . '.';
205      $adv[] = 'Doit être une valeur proche de la hauteur de vos miniatures.';
206      $adv[] = 'Les valeurs habituelles se situent entre 96 et 150, '
207             . 'comme $conf[\'tn_height\'] = 128;';
208      $cond = (($conf['tn_height'] < 66)
209            or ($conf['tn_height'] > 180));
210      $confk = 'tn_height';
211      break;
212
213     Case 15 :
214      $adv[] = 'Il n\'y a aucune raison pour que la largeur maximale soit '
215             . 'différente de la hauteur maximale. Pourquoi les ajouts en '
216             . 'portrait afficheraient des miniatures dans une résolution '
217             . 'différente de celle des miniatures en paysage?';
218      $adv[] = 'Essayez $conf[\'tn_height\'] = ' . (string) $conf['tn_width']
219             . ';<br />'
220             . 'ou $conf[\'tn_width\'] = ' . (string) $conf['tn_height'] . ';';
221      $cond = ( $conf['tn_height'] !== $conf['tn_width'] );
222      $confk = 'tn_height';
223      break;
224
225     Case 16 :
226      $adv[] = 'Valeur actuelle : true.';
227      $adv[] = 'Pour des raisons de sécurité de votre galerie, préférez '
228             . '$conf[\'show_version\'] = false;';
229      $cond = $conf['show_version'];
230      $confk = 'show_version';
231      break;
232
233     Case 17 :
234      $adv[] = 'Valeur actuelle : true.';
235      $adv[] = 'Pour une galerie moins chargée, faites le test de '
236             . '$conf[\'show_thumbnail_caption\'] = false;';
237      $cond = $conf['show_thumbnail_caption'];
238      $confk = 'show_thumbnail_caption';
239      break;
240
241     Case 18 :
242      $adv[] = 'Valeur actuelle : true.';
243      $adv[] = 'Pour une galerie moins chargée, faites le test de '
244             . '$conf[\'show_picture_name_on_title\'] = false;';
245      $cond = $conf['show_picture_name_on_title'];
246      $confk = 'show_picture_name_on_title';
247      break;
248
249     Case 19 :
250      $adv[] = 'Valeur actuelle : true.';
251      $adv[] = 'Aucune de vos catégories ne possède de descriptions alors '
252             . 'essayez $conf[\'subcatify\'] = false;';
253      $cond = $conf['subcatify'];
254      $confk = 'subcatify';
255      break;
256
257     Case 20 :
258      $adv[] = 'Valeur actuelle : true.';
259      $adv[] = 'Laissez $conf[\'allow_random_representative\'] = true; <br />'
260             . 'mais étudiez comment vous pouvez l\'éviter pour des raisons '
261             . 'de performance.' ;
262      $cond = $conf['allow_random_representative'];
263      $confk = 'allow_random_representative';
264      break;
265
266     Case 21 :
267      $adv[] = 'Valeur actuelle : ' . (string) $conf['prefix_thumbnail'] . '.';
268      $adv[] = 'Attention, votre $conf[\'prefix_thumbnail\'] n\'est pas '
269             . 'standard.';
270      $adv[] = 'Ne pas changer votre préfixe sauf si vos miniatures ont un '
271             . 'problème d\'affichage.';
272      $adv[] = 'Un site distant peut avoir un préfixe différent, le '
273             . 'create_listing_file.php devra être modifié.<br />'
274             . 'Vous devriez avoir un message d\'avertissement pendant la '
275             . 'synchronisation dans ce cas.';
276      $adv[] = 'Essayez de garder le même préfixe de miniatures pour les sites '
277             . 'locaux ou distants.';
278      $adv[] = 'Conservez ce paramètre dans votre ./include/config_'
279             . '<strong>local.inc.php</strong>. <br />'
280             . 'Voir la page sur la configuration dans le Wiki pour plus '
281             . 'd\'informations à propos de '
282             . './include/config_<strong>local.inc.php</strong>.';
283      $cond = ( $conf['prefix_thumbnail'] !== 'TN-' );
284      $confk = 'prefix_thumbnail';
285      break;
286
287     Case 22 :
288      $adv[] = 'Valeur actuelle : ' . (string) $conf['users_page'] . '.';
289      $adv[] = 'A moins d\'avoir une connexion bas débit, vous pouvez '
290             . 'augmenter largement $conf[\'users_page\'] '
291             . 'surtout si vous avez plus de 20 membres.';
292      $cond = ( $conf['users_page'] < 21 );
293      $confk = 'users_page';
294      break;
295
296     Case 23 :
297      $adv[] = 'Valeur actuelle : true.';
298      $adv[] = 'Devrait être à false, seulement quelques webmasters devront '
299             . 'indiquer $conf[\'mail_options\'] = true; <br />'
300             . 'Un utilisateur avancé de notre forum les aura conseillé '
301             . 'dans un seul cas de problème d\'email.' ;
302      $cond = $conf['mail_options'];
303      $confk = 'mail_options';
304      break;
305
306     Case 24 :
307      $adv[] = 'Valeur actuelle : true.';
308      $adv[] = 'Devrait être à false, seuls les membres de l\'équipe PWG '
309             . 'codent $conf[\'check_upgrade_feed\'] = true; pour leurs tests.';
310      $cond = $conf['check_upgrade_feed'];
311      $confk = 'check_upgrade_feed';
312      break;
313
314     Case 25 :
315      $adv[] = '$conf[\'rate_items\'] dispose de ' . count($conf['rate_items'])
316             . 'éléments.';
317      $adv[] = 'Votre $conf[\'rate_items\'] devrait avoir 4 ou 5 éléments '
318             . 'mais pas moins.';
319      $cond = ( count($conf['rate_items']) < 4 );
320      $confk = 'rate_items';
321      break;
322
323     Case 26 :
324      $adv[] = '$conf[\'rate_items\'] has ' . count($conf['rate_items'])
325             . 'items.';
326      $adv[] = 'Votre $conf[\'rate_items\'] devrait avoir 4 ou 5 éléments '
327             . 'mais pas plus.';
328      $adv[] = 'Contrôlez vos images les mieux notées avant de retirer '
329             . ' certaines valeurs.'
330             . '<br />Réduire les valeurs excessives et modifiez votre '
331             . '$conf[\'rate_items\'].';
332      $cond = ( count($conf['rate_items']) > 6 );
333      $confk = 'rate_items';
334      break;
335
336     Case 27 :
337      $adv[] = 'Valeur actuelle : true.';
338      $adv[] = 'Peut être effectivement à true, éventuellement choisissez '
339             . '$conf[\'show_iptc\'] = false;'
340             . '<br />Comme quelques photographes professionnels choisissez '
341             . 'false bien que leurs raisons ne soient guère professionnelles.';
342      $adv[] = 'Ne confondez pas <strong>show</strong>_iptc et '
343             . '<strong>use</strong>_iptc (consultez la pages de métadonnées '
344             . 'sur notre wiki).';
345      $cond = $conf['show_iptc'];
346      $confk = 'show_iptc';
347      break;
348
349     Case 28 :
350      $adv[] = 'Valeur actuelle : true.';
351      $adv[] = 'Les documentalistes et photographes professionnels choisiront '
352             . 'cette valeur true, mais les débutants devraient laisser '
353             . '$conf[\'use_iptc\'] = false;';
354      $adv[] = 'Faire attention aux champs mentionnés dans la synchronisation '
355             . 'des métadonnées.<br />Les champs indiqués pourront être '
356             . 'écrasés par des valeurs de champs IPTC quand bien même ces '
357             . 'champs ne seraient pas vides.';
358      $adv[] = 'Ne confondez pas <strong>show</strong>_iptc et '
359             . '<strong>use</strong>_iptc (consultez la pages de métadonnées '
360             . 'sur notre wiki).';
361      $cond = $conf['use_iptc'];
362      $confk = 'use_iptc';
363      break;
364
365     Case 29 :
366      $adv[] = 'Comment gérer les IPTC:';
367      $adv[] = ' 1 - Copiez une image jpg (publique) dans ./tools/<br />'
368             . ' 2 - Renommez celle-ci en sample.jpg.<br />'
369             . ' 3 - Lancez ./tools/metadata.php<br />'
370             . ' 4 - Analysez les résultats pour déterminer quels champs '
371             . 'IPTC pourraient intéresser vos visiteurs.';
372      $adv[] = 'Les débutants laisseront $conf[\'use_iptc\'] = false;';
373      $adv[] = 'Les utilisateurs avancés feront des efforts de documentation '
374             . 'avant de transférer leurs images.<br />'
375             . 'Les champs IPTC doivent être décrits par '
376             . '$conf[\'use_iptc_mapping\']';
377      $adv[] = 'Dans tous les cas, <strong>show</strong>_iptc_mapping et '
378             . '<strong>use</strong>_iptc_mapping seront '
379             . 'totalement différents.';
380      $cond = true;
381      $confk = 'use_iptc';
382      break;
383
384     Case 30 :
385      $adv[] = 'Comment gérer les IPTC:';
386      $adv[] = ' 1 - Copiez une image jpg (publique) dans ./tools/<br />'
387             . ' 2 - Renommez celle-ci en sample.jpg.<br />'
388             . ' 3 - Lancez ./tools/metadata.php<br />'
389             . ' 4 - Analysez les résultats pour déterminer quels champs '
390             . 'IPTC pourraient intéresser vos visiteurs.';
391      $adv[] = 'Les débutants laisseront $conf[\'use_iptc\'] = false;';
392      $adv[] = 'Les utilisateurs avancés feront des efforts de documentation '
393             . 'avant de transférer leurs images.<br />'
394             . 'Les champs IPTC doivent être décrits par '
395             . '$conf[\'use_iptc_mapping\']';
396      $adv[] = 'Faire attention aux champs mentionnés dans la synchronisation '
397             . 'des métadonnées.<br />Les champs indiqués pourront être '
398             . 'écrasés par des valeurs de champs IPTC quand bien même ces '
399             . 'champs ne seraient pas vides.';
400      $adv[] = 'Dans tous les cas, <strong>show</strong>_iptc_mapping et '
401             . '<strong>use</strong>_iptc_mapping seront '
402             . 'totalement différents.';
403      $cond = true;
404      $confk = 'use_iptc_mapping';
405      break;
406
407     Case 31 :
408      $adv[] = 'Valeur actuelle : '
409             . ( ( $conf['show_exif'] ) ? 'true':'false' ) . '.';
410      $adv[] = 'Devrait être à true, certaines informations propres à votre '
411             . 'appareil pourront être affichées.';
412      $adv[] = 'Pensez au fait que les informations EXIF peuvent être '
413             . 'différentes suivant les modèles d\'appareil.<br />'
414             . 'Si vous changez votre appareil ces champs pourraient en '
415             . 'partie differents.';
416      $adv[] = 'Beaucoup de photographes professionnels choissent false, '
417             . 'ceci afin de protéger leur savoir-faire.' ;
418      $adv[] = 'Ne confondez pas <strong>show</strong>_exif et '
419             . '<strong>use</strong>_exif (consultez la pages de métadonnées '
420             . 'sur notre wiki).';
421      $cond = true;
422      $confk = 'show_exif';
423      break;
424
425     Case 32 :
426      $adv[] = 'Comment gérer les EXIF:';
427      $adv[] = ' 1 - Copiez une image jpg (publique) dans ./tools/<br />'
428             . ' 2 - Renommez celle-ci en sample.jpg.<br />'
429             . ' 3 - Lancez ./tools/metadata.php<br />'
430             . ' 4 - Analysez les résultats pour déterminer quels champs '
431             . 'EXIF pourraient intéresser vos visiteurs.';
432      $adv[] = 'Les débutants laisseront la valeur par défaut.';
433      $adv[] = 'Les utilisateurs avancés penseront aux valeurs du tableau '
434             . '$lang; voire même à l\'impact possible sur les templates.';
435      $adv[] = 'Dans tous les cas, <strong>show</strong>_exif_fields et '
436             . '<strong>use</strong>_exif_mapping seront '
437             . 'totalement différents.';
438      $cond = true;
439      $confk = 'show_exif_fields';
440      break;
441
442     Case 33 :
443      $adv[] = 'Valeur actuelle : ' . ( ( $conf['use_exif'] ) ? 'true':'false' )
444             . '.';
445      $adv[] = 'Les documentalistes et photographes professionnels choisiront '
446             . 'cette valeur true, mais les débutants devraient laisser '
447             . 'la valeur par défaut.';
448      $adv[] = 'Faire attention aux champs mentionnés dans la synchronisation '
449             . 'des métadonnées.<br />Les champs indiqués pourront être '
450             . 'écrasés par des valeurs de champs EXIF quand bien même ces '
451             . 'champs ne seraient pas vides.';
452      $adv[] = 'Ne confondez pas <strong>show</strong>_exif et '
453             . '<strong>use</strong>_exif (consultez la pages de métadonnées '
454             . 'sur notre wiki).';
455      $cond = true;
456      $confk = 'use_exif';
457      break;
458
459     Case 34 :
460      $adv[] = 'Comment gérer les EXIF:';
461      $adv[] = ' 1 - Copiez une image jpg (publique) dans ./tools/<br />'
462             . ' 2 - Renommez celle-ci en sample.jpg.<br />'
463             . ' 3 - Lancez ./tools/metadata.php<br />'
464             . ' 4 - Analysez les résultats pour déterminer quels champs '
465             . 'EXIF pourraient intéresser vos visiteurs.';
466      $adv[] = 'Les débutants laisseront la valeur par défaut.';
467      $adv[] = 'Les utilisateurs avancés penseront aux valeurs du tableau '
468             . '$lang; voire même à l\'impact possible sur les templates.';
469      $adv[] = 'Les débutants laisseront $conf[\'use_exif\'] = false;';
470      $adv[] = 'Les utilisateurs avancés feront très attention aux champs '
471             . 'sélectionnés et modifiés par la synchronisation.';
472      $adv[] = 'Faire attention aux champs mentionnés dans la synchronisation '
473             . 'des métadonnées.<br />Ces champs pourront être '
474             . 'écrasés par des valeurs de champs EXIF quand bien même ces '
475             . 'champs ne seraient pas vides.';
476      $adv[] = 'Dans tous les cas, <strong>show</strong>_exif_fields et '
477             . '<strong>use</strong>_exif_mapping seront '
478             . 'totalement différents.';
479      $cond = true;
480      $confk = 'use_exif_mapping';
481      break;
482  }
483}
484
485?>
Note: See TracBrowser for help on using the repository browser.