CALCURSE - organiseur en mode texte
        calcurse est un organiseur personnel en mode texte,
        qui a pour but de gérer les rendez-vous et les tâches
        à faire. Il est composé d'un calendrier, d'une 
        liste de tâches, et classe les rendez-vous.
        L'interface utilisateur est configurable, et l'on peut
        choisir entre différents thèmes graphiques (couleur et
        disposition des élements de l'interface).
        Toutes les commandes sont documentées dans un système
        d'aide en ligne.
        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.
        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.
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/
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 sé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.
Vous devez tout d'abord décompresser l'archive source de la manière suivante :
tar zxvf calcurse-1.7.tar.gzUne 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)
	./configure --help.
        Lors de son appel en ligne de commande, calcurse 
        accepte les arguments suivants (les arguments courts ou longs sont
	supportés) :
	
-a, --appointment
	-c <fichier>, --calendar <fichier>
	~/.calcurse/apts 
	(voir la section Fichiers).-d <date|num>, --day <date|num>
	calcurse -d  3 fera
	s'afficher les rendez-vous pour aujourd'hui, demain
	et après-demain.-h, --help
	-n, --next
	-t[num], --todo[=num]
	num est indiqué, alors uniquement les tâches
	ayant une priorité égale à num seront
	affichées.num doit être compris entre 1
	(priorité la plus grande) et 9 (priorité la moins
	grande).-v, --version
	calcurse, puis quitte.
	
        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.calcurse:
	LC_ALL=fr_FR.ISO8859-1 calcurse
        Lorsque il est appelé avec au moins un des arguments suivants:
        -a, -d, -h, 
        -n, -t, -v
        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.
        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.
	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:
	
        La structure de fichiers suivante est créée dans le répertoire
        $HOME de l'utilisateur la première fois que 
        calcurse est lancé :
	
        $HOME/.calcurse/
                  |___conf
                  |___apts
                  |___todo
        
        Le fichier conf contient la configuration de l'utilisateur.À 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.
        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, et enfin
        les paramètres de la barre de notification peuvent être fixés 
	en appuyant sur 'N'.
        Ces options contrôlent le comportement général de
        calcurse, comme décrit ci-dessous :
        
sauvegarde_automatique  (valeur par défaut: oui)calcurse.confirmer_pour_quitter (valeur par défaut: oui)calcurse sans demander confirmation.confirmer_pour_effacer (valeur par défaut: oui)masquer_messages_système (valeur par défaut: non)masquer_barre_progression (valeur par défaut: non)semaine_commence_lundi (valeur par défaut: oui)calcurse d'indiquer quel est le premier
        jour de la semaine, à savoir soit le lundi, soit le dimanche.
        Si l'option semaine_commence_lundi est 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.
        
        Le thème graphique de calcurse est
        configurable et doit être choisi en appuyant sur le
        numéro correspond à la couleur voulue. 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.
        Remarques:
        
$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.calcurse ne veut pas les afficher,
        essayez de changer la valeur de la variable d'environnement
        $TERM (appliquez par exemple la valeur
        xterm-xfree86).
        
        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.
Les options suivantes permettent de modifier les réglages de la barre de notification:
barre-notification_afficher (valeur par défaut: oui)barre-notification_date (valeur par défaut: %a %F)barre-notification_heure (valeur par défaut: %T)barre-notification_alerte (valeur par défaut: 300)
        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)."
Merci de renvoyer vos rapports de bogues et vos commentaires à l'adresse suivante :
        calcurse@culot.org
        
        ou directement à l'auteur :
        
        frederic@culot.org
        
        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.org pour savoir si
        quelqu'un a déjà commencé le processus de
        traduction dans votre langue.
        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.
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. 
        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.
Supposons que quelqu'un veuille commencer une traduction dans une nouvelle langue. Voici les étapes à suivre pour ce faire :
LC_ALL
        pour obtenir la version traduite du logiciel (voir Variable d'environnement
        pour l'i18n).
                'msginit -i calcurse.pot -o fr.po -l fr --no-translator'
        
        Si vous n'avez pas msginit installé 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.Le format des fichiers po est assez simple. En effet, ils ne contiennent que quatre éléments différents :
Remarques:
"#, fuzzy".
        calcurse n'utilisera pas les traductions
        commençant par ce commentaire, à moins que vous
        ne transformiez ces phrases. En effet, le commentaire
        fuzzy 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 gettext 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 "#, fuzzy", et la traduction sera
        alors à nouveau prise en compte par calcurse."#,
        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 que calcurse
        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
        \, comme \n ou \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.
                msgid ""
                "une ligne très longue"
                "une autre ligne"
        
        
                "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"
        
        calcurse 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.poEdit (
           http://www.poedit.org/)
           KBabel (
           http://i18n.kde.org/tools/kbabel/)
           GTranslator (
           http://gtranslator.sourceforge.net/)
           Emacs et son mode po
           Vim et son mode po
           
	Cette section contient des liens en relation avec 
	calcurse qui peuvent vous être utiles.
calcurse
	La page web de calcurse est à l'adresse suivante : 
	
http://culot.org/calcurse
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.org avec "subscribe" dans
	le sujet du mél.
	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.xmlCe 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.
Je voudrais remercier ici toutes les personnes sans qui ce projet n'aurait jamais pu voir le jour! En particulier :
C
	calcurse
	calcurse pour
	FreeBSD
	calcurse pour
	NetBSD
	calcurse
	pour Debian et Ubuntu
	calcurse pour
	Archlinux
	calcurse pour
	Slackware
	calcurse pour
	Mac OsX et Darwin
	calcurse pour
	ALT Linux
	calcurse
        calcurse
	et de son manuel
	calcurse
	et de son manuel
	vim pour les touches de déplacement
		orpheus et abook pour la documentation
		pine et aptitude 
	        pour l'interface en mode texte
		calcurse qui m'ont fait parvenir leurs commentaires.