CALCURSE - organiseur en mode texte
Résumé
Ce manuel présente l'ensemble des fonctionnalités du logicielcalcurse 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
calcurse 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
calcurse.
Table des matières
- 1. Introduction
- 2. Aperçu du logiciel
- 3. Installation
- 4. Présentation générale
- 5. Options
- 6. Bogues connus
- 7. Rapporter les bogues et commentaires
- 8. Comment contribuer?
- 9. Liens
- 10. Remerciements
1. Introduction
calcurse 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.
2. Aperçu du logiciel
2.1 Origine de Calcurse
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 ;)
        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 C, 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 C!
        Malheureusement, j'ai obtenu mon doctorat avant de terminer
        calcurse, 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é
        calcurse...
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.
2.2 Caractéristiques importantes
        Calcurse 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).
        Calcurse 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 calcurse avec les arguments appropriés dans
        la table cron ou dans le script d'initialisation du shell.
        De plus, calcurse 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. Les raccourcis clavier peuvent être définis aussi
        par l'utilisateur, pour correspondre aux besoins de chacun.
        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. Les notifications peuvent également être envoyées
        même si l'interface utilisateur n'est pas lancée, car
        calcurse peut tourner en tâche de fond (mode démon).
3. Installation
3.1 Pré-requis
3.1.1 Librairie ncurses
        L'installation de Calcurse ne nécessite qu'un 
        compilateur C, comme cc ou gcc, 
        et la librairie ncurses.
        Il serait très surprenant que vous n'ayez pas déjà la librairie 
        ncurses d'installée sur votre machine, mais si
        c'est le cas, vous pourrez la trouver à l'adresse suivante :
http://ftp.gnu.org/pub/gnu/ncurses/
Note: 
        It is also possible to link calcurse against the
        ncursesw library (ncurses with support for unicode).
        However, UTF-8 is not yet supported by calcurse.
3.1.2 Librairie gettext
        calcurse s'aide de la librairie
        gettext pour le support de l'internationalisation
        (noté i18n ci-après).  Cela signifie que
        calcurse peut fournir des messages multilingues
        s'il est compilé avec le support NLS (Native
        Language Support - Support de Langage
        Natif). 
	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
        NLS s'effectue en passant l'option
        --disable-nls à configure
        (voir la section Processus
        d'Installation).
	Pour vérifier que les utilitaires gettext sont
        bien installés sur votre systsème, vous pouvez
        par exemple vérifier la présence du fichier
        libintl.h en tapant : 
locate libintl.h
	Dans l'éventualité où ce fichier ne serait pas trouvé,
        vous pouvez obtenir les sources de gettext
        à l'adresse suivante :
http://ftp.gnu.org/pub/gnu/gettext/
Remarque : Même si
        libintl.h est bien localisé par la commande
        précédente, il peut être utile de spécifier son emplacement au
        moment de lancer le processus
        d'installation, en passant l'option
        --with-libintl-prefix au script
        configure. En effet, ce script pourrait ne pas
        trouver le fichier libintl.h si celui-ci n'est
        pas installé dans un endroit usuel.
3.2 Processus d'installation
Vous devez tout d'abord décompresser l'archive source de la manière suivante :
tar zxvf calcurse-2.8.tar.gz
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 :
- ./configure
- make
- make install(peut nécessiter les privilèges super-utilisateur)
	Vous pouvez obtenir la liste des options possibles en tapant 
        ./configure --help.
4. Présentation générale
4.1 Invocation
4.1.1 Arguments en ligne de commande
        Lors de son appel en ligne de commande, calcurse
        accepte les arguments suivants (les arguments courts ou longs
        sont supportés) :
- -a, --appointment
- 
	Affiche les rendez-vous pour la date du jour, puis quitte.
	Remarque: le calendrier à utiliser peut être spécifié en utilisant l'option '-c'. 
- -c <fichier>, --calendar <fichier>
- 
	Spécifie le fichier calendrier à utiliser.
	Le calendrier par défaut est celui contenu dans 
	~/.calcurse/apts(voir la section Fichiers).
- -d <date|num>, --day <date|num>
- 
	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 :
	- une date (voir ci-dessous pour les formats disponibles).
- un nombre 'n'.
 calcurse -d 3fera s'afficher les rendez-vous pour aujourd'hui, demain et après-demain.Possible formats for specifying the date are defined inside the general configuration menu (see General options), using theinput_datefmtvariable.Remarque: comme pour l'option '-a', le fichier contenant le calendrier à lire peut être spécifié en utilisant l'option '-c'. 
- -D <dir>, --directory <dir>
- 
        Indique le répertoire dans lequel seront stockées les données.
        Cette option n'est pas compatible avec l'option '-c'. Si ce
        répertoire n'est pas spécifié, celui utilisé par défaut est
        '~/.calcurse/'.
- -h, --help
- Affiche l'aide décrivant les options en ligne de commande, puis quitte.
- -i <file>, --import <file>
- 
        Importe les données au format icalendar contenues dans le fichier 
        file.
- -n, --next
- 
	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.
	remarque: le fichier contenant le calendrier à lire peut être spécifié en utilisant l'option '-c'. 
- -N, --note
- 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é.
- -r[num], --range[=num]
- Affiche les rendez-vous et les événements pour le nombre num de jours puis quitte. Si l'argument optionnel num n'est pas donné, une plage d'une seule journée sera utilisée.
- -s[date], --startday[=date]
- Affiche les rendez-vous et les événements depuis la date indiquée puis quitte. Si l'argument optionnel date n'est pas donné, la journée courante sera utilisée.
- -S<regex>, --search=<regex>
- Lorsque cette option est utilisée avec les options '-a', '-d', '-r', '-s' ou '-t', seuls les éléments dont la description correspond à l'expression régulière passée en argument seront affichés.
- --status
- 
    Display the status of running instances of calcurse. If calcurse is running, this will tell if the interactive mode was launched or if calcurse is running in background. The process pid will also be indicated.
- -t[num], --todo[=num]
- 
	Affiche la liste des 'todo', puis quitte. Si le nombre optionnel
	numest indiqué, alors uniquement les tâches ayant une priorité égale ànumseront affichées. La priorité doit être comprise entre 1 (priorité la plus haute) et 9 (priorité la plus basse). Il est également possible de spécifier 0 pour la priorité, auquel cas seules les tâches completées seront affichées.
- -v, --version
- 
	Affiche la version de calcurse, puis quitte.
- -x[format], --export[=format]
- 
	Exporte les données utilisateur au format spécifié. Les évènements,
	rendez-vous et tâches sont convertis et imprimés sur la sortie
	standard. Deux formats d'export différents sont disponibles : 
        le format ical et le format pcal (voir la section 
        Liens ci-dessous).
        Si l'argument optionnel formatn'est pas indiqué par l'utilisateur, alors le format ical sera utilisé par défaut.Note: 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: $ calcurse --export > mon_fichier.dat
4.1.2 Variable d'environnement pour l'i18n
        calcurse peut être compilé avec le support
        NLS (voir Librairie
        gettext). 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 po/LINGUAS.  Ce fichier indique toutes
        les traductions disponibles par l'intermédiaire d'un code de
        deux lettres (par exemple, fr
        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 calcurse (voir la partie Comment contribuer?).
	Si votre langue est disponible, lancez calcurse
        en utilisant la commande suivante : 
LC_ALL=fr_FR calcurse
où fr_FR doit être remplacé par la locale (code de la langue suivi du code pays) correspondant à la traduction voulue.
	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
        calcurse:
LC_ALL=fr_FR.ISO8859-1 calcurse
4.1.3 Autres variables d'environnement
	Les variables d'environnement suivantes agissent sur le comportement de
	calcurse:
- VISUAL
- Indique l'éditeur externe qui sera utilisé pour rédiger des notes.
- EDITOR
- Si la variable d'environnement VISUALn'est pas renseignée, l'éditeur externe qui sera utilisé par défaut est celui contenu dans la variableEDITOR. Si aucune de ces deux variables n'est renseignée, alors/usr/bin/visera appelé par défaut.
- PAGER
- Indique le visualiseur utilisé par défaut pour consulter les
	    notes. Si cette variable n'est pas renseignée, alors 
	    /usr/bin/lesssera utilisé.
4.2 Interface utilisateur
4.2.1 Mode non-interactif
        Lorsque il est appelé avec au moins un des arguments suivants:
        -a, -d, -h, 
	-n, -t, -v, -x,
        calcurse est lancé en mode non-interactif.
        Cela signifie que l'information demandée sera affichée,
        puis calcurse quittera et vous serez ramené
        au prompt de l'interpréteur de commandes.
        De cette manière, il est possible de rajouter une ligne telle
        que 'calcurse --todo --appointment' 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.
4.2.2 Mode interactif
Note:
        Key bindings that are indicated in this manual correspond to
        the default ones, defined when calcurse is launched
        for the first time. If those key bindings do not suit user's needs,
        it is possible to change them within the keys configuration menu
        (see key bindings).
        Lorsqu'il est appelé sans aucun argument ou uniquement avec 
        l'option '-c', calcurse 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).
 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
 |                                    ||                            |   |
 |                                    ||                            |<--.
 |                                    ||                            |
 +------------------------------------++----------------------------+
 |---[ Lun 22-11-2006 | 18:11:43 ]---(apts)----> 01:20 :: dîner <---|<--.
 +------------------------------------------------------------------+ 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               |<-. 
 +------------------------------------------------------------------+  |
                                                                       |
                                                               barre de status
	
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.
Depending on the selected view, the calendar could either display a monthly (default as shown in previous figure) or weekly view. The weekly view would look like the following:
+------------------------------------+
|              Calendar              |
|----------------------------(# 13)--|
|    Mon Tue Wed Thu Fri Sat Sun     |
|     29  30  31  01  02  03  04     |
|                               <----+--  slice 1: 00:00 to 04:00 AM
|       --  --  --  --  --  --       |
|                               <----+--  slice 2: 04:00 to 08:00 AM
|       --  --  --  --  --  --       |
|                               <----+--  slice 3: 08:00 to 12:00 AM
|    -  --  --  --  --  --  --  -  <-+--  midday
|                               <----+--  slice 4: 12:00 to 04:00 PM
|       --  --  --  --  --  --       |
|                               <----+--  slice 5: 04:00 to 08:00 PM
|       --  --  --  --  --  --       |
|                               <----+--  slice 6: 08:00 to 12:00 PM
+------------------------------------+
        
The current week number is displayed on the top-right side of the panel (# 13 meaning it is the 13th week of the year in the above example). The seven days of the current week are displayed in column. Each day is divided into slices of 4 hours each (6 slices in total, see figure above). A slice will appear in a different color if an appointment falls into the corresponding time-slot.
On peut remarquer dans le panneau des rendez-vous le signe '(|)' 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é :
- '|)':
- premier quartier
- '(|)':
- pleine lune
- '(|':
- dernier quartier
- '|':
- nouvelle lune
- aucun signe:
- la phase actuelle de la lune ne correspond à aucune des phases ci-dessus
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.
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.
Remarque:
	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 calcurse.
Dans cet éditeur, si la ligne de commande est plus longue que la largeur de l'écran, le caractère '>', '*', ou '<' 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.
De plus, il existe des combinaisons de touches pour effectuer certaines actions courantes utiles lors de l'édition de textes. Voici ces raccourcis:
- ^a:
- déplacer le curseur au début de la ligne
- ^b:
- déplacer le curseur d'une position en arrière
- ^d:
- effacer le caractère sous le curseur
- ^e:
- déplacer le curseur en fin de ligne
- ^f:
- déplacer le curseur d'une position en avant
- ^h:
- effacer le caractère précédent
- ^k:
- effacer le texte depuis la position courante jusqu'à la fin de la ligne
- ESC:
- annuler l'édition du texte courant
4.3 Background mode
When the daemon mode is enabled in the notification configuration menu
(see Notify-bar settings), calcurse will stay
in background when the user interface is not running. In background mode,
calcurse checks for upcoming appointments and runs the user-defined 
notification command when necessary. When the user interface is started again,
the daemon automatically stops.
calcurse background activity can be logged (set the 
notify-daemon_log variable in the notification configuration
menu), and in that case, information about the daemon
start and stop time, reminders' command launch time, signals received... will be written
in the daemon.log file (see section files).
Using the --status command line option (see section 
Command line arguments), 
one can know if calcurse is currently running in background or not.
If the daemon is running, a message like the following one will be displayed (the pid of
the daemon process will be shown):
calcurse is running in background (pid 14536)
Note:
To stop the daemon, just send the TERM signal to it, using a command such as:
'kill daemon_pid', where daemon_pid is the process id
of the daemon (14536 in the above example).
4.4 Fichiers
        La structure de fichiers suivante est créée dans le répertoire
        $HOME de l'utilisateur (ou bien dans le répertoire
        indiqué par l'option '-D') la première fois que 
	calcurse est lancé :
$HOME/.calcurse/
           |___notes/
           |___conf
           |___keys
           |___apts
           |___todo
	
	- notes/:
- 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.
- conf:
- ce fichier contient la configuration de l'utilisateur
- keys:
- ce fichier contient les raccourcis clavier définis par l'utilisateur
- apts:
- ce fichier contient tous les événements ainsi que les rendez-vous de l'utilisateur
- todo:
- ce fichier contient la liste des tâches à effectuer
Note:
        If the logging of calcurse daemon activity was set in the notification
        configuration menu, the extra file daemon.log will appear
        in calcurse data directory. This file contains logs about calcurse activity
        when running in background.
        
4.5 Fonctions d'import/export
        Les possibilités offertes par calcurse pour importer et exporter
        des données sont décrites ci-dessous.
4.5.1 Import
Les données au format icalendar tel que décrit dans la spécification rfc2445 (voir la section liens ci-dessous) peuvent être importées dans calcurse. L'import ical de calcurse est basé sur la version 2.0 de la norme rfc2445, mais pour le moment, seul un sous-ensemble de cette spécification a été implémenté.
Les propriétés suivantes sont gérées par calcurse:
- éléments VTODO:
 "PRIORITY", "VALARM", "SUMMARY", "DESCRIPTION"
- éléments VEVENT:
 "DTSTART", "DTEND", "DURATION", "RRULE", "EXDATE", "VALARM", "SUMMARY", "DESCRIPTION"
La propriété "DESCRIPTION" du format icalendar sera convertie dans calcurse en ajoutant une note à l'élément. Si une propriété "VALARM" est trouvée, l'élément sera marqué comme étant important et l'utilisateur recevra une notification (ceci ne fonctionne que pour les rendez-vous).
Voici la liste des propriétés qui ne sont pas encore implémentées:
- les durées négatives ne sont pas prises en compte (l'élément n'est pas importé)
- certaines fréquences de répétition ne sont pas reconnues:
 "SECONDLY" / "MINUTELY" / "HOURLY"
- Certains mots-clés liés aux répétitions ne sont pas reconnus
            (ceux commençant par 'BY'):
 "BYSECOND" / "BYMINUTE" / "BYHOUR" / "BYDAY" / "BYMONTHDAY"
 "BYYEARDAY" / "BYWEEKNO" / "BYMONTH" / "BYSETPOS"
 plus "WKST"
- le mot-clé "EXRULE" n'est pas reconnu
- les fuseaux horaires ne sont pas pris en compte
4.5.2 Export
        Deux formats peuvent êtres utilisés pour l'export des données:
        ical et pcal (voir la section
        Liens ci-dessous pour avoir plus d'informations
        concernant ces formats).
4.6 Aide en ligne
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.
5. Options
        Tous les paramètres de calcurse sont configurables
        à partir du menu Configuration, 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 calcurse,
	appuyer sur 'G' vous permet de fixer les options générales, 'K'
        vous permet d'accéder au menu de configuration des raccourcis clavier,
        et enfin
        les paramètres de la barre de notification peuvent être fixés 
	en appuyant sur 'N'.
5.1 Options générales
        Ces options contrôlent le comportement général de
	calcurse, comme décrit ci-dessous :
- sauvegarde_automatique(valeur par défaut: oui)
- Cette option permet de sauvegarder automatiquement 
		  les données de l'utilisateur avant de quitter, si elle est
		  fixée à oui.
		  attention: Aucune donnée ne sera automatiquement sauvegardée si cette variable est fixée à non. Cela signifie que l'utilisateur doit appuyer sur 'S' (pour sauvegarder) pour retrouver ses modifications au prochain lancement decalcurse.
- periodic_save(default: 0)
- If different from '0', user's data will be automatically
    saved every periodic_save minutes.
    When an automatic save is performed, two asterisks 
    (i.e. '**') will appear on the top right-hand side of the screen).
- confirmer_pour_quitter(valeur par défaut: oui)
- Si cette option est fixée à oui, 
		la confirmation 
		  de l'utilisateur est nécessaire avant de pouvoir quitter.
		  Autrement, appuyer sur 'Q' provoquera l'arrêt de 
		  calcursesans demander confirmation.
- confirmer_pour_effacer(valeur par défaut: oui)
- Si cette option est fixée à oui, 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 à non, aucune confirmation ne sera demandée avant l'effacement d'un élement.
- masquer_messages_système(valeur par défaut: non)
- Fixer cette option à oui 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.
- masquer_barre_progression(valeur par défaut: non)
- Si elle est fixée à oui, 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 à non, 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 Fichiers).
- calendar_default_view(default: 0)
- If set to 0, the monthly calendar view will be displayed by default otherwise it is the weekly view that will be displayed.
- semaine_commence_lundi(valeur par défaut: oui)
- Il est possible dans calcurse d'indiquer quel est le 
		  premier jour de la semaine, à savoir soit le lundi, soit le dimanche.
		  Si l'option semaine_commence_lundiest fixée à oui, les semaines du calendrier commenceront le lundi. Par contre si cette option est fixée à non, les semaines débuteront le dimanche.
- format_date_sortie(valeur par défaut: %D)
- Indique le format qui sera utilisé pour afficher les dates en mode
                  non-interactif. Par défaut, les dates sont affichées comme suit :
                  mm/jj/aa. 
                  Les différents formats disponibles sont visibles en
                  tapant la commande suivante dans un terminal: man 3 strftime.
- format_date_entrée(valeur par défaut: 1)
- Indique le format qui sera utilisé pour entrer les dates dans 
                  calcurse. Quatre choix sont possibles :
                  - mm/jj/aaaa
- jj/mm/aaaa
- aaaa/mm/jj
- aaaa-mm-jj
 
5.2 Key bindings
        One can define it's own keybindings within the 'Keys' configuration
        menu. The default keys look like the one used by the vim
        editor, especially the displacement keys. Anyway, within this
        configuration menu, users can redefine all of the keys available from
        within calcurse's user interface.
To define new keybindings, first highlight the action to which it will apply. Then, delete the actual key binding if necessary, and add a new one. You will then be asked to press the key corresponding to the new binding. It is possible to define more than one key binding for a single action.
An automatic check is performed to see if the new key binding is not already set for another action. In that case, you will be asked to choose a different one. Another check is done when exiting from this menu, to make sure all possible actions have a key associated with it.
The following keys can be used to define bindings:
- lower-case, upper-case letters and numbers, such as 'a', 'Z', '0'
- CONTROL-key followed by one of the above letters
- escape, horizontal tab, and space keys
- arrow keys (up, down, left, and right)
- 'HOME' and 'END' keys
While inside the key configuration menu, an online help is available for each one of the available actions. This help briefly describes what the highlighted action is used for.
5.3 Thèmes graphiques
	Le thème graphique de calcurse 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.
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.
Remarque:
        Suivant le type de terminal que vous utilisez, et suivant
        la valeur de la variable d'environnement $TERM,
        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 calcurse ne veut pas les afficher,
        essayez de changer la valeur de la variable d'environnement
        $TERM (appliquez par exemple la valeur
        xterm-xfree86).
	
5.4 Disposition des panneaux
        La disposition des panneaux à l'intérieur de la fenêtre de
        calcurse 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 Mode interactif
        pour un exemple de la disposition par défaut).
        En choisissant une autre disposition pour les éléments composants
        la fenêtre de calcurse, l'utilisateur peut adapter
        à ses besoins l'interface du programme.
The following option is used to modify the layout configuration:
- layout(default: 0)
- Eight different layouts are to be chosen from (see layout configuration screen for the description of the available layouts).
5.5 Sidebar configuration
The sidebar is the part of the screen which contains two panels: the calendar and, depending on the chosen layout, either the todo list or the appointment list.
The following option is used to change the width of the sidebar:
- side-bar_width(default: 0)
- Width (in percentage, 0 being the minimum width) of the side bar.
5.6 Réglages de la barre de notification
Les options suivantes permettent de modifier les réglages de la barre de notification:
- barre-notification_afficher(valeur par défaut: )
- Cette option indique si la barre de notification doit être affichée ou pas.
- barre-notification_date(valeur par défaut: %a %F)
- 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: man 3 strftime.
- barre-notification_heure(valeur par défaut: %T)
- 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: man 3 strftime.
- barre-notification_alerte(valeur par défaut: 300)
- 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 barre-notification_commandesera executée. De cette manière, l'utilisateur sera alerté et saura que l'heure du rendez-vous approche.
- barre-notification_commande(valeur par défaut: printf '\a')
- 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é, calcurselit le contenu de la variable d'environnement$SHELL, et si cette variable est vide, la commande sera passée à/bin/sh.Exemple: Supposons que le programme mailsoit 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):calcurse --next | mail -s "[calcurse] nouveau rendez-vous!" user@host.com
- notify-daemon_enable(default: no)
- If set to yes, daemon mode will be enabled, meaning calcursewill run into background when the user's interface is exited. This will allow the notifications to be launched even when the interface is not running. More details can be found in section 'Background mode'.
- notify-daemon_log(default: no)
- If set to yes, calcursedaemon activity will be logged (see section files).
6. Bogues connus
        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 $TERM
        fixée à xterm-color.  Pour supprimer ce
        bogue, et comme le conseille Thomas E. Dickey (le
        résponsable du projet xterm),
        xterm-xfree86 devrait être assigné
        à la variable $TERM en lieu et place de
        xterm-color :
"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ôt l'entrée xterm-xfree86 qui est distribuée avec le xterm d'XFree86 (ou par celui, similaire, distribué avec ncurses)."
7. Rapporter les bogues et commentaires
Merci de renvoyer vos rapports de bogues et vos commentaires à l'adresse suivante :
calcurse .à. culot .point. org
ou directement à l'auteur :
frederic .à. culot .point. org
8. Comment contribuer?
        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 calcurse.
        Pour le moment, les contributions possibles concernent 
        la traduction des messages de calcurse ainsi que
        de la documentation.
Remarque:
        toute contribution à la traduction de
        calcurse serait très
        appréciée, mais avant tout, envoyez un mail
        à calcurse-i18n .à. culot .point. org pour savoir si
        quelqu'un a déjà commencé le processus de
        traduction dans votre langue.
8.1 Traduction de la documentation
Le répertoire doc/ 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.
        Pour cela, il suffit de copier un des fichiers existant et de
        renommer cette copie en manual_XX.html, où
        XX représente votre langue. Il faut ensuite
        traduire ce fichier nouvellement créé et de
        l'envoyer à l'auteur (voir Rapporter
        les bogues et commentaires), pour qu'il soit inclus dans
        la prochaine version de calcurse.
8.2 Traduction de calcurse
        Comme mentionné plus haut, les utilitaires
        gettext sont utilisés par
        calcurse 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
        gettext avec calcurse. Pour avoir
        une vision plus large du Support de Langage Natif
        (NLS), il est préférable de se
        référer au manuel de GNU gettext
        que l'on peut trouver à l'adresse suivante :
http://www.gnu.org/software/gettext/manual/
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.
8.2.1 Aperçu
Afin de pouvoir afficher du texte dans la langue natale de l'utilisateur, deux étapes sont nécessaires : l'internationalisation (i18n), et la localisation (l10n).
        L'i18n permet à calcurse 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.
        La l10n correspond quant à elle au processus qui permet
        à calcurse 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 calcurse puisse utiliser
        les résultats de cette traduction.
        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
        (calcurse.pot - l'extension 
	pot signifiant
        portable object template, 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 fr.po
        pour le français par exemple - po siginifiant
        portable object, 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
        .mo, où mo 
	signifie machine
        object - objet machine, c'est-à-dire qui peut
        être lu par le programme. Pour finir,
        calcurse se servira de ce fichier mo
        lors de son exécution pour traduire les phrases dans la langue
        de l'utilisateur.
8.2.2 Etapes de la traduction
Supposons que quelqu'un veuille commencer une traduction dans une nouvelle langue. Voici les étapes à suivre pour ce faire :
- 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 LC_ALLpour obtenir la version traduite du logiciel (voir Variable d'environnement pour l'i18n).
- Ensuite, il faut se rendre dans le répertoire
        po/, et créer un nouveau fichier .po
        à partir du fichier de référence en utilisant la commande suivante :
        'msginit -i calcurse.pot -o fr.po -l fr --no-translator'Si vous n'avez pasmsginitinstallé sur votre système, vous pouvez plus simplement copier calcurse.pot en fr.po par exemple, et éditer l'en-tête du fichier nouvellement créé manuellement.
Maintenant, ayant à disposition ce fichier fr.po, la traduction peut commencer.
8.2.3 Fichiers po
        Le format des fichiers po est assez simple. En effet,
        ils ne contiennent que quatre éléments
        différents :
- ligne d'emplacement: 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.
- ligne msgid: indique la phrase à traduire.
- ligne msgstr: ligne indiquant la phrase traduite.
- lignes commençant par '#': indiquent des commentaires (certains ont une signification spéciale, comme nous le verrons plus tard).
Pour résumer, un traducteur doit simplement remplir les champs msgstr avec la traduction des lignes trouvées juste au-dessus dans la partie msgid.
Remarques:
- Phrases marquées Fuzzy
- Vous pourrez rencontrer des phrases commençant par le
        commentaire "#, fuzzy".calcursen'utilisera pas les traductions commençant par ce commentaire, à moins que vous ne transformiez ces phrases. En effet, le commentairefuzzysignifie que la phrase a déjà été traduite mais qu'elle a depuis été changée dans le source du programme, ou bien quegettexta 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"#, fuzzy", et la traduction sera alors à nouveau prise en compte parcalcurse.
- Lignes au format C et séquences spéciales
- Certaines phrases ont le commentaire suivant: "#, c-format". 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%, comme"%s". Cela signifie quecalcurseremplacera ces séquences par d'autres expressions. Il est donc important de ne pas les modifier. Il existe également des séquences contenant des\, comme\nou\t. 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.
- Découpage des traductions
- Si certaines lignes sont trop longues, il est possible de
        découper les phrases comme dans l'exemple ci-après:
        msgid "" "une ligne très longue" "une autre ligne"
- En-tête des fichiers po
- Au tout début du fichier po, 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 à
        "Content-Type: text/plain; charset=utf-8\n"Il est également nécessaire de remplir le champ Last-Translator - Dernier Traducteur, 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:"Last-Translator: Frederic Culot <frederic@culot.org>\n"
- Commentaires
- 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.
- Taille des phrases
- calcurseest 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.
- Quelques outils utiles
- Le format des fichiers poest 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:- poEdit( http://www.poedit.org/)
- KBabel( http://i18n.kde.org/tools/kbabel/)
- GTranslator( http://gtranslator.sourceforge.net/)
- Emacset son mode- po
- Vimet son mode- po
 
- Finalement...
- 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 frederic .à. culot .point. org.
9. Liens
	Cette section contient des liens en relation avec 
	calcurse qui peuvent vous être utiles.
9.1 Site internet de calcurse
	La page web de calcurse est à l'adresse suivante :
http://culot.org/calcurse
9.2 Liste de diffusion de calcurse
	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 calcurse.
	De cette manière, vous recevrez un mél dès qu'une nouvelle
	version est disponible.
Pour souscrire à cette liste, envoyez un message à l'adresse calcurse-announce .à. culot .point. org avec "subscribe" dans le sujet du mél.
9.3 Flux RSS
	Une autre possibilité pour être prévenu lorsqu'une
	nouvelle version de calcurse est disponible est de
	s'abonner au flux RSS suivant :
http://culot.org/calcurse/news_rss.xml
	Ce flux RSS est mis à jour dès qu'une nouvelle version de
	calcurse est diffusée, et indique quelles sont les
	modifications qui ont été apportées.
9.4 Autres liens
La spécification du format ical (rfc2445) peut être trouvée à l'adresse suivante :
http://tools.ietf.org/html/rfc2445
La page du projet pcal se trouve quant à elle à l'adresse suivante :
http://pcal.sourceforge.net/
10. Remerciements
Je voudrais remercier ici toutes les personnes sans qui ce projet n'aurait jamais pu voir le jour! En particulier :
- Alex pour ses patches, aides et conseils sur la programmation en 
	C
- Gwen pour les tests et les discussions sur la manière d'améliorer 
	calcurse
- Herbert pour la maintenance du paquet calcursepour FreeBSD
- Zul pour la maintenance du paquet calcursepour NetBSD
- Kevin, Ryan, et fEnIo pour la maintenance du paquet calcursepour Debian et Ubuntu
- Wain, Steffen and Ronald pour la maintenance du paquet calcursepour Archlinux
- Pascal pour la maintenance du paquet calcursepour Slackware
- Alexandre pour la maintenance du paquet calcursepour Mac OsX et Darwin
- Igor pour la maintenance du paquet calcursepour ALT Linux
- Joel pour son script de calendrier qui a inspiré celui de
	calcurse
- Michael Schulz et Chris M. pour la traduction allemande de calcurseet de son manuel
- Jose Lopez pour la traduction espagnole de calcurseet de son manuel
- Neil Williams pour la traduction anglaise
- 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
- Jeremy Roon pour la traduction en Néerlandais
- Leandro Noferini pour la traduction en Italien
- Erik Saule pour son patch qui a permis d'implémenter les options '-N', '-s', '-S', '-r', et '-D' de la ligne de commande
- les personnes qui écrivent des logiciels que j'apprécie et qui
	m'ont inspiré lors de la conception de ce projet, en particulier:
		- vimpour les touches de déplacement
- orpheuset- abookpour la documentation
- pineet- aptitudepour l'interface en mode texte
- tmuxfor coding style
 
        Et pour terminer, un très grand merci à tous les utilisateurs de
	calcurse qui m'ont fait parvenir leurs commentaires.