aboutsummaryrefslogtreecommitdiffstats
path: root/doc/manual_fr.html
blob: 90d4b84d5fe2d1c3a37dbf0e8117811faa26155d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
/*
 *	$calcurse: manual_fr.html,v 1.18 2008/04/20 12:43:13 culot Exp $
 *
 * Calcurse - text-based organizer
 * Copyright (c) 2004-2008 Frederic Culot
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 *
 * Send your feedback or comments to : calcurse@culot.org
 * Calcurse home page : http://culot.org/calcurse
 *
 */
-->

<html>
<head>
<title>documentation de CALCURSE</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" media="all">
	@import url(manual.css);
</style>
</head>
<body>

<div id="mainContent">

<h1 id="title">
<span class="main">CALCURSE - organiseur en mode texte</span></h1>

<div class="warn">
<h1>Résumé</h1> Ce manuel présente l'ensemble des fonctionnalités du
logiciel <code>calcurse</code> et la manière dont on peut les
utiliser. La procédure d'installation du programme depuis ses sources
est tout d'abord décrite, ainsi que les différentes façon dont
<code>calcurse</code> peut être lancé. L'interface du programme est
ensuite présentée, avec l'ensemble des options qui permettent la
configuration du logiciel. Sont enfin expliquées les procédures à suivre
pour faire remonter les bogues et pour contribuer au développement de
<code>calcurse</code>.
</div>

<div id="toc">
<h1>Table des matières</h1>
<ul>
    <li><a href="#intro">1. Introduction</a></li>
    <li><a href="#overview">2. Aperçu du logiciel</a>
    <ul>
    	<li><a href="#overview_history">2.1 Origine de Calcurse</a></li>
	<li><a href="#overview_features">2.2 Caractéristiques importantes</a></li>
    </ul></li>
    <li><a href="#install">3. Installation</a>
    <ul>
    	<li><a href="#install_requirements">3.1 Pré-requis</a>
	<ul>
	    <li><a href="#install_requirements_ncurses">3.1.1 Librairie <code>ncurses</code></a></li>
	    <li><a href="#install_requirements_gettext">3.2.2 Librairie <code>gettext</code></a></li>
	</ul></li>
	<li><a href="#install_process">3.2 Processus d'installation</a></li>
    </ul></li>
    <li><a href="#basics">4. Présentation générale</a>
    <ul>
        <li><a href="#basics_invocation">4.1 Invocation</a>
	<ul>
	    <li><a href="#basics_invocation_commandline">4.1.1 Arguments en ligne de commande</a></li>
	    <li><a href="#basics_invocation_variable">4.1.2 Variable d'environnement pour l'i18n</a></li>
	    <li><a href="#basics_invocation_environment">4.1.3 Autres variables d'environnement</a></li>
	</ul></li>
	<li><a href="#basics_interface">4.2 Interface utilisateur</a>
	<ul>
	    <li><a href="#basics_interface_noninteractive">4.2.1 Mode non-interactif</a></li>
	    <li><a href="#basics_interface_interactive">4.2.2 Mode Interactif</a></li>
	</ul></li>
	<li><a href="#basics_files">4.3 Fichiers</a></li>
	<li><a href="#basics_help">4.4 Aide en ligne</a></li>
    </ul></li>
    <li><a href="#options">5. Options</a>
    <ul>
        <li><a href="#options_general">5.1 Options générales</a></li>
	<li><a href="#options_colors">5.2 Thèmes graphiques</a></li>
	<li><a href="#options_layout">5.3 Disposition des panneaux</a></li>
	<li><a href="#options_notify">5.4 Réglages de la barre de notification</a></li>
    </ul></li>
    <li><a href="#known_bugs">6. Bogues connus</a></li>
    <li><a href="#bugs">7. Rapporter les bogues et commentaires</a></li>
    <li><a href="#contribute">8. Comment contribuer?</a>
    <ul>
        <li><a href="#contribute_documentation">8.1 Traduction de la documentation</a></li>
	<li><a href="#contribute_i18n">8.2 Traduction de <code>calcurse</code></a>
	<ul>
	    <li><a href="#contribute_i18n_overview">8.2.1 Aperçu</a></li>
	    <li><a href="#contribute_i18n_translator">8.2.2 Etapes de la traducion</a></li>
	    <li><a href="#contribute_i18n_po-files">8.2.3 Fichiers <code>po</code></a></li>
	</ul></li>
    </ul></li>
    <li><a href="#links">9. Liens</a>
    <ul>
        <li><a href="#links_homepage">9.1 Site internet de <code>calcurse</code></a></li>
	<li><a href="#links_list">9.2 Liste de diffusion de <code>calcurse</code></a></li>
	<li><a href="#links_rss">9.3 Flux RSS</a></li>
    </ul></li>
    <li><a href="#thanks">10. Remerciements</a></li>
</ul>
</div>


<h1>1. Introduction<a name="intro"></a></h1>
<p>
<code>calcurse</code> est un logiciel composé d'un calendrier et d'un organiseur
personnel en mode texte. Il permet de stocker les évènements et rendez-vous,
ainsi qu'une liste de tâches à effectuer. Un système de notification,
entièrement configurable par l'utilisateur, permet d'être prévenu lorsque
l'heure d'un rendez-vous approche. L'interface utilisateur est elle aussi
configurable, et peut s'adapter aux besoins de chacun. Enfin, un système d'aide
en ligne permet d'obtenir des renseignements sur toutes les commandes
disponibles.
</p>
	
<h1>2. Aperçu du logiciel<a name="overview"></a></h1>
<h2>2.1 Origine de Calcurse<a name="overview_history"></a></h2>
<p>
        J'ai commencé à penser à ce projet à la fin de mon doctorat
        en astrophysique... Je commençais en effet à avoir de plus
        en plus de mal à m'organiser, et j'avais vraiment besoin d'un
        bon outil pour m'aider dans cette tâche difficile ;)
</p>
<p>
        D'autre part, j'apprécie beaucoup les logiciels qui font appel
        à des Interfaces en Mode Texte, parce que je les trouve plus
        simples, plus rapides, plus portables et plus efficaces.  J'ai
        alors commencé à programmer un calendrier rudimentaire qui
        utilisait une interface de ce type.  En plus de cela, je
        voulais améliorer mes connaissances en <code>C</code>, langage
        de programmation que je n'avais utilisé jusqu'alors que dans
        le cadre de petits projets pendant mes études. J'ai donc pensé
        que ce serait une bonne chose de me lancer dans ce projet,
        puisque cela me permettrait à la fois de mieux m'organiser, et
        d'apprendre à mieux programmer en <code>C</code>!
</p>
<p>
        Malheureusement, j'ai obtenu mon doctorat avant de terminer
        <code>calcurse</code>, mais j'ai tout de même voulu continuer
        à travailler sur ce projet, en espérant que ce
        programme serait utile à d'autres
        personnes. Voilà comment est né
        <code>calcurse</code>...
</p>
<p>
	Mais au fait, pourquoi 'calcurse' ? Et bien ce nom provient
        simplement de la concaténation de 'CALendrier' et de
        'nCURSEs', qui est le nom de la librairie utilisée pour
        construire l'interface utilisateur.
</p>

<h2>2.2 Caractéristiques importantes<a name="overview_features"></a></h2>
<p>
        <code>Calcurse</code> est multi-plateformes et est conçu pour
        être léger, rapide et fiable. Il doit être utilisé dans un
        terminal ou une console, soit localement ou bien sur une 
        machine distante par l'intermediaire d'une liaison ssh (ou 
        similaire).
</p>
<p>
        <code>Calcurse</code> peut être lancé dans deux modes différents:
        soit interactif, soit non-interactif. Le premier mode permet
        de visualiser son organiseur personnel pratiquement sous
        n'importe quel environnement, grâce à l'interface en mode texte.
        Le deuxième mode permet de créer facilement des penses-bête en
        ajoutant <code>calcurse</code> avec les arguments appropriés dans
        la table cron ou dans le script d'initialisation du shell.
</p>
<p>
        De plus, <code>calcurse</code> a été créé en prenant en compte
        l'utilisateur final à chaque étape de sa conception,
        c'est-à-dire en essayant d'être le plus intuitif
        possible. Cela implique la présence d'une aide en ligne
        exhaustive, ainsi que le rappel de toutes les commandes
        possibles dans la barre de status.  L'interface utilisateur
        est également configurable, et l'on peut choisir parmi de
        nombreuses combinaisons possibles de couleurs et de positions
        des fenêtres.  Enfin, le système de notification est
        entièrement configurable, l'utilisateur peut donc choisir la
        manière dont il veut être prévenu de l'approche d'un
        rendez-vous.
</p>

<h1>3. Installation<a name="install"></a></h1>
<h2>3.1 Pré-requis<a name="install_requirements"></a></h2>
<h3>3.1.1 Librairie <code>ncurses</code><a name="install_requirements_ncurses"></a></h3>
<p>
        L'installation de <code>Calcurse</code> ne nécessite qu'un 
        compilateur <code>C</code>, comme <code>cc</code> ou <code>gcc</code>, 
        et la librairie <code>ncurses</code>.
        Il serait très surprenant que vous n'ayez pas déjà la librairie 
        <code>ncurses</code> d'installée sur votre machine, mais si
        c'est le cas, vous pourrez la trouver à l'adresse suivante :
</p>
<pre>http://ftp.gnu.org/pub/gnu/ncurses/</pre>


<h3>3.1.2 Librairie <code>gettext</code><a name="install_requirements_gettext"></a></h3>
<p>
        <code>calcurse</code> s'aide de la librairie
        <code>gettext</code> pour le support de l'internationalisation
        (noté <span class="emp">i18n</span> ci-après).  Cela signifie que
        <code>calcurse</code> peut fournir des messages multilingues
        s'il est compilé avec le support NLS (<span class="emp">Native
        Language Support</span> - <span class="emp">Support de Langage
        Natif</span>). 
</p>
<p>
	Cependant, ce support est optionnel et si vous n'avez pas
        besoin de la traduction des messages affichés, vous pouvez
        désactiver cette option.  La désactivation du support
        <span class="emp">NLS</span> s'effectue en passant l'option
        <code>--disable-nls</code> à <code>configure</code>
        (voir la section <a href="#install_process">Processus
        d'Installation</a>).
</p>
<p>
	Pour vérifier que les utilitaires <code>gettext</code> sont
        bien installés sur votre systsème, vous pouvez
        par exemple vérifier la présence du fichier
        <code>libintl.h</code> en tapant : </p>
	<pre>locate libintl.h</pre>
<p>
	Dans l'éventualité où ce fichier ne serait pas trouvé,
        vous pouvez obtenir les sources de <code>gettext</code>
        à l'adresse suivante :</p> 
	<pre>http://ftp.gnu.org/pub/gnu/gettext/</pre>
<p>
	<p class="rq"><span class="valorise">Remarque :</span> Même si
        <code>libintl.h</code> est bien localisé par la commande
        précédente, il peut être utile de spécifier son emplacement au
        moment de lancer le <a href="#install_process">processus
        d'installation</a>, en passant l'option
        <code>--with-libintl-prefix</code> au script
        <code>configure</code>. En effet, ce script pourrait ne pas
        trouver le fichier <code>libintl.h</code> si celui-ci n'est
        pas installé dans un endroit usuel.</p>


<h2>3.2 Processus d'installation<a name="install_process"></a></h2>
<p>
        Vous devez tout d'abord décompresser l'archive source de la
        manière suivante :</p>
	<pre>tar zxvf calcurse-2.1.tar.gz</pre>
<p>
        Une fois que vous remplissez tous les pré-requis nécessaires à
        l'installation, le processus de compilation est simple et suit
        les trois étapes usuelles :
  	<ol>	
	    <li><code>./configure</code></li>
  	    <li><code>make</code></li>
  	    <li><code>make install</code> (peut nécessiter les privilèges 
	    super-utilisateur)</li>
	</ol>
</p>
<p>
	Vous pouvez obtenir la liste des options possibles en tapant 
        <code>./configure --help</code>.
</p>


<h1>4. Présentation générale<a name="basics"></a></h1>
<h2>4.1 Invocation<a name="basics_invocation"></a></h2>
<h3>4.1.1 Arguments en ligne de commande<a name="basics_invocation_commandline"></a></h3>
<p>
        Lors de son appel en ligne de commande, <code>calcurse</code>
        accepte les arguments suivants (les arguments courts ou longs
        sont supportés) :</p>
	<p>

        <dl>
		<dt><code>-a, --appointment</code></dt>
	<dd>
	Affiche les rendez-vous pour la date du jour, puis quitte.
	<p class="rq"><span class="valorise">Remarque:</span> le calendrier à utiliser peut être 
	spécifié en utilisant l'option '-c'.</p>
	</dd>
	<dt><code>-c &lt;fichier&gt;, --calendar &lt;fichier&gt;</code></dt>
	<dd>
	Spécifie le fichier calendrier à utiliser.
	Le calendrier par défaut est celui contenu dans 
	<code>~/.calcurse/apts</code> 
	(voir la section <a href="#basics_files">Fichiers</a>).
	</dd>
	<dt><code>-d &lt;date|num&gt;, --day &lt;date|num&gt;</code></dt>
	<dd>
	Affiche les rendez-vous pour la date ou pour le nombre de
	jours indiqués, suivant le format de l'argument. Deux 
	formats différents sont acceptés :
	<ul>
		<li>une date sous la forme 'mm/jj/aaaa'.</li>
		<li>un nombre 'n'.</li>
	</ul>
	Dans le premier cas, la liste des rendez-vous pour la
	date spécifiée sera affichée, alors que dans le
	deuxième cas, la liste des rendez-vous pour les 'n'
	jours à venir sera retournée.
	Par exemple, taper <code>calcurse -d  3</code> fera
	s'afficher les rendez-vous pour aujourd'hui, demain
	et après-demain.
	<p class="rq"><span class="valorise">Remarque:</span> 
	comme pour l'option '-a', le fichier contenant le calendrier
	à lire peut être spécifié en utilisant l'option '-c'.</p>
	</dd>
	<dt><code>-h, --help</code></dt>
	<dd>
	Affiche l'aide décrivant les options en ligne de commande,
	puis quitte.</dd>
	<dt><code>-n, --next</code></dt>
	<dd>
	Affiche le rendez-vous suivant dans les prochaines 24 heures, puis
	quitte.
	Le temps indiqué représente le nombre d'heures et de
	minutes restantes avant le rendez-vous.
	<p class="rq"><span class="valorise">remarque:</span>
	le fichier contenant le calendrier à lire peut
	être spécifié en utilisant l'option '-c'.</p>
	</dd>
	<dt><code>-N, --note</code></dt>
	<dd>
	Lorsque cette option est utilisée avec les options '-a' ou '-t',
	le contenu des notes associées aux rendez-vous et aux tâches sera
	également affiché.
	</dd>
	<dt><code>-t[num], --todo[=num]</code></dt>
	<dd>
	Affiche la liste des 'todo', puis quitte. Si le nombre optionnel
	<code>num</code> est indiqué, alors uniquement les tâches
	ayant une priorité égale à <code>num</code> seront
	affichées.
	<p class="rq"><span class="valorise">Remarque:</span>
	<code>num</code> doit être compris entre 1
	(priorité la plus grande) et 9 (priorité la moins
	grande).</p>
	</dd>
	<dt><code>-v, --version</code></dt>
	<dd>
	Affiche la version de <code>calcurse</code>, puis quitte.
	</dd>
	<dt><code>-x, --export</code></dt>
	<dd>
	Exporte les données utilisateur au format iCalendar. Les évènements,
	rendez-vous et tâches sont convertis et imprimés sur la sortie
	standard.
	<p class="rq"><span class="valorise">Note:</span>
	afin de sauvegarder les données exportées dans un fichier,
	il est nécessaire de rediriger la sortie standard en utilisant une
	commande comme celle-ci:
	<code>$ calcurse --export &gt; mon_fichier.ics</code></p>
	</dd>
	</dl>


<h3>4.1.2 Variable d'environnement pour l'i18n<a name="basics_invocation_variable"></a></h3>
<p>
        <code>calcurse</code> peut être compilé avec le support
        <span class="emp">NLS</span> (voir <a
        href="#install_requirements_gettext">Librairie
        <code>gettext</code></a>). Ainsi, si vous voulez que les
        messages affichés apparaissent dans votre langue natale,
        assurez-vous tout d'abord que celle-ci est présente dans le
        fichier <code>po/LINGUAS</code>.  Ce fichier indique toutes
        les traductions disponibles par l'intermédiaire d'un code de
        deux lettres (par exemple, <span class="emp">fr</span>
        représente le français). Si vous ne trouvez pas votre langue,
        il serait très apprécié que vous apportiez votre aide pour
        traduire <code>calcurse</code> (voir la partie <a
        href="#contribute">Comment contribuer?</a>).</p> 
<p>
	Si votre langue est disponible, lancez <code>calcurse</code>
        en utilisant la commande suivante : </p>
	<pre>LC_ALL=fr_FR calcurse</pre>
	<p>où <span class="emp">fr_FR</span> doit être remplacé par la
        <span class="emp">locale</span> (code de la langue suivi du
        code pays) correspondant à la traduction voulue.</p> 
<p>
	Il est également recommandé de spécifier le codage à utiliser,
        car dans certains cas des problèmes d'affichage des accents
        peuvent survenir. Ce codage est indiqué au début du fichier po
        correspondant à la langue voulue. Par exemple, vous pouvez
        remarquer dans le fichier fr.po que le codage utilisé est
        iso-8859-1. Vous pouvez donc le préciser au lancement de
        <code>calcurse</code>:</p>
	<pre>LC_ALL=fr_FR.ISO8859-1 calcurse</pre>

<h3>4.1.3 Autres variables d'environnement<a name="basics_invocation_environment"></a></h3>
<p>
	Les variables d'environnement suivantes agissent sur le comportement de
	<code>calcurse</code>:</p>
        <dl>
	    <dt><code>VISUAL</code></dt>
	    <dd>Indique l'éditeur externe qui sera utilisé pour rédiger des notes.
	    </dd>
	    <dt><code>EDITOR</code></dt>
	    <dd>Si la variable d'environnement <code>VISUAL</code> n'est pas
	    renseignée, l'éditeur externe qui sera utilisé par défaut est celui
	    contenu dans la variable <code>EDITOR</code>. Si aucune de ces deux
	    variables n'est renseignée, alors <code>/usr/bin/vi</code> sera
	    appelé par défaut.
	    </dd>
	    <dt><code>PAGER</code></dt>
	    <dd>Indique le visualiseur utilisé par défaut pour consulter les
	    notes. Si cette variable n'est pas renseignée, alors 
	    <code>/usr/bin/less</code> sera utilisé.
	    </dd>
	</dl>

<h2>4.2 Interface utilisateur<a name="basics_interface"></a></h2>
<h3>4.2.1 Mode non-interactif<a name="basics_interface_noninteractive"></a></h3>
<p>
        Lorsque il est appelé avec au moins un des arguments suivants:
        <code>-a</code>, <code>-d</code>, <code>-h</code>, 
	<code>-n</code>, <code>-t</code>, <code>-v</code>, <code>-x</code>,
        <code>calcurse</code> est lancé en mode non-interactif.
        Cela signifie que l'information demandée sera affichée,
        puis <code>calcurse</code> quittera et vous serez ramené
        au prompt de l'interpréteur de commandes.</p>
<p>
        De cette manière, il est possible de rajouter une ligne telle
        que <code>'calcurse --todo --appointment'</code> dans le fichier d'initialisation
        de son environnement, afin de faire s'afficher à chaque
        début de session la liste des tâches à faire et des rendez-vous
	planifiés pour la journée.</p>


<h3>4.2.2 Mode interactif<a name="basics_interface_interactive"></a></h3>
<p>
        Lorsqu'il est appelé sans aucun argument ou uniquement avec 
        l'option <code>'-c'</code>, <code>calcurse</code> est lancé
        en mode interactif. Dans ce mode s'affiche une interface qui
        contient trois panneaux différents, qu'il est possible de 
        sélectionner cycliquement en utilisant la touche 'TAB', ainsi
        que d'une barre de notification et une autre de status 
	(voir la figure ci-dessous).</p>
        <pre>

 panneau rendez-vous---.                             .---panneau calendrier
                       |                             |  
                       v                             v
 +------------------------------------++----------------------------+
 |           Rendez-vous              ||         Calendrier         |
 |------------------------------------||----------------------------|
 |                 (|)  Avril 6, 2006 ||         Avril 2006         |
 |                                    ||Lun Mar Mer Jeu Ven Sam Dim |
 |                                    ||                      1   2 |
 |                                    ||  3   4   5   6   7   8   9 |
 |                                    || 10  11  12  13  14  15  16 |
 |                                    || 17  18  19  20  21  22  23 |
 |                                    || 24  25  26  27  28  29  30 |
 |                                    ||                            |
 |                                    |+----------------------------+
 |                                    |+----------------------------+
 |                                    ||           Tâches           | panneau
 |                                    ||----------------------------| tâches à
 |                                    ||                            |  faire
 |                                    ||                            |   |
 |                                    ||                            |&lt;--.
 |                                    ||                            |
 +------------------------------------++----------------------------+
 |---[ Lun 22-11-2006 | 18:11:43 ]---(apts)----&gt; 01:20 :: dîner &lt;---|&lt;--.
 +------------------------------------------------------------------+ barre de
 | ? Aide     R Retracer  H/L -+1 Jour      G Aller à    C Config   |    notification 
 | Q Quitter  S Sauver    J/K -+1 Sem.    Tab Chg vue               |&lt;-. 
 +------------------------------------------------------------------+  |
                                                                       |
                                                               barre de status

	</pre>
<p>
        Le premier panneau représente un calendrier qui permet de 
        sélectionner un jour en particulier. Le second panneau contient
        une liste d'évènements et les rendez-vous du jour, et le dernier
        contient une liste des tâches à faire, mais qui ne sont pas
	assignées à une journée en particulier.</p>
<p>
	On peut remarquer dans le panneau des rendez-vous le signe 
	<span class="emp">'(|)'</span>
	placé juste devant la date. Ce signe représente la phase de la lune.
	En fonction de la phase actuelle de celle-ci, un des signes suivants
	peut-être indiqué :
	<dl class="compact">
		<dt>'<code>  |) </code>':</dt>
		<dd>premier quartier</dd>
		<dt>'<code> (|) </code>':</dt>
	       	<dd>pleine lune</dd>
		<dt>'<code>  (| </code>':</dt>
		<dd>dernier quartier</dd>
		<dt>'<code>  |  </code>':</dt>
		<dd>nouvelle lune</dd>
		<dt>aucun signe:</dt> 
		<dd>la phase actuelle de la lune ne correspond à
		aucune des phases ci-dessus</dd>
	</dl>
	</p>
	<p>
        Tout en bas de l'écran on retrouve une barre de status, qui indique
        les actions possibles en fonction du contexte, ainsi que la
	touche qui doit être pressée pour effectuer cette action.</p>
	<p>
	Juste au-dessus de cette barre se trouve la barre de notification, qui
	indique les informations suivantes, de gauche à droite : la date du jour,
	l'heure courante, le fichier calendrier actuellement ouvert (il s'agit
	de apts dans la copie d'écran, qui est le fichier par défaut, comme indiqué
	dans la section suivante), et le premier rendez-vous programmé dans les 
	prochaines 24 heures. Dans cet exemple, il s'agit d'un dîner qui aura lieu
	dans une heure et vingt minutes.</p>
	<p class="rq"><span class="valorise">Remarque:</span>
	Certaines actions, comme éditer ou ajouter un
	elément, nécessitent de renseigner du texte par 
	l'intermédiaire de l'éditeur de ligne de commande
	fournit avec <code>calcurse</code>.</p>
	<p>
	Dans cet éditeur, si la ligne de commande est plus longue que la 
	largeur de l'écran, le caractère '&gt;', '*', ou '&lt;'
	sera rajouté dans la dernière colonne s'il reste du texte
	après, avant et après, ou avant la position courante,
	respectivement. La ligne défile horizontalement si
	nécessaire.</p>
	<p>
	De plus, il existe des combinaisons de touches pour
	effectuer certaines actions courantes utiles lors de l'édition
	de textes. Voici ces raccourcis:
	<dl class="compact">
		<dt><code>^a</code>:</dt>
		<dd>déplacer le curseur au début de la ligne</dd>
		<dt><code>^b</code>:</dt>
		<dd>déplacer le curseur d'une position en arrière</dd>
		<dt><code>^d</code>:</dt>
		<dd>effacer le caractère sous le curseur</dd>
		<dt><code>^e</code>:</dt>
		<dd>déplacer le curseur en fin de ligne</dd>
		<dt><code>^f</code>:</dt>
		<dd>déplacer le curseur d'une position en avant</dd>
		<dt><code>^h</code>:</dt>
		<dd>effacer le caractère précédent</dd>
		<dt><code>^k</code>:</dt>
		<dd>effacer le texte depuis la position courante
		jusqu'à la fin de la ligne</dd>
		<dt><code>ESC</code>:</dt> 
		<dd>annuler l'édition du texte courant</dd>
	</dl>
</p>

<h2>4.3 Fichiers<a name="basics_files"></a></h2>
<p>
        La structure de fichiers suivante est créée dans le répertoire
        <code>$HOME</code> de l'utilisateur la première fois que 
	<code>calcurse</code> est lancé :</p>
	<pre>
$HOME/.calcurse/
           |___notes/
           |___conf
           |___apts
           |___todo
	</pre>
	<dl class="compact">
		<dt><code>notes/</code>:</dt>
		<dd>ce sous-répertoire contient la description des notes
		rattachées aux rendez-vous, événements ou tâches. Un fichier
		texte est créé par note, et son nom est construit à l'aide de
		la fonction mkstemp(3). Ainsi, l'unicité de ce nom est assurée,
		mais il n'a pas de relation avec l'élément auquel la note est
		rattachée.</dd>
		<dt><code>conf</code>:</dt>
		<dd>ce fichier contient la configuration de l'utilisateur</dd>
		<dt><code>apts</code>:</dt>
		<dd>ce fichier contient tous les événements ainsi que les 
		rendez-vous de l'utilisateur</dd>
		<dt><code>todo</code>:</dt>
		<dd>ce fichier contient la liste des tâches à effectuer</dd>
	</dl>

<h2>4.4 Aide en ligne<a name="basics_help"></a></h2>
<p>
        A n'importe quel moment, le système d'aide en ligne peut être
        appelé en pressant la touche '?'. Une fois rentré dans l'aide,
        les informations sur une commande spécifique peuvent être
        obtenues en appuyant sur la touche correspondant à cette 
        commande.
	</p>

<h1>5. Options<a name="options"></a></h1>
<p>
        Tous les paramètres de <code>calcurse</code> sont configurables
        à partir du menu <code>Configuration</code>, accessible en appuyant
        sur 'C'. L'utilisateur se voit alors présenté un second menu
        avec trois choix possibles : appuyer à nouveau sur 'C' amène 
        au menu de sélection des couleurs de l'interface, appuyer sur
        'L' permet de choisir parmi différents emplacements pour les 
        panneaux de la fenêtre principale de <code>calcurse</code>,
	appuyer sur 'G' vous permet de fixer les options générales, et enfin
        les paramètres de la barre de notification peuvent être fixés 
	en appuyant sur 'N'.</p>


<h2>5.1 Options générales<a name="options_general"></a></h2>
<p>
        Ces options contrôlent le comportement général de
	<code>calcurse</code>, comme décrit ci-dessous :</p>
        <dl>
        	<dt><code>sauvegarde_automatique</code>  
		  (valeur par défaut: <span class="emp">oui</span>)</dt>
		<dd>Cette option permet de sauvegarder automatiquement 
		  les données de l'utilisateur avant de quitter, si elle est
		  fixée à <span class="emp">oui</span>.
		  <p class="rq"><span class="valorise">attention:</span>
		    Aucune donnée ne sera automatiquement
		    sauvegardée si cette variable est fixée à <code>non</code>.
		    Cela signifie que l'utilisateur doit appuyer sur 'S'
		    (pour sauvegarder) pour retrouver ses modifications au prochain
		    lancement de <code>calcurse</code>.</p>
		</dd>
		<dt><code>confirmer_pour_quitter</code> 
		  (valeur par défaut: <span class="emp">oui</span>)</dt>
		<dd>Si cette option est fixée à <span class="emp">oui</span>, 
		la confirmation 
		  de l'utilisateur est nécessaire avant de pouvoir quitter.
		  Autrement, appuyer sur 'Q' provoquera l'arrêt de 
		  <code>calcurse</code> sans demander confirmation.
		</dd>
		<dt><code>confirmer_pour_effacer</code> 
		  (valeur par défaut: <span class="emp">oui</span>)</dt>
		<dd>Si cette option est fixée à <span class="emp">oui</span>, appuyer sur 'D'
		  pour effacer un élement (soit une tâche, un rendez-vous ou bien
		  un évenement) provoquera l'apparition d'un message demandant
		  la confirmation de l'utilisateur avant d'effacer cet élement.
		  Si cette option est fixée à <span class="emp">non</span>, aucune confirmation
		  ne sera demandée avant l'effacement d'un élement.
		</dd>
		<dt><code>masquer_messages_système</code> 
		  (valeur par défaut: <span class="emp">non</span>)</dt>
		<dd>Fixer cette option à <span>oui</span> provoque la disparition des
		  messages relatifs aux enregistrements ou lectures des fichiers
		  de données. Ceci peut être utile pour accélerer les processus
		  d'entrées/sorties.
		</dd>
		<dt><code>masquer_barre_progression</code> 
		  (valeur par défaut: <span class="emp">non</span>)</dt>
		<dd>Si elle est fixée à <span class="emp">oui</span>, cette option provoque la 
		  disparition de la barre de progression qui est normalement chargée
		  d'indiquer l'état d'avancement de l'enregistrement des fichiers
		  de données. Si cette option est fixée à <span class="emp">non</span>, 
		  cette barre
		  sera affichée, en même temps que le nom du fichier de données
		  actuellement en cours d'écriture 
		  (voir la section <a href="#basics_files">Fichiers</a>).
		</dd>
		<dt><code>semaine_commence_lundi</code> 
		  (valeur par défaut: <span class="emp">oui</span>)</dt>
		<dd>Il est possible dans <span class="emp">calcurse</span> d'indiquer quel est le 
		  premier jour de la semaine, à savoir soit le lundi, soit le dimanche.
		  Si l'option <code>semaine_commence_lundi</code> est fixée à
		  <span class="emp">oui</span>, les semaines du calendrier commenceront le lundi.
		  Par contre si cette option est fixée à <span class="emp">non</span>,
		  les semaines débuteront le dimanche.
                </dd>
                <dt><code>format_date_sortie</code>
                  (valeur par défaut: <span class="emp">%D</span>)</dt>
                <dd>Indique le format qui sera utilisé pour afficher les dates en mode
                  non-interactif. Par défaut, les dates sont affichées comme suit :
                  <span class="emp">mm/jj/aa</span>. 
                  Les différents formats disponibles sont visibles en
                  tapant la commande suivante dans un terminal: <code>man 3 strftime</code>.
                </dd>
                <dt><code>format_date_entrée</code>
                  (valeur par défaut: <span class="emp">1</span>)</dt>
                <dd>Indique le format qui sera utilisé pour entrer les dates dans 
                  <span class="emp">calcurse</span>. Trois choix sont possibles :
                  <ol>
                  <li>mm/jj/aaaa</li>
                  <li>jj/mm/aaaa</li>
                  <li>aaaa/mm/jj</li>
                  </ol>
                </dd>
        </dl>


<h2>5.2 Thèmes graphiques<a name="options_colors"></a></h2>
<p>
	Le thème graphique de <code>calcurse</code> peut être adapté aux besoins de
	l'utilisateur. Pour changer les options par défaut, la page de configuration
	permet de sélectionner la couleur voulue pour l'interface (premier plan et
	fond). L'utilisateur doit pour cela se déplacer sur la bonne couleur en
	utilisant les touches flèches ou les touches de déplacement par défaut, et
	appuyer sur 'X' ou la barre d'espace pour sélectionner la couleur. Il est
	également possible de conserver la couleur par défaut du terminal de
	l'utilisateur en sélectionnant le choix corresondant dans la liste.</p>
<p>
        Cette couleur est alors appliquée à la bordure des
        panneaux, aux titres, aux combinaisons de touches, et aux
        informations générales affichées dans la
        barre de status. Un thème en noir et blanc est
        également disponible, afin de supporter les terminaux
        monochromes.</p>
	<p class="rq"><span class="valorise">Remarque:</span>
        Suivant le type de terminal que vous utilisez, et suivant
        la valeur de la variable d'environnement <code>$TERM</code>,
        la couleur peut être supportée ou non. Un message
        d'erreur apparaîtra si vous essayez d'appliquer un
        thème graphique en couleur alors que votre terminal est
        monochrome. Si vous savez que votre terminal supporte les couleurs
        mais que <code>calcurse</code> ne veut pas les afficher,
        essayez de changer la valeur de la variable d'environnement
        <code>$TERM</code> (appliquez par exemple la valeur
        <span class="emp">xterm-xfree86</span>).
	</p>
      
<h2>5.3 Disposition des panneaux<a name="options_layout"></a></h2>
<p>
        La disposition des panneaux à l'intérieur de la fenêtre de
        <code>calcurse</code> peut être paramétrée. Par défaut, le
        panneau contenant le calendrier se situe en haut à droite de
        la fenêtre, le panneau contenant la liste des tâches est situé
        en bas à droite, et le panneau contenant les rendez-vous se
        trouve sur la partie gauche de l'écran (voir la figure dans la
        section <a href="#basics_interface_interactive">Mode interactif</a>
        pour un exemple de la disposition par défaut).
        En choisissant une autre disposition pour les éléments composants
        la fenêtre de <code>calcurse</code>, l'utilisateur peut adapter
        à ses besoins l'interface du programme.</p>

<h2>5.4 Réglages de la barre de notification<a name="options_notify"></a></h2>
<p>
	Les options suivantes permettent de modifier les réglages de la
	barre de notification:</p>
	<dl>
		<dt><code>barre-notification_afficher</code> 
		  (valeur par défaut: <span class="emp"oui</span>)</dt>
		<dd>Cette option indique si la barre de notification doit être 
		  affichée ou pas.</dd>
		<dt><code>barre-notification_date</code> 
		  (valeur par défaut: <span class="emp">%a %F</span>)</dt>
		<dd>Avec cette option, il vous est possible de spécifier le format qui
		  doit être utilisé pour afficher la date du jour dans la barre de 
		  notification. Les différents formats possibles sont visibles en
		  tapant la commande suivante dans un terminal: <code>man 3 strftime</code>.
		  </dd>
		<dt><code>barre-notification_heure</code> 
		  (valeur par défaut: <span class="emp">%T</span>)</dt>
		<dd>Avec cette option, il vous est possible de spécifier le format qui
		  doit être utilisé pour afficher l'heure courante dans la barre de 
		  notification. Les différents formats possibles sont visibles en
		  tapant la commande suivante dans un terminal: <code>man 3 strftime</code>.
		  </dd>
		<dt><code>barre-notification_alerte</code> 
		  (valeur par défaut: <span class="emp">300</span>)</dt>
		<dd>Si l'utilisateur a programmé un rendez-vous dans les prochaines 
		  'barre-notification_alerte' secondes, et qu'il a marqué celui-ci 
		  comme étant important, l'affichage de ce rendez-vous clignotera dans 
		  la barre de notification.
		  De plus, la commande définie par <code>barre-notification_commande</code>
		  sera executée.
		  De cette manière, l'utilisateur sera alerté et saura que l'heure du rendez-vous
		  approche.</dd>
		<dt><code>barre-notification_commande</code> 
		  (valeur par défaut: <span class="emp">printf '\a'</span>)</dt>
		<dd>Cette option indique la commande qui sera lancée lorsque l'heure d'un
		  rendez-vous approchera, et que ce rendez-vous a été marqué comme
		  'important'. La commande spécifiée par cette option sera passée au shell
		  de l'utilisateur, qui l'interpretera. Pour savoir quel shell doit être
		  utilisé, <code>calcurse</code> lit le contenu de la variable
		  d'environnement <code>$SHELL</code>, et si cette variable est vide, la
		  commande sera passée à <code>/bin/sh</code>.
		<p class="rq"><span class="valorise">Exemple:</span>
		Supposons que le programme <code>mail</code> soit
		  disponible sur l'ordinateur de l'utilisateur, celui-ci peut indiquer la
		  commande suivante afin d'être prévenu par mail lorsqu'un rendez-vous
		  approche (la description de ce rendez-vous sera également mentionnée
		  dans le corps du mail):</p>
		  <code>
calcurse --next | mail -s "[calcurse] nouveau rendez-vous!" user@host.com
		  </code>
		  </dd>
	</dl>

<h1>6. Bogues connus<a name="known_bugs"></a></h1>
<p>
        Une coloration incorrecte des objets peut résulter
        d'une utilisation conjointe d'un thème graphique en
        noir et blanc et d'une variable <code>$TERM</code>
        fixée à <span class="emp">xterm-color</span>.  Pour supprimer ce
        bogue, et comme le conseille Thomas E. Dickey (le
        résponsable du projet <code>xterm</code>),
        <span class="emp">xterm-xfree86</span> devrait être assigné
        à la variable <code>$TERM</code> en lieu et place de
        <span class="emp">xterm-color</span> :</p>
        <blockquote class="rq">
        "La valeur xterm-color pour la variable $TERM est un mauvais
        choix pour les terminaux XFree86 parce qu'elle est couramment
        utilisée pour les entrées terminfo qui ne
        supportent pas bce. Utilisez plut&ocirc;t l'entrée
        xterm-xfree86 qui est distribuée avec le xterm
        d'XFree86 (ou par celui, similaire, distribué avec ncurses)."
        </blockquote>


<h1>7. Rapporter les bogues et commentaires<a name="bugs"></a></h1>
<p>
        Merci de renvoyer vos rapports de bogues et vos commentaires à 
        l'adresse suivante :</p>
        <pre>calcurse .à. culot .point. org </pre>
<p>
        ou directement à l'auteur :</p>
        <pre>frederic .à. culot .point. org </pre>

<h1>8. Comment contribuer?<a name="contribute"></a></h1>
<p>
        Si vous désirez contribuer au projet, vous pouvez tout d'abord
        envoyer vos commentaires sur ce qui vous plaît ou déplaît ou sur
        ce qui vous manque dans <code>calcurse</code>.
        Pour le moment, les contributions possibles concernent 
        la traduction des messages de <code>calcurse</code> ainsi que
        de la documentation.</p>
	<p class="rq"><span class="valorise">Remarque:</span>
        toute contribution à la traduction de
        <code>calcurse</code> serait très
        appréciée, mais avant tout, envoyez un mail
        à <code>calcurse-i18n .à. culot .point. org</code> pour savoir si
        quelqu'un a déjà commencé le processus de
        traduction dans votre langue.</p>


<h2>8.1 Traduction de la documentation<a name="contribute_documentation"></a></h2>
<p>
        Le répertoire <span class="emp">doc/</span> du paquet source contient
        déjà des versions traduites de la documentation.
        Cependant, si celle-ci n'est pas encore disponible dans votre
        langue, votre aide pour sa traduction serait très
        appréciée.</p>
<p>
        Pour cela, il suffit de copier un des fichiers existant et de
        renommer cette copie en <code>manual_XX.html</code>, où
        <span class="emp">XX</span> représente votre langue. Il faut ensuite
        traduire ce fichier nouvellement créé et de
        l'envoyer à l'auteur (voir <a href="#bugs">Rapporter
        les bogues et commentaires</a>), pour qu'il soit inclus dans
        la prochaine version de <code>calcurse</code>.</p>


<h2>8.2 Traduction de <code>calcurse</code><a name="contribute_i18n"></a></h2>
<p>
        Comme mentionné plus haut, les utilitaires
        <code>gettext</code> sont utilisés par
        <code>calcurse</code> pour produire des messages
        multilingues. Cette section explique comment traduire ces
        messages dans votre langue. Cependant, cette notice est
        délibérément incomplète,
        puisqu'elle ne se concentre que sur l'utilisation de
        <code>gettext</code> avec <code>calcurse</code>. Pour avoir
        une vision plus large du Support de Langage Natif
        (<code>NLS</code>), il est préférable de se
        référer au manuel de <code>GNU gettext</code>
        que l'on peut trouver à l'adresse suivante :</p>
        <pre>http://www.gnu.org/software/gettext/manual/</pre>
<p>
        Pour résumer, trois catégories de personnes sont
        impliquées dans la chaîne de traduction : les
        programmeurs, les coordinateurs de la traduction, et les
        traducteurs. Après un rapide aperçu de la
        manière de procéder pour traduire le logiciel,
        nous décrirons plus en détails les tâches du
        traducteur.</p>


<h3>8.2.1 Aperçu<a name="contribute_i18n_overview"></a></h3>
<p>
        Afin de pouvoir afficher du texte dans la langue natale de
        l'utilisateur, deux étapes sont nécessaires :
        l'<span class="emp">internationalisation</span> (i18n), et la
        <span class="emp">localisation</span> (l10n).</p>
<p>
        L'i18n permet à <code>calcurse</code> d'être
        multilingue. C'est un processus qui est mis en place par les
        programmeurs, qui marquent les phrases à traduire au
        sein du code source, et qui fournissent les outils pour que
        ces phrases soient traduites automatiquement pendant le
        déroulement du programme.</p>
<p>
        La l10n correspond quant à elle au processus qui permet
        à <code>calcurse</code> de s'adapter à la langue
        de l'utilisateur. C'est-à-dire qu'il traduit les
        phrases précédemment marquée par les
        programmeurs, et qu'il fixe correctement les variables
        d'environnement afin que <code>calcurse</code> puisse utiliser
        les résultats de cette traduction.</p>
<p>
        Ainsi, les phrases traduisibles sont tout d'abord
        marquées par les programmeurs dans le code source, puis
        rassemblées dans un fichier référence
        (<span class="emp">calcurse.pot</span> - l'extension 
	<span class="emp">pot</span> signifiant
        <span class="emp">portable object template</span>, objet portable de
        référence). Le contenu de ce fichier est alors
        associé aux fichiers contenant la traduction pour
        chacune des différentes langues (fichier <span class="emp">fr.po</span>
        pour le français par exemple - <span class="emp">po</span> siginifiant
        <span class="emp">portable object</span>, objet portable - qui peut être
        lu par les humains). Le traducteur devra se servir de ce
        fichier, et traduira les phrases qu'il contient, puis
        l'enverra aux développeurs. Ensuite, au niveau de la
        compilation du programme, une version binaire de ce fichier
        sera produite (pour des raisons d'efficacité), puis
        installée. Cette version binaire a pour extension
        <span class="emp">.mo</span>, où <span class="emp">mo</span> 
	signifie <span class="emp">machine
        object</span> - objet machine, c'est-à-dire qui peut
        être lu par le programme. Pour finir,
        <code>calcurse</code> se servira de ce fichier <span class="emp">mo</span>
        lors de son exécution pour traduire les phrases dans la langue
        de l'utilisateur.</p>


<h3>8.2.2 Etapes de la traduction<a name="contribute_i18n_translator"></a></h3>
<p>
        Supposons que quelqu'un veuille commencer une traduction dans
        une nouvelle langue. Voici les étapes à suivre
        pour ce faire :</p>
        <ul>
        <li>Premièrement, trouver quel est le nom de la locale
        correspondant à la langue à traduire. Par
        exemple, pour le français, il s'agit de 'fr_FR', ou
        simplement 'fr'. C'est cette valleur que l'utilisateur devra
        mettre dans la variable d'environnement <code>LC_ALL</code>
        pour obtenir la version traduite du logiciel (voir <a
        href="#basics_invocation_variable">Variable d'environnement
        pour l'i18n</a>).</li>
        <li>Ensuite, il faut se rendre dans le répertoire
        <span class="emp">po/</span>, et créer un nouveau fichier <span class="emp">.po</span>
        à partir du fichier de référence en utilisant la commande suivante :
        <code>'msginit -i calcurse.pot -o fr.po -l fr --no-translator'</code>
        Si vous n'avez pas <code>msginit</code> installé sur
        votre système, vous pouvez plus simplement copier
        <span class="emp">calcurse.pot</span> en <span class="emp">fr.po</span>
        par exemple, et éditer l'en-tête du fichier nouvellement créé
        manuellement.</li>
	</ul>
<p>
        Maintenant, ayant à disposition ce fichier
        <span class="emp">fr.po</span>, la traduction peut commencer.</p>


<h3>8.2.3 Fichiers <code>po</code><a name="contribute_i18n_po-files"></a></h3>
<p>
        Le format des fichiers <code>po</code> est assez simple. En effet,
        ils ne contiennent que quatre éléments
        différents :</p>
        <ol>
        <li><span class="emp">ligne d'emplacement:</span> renseigne sur l'emplacement
        de la phrase dans le fichier source (donne le nom du fichier
        ainsi que le numéro de ligne), afin de retrouver
        simplement le contexte d'où est issu la phrase à
        traduire.</li>
        <li><span class="emp">ligne msgid:</span> indique la phrase à traduire.</li>
        <li><span class="emp">ligne msgstr:</span> ligne indiquant la phrase traduite.</li>
        <li><span class="emp">lignes commençant par '#'</span>: indiquent des
        commentaires (certains ont une signification spéciale,
        comme nous le verrons plus tard).</li>
        </ol>
<p>
        Pour résumer, un traducteur doit simplement remplir les
        champs <span class="emp">msgstr</span> avec la traduction des lignes
        trouvées juste au-dessus dans la partie <span class="emp">msgid</span>.</p>
<p>
        <span class="valorise">Remarques:</span>
        <dl>
        <dt><span class="emp">Phrases marquées Fuzzy</span></dt>
        <dd>Vous pourrez rencontrer des phrases commençant par le
        commentaire <code>"#, fuzzy"</code>.
        <code>calcurse</code> n'utilisera pas les traductions
        commençant par ce commentaire, à moins que vous
        ne transformiez ces phrases. En effet, le commentaire
        <code>fuzzy</code> signifie que la phrase a déjà
        été traduite mais qu'elle a depuis
        été changée dans le source du programme, 
        ou bien que <code>gettext</code> a effectué lui-même
        une traduction, en se basant sur une phrase similaire. Cela
        implique donc que vous devez vérifier la traduction.
        Parfois, la phrase originale a changé suite à
        une correction de faute de frappe. Dans ce cas, vous n'aurez
        pas besoin de modifier la traduction. Mais dans d'autres cas,
        cette traduction peut ne plus être valable et
        nécessitera alors une mise à jour. Une fois
        cette mise à jour effectuée, vous pouvez
        supprimer 
        le commentaire <code>"#, fuzzy"</code>, et la traduction sera
        alors à nouveau prise en compte par <code>calcurse</code>.
	</dd>
        <dt><span class="emp">Lignes au format C et séquences spéciales</span></dt>
        <dd>Certaines phrases ont le commentaire suivant: <code>"#,
        c-format"</code>. Cela signifie que des parties du texte
        à traduire ont une signification particulière
        pour le programme, et qu'il ne faut pas les modifier. Par
        exemple, les séquences contenant des <code>%</code>, comme 
        <code>"%s"</code>. Cela signifie que <code>calcurse</code>
        remplacera ces séquences par d'autres expressions. Il
        est donc important de ne pas les modifier. Il existe
        également des séquences contenant des
        <code>\</code>, comme <code>\n</code> ou <code>\t</code>. Il ne
        faut pas les modifier non plus. En effet, la première
        séquence représente une fin de ligne, et la
        deuxième une tabulation.</dd>
        <dt><span class="emp">Découpage des traductions</span></dt>
        <dd>Si certaines lignes sont trop longues, il est possible de
        découper les phrases comme dans l'exemple ci-après:
        <pre>
msgid ""
"une ligne très longue"
"une autre ligne"
        </pre></dd>
        <dt><span class="emp">En-tête des fichiers po</span></dt>
        <dd>Au tout début du fichier <span class="emp">po</span>, la
        première phrase forme un en-tête où
        différentes informations doivent être
        renseignées. La plus importante est le jeu de
        caractères utilisé. Cette information devrait
        ressembler à
        <pre>
"Content-Type: text/plain; charset=utf-8\n"
        </pre>
        Il est également nécessaire de remplir le champ
        <span class="emp">Last-Translator</span> - 
	<span class="emp">Dernier Traducteur</span>, afin
        que d'autres traducteurs potentiels puissent se mettre en
        relation avec la dernière personne ayant
        retouché le fichier. De cette manière, il est
        plus simple de coordonner les efforts de traduction. Il est
        possible de rajouter son adresse de courrier
        électronique, par exemple:
        <pre>
"Last-Translator: Frederic Culot &lt;frederic@culot.org&gt;\n"
        </pre></dd>
        <dt><span class="emp">Commentaires</span></dt>
        <dd>Ajouter des commentaires (lignes commençant par '#')
        peut être un bon moyen de signaler des problèmes ou
        difficultés de traduction aux autres traducteurs.</dd>
        <dt><span class="emp">Taille des phrases</span></dt>
        <dd><code>calcurse</code> est un programme comportant une
        interface console/curses, il dépend donc de la taille
        du terminal utilisé (plus particulièrement du
        nombre de colonnes). Il est important de garder ceci en
        mémoire au moment de la traduction. Souvent, la phrase
        à traduire doit tenir dans une seule ligne (soit en
        général 80 caractères). Il faut en tenir
        compte, et essayer de voir où la phrase sera
        placée pour adapter sa traduction.</dd>
        <dt><span class="emp">Quelques outils utiles</span></dt>
        <dd>Le format des fichiers <code>po</code> est relativement simple, et
        ils peuvent être modifiés avec un éditeur
        de texte standard. Mais il est également possible 
        d'utiliser des outils spécialisés pour cette
        tâche:
           <ul>
           <li><code>poEdit</code> (<a 
           href="http://www.poedit.org/" target="_blank">
           http://www.poedit.org/</a>)</li>
           <li><code>KBabel</code> (<a
           href="http://i18n.kde.org/tools/kbabel/" target="_blank">
           http://i18n.kde.org/tools/kbabel/</a>)</li>
           <li><code>GTranslator</code> (<a
           href="http://gtranslator.sourceforge.net/" target="_blank">
           http://gtranslator.sourceforge.net/</a>)</li>
           <li><code>Emacs</code> et son mode <code>po</code></li>
           <li><code>Vim</code> et son mode <code>po</code></li>
           </ul>
	</dd>
        <dt><span class="emp">Finalement...</span></dt>
        <dd>J'espère que vous prendrez plaisir à
        contribuer à l'internationalisation du monde des
        logiciels libres. :) Si vous avez d'autres questions
        concernant ce processus, n'hésitez pas à me
        contacter à l'adresse 
	<span class="emp">frederic .à. culot .point. org</span>.</dd>
        </dl>


<h1>9. Liens<a name="links"></a></h1>
<p>
	Cette section contient des liens en relation avec 
	<code>calcurse</code> qui peuvent vous être utiles.</p>


<h2>9.1 Site internet de <code>calcurse</code><a name="links_homepage"></a></h2>
<p>
	La page web de <code>calcurse</code> est à l'adresse suivante :</p> 
	<pre>http://culot.org/calcurse</pre>

<h2>9.2 Liste de diffusion de <code>calcurse</code><a name="links_list"></a></h2>
<p>
	Si vous êtes interessé par ce projet et que vous souhaitez
	être prévenu lorsqu'une nouvelle version est diffusée, vous
	pouvez souscrire à la liste de diffusion de <code>calcurse</code>.
	De cette manière, vous recevrez un mél dès qu'une nouvelle
	version est disponible.</p>
<p>
	Pour souscrire à cette liste, envoyez un message à l'adresse
	<span class="emp">calcurse-announce .à. culot .point. org</span> 
	avec "subscribe" dans le sujet du mél.</p>

<h2>9.3 Flux RSS<a name="links_rss"></a></h2>
<p>
	Une autre possibilité pour être prévenu lorsqu'une
	nouvelle version de <code>calcurse</code> est disponible est de
	s'abonner au flux RSS suivant :</p>
	<pre>http://culot.org/calcurse/news_rss.xml</pre>
<p>
	Ce flux RSS est mis à jour dès qu'une nouvelle version de
	<code>calcurse</code> est diffusée, et indique quelles sont les
	modifications qui ont été apportées.</p>

<h1>10. Remerciements<a name="thanks"></a></h1>
<p>
	Je voudrais remercier ici toutes les personnes sans qui ce projet
	n'aurait jamais pu voir le jour! En particulier :
	<ul>
	<li>Alex pour ses patches, aides et conseils sur la programmation en 
	<code>C</code></li>
	<li>Gwen pour les tests et les discussions sur la mani&egrave;re d'améliorer 
	<code>calcurse</code></li>
	<li>Herbert pour la maintenance du paquet <code>calcurse</code> pour
	FreeBSD</li>
	<li>Zul pour la maintenance du paquet <code>calcurse</code> pour
	NetBSD</li>
	<li>Kevin, Ryan, et fEnIo pour la maintenance du paquet <code>calcurse</code>
	pour Debian et Ubuntu</li>
	<li>Wain, Steffen and Ronald pour la maintenance du paquet <code>calcurse</code> pour
	Archlinux</li>
	<li>Pascal pour la maintenance du paquet <code>calcurse</code> pour
	Slackware</li>
	<li>Alexandre pour la maintenance du paquet <code>calcurse</code> pour
	Mac OsX et Darwin</li>
	<li>Igor pour la maintenance du paquet <code>calcurse</code> pour
	ALT Linux</li>
	<li>Joel pour son script de calendrier qui a inspiré celui de
	<code>calcurse</code></li>
        <li>Michael Schulz et Chris M. pour la traduction allemande de <code>calcurse</code>
	et de son manuel</li>
	<li>Jose Lopez pour la traduction espagnole de <code>calcurse</code>
	et de son manuel</li>
	<li>Neil Williams pour la traduction anglaise</li>
	<li>Tony pour son patch qui a permis d'améliorer la fonction
	recur_item_inday(), et pour l'implémentation des options de configuration
        concernant les formats de date</li>
	<li>Jeremy Roon pour la traduction en Néerlandais</li>
	<li>Leandro Noferini pour la traduction en Italien</li>
	<li>Erik Saule pour son patch qui a permis d'implémenter l'option '-N'
	de la ligne de commande</li>
	<li>les personnes qui écrivent des logiciels que j'apprécie et qui
	m'ont inspiré lors de la conception de ce projet, en particulier:
		<ul>
		<li><code>vim</code> pour les touches de déplacement</li>
		<li><code>orpheus</code> et <code>abook</code> pour la documentation</li>
		<li><code>pine</code> et <code>aptitude</code>
	        pour l'interface en mode texte</li>
		</ul></li>
	</ul>
</p>
<p>
        Et pour terminer, un très grand merci à tous les utilisateurs de
	<code>calcurse</code> qui m'ont fait parvenir leurs commentaires.</p>

<div class="footer">
	Copyright (c) 2004-2008 Frédéric Culot<br>
	Calcurse version 2.1 - Dernière modification: 20 Avril 2008<br>
</div>
</div>

</body>
</html>