Initial revision

This commit is contained in:
Frederic Culot
2006-07-31 21:00:02 +00:00
commit ac36e94341
43 changed files with 10754 additions and 0 deletions

728
doc/manual_de.html Executable file
View File

@@ -0,0 +1,728 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
/*
* $calcurse: manual_de.html,v 1.1 2006/07/31 21:00:05 culot Exp $
*
* Calcurse - text-based organizer
* Copyright (c) 2004-2006 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>CALCURSE documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="white" text="black" link="blue" vlink="navy">
<h1><code>CALCURSE - textbasierender Terminkalender</code></h1>
<p>
<p><hr><p>
<h1>Inhaltsverzeichnis</h1>
<ul>
<li><a href="#intro">Einleitung</a>
<li><a href="#overview">&Uuml;berblick</a>
<ul>
<li><a href="#overview_history">Anlass</a>
<li><a href="#overview_features">Wichtige Eigenschaften</a>
</ul>
<li><a href="#install">Installation</a>
<ul>
<li><a href="#install_requirements">Vorraussetzungen</a>
<ul>
<li><a href="#install_requirements_ncurses"><code>ncurses</code> Bibliothek</a>
<li><a href="#install_requirements_gettext"><code>gettext</code> Bibliothek</a>
</ul>
<li><a href="#install_process">Installationsprozess</a>
</ul>
<li><a href="#basics"><code>calcurse</code> Grundlagen</a>
<ul>
<li><a href="#basics_invocation">Programmaufruf</a>
<ul>
<li><a href="#basics_invocation_commandline">Programmargumente</a>
<li><a href="#basics_invocation_variable">Umgebungsvariable f&uuml;r i18n</a>
</ul>
<li><a href="#basics_interface">Benutzer-Interface</a>
<ul>
<li><a href="#basics_interface_noninteractive">Nicht-interaktiver Modus</a>
<li><a href="#basics_interface_interactive">Interaktiver Modus</a>
</ul>
<li><a href="#basics_files"><code>calcurse</code> Dateien</a>
<li><a href="#basics_help">Onlinehilfe</a>
</ul>
<li><a href="#options">Optionen</a>
<ul>
<li><a href="#options_general">Allgemeine Optionen</a>
<li><a href="#options_colors">Einstellen der Terminalfarben</a>
<li><a href="#options_layout">Einstellen des Layouts</a>
</ul>
<li><a href="#known_bugs">Bekannte Fehler</a>
<li><a href="#bugs">Mitteilung von Fehlern und Anregungen</a>
<li><a href="#contribute">Wie kann ich einen Beitrag leisten?</a>
<ul>
<li><a href="#contribute_documentation">&Uuml;bersetzung der Dokumentation</a>
<li><a href="#contribute_i18n"><code>calcurse</code> i18n</a>
<ul>
<li><a href="#contribute_i18n_overview">&Uuml;berblick</a>
<li><a href="#contribute_i18n_translator">Aufgaben des &Uuml;bersetzers</a>
<li><a href="#contribute_i18n_po-files">po-Dateien</a>
</ul>
</ul>
<li><a href="#links">Links</a>
<ul>
<li><a href="#links_homepage"><code>calcurse</code> Internetseite</a>
<li><a href="#links_list"><code>calcurse</code> Ank&uuml;ndigungsliste</a>
</ul>
<li><a href="#thanks">Danksagungen</a>
</ul>
<p><hr><p>
<a name="intro"></a><h1>Einleitung</a></h1>
<p>
<code>calcurse</code> ist ein textbasierender pers&ouml;nlicher Terminkalender, der
Ihnen bei der Organisation von Terminen und t&auml;glichen Aufgaben
hilft. Er beinhaltet einen Kalender sowie eine 'todo'-Liste, die Ihre
Termine ordnet. Das Benutzer-Interface ist einstellbar. Terminalfarben
und Layout lassen sich individuell anpassen. Alle Kommandos sind
dokumentiert und k&ouml;nnen zur Laufzeit jederzeit erfragt werden.
<a name="overview"></a><h1>&Uuml;berblick</h1>
<a name="overview_history"></a><h2>Anlass</h2>
<p>
Nachdem ich mein Diplom in Astrophysik absolviert hatte, kam mir die
Idee dieses Programm zu schreiben. Alles begann etwas unorganisiert zu
werden. Ein Programm, dass mir bei meiner Terminplanung etwas hilft,
war wirklich vonn&ouml;ten. ;)<br>
Ich mag Programme mit Textinterfaces, weil sie einfach, schnell,
portabel und effizient sind. Also dachte ich dar&uuml;ber nach ein
Programm mit textorientiertem Benutzer-Interface zu entwickeln.
Dar&uuml;ber hinaus wollte ich meine Kenntnisse in der Programmiersprache
<code>C</code> erweitern. Im Grundstudium kam ich mit <code>C</code>
erstmals in Kontakt. Ich denke es ist eine gute Idee ein solches
Projekt zu beginnen und dabei meine Kenntnisse in <code>C</code> zu
erweitern! Mein Diplom habe ich nun absolviert, <code>calcurse</code>
ist aber noch immer nicht fertig. Nach wie vor entwickle ich dieses
Programm weiter, in der Hoffnung, dass es f&uuml;r andere von Nutzen sein
wird. Also hier ist es...<br>
<br>
Doch warum nenne ich es 'calcurse'? Nun, es ist einfach
zusammengesetzt aus den W&ouml;rtern 'CALendar' und 'nCurses', dem Namen
der Bibliothek die f&uuml;r das Benutzer-Interface verwendet wird.
<a name="overview_features"></a><h2>Wichtige Eigenschaften</h2>
<p>
<code>Calcurse</code> ist portabel und setzt sich zum Ziel klein,
schnell und sicher zu sein. Es ist auf einer Konsole oder einem
Terminal zu verwenden, entweder lokal oder auf einem entfernten System
mithilfe einer ssh-Verbindung (oder &auml;hnlichem).<br>
<code>Calcurse</code> kann in zwei unterschiedlichen Modi gestartet
werden: ein interaktiver und nicht-interaktiver Modus. Der erste Modus
erzeugt Dank des textbasierenden Interfaces die Ansicht eines eigenen
pers&ouml;nlichen Terminkalenders. Mit dem zweiten Modus ist es m&ouml;glich
sich ein Erinnerungstool (Reminder) zu erstellen, wenn
<code>calcurse</code> mit den entsprechenden Argumenten in 'cron tab'
oder einem 'init script' eingebunden wird.<br>
Dar&uuml;ber hinaus ist <code>calcurse</code> f&uuml;r Benutzer erstellt worden,
mit der Absicht so benutzerfreundlich wie m&ouml;glich zu sein. Das
bedeutet, dass eine komplette Onlinehilfe im Programm zu Verf&uuml;gung
steht, sowie alle m&ouml;gliche Aktionen zu jeder Zeit in einer Statuszeile
ersichtlich sind. Das Benutzer-Interface ist ebenfalls
einstellbar. Ebenso kann man verschiedene Textfarben und Layouts
w&auml;hlen.
<a name="install"></a><h1>Installation</h1>
<a name="install_requirements"></a><h2>Voraussetzungen</h2>
<a name="install_requirements_ncurses"></a><h3><code>ncurses</code> Bibliothek</h3>
<p>
<code>Calcurse</code> ben&ouml;tigt einen C-Compiler wie etwa
<code>cc</code> oder <code>gcc</code>. Ferner wird die
ncurses-Bibliothek ben&ouml;tigt, dass aber auf den meisten Unix-Systemen
verf&uuml;gbar sein sollte. Falls nicht, kann es von folgender URL herunter
laden:<br>
<pre>
http://ftp.gnu.org/pub/gnu/ncurses/
</pre>
<a name="install_requirements_gettext"></a><h3><code>gettext</code> Bibliothek</h3>
<p>
<code>calcurse</code> unterst&uuml;tzt die Internationalisierung
(k&uuml;nftig <em>i18n</em>) durch <code>gettext</code>.
Das bedeutet, dass <code>calcurse</code> mehrsprachige Mitteilungen
erzeugen kann, wenn es mit der entsprechenden Sprachunterst&uuml;tzung
kompiliert wurde (z.B. <em>NLS</em>).
Dennoch, <em>NLS</em> ist optional und wenn keine mehrsprachigen Mitteilungen
gew&uuml;nscht sind, kann diese Eigenschaft abgestellt werden. Einfach die Option <code>--disable-nls</code> dem <code>configure</code> Skript &uuml;bergeben
(siehe Abschnitt <ahref="#install_process">Installationsprozess</a>). <br>
Um zu &uuml;berpr&uuml;fen, ob <code>gettext</code> auf dem System installiert ist,
kann man nach der <code>libintl.h</code> Datei suchen:
<pre>
locate libintl.h
</pre>
Wenn diese Datei nicht gefunden wird, kann <code>gettext</code> von folgender URL herunter geladen werden:<br>
<pre>
http://ftp.gnu.org/pub/gnu/gettext/
</pre>
<u>Beachte:</u> Auch wenn <code>libintl.h</code> auf dem System
gefunden wurde, kann es erforderlich sein den Pfad dieser Datei w&auml;hrend des <ahref="#install_process"> Installationsprozesses</a> anzugeben. Die entsprechende
Option f&uuml;r das <code>configure</code> Skript lautet dann <code>--with-libintl-prefix</code>.
Das <code>configure</code> Skript wird nat&uuml;rlich vorzeitig abbrechen, wenn die dazugeh&ouml;rige Bibliothek nicht gefunden wurde.
<a name="install_process"></a><h2>Installationsprozess</h2>
<p>
Als erstes m&uuml;ssen die Dateien entpackt werden:
<pre>
tar zxvf calcurse-1.4.tar.gz
</pre>
Wenn Sie die Voraussetzungen erf&uuml;llen und das Archiv entpackt
vorliegen, sind nur noch die drei &uuml;blichen Schritte erforderlich:
<OL>
<li><code>./configure</code>
<li><code>make</code>
<li><code>make install</code> (mit Root-Rechten)
</OL>
Benutzen Sie <code>./configure --help</code> um eine Liste mit den
verf&uuml;gbaren Optionen zu erhalten.
<a name="basics"></a><h1><code>calcurse</code> Grundlagen</h1>
<a name="basics_invocation"></a><h2>Programmaufruf</h2>
<a name="basics_invocation_commandline"></a><h3>Programmargumente</h3>
<p>
<code>Calcurse</code> kann mit folgenden Optionen aufgerufen werden:
<dl compact>
<dt><code>-a</code>
<dd>Gibt die Termine eines anzugebenen Tags aus.<br>
<u>Beachte:</u> Die Kalender-Datei, von der die Termine gelesen
werden sollen, kann mit mithilfe der -c Option angegeben werden.<br>
<br>
<dt><code>-c</code>
<dd>
Gibt die zu lesende Kalender-Datei an.<br>
Der Standardkalender ist <code>~/.calcurse/apts</code> (beachte auch
Abschnitt: <a href="#basics_files"><code>calcurse</code> Dateien</a>).<br>
<br>
<dt><code>-d</code>
<dd>
Gibt die Termine eines angegebenen Datums aus oder gibt alle Termine
der anzugebenen nachfolgenden Tage aus. Somit sind zwei m&ouml;gliche
Formate m&ouml;glich:
<ul>
<li>Datum: 'MM/TT/JJJJ' (Monat, Tag, Jahr).
<li>Anzahl der Tage: 'n'.
</ul>
Im ersten Fall wird eine Liste mit allen Terminen des anzugebenen
Datums ausgegeben. Der zweite Fall listet alle folgenden Termine auf,
die in den n&auml;chsten 'n' Tagen zu erledigen sind.<br>
Beispiel: die Eingabe <code>calcurse -d 3</code> gibt alle Termine von
heute, morgen und &uuml;bermorgen aus.<br>
<br>
<dt><code>-h</code>
<dd>
Gibt eine Hilfe zu den Unterst&uuml;tzten Optionen aus.<br>
<br>
<dt><code>-t</code>
<dd>
Gibt die 'todo' Liste aus.<br>
<br>
<dt><code>-v</code>
<dd>
Gibt die aktuelle Version von Calcurse aus.
</dl>
<a name="basics_invocation_variable"></a><h3>Umgebungsvariable f&uuml;r i18n</h3>
<p>
<code>calcurse</code> kann mit einer Unterst&uuml;tzung f&uuml;r die Muttersprache
kompiliert werden (siehe <a
href="#install_requirements_gettext"><code>gettext</code>
Bibliothek</a>). Wenn Meldungen in der Muttersprache gew&uuml;nscht sind,
sollte zunacht gepr&uuml;ft werden, ob die <code>po/LINGUAS</code> Datei verf&uuml;gbar ist.
Diese Datei zeigt alle verf&uuml;gbaren Sprachen durch
zweibuchstabige K&uuml;rzel an (z. B., <em>fr</em>
steht f&uuml;r franz&ouml;sisch). Wenn Ihre Sprache nicht aufgef&uuml;hrt ist, w&auml;re es
nat&uuml;rlich grossartig, wenn Sie sich an der &Uuml;bersetzung von <code>calcurse</code>
in andere Sprachen beteiligen k&ouml;nnten (siehe Abschnitt <a href="#contribute">Wie kann
ich einen Beitrag leisten?</a>).<br>
Wenn Ihre Sprache verf&uuml;gbar ist, starten Sie
<code>calcurse</code> mit dem folgenden Aufruf:
<pre>
LC_ALL=fr_FR calcurse
</pre>
wobei <em>fr_FR</em> der Name der gew&uuml;nschten Spracheausgabe ist und durch
das K&uuml;rzel Ihrer Sprache ersetzt werden kann.
<a name="basics_interface"></a><h2>Benutzer-Interface</h2>
<a name="basics_interface_noninteractive"></a><h3>Nicht interaktiver Modus</h3>
<p>
Wird <code>calcurse</code> mit den Optionen:<br>
<code>-a</code>, <code>-d</code>, <code>-t</code>,
<code>-h</code>, <code>-v</code><br>
gestartet, wird das Programm im nicht-interaktiven Modus
ausgef&uuml;hrt. Das bedeutet, dass die gew&uuml;nschten Informationen
ausgegeben werden und das Programm anschlie&szlig;end sofort wieder beendet
wird. So ist es m&ouml;glich mit dem Aufruf <code>calcurse -ta</code> eine
Liste aller Termine eines bestimmten Tages zu erhalten.
<a name="basics_interface_interactive"></a><h3>Interaktiver Modus</h3>
<p>
Ohne Angabe einer Option oder nur die Option -c startet
<code>calcurse</code> im interaktiven Modus. In diesem Modus erh&auml;lt
man ein Interface mit drei unterschiedlichen Panels, die mit der
'TAB'-Taste angesteuert werden k&ouml;nnen, sowie eine Status-Zeile (siehe
unten).
<pre>
Termin-Panel---. .---Kalender-Panel
| |
v v
+------------------------------------++----------------------------+
| Termine || Kalender |
|------------------------------------||----------------------------|
| 6. April 2006 || April 2006 |
| ||Mon Die Mit Don Frei Sam Son|
| || 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 |
| || |
| |+----------------------------+
| |+----------------------------+
| || Zu erledigen | todo-
| ||----------------------------| Panel
| || | |
| || | |
| || |<--.
| || |
| || |
| || |
+------------------------------------++----------------------------+
| ? Hilfe R Neu zeichnen H/L -/+1 Tag G Gehe zu C Einstellung |
| Q Verlassen S Speichern J/K -/+1 Woche Tab <EFBFBD>ndere Ansicht |<-.
+------------------------------------------------------------------+ |
|
Statuszeile
</pre>
Das Kalender-Panel hebt den gew&uuml;nschten Tag farblich hervor, w&auml;hrend
das Termin-Panel die Liste mit Terminen des angesteuerten Tags
anzeigt. Das todo-Panel dagegen zeigt eine Liste mit den zu
erledigenden Aufgaben, die keinem bestimmten Tage zugeordnet sind.
Die letzten beiden Zeilen des Interfaces zeigen die Status-Zeile, die
&uuml;ber die m&ouml;glichen Befehle und ihre entsprechenden Tasten informiert.
<a name="basics_files"></a><h2><code>calcurse</code> Dateien</h2>
<p>
Die folgende Verzeichnisstruktur wird im $HOME-Verzeichnis angelegt,
wenn <code>calcurse</code> das erste mal gestartet wird:
<pre>
$HOME/.calcurse/
|___conf
|___apts
|___todo
</pre>
Die <em>conf</em> Datei enth&auml;lt die Informationen zur Benutzerkonfiguration.<br>
Die <em>apts</em> Datei enth&auml;lt alle Termine.<br>
Die <em>todo</em> Datei enth&auml;lt die todo-Liste.
<a name="basics_help"></a><h2>Online Hilfe</h2>
<p>
Das integrierte Hilfe-System kann jederzeit mit '?' aufgerufen
werden. Informationen &uuml;ber bestimmte Befehle k&ouml;nnen mit der
entsprechenden Taste des Befehls aufgerufen werden.
<a name="options"></a><h1>Optionen</h1>
<p>
Alle <code>calcurse</code> Parameter sind im Konfigurationsmen&uuml;
einstellbar. Dr&uuml;cke Sie dazu die 'C'-Taste. Ein weiteres Untermen&uuml;
erscheint mit drei weiteren Auswahlpunkten: Ein erneutes Bet&auml;tigen der
'C'-Taste f&uuml;hrt zur Farbeinstellung, die 'L'-Taste erlaubt die Auswahl
eines anderen Layouts, das heisst die Anordnung der drei Panel kann
hier ge&auml;ndert werden. Mit der 'G'-Taste gelangt man zur Auswahl
allgemeiner Optionen.
<a name="options_general"></a><h1>Allgemeine Optionen</h1>
<p>
Diese Optionen steuert das allgemeine Verhalten von
<code>calcurse</code> wie im folgenden beschrieben wird:
<ul>
<li><code>auto_save</code> (Voreinstellung: <em>yes</em>)<br>
Diese Option erlaubt es die Benutzerdaten automatisch beim Verlassen
zu speichern. Warnung: Es werden keine Daten gespeichert, wenn die
auto_save Option auf <em>no</em> gesetzt wird. Das bedeutet, dass der Benutzer
's' bet&auml;tigen muss, wenn Eingaben gespeichert werden sollen.<br>
<br>
<li><code>confirm_quit</code> (Vorenstellung: <em>yes</em>)<br>
Wenn diese Option auf <em>yes</em> eingestellt ist, wird nachgefragt, ob das
Programm wirklich beenden werden soll. Ist die Option auf <em>no</em> gestellt,
wird das Programm durch Eingabe von 'Q' ohne Nachfrage sofort beendet.<br>
<br>
<li><code>confirm_delete</code> (Voreinstellung: <em>yes</em>)<br>
Ist diese Option auf <em>yes</em> eingestellt, fragt das Programm nach, ob ein
Eintrag wirklich gel&ouml;scht werden soll (entweder ein todo-Eintrag oder
ein Termin). Ist confirm_delete auf <em>no</em>, wird durch Bet&auml;tigung der
'D'-Taste ohne Nachfrage gel&ouml;scht.<br>
<br>
<li><code>skip_system_dialogs</code> (Voreinstellung: <em>no</em>)<br>
Durch setzen auf <em>yes</em> werden die Dialoge beim Speichern und
Laden umgangen. N&uuml;tzlich, wenn es mal schnell gehen muss.<br>
<br>
<li><code>skip_progress_bar</code> (Voreinstellung: <em>no</em>)<br>
Wenn auf <em>yes</em> gesetzt ist, erscheint der Zustandsbalken nicht
mehr, der gew&ouml;hnlich angezeigt wird, wenn Daten gespeichert
werden. Ist diese Option auf <em>yes</em> eingestellt, erscheint ein
Zustandsbalken zusammen mit dem Namen der zu speichernden Datei (siehe
Abschnitt <a href="#basics_files">Calcurse Dateien</a>).<br>
<br>
<li><code>week_begins_on_monday</code> (Voreinstellung: <em>yes</em>)<br>
Es ist m<>glich zwischen Montag und Sonntag als ersten Wochentag zu w<>hlen.
Wird die Option <em>week_begins_on_monday</em> auf yes gesetzt, erscheint Montag als
erster Wochentag. Ist diese Option auf no gesetzt, beginnt die Woche mit Sonntag.
</ul>
<a name="options_colors"></a><h2>Textfarben einstellen</h2>
<p>
Die verwendeten Textfarben k&ouml;nnen nach eigenen Vorlieben eingestellt
werden. Durch Bet&auml;tigung der entsprechenden Taste kann die gew&uuml;nschte
Farbkombination ausgew&auml;hlt werden. Die gew&auml;hlte Farbkombination werden
dem Rahmen, dem Titel und der Status-Zeilen zugeordnet.
Eine schwarz/weiss Kombination ist ebenfalls verf&uuml;gbar, um Terminals ohne Farben zu unterst&uuml;tzen.<br>
<u>Beachte:</u>
<ul>
<li> In Abh&auml;ngigkeit des verwendeten Terminals und dem zugeordneten Wert der Umgebungsvariable <code>$TERM</code> werden Farben unterst&uuml;tzt oder nicht.
Eine Fehlermeldung erscheint, wenn versucht wird die Farben zu &auml;ndern obwohl
das Terminal keine Farben unterst&uuml;tzt.<br>
<br>
<li> Wenn sie sicher sind, dass ihr Terminal Farben darstellen kann aber keine Farben
in <code>calcurse</code> erscheinen, versuchen sie die <code>$TERM</code> Variable
auf einen anderen Wert zu setzen (wie etwa <em>xterm-xfree86</em>).
</ul>
<a name="options_layout"></a><h2>Layout einstellen</h2>
<p>
Das Layout bezieht sich auf die Positionen der einzelnen Panel. Das
Standard-Layout zeigt das Kalender-Panel in der oberen linken Ecke des
Terminals, das todo-Panel befindet sich in der unteren rechten Ecke
und das Termin-Panel auf der linken Seite des Terminals (siehe die
Zeichnung im Abschnitt <a
href="#basics_interface_interactive">Interaktiver Modus</a>, die das
Beispiel des Standard-Layouts zeigt).<br>
Durch Auswahl eines anderen Layouts kann der Benutzer das
Erscheinungsbild von <code>calcurse</code> nach seinen W&uuml;nschen
anpassen.
<a name="known_bugs"></a><h1>Bekannte Fehler</h1>
<p>
Es kommt vor, dass W&ouml;rter bei Verwendung der schwarz/weiss Farbkombination
falsch hervorgehoben werden, wenn die <code>$TERM</code>
Variable auf <em>xterm-color</em> gesetzt ist.
Um diesen Fehler zu umgehen, sollte nach Aussage von
Thomas E. Dickey (zust&auml;ndig f&uuml;r das <code>xterm</code>),
<em>xterm-xfree86</em> an Stelle f&uuml;r <em>xterm-color</em> als
<code>$TERM</code> Variable gesetzt werden:<br>
<blockquote>
"The xterm-color value for $TERM is a bad choice for XFree86 xterm
because it is commonly used for a terminfo entry which happens to
not support bce. Use the xterm-xfree86 entry which is distributed
with XFree86 xterm (or the similar one distributed with ncurses)."
</blockquote>
<a name="bugs"></a><h1>Mitteilung von Fehlern und Anregungen</h1>
<p>
Bitte mailt Fehler oder auch Anregungen an:
<pre>
calcurse@culot.org
</pre>
oder an den Autor:
<pre>
frederic@culot.org
</pre>
<a name="contribute"></a><h1>Wie kann ich einen Beitrag leisten?</h1>
<p>
Wenn Sie gerne dieses Projekt unterst&uuml;tzen m&ouml;chten, k&ouml;nnen Sie mir
zuerst eine kurze R&uuml;ckmeldung geben. Was finden Sie gut an diesem
Programm oder was k&ouml;nnte besser sein. Gibt es vielleicht Programmeigenschaften,
die Sie vermissen? Teilen Sie es mir mit!<br>
Von nun an ist es auch m&ouml;glich sich an der &Uuml;bersetzung der Prgrammmitteilungen
und der Dokumentation von <code>calcurse</code> zu beteiligen. <br>
<br>
<u>Beachte:</u> Jegliche Unterst&uuml;tzung <code>calcurse</code>
in andere Sprachen zu &uuml;bersetzen ist sehr willkommen. Doch bevor Sie beginnen, sollten
Sie eine Mail an <code>calcurse-i18n@culot.org</code> senden, um zu erfahren, ob jemand
die &Uuml;bersetzung in Ihrer Sprache schon begonnen hat.
<a name="contribute_documentation"></a><h2>&Uuml;bersetzung der Dokumentation</h2>
<p>
Das <em>doc/</em> Verzeichnis des Source-Packets enth&auml;lt bereits
&uuml;besetzte Versionen der <code>calcurse</code> Anleitung.
Wenn eine &Uuml;bersetzung in Ihrer Sprache noch nicht vorhanden ist,
w&auml;re es grossartig, wenn Sie eine solche erstellen k&ouml;nnten.<br>
Kopieren Sie dazu eine der vorhandenen Version mit dem Dateinamen
<code>manual_XX.html</code>, wobei <em>XX</em>
das entsprechende K&uuml;rzel Ihrer Sprache ist. Anschliessend &uuml;bersetzen Sie diese
Datei und senden Sie dann an den Author (siehe <a href="#bugs">Mitteilung von Fehlern und Anregungen</a>), so dass Ihre &Uuml;bersetzung f&uuml;r die n&auml;chste Ausgabe von <code>calcurse</code> ins Packet integriert werden kann.
<a name="contribute_i18n"></a><h2><code>calcurse</code> i18n</h2>
<p>
Wie bereits erw&auml;hnt, verwendet <code>calcurse</code> die <code>gettext</code> Utilities um mehrsprachige Programmmitteilungen zu erzeugen.
Dieser Abschnitt informiert dar&uuml;ber, wie Programmmitteilungen in Ihrer Muttersprache
&uuml;bersetzt werden. Dieses howto zur &Uuml;bersetzung von <code>calcurse</code> mit <code>gettext</code> ist nat&uuml;rlich nur ein Einstieg und wohl zu kurz. Um umfassendere Informationen
zu erhalten und sich die weite Welt der Sprach&uuml;bersetzung f&uuml;r Software zu erschliessen,
sollten Sie die Seite der <code>GNU gettext</code> Anleitung besuchen:
<pre>
http://www.gnu.org/software/gettext/manual/
</pre>
Eigentlich sind drei verschiedene Entwickler an der &Uuml;bersetzung beteiligt:
Programmierer, Sprachkoordinator und &Uuml;bersetzer.
Nach einem kurzen &Uuml;berblick, wie so etwas funktioniert, werden anschliessend die
Aufgaben des &Uuml;bersetzers beschrieben.
<a name="contribute_i18n_overview"></a><h3>&Uuml;berblick</h3>
<p>
Um Text in der Muttersprache des Benutzers erscheinen zu lassen, sind zwei Schritte n&ouml;tig:
<em>Internationalisierung</em>
(i18n) und <em>Lokalisierung</em> (l10n).
Bei der i18n geht es darum ein Buch f&uuml;r mehrere Sprachen vorzubereiten.
Das wird vom Programmierer durchgef&uuml;hrt, der die zu &uuml;bersetzenden Texte markiert
und es somit erm&ouml;glicht, dass zur Laufzeit des Programms der Text &uuml;bersetzt erscheint.
Bei der l10n geht es darum, dem i18n markierten Pragramm <code>calcurse</code> die entsprechende &Uuml;bersetzung des Benutzers zukommen zu lassen. Die zuvor vom Programmierer
markierten Texte werden durch das richtige Setzen der Umgebung f&uuml;r <code>calcurse</code> &uuml;bersetzt.<br>
<br>
Also, die zu &uuml;bersetzenden Texte werden zun&auml;chst vom Programmierer in der <code>C</code> Source-Datei markiert und in einer Template
Datei (<em>calcurse.pot</em> - die <em>pot</em> Dateierweiterung bedeutet
<em>portable object template</em>) gesammelt.
Der Inhalt dieser Template Datei wird dann mit den Dateien, die die &Uuml;bersetzungen enthalten
(<em>fr.po</em> f&uuml;r franz&ouml;sisch, hier steht <em>po</em> f&uuml;r <em>portable object</em>,
dieses Format kann man lesen und ver&auml;ndern),
zusammengef&uuml;hrt. Ein &Uuml;bersetzer kann diese Datei dazu &ouml;ffnen, die enthaltenen Texte &uuml;bersetzen
und sie dann an den Programmierer zur&uuml;ck senden.
Wenn das Programm kompiliert wird, erzeugt der Kompiler (aus Gr&uuml;nden der Effizienz)
eine bin&auml;re Version dieser Datei (<em>fr.mo</em> - <em>mo</em> steht f&uuml;r <em>machine
object</em>, dieses Format kann nur von Programmen gelesen werden), die dann installiert wird. <code>calcurse</code> nutzt diese Datei zur Laufzeit, um die
Texte in Abh&auml;ngigkeit zur lokalen Einstellung des Benutzers zu &uuml;bersetzen.
<a name="contribute_i18n_translator"></a><h3>Aufgaben des &Uuml;bersetzers</h3>
<p>
Wenn Sie mit der &Uuml;bersetzung in eine neue Sprache beginnen m&ouml;chte sind hier die Schritte dazu:
<ul>
<li>Finden Sie zun&auml;chst heraus, wie die K&uuml;rzel der Sprache definiert sind.
Beispielsweise sind die K&uuml;rzel f&uuml;r die franz&ouml;sische 'fr_FR', oder einfacher
'fr'. Das ist der Wert, den der Benutzer als Umgebungsvariable <code>LC_ALL</code> f&uuml;r die Programme setzen muss (siehe <a href="#basics_invocation_variable">Umgebungsvariable f&uuml;r i18n</a>).<br>
<br>
<li>Wechseln Sie dann ins <em>po/</em> Verzeichnis und erzeugen Sie eine neue po-Datei aus der Template Datei mit folgendem Aufruf:
<pre>
'msginit -i calcurse.pot -o fr.po -l fr --no-translator'
</pre>
Wenn <code>msginit</code> nicht auf Ihrem System installiert ist, kopieren Sie einfach die Datei <em>calcurse.pot</em> nach <em>fr.po</em> und &auml;nderen Sie den Dateikopf manuel.<br>
Wenn die Datei <em>fr.po</em> erstellt ist, kann mit der eigentlichen &Uuml;bersetzung begonnen werden.
</ul>
<a name="contribute_i18n_po-files"></a><h3>po-Dateien</h3>
<p>
Das Format der po-Dateien ist relativ einfach. po-Dateien bestehen aus f&uuml;nf Teilen:
<ol>
<li><em>location Zeilen:</em> geben an, wo sich der Text befindet (Name der Datei und Zeilennummer).
<li><em>msgid Zeilen:</em> der zu &uuml;bersetzende Text.
<li><em>msgstr Zeilen:</em> der &uuml;bersetzte Text.
<li><em>Zeilen, die mit '#' beginnen:</em> Kommentare (einige mit spezieller Bedeutung,
wie wir weiter unten noch sehen werden).
</ol>
&Uuml;bersetzen Sie die <em>msgid</em> Zeilen und tragen Sie den &uuml;bersetzten Text in die mit
<em>msgstr</em> gekennzeichneten Zeilen ein.
<p>
<u>Einige Anmerkungen:</u>
<ul>
<li><em>Fuzzy Texte</em><br>
Einige Texte sind mit <code>"#, fuzzy"</code>
kommentiert. <code>calcurse</code> nutzt derart markierte Texte nicht.
Ein Text, der als fuzzy markiert ist, deutet entweder darauf hin, dass
der Text schon &uuml;bersetzt wurde, aber die Stelle im Programmcode ver&auml;ndert wurde, oder
aber es handelt sich um einen neuen Text, f&uuml;r welchen <code>gettext</code> eine sog. 'wild guess' vornimmt, also selbst eine &Uuml;bersetzung versucht.
Das beduetet, die &Uuml;bersetzung sollte noch einmal &uuml;berarbeitet werden.
Manchmal wurde der Originaltext ver&auml;ndert, weil ein Rechtschreibfehler korrigiert wurde. In einem solchen Fall muss nichts ver&auml;ndert werden.
Manchmal ist die &Uuml;bersetzung aber nicht optimal gelungen und muss dann ver&auml;ndert werden.
Wenn die &Uuml;bersetzung fertig ist, entferne die <code>"#, fuzzy"</code> Zeilen. Die &Uuml;bersetzung
wird wieder in <code>calcurse</code> verwendet.<br>
<br>
<li><em>c-Format Texte and besondere Sequenzen</em><br>
Einige Texte haben folgende Kommentare: <code>"#,
c-format"</code>.
Dieser Kommentar bedeutet, dass Teile dieses Textes eine besondere Bedeutung haben
und dieser Text unver&auml;ndert bleiben werden sollte.
Beispielsweise die %-Sequenzen, wie <code>"%s"</code>.
Diese bedeuten, dass <code>calcurse</code> dort Text einf&uuml;gen wird.
Es ist also wichtig, diese nicht zu ver&auml;ndern.
Ebenso kommen \-Sequenzen vor, wie <code>\n</code> oder
<code>\t</code>. Auch nicht ver&auml;ndern.
Das erste stellt das Zeilenende dar, das zweite eine Tabulation.<br>
<br>
<li><em>&Uuml;bersetzungen k&ouml;nnen in Bl&ouml;cke geschrieben werden</em><br>
Wenn Zeilen zu lang werden, k&ouml;nnen sie auf mehrere verteilt werden:
<pre>
msgid ""
"some very long line"
"another line"
</pre>
<li><em>po-Dateikopf</em><br>
Ganz zu Anfang einer po-Datei befindet sich der Kopf. Dort stehen einige Informationen.
Die wichtigste Information dort ist der Zeichensatz. Er sollte diesem &auml;hnlich sein
<pre>
"Content-Type: text/plain; charset=utf-8\n"
</pre>
Auch das &Uuml;bersetzer-Feld sollte ausgef&uuml;llt sein, damit andere potentielle Mitstreiter, die sich an der &Uuml;bersetzung beteiligen wollen, Kontakt mit Ihnen aufnehmen k&ouml;nnen. Ebenso k&ouml;nnen von anderen entdeckte Fehler an den &Uuml;bersetzer gemeldet werden. Man kann entweder seinen Namen oder seine Mail dort angeben:
<pre>
"Last-Translator: Frederic Culot <frederic@culot.org>\n"
</pre>
<li><em>Kommentare</em><br>
Das Hinzuf&uuml;gen von Kommentaren (Zeilen beginnen mit dem '#' Zeichen) ist eine gute M&ouml;glichkeit
Probleme und &Uuml;bersetzungsschwierigkeiten besser zu l&ouml;sen. Die &Uuml;bersetzungsarbeit wird besser
lesbar.<br>
<br>
<li><em>L&auml;ngen der Texte</em><br>
<code>calcurse</code>
ist ein curses/Konsolen Programm und kann somit von der Gr&ouml;sse des Terminals (Anzahl der
Zeilen) abh&auml;ngen. Dies sollte bei der &Uuml;bersetzung ber&uuml;cksichtigt werden.
H&auml;ufig m&uuml;ssen Texte in eine Zeile passen (Standardl&auml;nge ist 80 Zeichen).
&Uuml;bersetzen Sie nicht blind, versuchen Sie herauszufinden, wo der Text erscheint um die &Uuml;bersetzung richtig anzupassen.
<br>
<br>
<li><em>Ein paar n&uuml;tzliche Programme</em><br>
Das po-Dateiformat ist sehr einfach und kann mit einem Editor ge&auml;ndert werden.
Es gibt aber auch einige spezielle Tools die das Erstellen und &Auml;nder der po-Dateien
vereinfachen:
<ul>
<li><code>poEdit</code> (<a
href="http://www.poedit.org/" target="_blank">
http://www.poedit.org/</a>)
<li><code>KBabel</code> (<a
href="http://i18n.kde.org/tools/kbabel/" target="_blank">
http://i18n.kde.org/tools/kbabel/</a>)
<li><code>GTranslator</code> (<a
href="http://gtranslator.sourceforge.net/" target="_blank">
http://gtranslator.sourceforge.net/</a>)
<li><code>Emacs</code> po mode
<li><code>Vim</code> po mode
</ul>
<br>
<li><em>Zu Schluss noch</em><br>
Ich hoffe es wird Ihnen Freude bereiten, wenn Sie sich an diesem Projekt und
seiner Internationalisierung beteiligen :). Wenn noch Fragen offen sind,
scheuen Sie sich nicht mir eine Mail zu schreiben, <em>frederic@culot.org</em>.
</ul>
<a name="links"></a><h1>Links</h1>
<p>
Dieser Abschnitt enth&auml;lt Links und Angaben, die Sie interessieren
k&ouml;nnten.
<a name="links_homepage"></a><h2><code>calcurse</code> Internetseite</h2>
<p>
Die Internetseite des Projekts <code>calcurse</code> lautet:
<pre>
http://culot.org/calcurse
</pre>
<a name="links_list"></a><h2><code>calcurse</code> Ank&uuml;ndigungsliste</h2>
<p>
Wenn Interesse an Calcurse besteht und Sie gerne &uuml;ber Neuerscheinungen
informiert werden m&ouml;chten, k&ouml;nnen Sie gerne auf eine Liste gesetzt
werden, die Sie per Mail &uuml;ber die neusten Eigenschaften von
<code>calcurse</code> informiert, sobald ein neuer Release
erscheint.<br>
Um sich in die Liste eintragen zu lassen, senden Sie eine Mail an
<ode>calcurse-announce@culot.org</code> mit "subscribe" im Betreff.
<a name="thanks"></a><h1>Danksagungen</h1>
<p>
Folgenden Leuten m&ouml;chte ich gerne f&uuml;r Ihre Unterst&uuml;tzung danken, ohne
die dieses Projekt nicht m&ouml;glich gewesen w&auml;re. Hier ist die Liste
derjenigen, denen ich Danke sagen m&ouml;chte:
<ul>
<li>Alex f&uuml;r die Patches, Hilfen und Erl&auml;uterungen zur <code>C</code> Programmierung.
<li>Gwen f&uuml;rs Testen und Anregungen, wie <code>calcurse</code> verbessert werden kann.
<li>Kevin und Ryan f&uuml;r das Binary-Packet auf Debian.
<li>Steffen f&uuml;r das Binary-Packet auf Archlinux
<li>Alexandre f&uuml;r das Binary-Packet auf Mac OsX.
<li>Joel f&uuml;r sein Kalender-Skript das mich zum Calcurse-Layout inspiriert hat.
<li>Michael Schulz f&uuml;r die deutsche &uuml;bersetzung der Dokumentation
<li>Leute die Programme geschrieben haben, die ich mag und mich inspiriert haben, insbesondere :
<ul>
<li><code>vim</code> f&uuml;r die Befehlssteuerung
<li><code>orpheus</code> und <code>abook</code> f&uuml;r die Dokumentation
<li><code>pine</code> und <code>aptitude</code> f&uuml;r das Text-Benutzer-Interface
</ul>
</ul>
Und zuletzt, vielen vielen Dank an alle <code>calcurse</code>
Benutzer, die mir Ihr Feedback mitgeteilt haben.
<hr>
<small><em>
Copyright (c) 2004-2006 Fr&eacute;d&eacute;ric Culot<br>
German translation by Michael Schulz <code>&lt;bloodshower.at.web.dot.de&gt;</code><br>
Calcurse version 1.4 - Last change: May 07, 2006
<em></small>
</body>
</html>

783
doc/manual_en.html Executable file
View File

@@ -0,0 +1,783 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
/*
* $calcurse: manual_en.html,v 1.1 2006/07/31 21:00:04 culot Exp $
*
* Calcurse - text-based organizer
* Copyright (c) 2004-2006 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>CALCURSE documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="white" text="black" link="blue" vlink="navy">
<h1><code>CALCURSE - text-based organizer</code></h1>
<p>
<p><hr><p>
<h1>Table of Contents</h1>
<ul>
<li><a href="#intro">Introduction</a>
<li><a href="#overview">Overview</a>
<ul>
<li><a href="#overview_history">Creation history</a>
<li><a href="#overview_features">Important features</a>
</ul>
<li><a href="#install">Installation</a>
<ul>
<li><a href="#install_requirements">Requirements</a>
<ul>
<li><a href="#install_requirements_ncurses"><code>ncurses</code> library</a>
<li><a href="#install_requirements_gettext"><code>gettext</code> library</a>
</ul>
<li><a href="#install_process">Install process</a>
</ul>
<li><a href="#basics"><code>calcurse</code> basics</a>
<ul>
<li><a href="#basics_invocation">Invocation</a>
<ul>
<li><a href="#basics_invocation_commandline">Command line arguments</a>
<li><a href="#basics_invocation_variable">Environment variable for i18n</a>
</ul>
<li><a href="#basics_interface">User interface</a>
<ul>
<li><a href="#basics_interface_noninteractive">Non-interactive mode</a>
<li><a href="#basics_interface_interactive">Interactive mode</a>
</ul>
<li><a href="#basics_files"><code>calcurse</code> files</a>
<li><a href="#basics_help">Online help</a>
</ul>
<li><a href="#options">Options</a>
<ul>
<li><a href="#options_general">General options</a>
<li><a href="#options_colors">Color themes</a>
<li><a href="#options_layout">Layout configuration</a>
</ul>
<li><a href="#known_bugs">Known bugs</a>
<li><a href="#bugs">Reporting bugs and feedback</a>
<li><a href="#contribute">How to contribute?</a>
<ul>
<li><a href="#contribute_documentation">Translating documentation</a>
<li><a href="#contribute_i18n"><code>calcurse</code> i18n</a>
<ul>
<li><a href="#contribute_i18n_overview">Overview</a>
<li><a href="#contribute_i18n_translator">Translator tasks</a>
<li><a href="#contribute_i18n_po-files">po-files</a>
</ul>
</ul>
<li><a href="#links">Links</a>
<ul>
<li><a href="#links_homepage"><code>calcurse</code> homepage</a>
<li><a href="#links_list"><code>calcurse</code> announce list</a>
</ul>
<li><a href="#thanks">Thanks</a>
</ul>
<p><hr><p>
<a name="intro"></a><h1>Introduction</a></h1>
<p>
<code>calcurse</code> is a text-based personal organizer
which helps keeping track of events and everyday tasks.
It contains a calendar, a 'todo' list, and puts your
appointments in order. The user interface is configurable,
and one can choose between different color schemes and
layouts. All of the commands are documented within an
online help system.
<a name="overview"></a><h1>Overview</h1>
<a name="overview_history"></a><h2>Creation history</h2>
<p>
I started thinking about this project when I was finishing
my Ph.D. in Astrophysics... It started to be a little hard
to organize myself, and I really needed a good tool to help
me in that difficult task ;)<br>
I like programs which use Text User Interfaces, because they
are simple, fast, portable and efficient, so I thought about
working on coding a simple calendar using such an interface.
Moreover, I wanted to go on learning the <code>C</code>
language, which I only used for a while during my undergraduate
studies. So I thought that would be the good project to start
in order to get organized and to learn about a few
<code>C</code> things !
Unfortunately, I finished my Ph.D. before finishing
<code>calcurse</code>,
but anyway, I still wanted to work on it, hoping it would
be helpful to other people. So here it is...<br>
<br>
But why 'calcurse' anyway ? Well, it is simply the
concatenation of 'CALendar' and 'nCURSEs', the name of the
library used to build the user interface.
<a name="overview_features"></a><h2>Important features</h2>
<p>
<code>Calcurse</code> is multi-platform and intended to be
lightweight, fast and reliable. It is to be used inside a
console or terminal, locally or on a distant machine within
an ssh (or similar) connection. <br>
<code>Calcurse</code> can be run in two different modes :
interactive or non-interactive mode. The first mode allows
oneself to view its own personal organizer almost everywhere,
thanks to the text-based interface.
The second mode permits to easily build reminders just by adding
<code>calcurse</code> with appropriate command line arguments
inside a cron tab or within a shell init script.<br>
Moreover, <code>calcurse</code> was created with the end-user
in mind, and tends to be as friendly as possible. This means
a complete on-line help system, together with having all of
the possible actions displayed at any time inside a status bar.
The user interface is also configurable, and one can choose
between several color and layout combinations.
<a name="install"></a><h1>Installation</h1>
<a name="install_requirements"></a><h2>Requirements</h2>
<a name="install_requirements_ncurses"></a><h3><code>ncurses</code> library</h3>
<p>
<code>Calcurse</code> requires only a <code>C</code> compiler, such as
<code>cc</code> or <code>gcc</code>, and the <code>ncurses</code>
library.
It would be very surprising not to have a valid <code>ncurses</code>
library already installed on your computer, but if not, you can
find it at the following url :<br>
<pre>
http://ftp.gnu.org/pub/gnu/ncurses/
</pre>
<a name="install_requirements_gettext"></a><h3><code>gettext</code> library</h3>
<p>
<code>calcurse</code> supports internationalization
(<em>i18n</em> hereafter) through the <code>gettext</code>
utilities. This means <code>calcurse</code> can produce
multi-lingual messages if compiled with native language
support (i.e. <em>NLS</em>). However, <em>NLS</em> is
optionnal and if you do not want to have support for
multi-lingual messages, you can disable this feature. This is
done by giving the <code>--disable-nls</code> option to
<code>configure</code> (see section <a
href="#install_process">Install process</a>). <br>
To check if the <code>gettext</code> utilities are
installed on your system, you can search for the
<code>libintl.h</code> header file for instance:
<pre>
locate libintl.h
</pre>
If this header file is not found, then you can obtain the
<code>gettext</code> sources at the following url :<br>
<pre>
http://ftp.gnu.org/pub/gnu/gettext/
</pre>
<u>Note:</u> Even if <code>libintl.h</code> is found on your
system, it can be wise to specify its location during the <a
href="#install_process">install process</a>, by using the
<code>--with-libintl-prefix</code> option with
<code>configure</code>. Indeed, the <code>configure</code>
could fail to locate this library if installed in an uncommon
place.
<a name="install_process"></a><h2>Install process</h2>
<p>
First you need to gunzip and untar the source archive:
<pre>
tar zxvf calcurse-1.4.tar.gz
</pre>
Once you meet the requirements and have extracted the archive,
the install process is quite simple, and follows the standard
three steps process:
<OL>
<li><code>./configure</code>
<li><code>make</code>
<li><code>make install</code> (may require root privilege)
</OL>
Use <code>./configure --help</code> to obtain a list of
possible options.
<a name="basics"></a><h1><code>calcurse</code> basics</h1>
<a name="basics_invocation"></a><h2>Invocation</h2>
<a name="basics_invocation_commandline"></a><h3>Command line arguments</h3>
<p>
<code>calcurse</code> takes the following options from the
command line:
<dl compact>
<dt><code>-a</code>
<dd>
Print the appointments for the current day and exit.<br>
<u>Note:</u> the calendar from which to read the appointments
can be specified using the '-c' flag.<br>
<br>
<dt><code>-c</code>
<dd>
Specify the calendar file to use.<br>
The default calendar is <code>~/.calcurse/apts</code>
(see section <a href="#basics_files"><code>calcurse</code> files</a>).<br>
<br>
<dt><code>-d</code>
<dd>
Print the appointments for the given date or for the
given number of upcoming days, depending on the argument
format. Two possible formats are supported:
<ul>
<li>a date of the form 'mm/dd/yyyy'.
<li>a number 'n'.
</ul>
In the first case, the appointment list for the
specified date will be returned, while in the second
case the appointment list for the 'n' upcoming days
will be returned.<br>
As an example, typing <code>calcurse -d 3</code>
will display your appointments for today, tomorrow,
and the day after tomorrow.<br>
<u>Note:</u> as for the '-a' flag, the calendar from
which to read the appointments can be specified using
the '-c' flag.<br>
<br>
<dt><code>-h</code>
<dd>
Print a short help text describing the supported
command-line options, and exit.<br>
<br>
<dt><code>-t</code>
<dd>
Print the 'todo' list and exit.<br>
<br>
<dt><code>-v</code>
<dd>
Display <code>calcurse</code> version and exit.
</DL>
<a name="basics_invocation_variable"></a><h3>Environment variable for i18n</h3>
<p>
<code>calcurse</code> can be compiled with native language
support (see <a
href="#install_requirements_gettext"><code>gettext</code>
library</a>). Thus, if you wish to have messages displayed
into your native language, first make sure it is available by
looking at the <code>po/LINGUAS</code> file.
This file indicates the set of available languages by showing
the two-letters corresponding code (for exemple, <em>fr</em>
stands for french). If you do not find your language, it
would be greatly appreciated if you could help translating
<code>calcurse</code> (see the <a href="#contribute">How to
contribute?</a> section).<br>
If your language is available, run
<code>calcurse</code> with the following command:
<pre>
LC_ALL=fr_FR calcurse
</pre>
where <em>fr_FR</em> is the locale name in this exemple, but
should be replaced by the locale corresponding to the desired
language.
<a name="basics_interface"></a><h2>User interface</h2>
<a name="basics_interface_noninteractive"></a><h3>Non-interactive mode</h3>
<p>
When called with at least one of the following arguments:<br>
<code>-a</code>, <code>-d</code>, <code>-t</code>,
<code>-h</code>, <code>-v</code><br>
<code>calcurse</code> is started in non-interactive mode.
This means the desired information will be displayed, and
after that, <code>calcurse</code> simply quits and you are
driven back to the shell prompt.<br>
That way, one can add a line such as <code>'calcurse -ta'</code>
in its init config file to display at logon the list of tasks
and appointments scheduled for the current day.
<a name="basics_interface_interactive"></a><h3>Interactive mode</h3>
<p>
When called without any argument or only with the
<code>-c</code> option, <code>calcurse</code> is started in
interactive mode. In this mode, you are shown an interface
containing three different panels which you can browse using
the 'TAB' key, plus a status bar (see figure below).
<pre>
appointment panel---. .---calendar panel
| |
v v
+------------------------------------++----------------------------+
| Appointments || Calendar |
|------------------------------------||----------------------------|
| April 6, 2006 || April 2006 |
| ||Mon Tue Wed Thu Fri Sat Sun |
| || 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 |
| || |
| |+----------------------------+
| |+----------------------------+
| || ToDo | todo
| ||----------------------------| panel
| || | |
| || | |
| || |<--.
| || |
| || |
| || |
+------------------------------------++----------------------------+
| ? Help R Redraw H/L -/+1 Day G GoTo C Config |
| Q Quit S Save J/K -/+1 Week Tab Chg View |<-.
+------------------------------------------------------------------+ |
|
status bar
</pre>
The first panel represents a calendar which allows to highligth
a particular day, the second one contains the list of the events
and appointments on that day, and the last one contains a list
of tasks to do but which are not assigned to any specific day.
In the bottom line of the screen there is a status bar, which
indicates the possible actions and the corresponding keystrokes.
<a name="basics_files"></a><h2><code>calcurse</code> files</h2>
<p>
The following structure is created in your <code>$HOME</code>
directory the first time <code>calcurse</code> is run :
<pre>
$HOME/.calcurse/
|___conf
|___apts
|___todo
</pre>
The <em>conf</em> file contains the user configuration.<br>
The <em>apts</em> file contains all of the events and
user's appointments.<br>
The <em>todo</em> file contains the todo list.
<a name="basics_help"></a><h2>Online help</h2>
<p>
At any time, the built-in help system can be invoked by
pressing the '?' key. Once viewing the help screens,
informations on a specific command can be accessed by pressing
the keystroke corresponding to that command.
<a name="options"></a><h1>Options</h1>
<p>
All of the <code>calcurse</code> parameters are configurable from the
Configuration menu available when pressing 'C'. You are then
driven to a submenu with three possible choices : pressing 'C'
again will lead you to the Color scheme configuration,
pressing 'L' allows you to choose the layout of the main
<code>calcurse</code> screen (in other words, where to put the three
different panels on screen), and last you can choose between
different general options by pressing 'G'.
<a name="options_general"></a><h2>General options</h2>
<p>
These options control <code>calcurse</code> general behavior,
as described below:
<ul>
<li><code>auto_save</code> (default: <em>yes</em>)<br>
This option allows to automatically save the user's data
(if set to <em>yes</em>) when quitting.<br>
<em>warning:</em> No data will be automatically saved if
<code>auto_save</code> is set to <em>no</em>. This means
the user must press 'S' (for saving) in order to retrieve its
modifications.<br>
<br>
<li><code>confirm_quit</code> (default: <em>yes</em>)<br>
If set to <em>yes</em>, confirmation is required before
quitting, otherwise pressing 'Q' will cause <code>calcurse</code>
to quit without prompting for user confirmation.<br>
<br>
<li><code>confirm_delete</code> (default: <em>yes</em>)<br>
If this option is set to <em>yes</em>, pressing 'D' for
deleting an item (either a <em>todo</em>, <em>appointment</em>,
or <em>event</em>), will lead to a prompt asking for user
confirmation before removing the selected item from the list.
Otherwise, no confirmation will be needed before deleting the
item.<br>
<br>
<li><code>skip_system_dialogs</code> (default: <em>no</em>)<br>
Setting this option to <em>yes</em> will result in skipping the
system dialogs related to the saving and loading of data.
This can be useful to speed up the input/output processes.<br>
<br>
<li><code>skip_progress_bar</code> (default: <em>no</em>)<br>
If set to <em>yes</em>, this will cause the disappearing of the
progress bar which is usually shown when saving data to file.
If set to <em>no</em>, this bar will be displayed, together with
the name of the file being saved
(see section <a href="#basics_files"><code>calcurse</code> files</a>).<br>
<br>
<li><code>week_begins_on_monday</code> (default: <em>yes</em>)<br>
One can choose between Monday and Sunday as the first day of the
week. If the option <em>week_begins_on_monday</em> is set to
<em>yes</em>, Monday will be first in the calendar view. Else if
the option is set to <em>no</em>, then Sunday will be the first
day of the week.
</ul>
<a name="options_colors"></a><h2>Color themes</h2>
<p>
<code>calcurse</code> color theme is configurable and is to be
chosen by typing the number corresponding to the desired
theme. This color will then be applied to the panel borders,
to the titles, to the keystrokes, and to general informations
displayed inside status bar. A black and white theme is also
available, in order to support non-color terminals.<br>
<u>Notes:</u>
<ul>
<li> Depending on your terminal type and on the value of the
<code>$TERM</code> environnement variable, color could or
could not be supported. An error message will appear if you
try to change colors whereas your terminal does not support
this feature.<br>
<br>
<li> If you do know your terminal supports colors but could
not get <code>calcurse</code> to display them, try to set your
<code>$TERM</code> variable to another value (such as
<em>xterm-xfree86</em> for instance).
</ul>
<a name="options_layout"></a><h2>Layout configuration</h2>
<p>
The layout corresponds to the position of the panels inside
<code>calcurse</code> screen. The default layout makes the
calendar panel to be displayed on the top-right corner of the
terminal, the todo panel on the bottom-right corner, while the
appointment panel is displayed on the left hand-side of the
screen (see the figure in section
<a href="#basics_interface_interactive">Interactive mode</a>
for an exemple of the default layout).<br>
By choosing another layout in the configuration screen, user
can customize <code>calcurse</code> appearence to best suit
his needs by placing the different panels where needed.
<a name="known_bugs"></a><h1>Known bugs</h1>
<p>
Incorrect highlighting of items appear when using calcurse
black and white theme together with a <code>$TERM</code>
variable set to <em>xterm-color</em>.
To fix this bug, and as advised by Thomas E. Dickey
(<code>xterm</code> maintainer), <em>xterm-xfree86</em>
should be used instead of <em>xterm-color</em> to set
the <code>$TERM</code> variable:<br>
<blockquote>
"The xterm-color value for $TERM is a bad choice for XFree86 xterm
because it is commonly used for a terminfo entry which happens to
not support bce. Use the xterm-xfree86 entry which is distributed
with XFree86 xterm (or the similar one distributed with ncurses)."
</blockquote>
<a name="bugs"></a><h1>Reporting bugs and feedback</h1>
<p>
Please send bug reports and feedback to:
<pre>
calcurse@culot.org
</pre>
or to the author:
<pre>
frederic@culot.org
</pre>
<a name="contribute"></a><h1>How to contribute?</h1>
<p>
If you would like to contribute to the project,
you can first send your feedback on what you like or dislike,
and if there are features you miss in <code>calcurse</code>.
For now on, possible contributions concern the translation
of <code>calcurse</code> messages and documentation. <br>
<br>
<u>Note:</u> Any help in getting <code>calcurse</code>
internationalized would be very welcomed, but before
contributing, send a mail to
<code>calcurse-i18n@culot.org</code> to know if someone
already started the translation process into your language.
<a name="contribute_documentation"></a><h2>Translating documentation</h2>
<p>
The <em>doc/</em> directory of the source package already
contains translated version of <code>calcurse</code>
manual. However, if the manual is not yet available into your
native language, it would be appreciated if you could help
translating it.<br>
To do so, just copy one of the existing manual
file to <code>manual_XX.html</code>, where <em>XX</em>
identifies your language. Then translate this newly created
file and send it to the author (see <a href="#bugs">Reporting
bugs and feeback</a>), so that it can be included in the
next <code>calcurse</code> release.
<a name="contribute_i18n"></a><h2><code>calcurse</code> i18n</h2>
<p>
As already mentioned, <code>gettext</code> utilities are used
by <code>calcurse</code> to produce multi-lingual
messages. This section provides informations about how to
translate those messages into your native language. However,
this howto is deliberately incomplete, focusing on working
with <code>gettext</code> for <code>calcurse</code>
specifically. For more comprehensive informations or to grasp
the Big Picture of Native Language Support, you should refer
to the <code>GNU gettext</code> manual at:
<pre>
http://www.gnu.org/software/gettext/manual/
</pre>
Basically, three different people get involved in the
translation chain: coders, language coordinator, and
translators. After a quick overview of how things work, the
translator tasks will be described hereafter.
<a name="contribute_i18n_overview"></a><h3>Overview</h3>
<p>
To be able to display texts in the native language of the
user, two steps are required: <em>internationalization</em>
(i18n) and <em>localization</em> (l10n). i18n is about making
<code>calcurse</code> support multiple languages. It is
performed by coders, who will mark translatable texts and
provide a way to display them translated at runtime. l10n is
about making the i18n'ed <code>calcurse</code> adapt to the
specific language of the user, ie translating the strings
previously marked by the developers, and setting the
environment correctly for <code>calcurse</code> to use the
result of this translation.<br> <br>
So, translatable strings are first marked by the coders within
the <code>C</code> source files, then gathered in a template
file (<em>calcurse.pot</em> - the <em>pot</em> extension
meaning <em>portable object template</em>). The content of
this template file is then merged with the translation files
for each language (<em>fr.po</em> for french, for instance -
with <em>po</em> standing for <em>portable object</em>, ie
meant to be read and edited by humans). A given translation
team will take this file, translate its strings, and send it
back to the developers. At compilation time, a binary version
of this file (for efficiency reasons) will be produced
(<em>fr.mo</em> - <em>mo</em> stands for <em>machine
object</em>, ie meant to be read by programs), and then
installed. Then <code>calcurse</code> will use this file at
runtime, translating the strings according to the locale
settings of the user.
<a name="contribute_i18n_translator"></a><h3>Translator tasks</h3>
<p>
Suppose someone wants to initiate the translation of a new
language. Here are the steps to follow:
<ul>
<li>First, find out what the locale name is. For instance, for
french, it is 'fr_FR', or simply 'fr'. This is the value the
user will have to put in his <code>LC_ALL</code> environment
variable for software to be translated (see <a
href="#basics_invocation_variable">Environment variable for
i18n</a>).<br>
<br>
<li>Then, go into the <em>po/</em> directory, and create a new po-file
from the template file using the following command:
<pre>
'msginit -i calcurse.pot -o fr.po -l fr --no-translator'
</pre>
If you do not have <code>msginit</code> installed on your
system, simply copy the <em>calcurse.pot</em> file to
<em>fr.po</em> and edit the header by hand.<br>
Now, having this <em>fr.po</em> file, the translator is ready
to begin.
</ul>
<a name="contribute_i18n_po-files"></a><h3>po-files</h3>
<p>
The format of the po-files is quite simple. Indeed, po-files
are made of four things:
<ol>
<li><em>location lines:</em> tells you where the strings can
be seen (name of file and line number), in case you need to
see a bit of context.
<li><em>msgid lines:</em> the strings to translate.
<li><em>msgstr lines:</em> the translated strings.
<li><em>lines prefixed with '#':</em> comments (some with a
special meaning, as we will see below).
</ol>
Basically, all you have to do is fill the <em>msgstr</em>
lines with the translation of the above <em>msgid</em>
line.
<p>
<u>A few notes:</u>
<ul>
<li><em>Fuzzy strings</em><br>
You will meet strings marked with a <code>"#, fuzzy"</code>
comment. <code>calcurse</code> won't use the translations of
such strings until you do something about them. A string
being fuzzy means either that the string has already been
translated but has since been changed in the sources of the
program, or that this is a new string for which
<code>gettext</code> made a 'wild guess' for the translation,
based on other strings in the file. It means you have to
review the translation. Sometimes, the original string has
changed just because a typo has been fixed. In this case, you
won't have to change anything. But sometimes, the translation
will no longer be accurate and needs to be changed. Once you
are done and happy with the translation, just remove the
<code>"#, fuzzy"</code> line, and the translation will be used
again in <code>calcurse</code>.<br>
<br>
<li><em>c-format strings and special sequences</em><br>
Some strings have the following comment: <code>"#,
c-format"</code>. This tells that parts of the string to
translate have a special meaning for the program, and that you
should leave them alone. For instance, %-sequences, like
<code>"%s"</code>. These means that <code>calcurse</code> will
replace them with another string. So it is important it
remains. There are also \-sequences, like <code>\n</code> or
<code>\t</code>. Leave them, too. The former represents an end
of line, the latter a tabulation.<br>
<br>
<li><em>Translations can be wrapped</em><br>
If lines are too long, you can just break them like this:
<pre>
msgid ""
"some very long line"
"another line"
</pre>
<li><em>po-file header</em><br>
At the very beginning of the po-file, the first string form a
header, where various kind of information has to be filled
in. Most important one is the charset. It should resemble
<pre>
"Content-Type: text/plain; charset=utf-8\n"
</pre>
You should also fill in the Last-Translator field, so that
potential contributors can contact you if they want to join
you in the translation team, or have remarks/typo fixes to
give about the translations. You can either just give your
name/nick, or add an email address, for exemple:
<pre>
"Last-Translator: Frederic Culot <frederic@culot.org>\n"
</pre>
<li><em>Comments</em><br>
Adding comments (lines begining with the '#' character) can be
a good way to point out problems or translation difficulties
to proofreaders or other members of your team.<br>
<br>
<li><em>Strings size</em><br>
<code>calcurse</code> is a curses/console program, thus it can
be heavily dependant on the terminal size (number of
columns). You should think about this when translating. Often,
a string must fit into a single line (standard length is 80
characters). Don't translate blindly, try to look where your
string will be displayed to adapt your translation.<br>
<br>
<li><em>A few useful tools</em><br>
The po-file format is very simple, and the file can be edited
with a standard text editor. But if you prefer, there are few
specialized tools you may find convenient for translating:
<ul>
<li><code>poEdit</code> (<a
href="http://www.poedit.org/" target="_blank">
http://www.poedit.org/</a>)
<li><code>KBabel</code> (<a
href="http://i18n.kde.org/tools/kbabel/" target="_blank">
http://i18n.kde.org/tools/kbabel/</a>)
<li><code>GTranslator</code> (<a
href="http://gtranslator.sourceforge.net/" target="_blank">
http://gtranslator.sourceforge.net/</a>)
<li><code>Emacs</code> po mode
<li><code>Vim</code> po mode
</ul>
<br>
<li><em>And finally</em><br>
I hope you'll have fun contributing to a more
internationalized world. :) If you have any more questions,
don't hesitate to contact me at <em>frederic@culot.org</em>.
</ul>
<a name="links"></a><h1>Links</h1>
<p>
This section contains links and references that may be of
interest to you.
<a name="links_homepage"></a><h2><code>calcurse</code> homepage</h2>
<p>
The <code>calcurse</code> homepage can be found at
<pre>
http://culot.org/calcurse
</pre>
<a name="links_list"></a><h2><code>calcurse</code> announce list</h2>
<p>
If you are interested in the project and want to be warned
when a new release comes out, you can subscribe to the
<code>calcurse</code> announce list. In doing so, you will
receive an email as soon as a new feature appears in
<code>calcurse</code>.<br>
To subscribe to this list, send a message to
<code>calcurse-announce@culot.org</code> with "subscribe"
in the subject field.
<a name="thanks"></a><h1>Thanks</a></h1>
<p>
Its time now to thank other people without whom this program
would not exist! So here is a list of contributing persons I
would like to thank :
<ul>
<li>Alex for its patches, help and advices with <code>C</code> programming
<li>Gwen for testing and general discussions about how to
improve <code>calcurse</code>
<li>Kevin and Ryan for packaging <code>calcurse</code> for Debian
<li>Steffen for packaging <code>calcurse</code> for Archlinux
<li>Alexandre for packaging <code>calcurse</code> for Mac OsX
<li>Joel for its calendar script which inspired <code>calcurse</code>
calendar view
<li>Michael Schulz for the german translation of
<code>calcurse</code> manual
<li>people who write softwares I like and which inspired me,
especially :
<ul>
<li><code>vim</code> for the displacement keys
<li><code>orpheus</code> and <code>abook</code> for documentation
<li><code>pine</code> and <code>aptitude</code>
for the text user interface
</ul>
</ul>
<br>
And last, many many thanks to all of the <code>calcurse</code>
users who sent me their feedback.
<hr>
<small><em>
Copyright (c) 2004-2006 Fr&eacute;d&eacute;ric Culot<br>
Calcurse version 1.4 - Last change: May 07, 2006
<em></small>
</body>
</html>

898
doc/manual_fr.html Executable file
View File

@@ -0,0 +1,898 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
/*
* $calcurse: manual_fr.html,v 1.1 2006/07/31 21:00:05 culot Exp $
*
* Calcurse - text-based organizer
* Copyright (c) 2004-2006 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">
</head>
<body bgcolor="white" text="black" link="blue" vlink="navy">
<h1><code>CALCURSE - organiseur en mode texte</code></h1>
<p>
<p><hr><p>
<h1>Table des mati&egrave;res</h1>
<ul>
<li><a href="#intro">Introduction</a>
<li><a href="#overview">Aper&ccedil;u du logiciel</a>
<ul>
<li><a href="#overview_history">Origine de Calcurse</a>
<li><a href="#overview_features">Caract&eacute;ristiques importantes</a>
</ul>
<li><a href="#install">Installation</a>
<ul>
<li><a href="#install_requirements">Pr&eacute;-requis</a>
<ul>
<li><a href="#install_requirements_ncurses">Librairie <code>ncurses</code></a>
<li><a href="#install_requirements_gettext">Librairie <code>gettext</code></a>
</ul>
<li><a href="#install_process">Processus d'installation</a>
</ul>
<li><a href="#basics">Pr&eacute;sentation g&eacute;n&eacute;rale</a>
<ul>
<li><a href="#basics_invocation">Invocation</a>
<ul>
<li><a href="#basics_invocation_commandline">Arguments en ligne de commande</a>
<li><a href="#basics_invocation_variable">Variable d'environnement pour l'i18n</a>
</ul>
<li><a href="#basics_interface">Interface utilisateur</a>
<ul>
<li><a href="#basics_interface_noninteractive">Mode non-interactif</a>
<li><a href="#basics_interface_interactive">Mode Interactif</a>
</ul>
<li><a href="#basics_files">Fichiers</a>
<li><a href="#basics_help">Aide en ligne</a>
</ul>
<li><a href="#options">Options</a>
<ul>
<li><a href="#options_general">Options g&eacute;n&eacute;rales</a>
<li><a href="#options_colors">Th&egrave;mes graphiques</a>
<li><a href="#options_layout">Disposition des panneaux</a>
</ul>
<li><a href="#known_bugs">Bogues connus</a>
<li><a href="#bugs">Rapporter les bogues et commentaires</a>
<li><a href="#contribute">Comment contribuer?</a>
<ul>
<li><a href="#contribute_documentation">Traduction de la documentation</a>
<li><a href="#contribute_i18n">Traduction de <code>calcurse</code></a>
<ul>
<li><a href="#contribute_i18n_overview">Aper&ccedil;u</a>
<li><a href="#contribute_i18n_translator">Etapes de la traducion</a>
<li><a href="#contribute_i18n_po-files">Fichiers <em>po</em></a>
</ul>
</ul>
<li><a href="#links">Liens</a>
<ul>
<li><a href="#links_homepage">Site internet de <code>calcurse</code></a>
<li><a href="#links_list">Liste de diffusion de <code>calcurse</code></a>
</ul>
<li><a href="#thanks">Remerciements</a>
</ul>
<p><hr><p>
<a name="intro"></a><h1>Introduction</a></h1>
<p>
<code>calcurse</code> est un organiseur personnel en mode texte,
qui a pour but de g&eacute;rer les rendez-vous et les t&acirc;ches
&agrave; faire. Il est compos&eacute; d'un calendrier, d'une
liste de t&acirc;ches, et classe les rendez-vous.
L'interface utilisateur est configurable, et l'on peut
choisir entre diff&eacute;rents th&egrave;mes graphiques (couleur et
disposition des &eacute;lements de l'interface).
Toutes les commandes sont document&eacute;es dans un syst&egrave;me
d'aide en ligne.
<a name="overview"></a><h1>Aper&ccedil;u du logiciel</h1>
<a name="overview_history"></a><h2>Origine de Calcurse</h2>
<p>
J'ai commenc&eacute; &agrave; penser &agrave; ce projet &agrave; la fin de mon doctorat
en astrophysique... Je commen&ccedil;ais en effet &agrave; avoir de plus
en plus de mal &agrave; m'organiser, et j'avais vraiment besoin d'un
bon outil pour m'aider dans cette t&acirc;che difficile ;)<br>
D'autre part, j'appr&eacute;cie beaucoup les logiciels qui font
appel &agrave; des Interfaces en Mode Texte, parce que je les trouve
plus simples, plus rapides, plus portables et plus efficaces.
J'ai alors commenc&eacute; &agrave; programmer un calendrier rudimentaire
qui utilisait une interface de ce type.
En plus de cela, je voulais am&eacute;liorer mes connaissances en
<code>C</code>, langage de programmation que je n'avais
utilis&eacute; jusqu'alors que dans le cadre de petits projets pendant
mes &eacute;tudes. J'ai donc pens&eacute; que ce serait une bonne chose de me
lancer dans ce projet, puisque cela me permettrait &agrave; la fois de
mieux m'organiser, et d'apprendre &agrave; mieux programmer en
<code>C</code>!
Malheureusement, j'ai obtenu mon doctorat avant de terminer
<code>calcurse</code>, mais j'ai tout de m&ecirc;me voulu continuer
&agrave; travailler
sur ce projet, en esp&eacute;rant que ce programme serait utile &agrave;
d'autres personnes. Voil&agrave; comment est n&eacute;
<code>calcurse</code>...<br>
<br>
Mais au fait, pourquoi 'calcurse' ? Et bien ce nom provient
simplement de la concat&eacute;nation de 'CALendrier' et de 'nCURSEs',
qui est le nom de la librairie utilis&eacute;e pour construire
l'interface utilisateur.
<a name="overview_features"></a><h2>Caract&eacute;ristiques importantes</h2>
<p>
<code>Calcurse</code> est multi-plateformes et est con&ccedil;u pour
&ecirc;tre l&eacute;ger, rapide et fiable. Il doit &ecirc;tre utilis&eacute; dans un
terminal ou une console, soit localement ou bien sur une
machine distante par l'intermediaire d'une liaison ssh (ou
similaire).<br>
<code>Calcurse</code> peut &ecirc;tre lanc&eacute; dans deux modes diff&eacute;rents:
soit interactif, soit non-interactif. Le premier mode permet
de visualiser son organiseur personnel pratiquement sous
n'importe quel environnement, gr&acirc;ce &agrave; l'interface en mode texte.
Le deuxi&egrave;me mode permet de cr&eacute;er facilement des penses-b&ecirc;te en
ajoutant <code>calcurse</code> avec les arguments appropri&eacute;s dans
la table cron ou dans le script d'initialisation du shell.<br>
De plus, <code>calcurse</code> a &eacute;t&eacute; cr&eacute;&eacute; en prenant en compte
l'utilisateur final &agrave; chaque &eacute;tape de sa conception, c'est-&agrave;-dire
en essayant d'&ecirc;tre le plus intuitif possible. Cela implique
la pr&eacute;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 &eacute;galement configurable, et l'on peut
choisir parmis de nombreuses combinaisons possibles de couleurs
et de positions des fen&ecirc;tres.
<a name="install"></a><h1>Installation</h1>
<a name="install_requirements"></a><h2>Pr&eacute;-requis</h2>
<a name="install_requirements_ncurses"></a><h3>Librairie <code>ncurses</code></h3>
<p>
L'installation de <code>Calcurse</code> ne n&eacute;cessite qu'un
compilateur <code>C</code>, comme <code>cc</code> ou <code>gcc</code>,
et la librairie <code>ncurses</code>.
Il serait tr&egrave;s surprenant que vous n'ayez pas d&eacute;j&agrave; la librairie
<code>ncurses</code> d'install&eacute;e sur votre machine, mais si
c'est le cas, vous pourrez la trouver &agrave; l'adresse suivante :<br>
<pre>
http://ftp.gnu.org/pub/gnu/ncurses/
</pre>
<a name="install_requirements_gettext"></a><h3>Librairie <code>gettext</code></h3>
<p>
<code>calcurse</code> s'aide de la librairie
<code>gettext</code> pour le support de l'internationalisation
(not&eacute; <em>i18n</em> ci-apr&egrave;s).
Cela signifie que <code>calcurse</code> peut fournir des
messages multilingues si il est compil&eacute; avec le support
NLS (<em>Native Language Support</em> - <em>Support de Langage
Natif</em>). Cependant, ce support est optionnel et si vous
n'avez pas besoin de la traduction des messages
affich&eacute;s, vous pouvez s&eacute;sactiver cette option.
La d&eacute;sactivation du support <em>NLS</em> s'effectue en
passant l'option <code>--disable-nls</code> &agrave;
<code>configure</code> (voir la section <a
href="#install_process">Processus d'Installation</a>). <br>
Pour v&eacute;rifier que les utilitaires <code>gettext</code>
sont bien install&eacute;s sur votre systs&egrave;me, vous
pouvez par exemple v&eacute;rifier la pr&eacute;sence du
fichier <code>libintl.h</code> en tapant :
<pre>
locate libintl.h
</pre>
Dans l'&eacute;ventualit&eacute; o&ugrave; ce fichier ne
serait pas trouv&eacute;, vous pouvez obtenir les sources de
<code>gettext</code> &agrave; l'adresse suivante :<br>
<pre>
http://ftp.gnu.org/pub/gnu/gettext/
</pre>
<u>Remarque:</u> M&ecirc;me si <code>libintl.h</code> est bien
localis&eacute; par la commande pr&eacute;c&eacute;dente, il
peut &ecirc;tre utile de sp&eacute;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&eacute; dans un endroit usuel.
<a name="install_process"></a><h2>Processus d'installation</h2>
<p>
Vous devez tout d'abord d&eacute;compresser l'archive source de la
mani&egrave;re suivante :
<pre>
tar zxvf calcurse-1.4.tar.gz
</pre>
Une fois que vous remplissez tous les pr&eacute;-requis n&eacute;cessaires &agrave;
l'installation, le processus de compilation est simple et suit
les trois &eacute;tapes usuelles :
<OL>
<li><code>./configure</code>
<li><code>make</code>
<li><code>make install</code> (peut n&eacute;cessiter les privil&egrave;ges
super-utilisateur)
</OL>
Vous pouvez obtenir la liste des options possibles en tapant
<code>./configure --help</code>.
<a name="basics"></a><h1>Pr&eacute;sentation g&eacute;n&eacute;rale</h1>
<a name="basics_invocation"></a><h2>Invocation</h2>
<a name="basics_invocation_commandline"></a><h3>Arguments en ligne de commande</h3>
<p>
Lors de son appel en ligne de commande, <code>calcurse</code>
accepte les arguments suivants :
<dl compact>
<dt><code>-a</code>
<dd>
Affiche les rendez-vous pour la date du jour, puis quitte.<br>
<u>Remarque:</u> le calendrier &agrave; utiliser peut &ecirc;tre
sp&eacute;cifi&eacute; en utilisant l'option '-c'.<br>
<br>
<dt><code>-c</code>
<dd>
Sp&eacute;cifie le fichier calendrier &agrave; uiliser.<br>
Le calendrier par d&eacute;faut est celui contenu dans
<code>~/.calcurse/apts</code>
(voir la section <a href="#basics_files">Fichiers</a>).<br>
<br>
<dt><code>-d</code>
<dd>
Affiche les rendez-vous pour la date ou pour le nombre de
jours indiqu&eacute;s, suivant le format de l'argument. Deux
formats diff&eacute;rents sont accept&eacute;s :
<ul>
<li>une date sous la forme 'mm/jj/aaaa'.
<li>un nombre 'n'.
</ul>
Dans le premier cas, la liste des rendez-vous pour la
date sp&eacute;cifi&eacute;e sera affich&eacute;e, alors que dans le
deuxi&egrave;me cas, la liste des rendez-vous pour les 'n'
jours &agrave; venir sera retourn&eacute;e.<br>
Par exemple, taper <code>calcurse -d 3</code> fera
s'afficher les rendez-vous pour aujourd'hui, demain
et apr&egrave;s-demain.<br>
<u>Remarque:</u> comme pour l'option '-a', le fichier
contenant le calendrier &agrave; lire peut &ecirc;tre sp&eacute;cifi&eacute; en
utilisant l'option '-c'.<br>
<br>
<dt><code>-h</code>
<dd>
Affiche l'aide d&eacute;crivant les options en ligne de commande,
puis quitte.<br>
<br>
<dt><code>-t</code>
<dd>
Affiche la liste des 'todo', puis quitte.<br>
<br>
<dt><code>-v</code>
<dd>
Affiche la version de <code>calcurse</code>, puis quitte.
</DL>
<a name="basics_invocation_variable"></a><h3>Variable d'environnement
pour l'i18n</h3>
<p>
<code>calcurse</code> peut &ecirc;tre compil&eacute; avec le
support <em>NLS</em> (voir <a
href="#install_requirements_gettext">Librairie
<code>gettext</code></a>). Ainsi, si vous voulez que les
messages affich&eacute;s apparaissent dans votre langue
natale, assurez-vous tout d'abord que celle-ci est
pr&eacute;sente dans le fichier <code>po/LINGUAS</code>.
Ce fichier indique toutes les traductions disponibles par
l'interm&eacute;diaire d'un code de deux lettres (par exemple,
<em>fr</em> repr&eacute;sente le fran&ccedil;ais). Si vous ne
trouvez pas votre langue, il serait tr&egrave;s
appr&eacute;ci&eacute; que vous apportiez votre aide pour
traduire <code>calcurse</code> (voir la partie <a
href="#contribute">Comment contribuer?</a>).<br>
Si votre langue est disponible, lancez <code>calcurse</code>
en utilisant la commande suivante :
<pre>
LC_ALL=fr_FR calcurse
</pre>
o&ugrave; <em>fr_FR</em> doit &ecirc;tre remplac&eacute; par
la <em>locale</em> (code de la langue suivi du code pays)
correspondant &agrave; la traduction voulue.
<a name="basics_interface"></a><h2>Interface utilisateur</h2>
<a name="basics_interface_noninteractive"></a><h3>Mode non-interactif</h3>
<p>
Lorsque il est appel&eacute; avec au moins un des arguments suivants:<br>
<code>-a</code>, <code>-d</code>, <code>-t</code>,
<code>-h</code>, <code>-v</code><br>
<code>calcurse</code> est lanc&eacute; en mode non-interactif.
Cela signifie que l'information demand&eacute;e sera affich&eacute;e,
puis <code>calcurse</code> quittera et vous serez ramen&eacute;
au prompt de l'interpr&eacute;teur de commandes.<br>
De ce mani&egrave;re, il est possible de rajouter une ligne telle
que <code>'calcurse -ta'</code> dans le fichier d'initialisation
de son environnement, afin de faire s'afficher &agrave; chaque
d&eacute;but de session la liste des t&acirc;ches &agrave; faire et des rendez-vous
planifi&eacute;s pour la journ&eacute;e.
<a name="basics_interface_interactive"></a><h3>Mode interactif</h3>
<p>
Lorsqu'il est appel&eacute; sans aucun argument ou uniquement avec
l'option <code>'-c'</code>, <code>calcurse</code> est lanc&eacute;
en mode interactif. Dans ce mode s'affiche une interface qui
contient trois panneaux diff&eacute;rents, qu'il est possible de
s&eacute;lectionner cycliquement en utilisant la touche 'TAB', ainsi
que d'une barre de status (voir la figure ci-dessous).
<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 <20>
| || | faire
| || | |
| || |<--.
| || |
| || |
| || |
+------------------------------------++----------------------------+
| ? Aide R Retracer H/L -+1 Jour G Aller <EFBFBD> C Config |
| Q Quitter S Sauver J/K -+1 Sem. Tab Chg vue |<-.
+------------------------------------------------------------------+ |
|
barre de status
</pre>
Le premier panneau repr&eacute;sente un calendrier qui permet de
s&eacute;lectionner un jour en particulier. Le second panneau contient
une liste d'&eacute;v&egrave;nements et les rendez-vous du jour, et le dernier
contient une liste des t&acirc;ches &agrave; faire, mais qui ne sont pas
assign&eacute;e &agrave; une journ&eacute;e en particulier.
En bas de l'&eacute;cran on retrouve une barre de status, qui indique
les actions possibles en fonction du contexte, ainsi que la
touche qui doit &ecirc;tre press&eacute;e pour effectuer cette action.
<a name="basics_files"></a><h2>Fichiers</h2>
<p>
La structure de fichiers suivante est cr&eacute;&eacute;e dans le r&eacute;pertoire
<code>$HOME</code> de l'utilisateur la premi&egrave;re fois que
<code>calcurse</code> est lanc&eacute; :
<pre>
$HOME/.calcurse/
|___conf
|___apts
|___todo
</pre>
Le fichier <em>conf</em> contient la configuration de l'utilisateur.<br>
Le fichier <em>apts</em> contient tous les &eacute;venements ainsi que
les rendez-vous de l'utilisateur.<br>
Le fichier <em>todo</em> contient la liste des t&acirc;ches &agrave; effectuer.
<a name="basics_help"></a><h2>Aide en ligne</h2>
<p>
A n'importe quel moment, le syst&egrave;me d'aide en ligne peut &ecirc;tre
appel&eacute; en pressant la touche '?'. Une fois rentr&eacute; dans l'aide,
les informations sur une commande sp&eacute;cifique peuvent &ecirc;tre
obtenues en appuyant sur la touche correspondant &agrave; cette
commande.
<a name="options"></a><h1>Options</h1>
<p>
Tous les param&egrave;tres de <code>calcurse</code> sont configurables
&agrave; partir du menu <em>Configuration</em>, accessible en appuyant
sur 'C'. L'utilisateur se voit alors pr&eacute;sent&eacute; un second menu
avec trois choix possibles : appuyer &agrave; nouveau sur 'C' am&egrave;ne
au menu de s&eacute;lection des couleurs de l'interface, appuyer sur
'L' permet de choisir parmis diff&eacute;rents emplacements pour les
panneaux de la fen&ecirc;tre principale de <code>calcurse</code>,
et enfin les options g&eacute;n&eacute;rales peuvent &ecirc;tre fix&eacute;es en pressant
'G'.
<a name="options_general"></a><h2>Options g&eacute;n&eacute;rales</h2>
<p>
Ces options contr&ocirc;lent le comportement g&eacute;n&eacute;ral de
<code>calcurse</code>, comme d&eacute;crit ci-dessous :
<ul>
<li><code>sauvegarde_automatique</code> (valeur par d&eacute;faut: <em>oui</em>)<br>
Cette option permet de sauvegarder automatiquement les
donn&eacute;es de l'utilisateur avant de quitter, si elle est
fix&eacute;e &agrave; <em>oui</em>.<br>
<em>attention:</em> Aucune donn&eacute;e ne sera automatiquement
sauvegard&eacute;e si cette variable est fix&eacute;e &agrave; <em>non</em>.
Cela signifie que l'utilisateur doit appuyer sur 'S'
(pour sauvegarder) pour retrouver ses modifications au prochain
lancement de <code>calcurse</code>.<br>
<br>
<li><code>confirmer_pour_quitter</code> (valeur par d&eacute;faut: <em>oui</em>)<br>
Si cette option est fix&eacute;e &agrave; <em>oui</em>, la confirmation
de l'utilisateur est n&eacute;cessaire avant de pouvoir quitter.
Autrement, appuyer sur 'Q' provoquera l'arr&ecirc;t de
<code>calcurse</code> sans demander confirmation.<br>
<br>
<li><code>confirmer_pour_effacer</code> (valeur par d&eacute;faut: <em>oui</em>)<br>
Si cette option est fix&eacute;e &agrave; <em>oui</em>, appuyer sur 'D'
pour effacer un &eacute;lement (soit une t&acirc;che, un rendez-vous ou bien
un &eacute;venement) provoquera l'apparition d'un message demandant
la confirmation de l'utilisateur avant d'effacer cet &eacute;lement.
Si cette option est fix&eacute;e &agrave; <em>non</em>, aucune confirmation
ne sera demand&eacute;e avant l'effacement d'un &eacute;lement.<br>
<br>
<li><code>masquer_messages_syst&egrave;me</code> (valeur par d&eacute;faut: <em>non</em>)<br>
Fixer cette option &agrave; <em>oui</em> provoque la disparition des
messages relatifs aux enregistrements ou lectures des fichiers
de donn&eacute;es. Ceci peut &ecirc;tre utile pour acc&eacute;lerer les processus
d'entr&eacute;es/sorties.<br>
<br>
<li><code>masquer_barre_progression</code> (valeur par d&eacute;faut: <em>non</em>)<br>
Si elle est fix&eacute;e &agrave; <em>oui</em>, cette option provoque la
disparition de la barre de progression qui est normalement charg&eacute;e
d'indiquer l'&eacute;t&acirc;t d'avancement de l'enregistrement des fichiers
de donn&eacute;es. Si cette option est fix&eacute;e &agrave; <em>non</em>, cette barre
sera affich&eacute;e, en m&ecirc;me temps que le nom du fichier de donn&eacute;es
actuellement en cours d'&eacute;criture
(voir la section <a href="#basics_files">Fichiers</a>).<br>
<br>
<li><code>semaine_commence_lundi</code> (valeur par d&eacute;faut: <em>oui</em>)<br>
Il est possible dans <code>calcurse</code> d'indiquer quel est le premier
jour de la semaine, &agrave; savoir soit le lundi, soit le dimanche.
Si l'option <em>semaine_commence_lundi</em> est fix&eacute;e &agrave;
<em>oui</em>, les semaines du calendrier commenceront le lundi.
Par contre si cette option est fix&eacute;e &agrave; <em>non</em>,
les semaines d&eacute;buteront le dimanche.
</ul>
<a name="options_colors"></a><h2>Th&egrave;mes graphiques</h2>
<p>
Le th&egrave;me graphique de <code>calcurse</code> est
configurable et doit &ecirc;tre choisi en appuyant sur le
num&eacute;ro correspond &agrave; la couleur voulue. Cette
couleur est alors appliqu&eacute;e &agrave; la bordure des
panneaux, aux titres, aux combinaisons de touches, et aux
informations g&eacute;n&eacute;rales affich&eacute;es dans la
barre de status. Un th&egrave;me en noir et blanc est
&eacute;galement disponible, afin de supporter les terminaux
monochromes.<br>
<u>Remarques:</u>
<ul>
<li> Suivant le type de terminal que vous utilisez, et suivant
la valeur de la variable d'environnement <code>$TERM</code>,
la couleur peut &ecirc;tre support&eacute;e ou non. Un message
d'erreur appara&icirc;tra si vous essayez d'appliquer un
th&egrave;me graphique en couleur alors que votre terminal est
monochrome.<br>
<br>
<li> 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
<em>xterm-xfree86</em>).
</ul>
<a name="options_layout"></a><h2>Disposition des panneaux</h2>
<p>
La disposition des panneaux &agrave; l'int&eacute;rieur de la fen&ecirc;tre de
<code>calcurse</code> peut &ecirc;tre param&eacute;tr&eacute;e. Par d&eacute;faut, le
panneau contenant le calendrier se situe en haut &agrave; droite de
la fen&ecirc;tre, le panneau contenant la liste des t&acirc;ches est situ&eacute;
en bas &agrave; droite, et le panneau contenant les rendez-vous se
trouve sur la partie gauche de l'&eacute;cran (voir la figure dans la
section <a href="#basics_interface_interactive">Mode interactif</a>
pour un exemple de la disposition par d&eacute;faut).<br>
En choisissant une autre disposition pour les &eacute;l&eacute;ments composants
la fen&ecirc;tre de <code>calcurse</code>, l'utilisateur peut adapter
&agrave; ses besoins l'interface du programme.
<a name="known_bugs"></a><h1>Bogues connus</h1>
<p>
Une coloration incorrecte des objets peut r&eacute;sulter
d'une utilisation conjointe d'un th&egrave;me graphique en
noir et blanc et d'une variable <code>$TERM</code>
fix&eacute;e &agrave; <em>xterm-color</em>. Pour supprimer ce
bogue, et comme le conseille Thomas E. Dickey (le
r&eacute;sponsable du projet <code>xterm</code>),
<em>xterm-xfree86</em> devrait &ecirc;tre assign&eacute;
&agrave; la variable <code>$TERM</code> en lieu et place de
<em>xterm-color</em> :
<blockquote>
"La valeur xterm-color pour la variable $TERM est un mauvais
choix pour les terminaux XFree86 parce qu'elle est couramment
utilis&eacute;e pour les entr&eacute;es terminfo qui ne
supportent pas bce. Utilisez plut&ocirc;t l'entr&eacute;e
xterm-xfree86 qui est distribu&eacute;e avec le xterm
d'XFree86 (ou par celui, similaire, distribu&eacute; avec ncurses)."
</blockquote>
<a name="bugs"></a><h1>Rapporter les bogues et commentaires</h1>
<p>
Merci de renvoyer vos rapports de bogues et vos commentaires &agrave;
l'adresse suivante :
<pre>
calcurse@culot.org
</pre>
ou directement &agrave; l'auteur :
<pre>
frederic@culot.org
</pre>
<a name="contribute"></a><h1>Comment contribuer?</h1>
<p>
Si vous d&eacute;sirez contribuer au projet, vous pouvez tout d'abord
envoyer vos commentaires sur ce qui vous plais ou d&eacute;plais ou sur
ce qui vous manque dans <code>calcurse</code>.<br>
Pour le moment, les contributions possibles concernent
la traduction des messages de <code>calcurse</code> ainsi que
de la documentation.<br>
<br>
<u>Remarque:</u> toute contribution &agrave; la traduction de
<code>calcurse</code> serait tr&egrave;s
appr&eacute;ci&eacute;e, mais avant tout, envoyez un mail
&agrave; <code>calcurse-i18n@culot.org</code> pour savoir si
quelqu'un a d&eacute;j&agrave; commenc&eacute; le processus de
traduction dans votre langue.
<a name="contribute_documentation"></a><h2>Traduction de la documentation</h2>
<p>
Le r&eacute;pertoire <em>doc/</em> du paquet source contient
d&eacute;j&agrave; 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&egrave;s
appr&eacute;ci&eacute;e.<br>
Pour cela, il suffit de copier un des fichiers existant et de
renommer cette copie en <code>manual_XX.html</code>, o&ugrave;
<em>XX</em> repr&eacute;sente votre langue. Il faut ensuite
traduire ce fichier nouvellement cr&eacute;&eacute; et de
l'envoyer &agrave; 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>.
<a name="contribute_i18n"></a><h2>Traduction de <code>calcurse</code></h2>
<p>
Comme mentionn&eacute; plus haut, les utilitaires
<code>gettext</code> sont utilis&eacute;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&eacute;lib&eacute;r&eacute;ment incompl&egrave;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
(<em>NLS</em>), il est pr&eacute;f&eacute;rable de se
r&eacute;f&eacute;rer au manuel de <code>GNU gettext</code>
que l'on peut trouver &agrave; l'adresse suivante :
<pre>
http://www.gnu.org/software/gettext/manual/
</pre>
Pour r&eacute;sumer, trois cat&eacute;gories de personnes sont
impliqu&eacute;es dans la cha&icirc;ne de traduction : les
programmeurs, les coordinateurs de la traduction, et les
traducteurs. Apr&egrave;s un rapide aper&ccedil;u de la
mani&egrave;re de proc&eacute;der pour traduire le logiciel,
nous d&eacute;crirons plus en d&eacute;tails les t&acirc;ches du
traducteur.
<a name="contribute_i18n_overview"></a><h3>Aper&ccedil;u</h3>
<p>
Afin de pouvoir afficher du texte dans la langue natale de
l'utilisateur, deux &eacute;tapes sont n&eacute;cessaires :
l'<em>internationalisation</em> (i18n), et la
<em>localisation</em> (l10n).
l'i18n permet &agrave; <code>calcurse</code> d'&ecirc;tre
multilingues. C'est un processus qui est mis en place par les
programmeurs, qui marquent les phrases &agrave; traduire au
sein du code source, et qui fournissent les outils pour que
ces phrases soient traduites automatiquement pendant le
d&eacute;roulement du programme.
La l10n correspond quant &agrave; elle au processus qui permet
&agrave; <code>calcurse</code> de s'adapter &agrave; la langue
de l'utilisateur. C'est-&agrave;-dire qu'il traduit les
phrases pr&eacute;c&eacute;demment marqu&eacute;e par les
programmeurs, et qu'il fixe correctement les variables
d'environnement afin que <code>calcurse</code> puisse utiliser
les r&eacute;sultats de cette traduction.<br>
<br>
Ainsi, les phrases traduisibles sont tout d'abord
marqu&eacute;es par les programmeurs dans le code source, puis
rassembl&eacute;es dans un fichier r&eacute;f&eacute;rence
(<code>calcurse.pot</code> - l'extension <em>pot</em> signifiant
<em>portable object template</em>, objet portable de
r&eacute;f&eacute;rence). Le contenu de ce fichier est alors
associ&eacute; aux fichiers contenant la traduction pour
chacune des diff&eacute;rentes langues (fichier <em>fr.po</em>
pour le fran&ccedil;ais par exemple - <em>po</em> siginifiant
<em>portable object</em>, objet portable - qui peut &ecirc;tre
lu par les humains). Le traducteur devra se servir de ce
fichier, et traduira les phrases qu'il contient, puis
l'enverra auw d&eacute;veloppeurs. Ensuite, au niveau de la
compilation du programme, une version binaire de ce fichier
sera produite (pour des raisons d'efficacit&eacute;), puis
install&eacute;e. Cette version binaire a pour extension
<em>.mo</em>, o&ugrave; <em>mo</em> signifie <em>machine
object</em> - objet machine, c'est-&agrave;-dire qui peut
&ecirc;tre lu par le programme. Pour finir,
<code>calcurse</code> se servira de ce fichier <em>mo</em>
lors de son execution pour traduire les phrases dans la langue
de l'utilisateur.
<a name="contribute_i18n_translator"></a><h3>Etapes de la traduction</h3>
<p>
Supposons que quelqu'un veuille commencer une traduction dans
une nouvelle langue. Voici les &eacute;tapes &agrave; suivre
pour ce faire :
<ul>
<li>Premi&egrave;rement, trouver quel est le nom de la locale
correspondant &agrave; la langue &agrave; traduire. Par
exemple, pour le fran&ccedil;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>).<br>
<br>
<li>Ensuite, il faut se rendre dans le r&eacute;pertoire
<em>po/</em>, et cr&eacute;er un nouveau fichier <em>.po</em>
&agrave; partir du fichier de r&eacute;f&eacute;rence en
utilisant la commande suivante :
<pre>
'msginit -i calcurse.pot -o fr.po -l fr --no-translator'
</pre>
Si vous n'avez pas <code>msginit</code> install&eacute; sur
votre syst&egrave;me, vous pouvez plus simplement copier
<em>calcurse.pot</em> en <em>fr.po</em> par exemple, et editer
l'en-t&ecirc;te du fichier nouvellement cr&eacute;&eacute;
manuellement.<br>
Maintenant, ayant &agrave; disposition ce fichier
<em>fr.po</em>, la traduction peut commencer.
</ul>
<a name="contribute_i18n_po-files"></a><h3>Fichiers <em>po</em></h3>
<p>
Le format des fichiers <em>po</em> est assez simple. En effet,
ils ne contiennent que quatre &eacute;l&eacute;ments
diff&eacute;rents :
<ol>
<li><em>ligne d'emplacement:</em> renseigne sur l'emplacement
de la phrase dans le fichier source (donne le nom du fichier
ainsi que le num&eacute;ro de ligne), afin de retrouver
simplement le contexte d'o&ugrave; est issu la phrase &agrave;
traduire.
<li><em>ligne msgid:</em> indique la phrase &agrave; traduire.
<li><em>ligne msgstr:</em> ligne indiquant la phrase traduite.
<li><em>lignes commen&ccedil;ant par '#'</em>: indiquent des
commentaires (certains ont une signification sp&eacute;ciale,
comme nous le verrons plus tard).
</ol>
Pour r&eacute;sumer, un traducteur doit simplement remplir les
champs <em>msgstr</em> avec la traduction des lignes
trouv&eacute;es juste au dessus dans la partie <em>msgid</em>.
<p>
<u>Remarques:</u>
<ul>
<li><em>Phrases marqu&eacute;es Fuzzy</em><br>
Vous pourrez rencontrer des phrases commen&ccedil;ant par le
commentaire <code>"#, fuzzy"</code>.
<code>calcurse</code> n'utilisera pas les traductions
commen&ccedil;ant par ce commentaire, &agrave; moins que vous
ne transformiez ces phrases. En effet, le commentaire
<em>fuzzy</em> signifie que la phrase a d&eacute;j&agrave;
&eacute;t&eacute; traduite mais qu'elle a depuis
&eacute;t&eacute; chang&eacute;e dans le source du programme,
ou bien que <em>gettext</em> a effectu&eacute; lui-m&ecirc;me
uen traduction, en se basant sur une phrase similaire. Cela
implique donc que vous devez v&eacute;rifier la traduction.
Parfois, la phrase originale a chang&eacute; suite &agrave;
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 &ecirc;tre valable et
n&eacute;cessitera alors une mise &agrave; jour. Une fois
cette mise &agrave; jour effectu&eacute;e, vous pouvez
supprimer
le commentaire <code>"#, fuzzy"</code>, et la traduction sera
alors &agrave; nouveau prise en compte par <code>calcurse</code>.<br>
<br>
<li><em>Lignes au format C et s&eacute;quences sp&eacute;ciales</em><br>
Certaines phrases ont le commentaire suivant: <code>"#,
c-format"</code>. Cela signifie que des parties du texte
&agrave; traduire ont une signification particuli&egrave;re
pour le programme, et qu'il ne faut pas les modifier. Par
exemple, les s&eacute;quences contenant des <em>%</em>, comme
<code>"%s"</code>. Cela signifie que <code>calcurse</code>
remplacera ces s&eacute;quences par d'autres expressions. Il
est donc important de ne pas les modifier. Il existe
&eacute;galement des s&eacute;quences contenant des
<em>/</em>, comme <code>\n</code> ou <code>\t</code>. Il ne
faut pas les modifier non plus. En effet, la premi&egrave;re
s&eacute;quence repr&eacute;sente une fin de ligne, et la
deuxi&egrave;me une tabulation.<br>
<br>
<li><em>D&eacute;coupage des traductions</em><br>
Si certaines lignes sont trop longues, il est possible de
d&eacute;couper les phrases comme dans l'exemple ci-apr&egrave;s:
<pre>
msgid ""
"une ligne tr<74>s longue"
"une autre ligne"
</pre>
<li><em>En-t&ecirc;te des fichiers po</em><br>
Au tout d&eacute;but du fichier <em>po</em>, la
premi&egrave;re phrase forme un en-t&ecirc;te o&ugrave;
diff&eacute;rentes informations doivent &ecirc;tre
renseign&eacute;es. La plus importante est le jeu de
caract&egrave;s utilis&eacute;. Cette information devrait
ressembler &agrave;
<pre>
"Content-Type: text/plain; charset=utf-8\n"
</pre>
Il est &eacute;galement n&eacute;cessaire de remplir le champ
<em>Last-Translator</em> - <em>Dernier Traducteur</em>, afin
que d'autres traducteurs potentiels puissent se mettre en
relation avec la derni&egrave;re personne ayant
retouch&eacute; le fichier. De cette mani&egrave;re, il est
plus simple de coordonner les efforts de traduction. Il est
possible de rajouter son adresse de courrier
&eacute;lectronique, par exemple:
<pre>
"Last-Translator: Frederic Culot <frederic@culot.org>\n"
</pre>
<li><em>Commentaires</em><br>
Ajouter des commentaires (lignes commen&ccedil;ant par '#')
peut &ecirc;tre un bon moyen de signaler des probl&egrave;mes ou
difficult&eacute;s de traduction aux autres traducteurs.<br>
<br>
<li><em>Taille des phrases</em><br>
<code>calcurse</code> est un programme comportant une
interface console/curses, il d&eacute;pend donc de la taille
du terminal utilis&eacute; (plus particuli&egrave;rement du
nombre de colonnes). Il est important de garder ceci en
m&eacute;moire au moment de la traduction. Souvent, la phrase
&agrave; traduire doit tenir dans une seule ligne (soit en
g&eacute;n&eacute;ral 80 caract&egrave;res). Il faut en tenir
compte, et essayer de voir o&ugrave; la phrase sera
plac&eacute;e pour adapter sa traduction.<br>
<br>
<li><em>Quelques outils utiles</em><br>
Le format des fichiers <em>po</em> est relativement simple, et
ils peuvent &ecirc;tre modifi&eacute;s avec un &eacute;diteur
de texte standard. Mais il est &eacute;galement possible
d'utiliser des outils sp&eacute;cialis&eacute;s pour cette
t&acirc;che:
<ul>
<li><code>poEdit</code> (<a
href="http://www.poedit.org/" target="_blank">
http://www.poedit.org/</a>)
<li><code>KBabel</code> (<a
href="http://i18n.kde.org/tools/kbabel/" target="_blank">
http://i18n.kde.org/tools/kbabel/</a>)
<li><code>GTranslator</code> (<a
href="http://gtranslator.sourceforge.net/" target="_blank">
http://gtranslator.sourceforge.net/</a>)
<li><code>Emacs</code> et son mode <em>po</em>
<li><code>Vim</code> et son mode <em>po</em>
</ul>
<br>
<li><em>Finallement...</em><br>
J'&eacute;sp&egrave;re que vous prendrez plaisir &agrave;
contribuer &agrave; l'internationalisation du monde des
logiciels libres. :) Si vous avez d'autres questions
concernant ce processus, n'h&eacute;sitez pas &agrave; me
contacter &agrave; l'adresse <em>frederic@culot.org</em>.
</ul>
<a name="links"></a><h1>Liens</h1>
<p>
Cette section contient des liens en relation avec
<code>calcurse</code> qui peuvent vous &ecirc;tre utiles.
<a name="links_homepage"></a><h2>Site internet de <code>calcurse</code></h2>
<p>
La page web de <code>calcurse</code> est &agrave; l'adresse suivante :
<pre>
http://culot.org/calcurse
</pre>
<a name="links_list"></a><h2>Liste de diffusion de <code>calcurse</code></h2>
<p>
Si vous &ecirc;tes interess&eacute; par ce projet et que vous souhaitez
&ecirc;tre pr&eacute;venu lorsqu'une nouvelle version est diffus&eacute;e, vous
pouvez souscrire &agrave; la liste de diffusion de <code>calcurse</code>.
De cette mani&egrave;re, vous recevrez un m&eacute;l d&egrave;s qu'une nouvelle
version est disponible.<br>
Pour souscrire &agrave; cette liste, envoyez un message &agrave; l'adresse
<code>calcurse-announce@culot.org</code> avec "subscribe" dans
le sujet du m&eacute;l.
<a name="thanks"></a><h1>Remerciements</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>Gwen pour les tests et les discussions sur la mani&egrave;re d'am&eacute;liorer
<code>calcurse</code>
<li>Kevin et Ryan pour la maintenance du paquet <code>calcurse</code>
pour Debian
<li>Steffen pour la maintenance du paquet <code>calcurse</code> pour
Archlinux
<li>Alexandre pour la maintenance du paquet <code>calcurse</code> pour
Mac OsX
<li>Joel pour son script de calendrier qui a inspir&eacute; celui de
<code>calcurse</code>
<li>Michael Schulz pour la traduction allemande du manuel de <code>calcurse</code>
<li>les personnes qui &eacute;crivent des logiciels que j'appr&eacute;cie et qui
m'ont inspir&eacute; lors de la conception de ce projet, en particulier :
<ul>
<li><code>vim</code> pour les touches de d&eacute;placement
<li><code>orpheus</code> et <code>abook</code> pour la documentation
<li><code>pine</code> et <code>aptitude</code>
pour l'interface en mode texte
</ul>
</ul>
Et pour terminer, un tr&egrave;s grand merci &agrave; tous les utilisateurs de
<code>calcurse</code> qui m'ont fait parvenir leur commentaires.
<hr>
<small><em>
Copyright (c) 2004-2006 Fr&eacute;d&eacute;ric Culot<br>
Calcurse version 1.4 - Derni&egrave;re modification: 7 Mai 2006
<em></small>
</body>
</html>