CALCURSE - textbasierter Terminkalender
calcurse
Grundlagen
calcurse
is a text-based calendar and scheduling application. It helps
keeping track of events, appointments and everyday tasks.
A configurable notification system reminds user of upcoming deadlines,
and the curses based interface can be customized to suit user needs.
All of the commands are documented within an online help system.
calcurse
ist ein textbasierter persönlicher Terminkalender, der
Ihnen bei der Organisation von Terminen und täglichen Aufgaben
hilft. Er beinhaltet einen Kalender sowie eine 'todo'-Liste, die Ihre
Termine ordnen. Die Terminalfarben und das Layout des Benutzer-Interfaces
lassen sich individuell anpassen. Alle Kommandos sind
dokumentiert und können zur Laufzeit jederzeit erfragt werden.
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öten. ;)
Ich mag Programme mit Textinterfaces, weil sie einfach, schnell,
portabel und effizient sind. Also dachte ich darüber nach ein
Programm mit textorientiertem Benutzer-Interface zu entwickeln.
Darüber hinaus wollte ich meine Kenntnisse in der Programmiersprache
C
erweitern. Im Grundstudium kam ich mit C
erstmals in Kontakt. Ich denke es ist eine gute Idee ein solches
Projekt zu beginnen und dabei meine Kenntnisse in C
zu
erweitern! Mein Diplom habe ich nun absolviert, calcurse
ist aber noch immer nicht fertig. Nach wie vor entwickle ich dieses
Programm weiter, in der Hoffnung, dass es für andere von Nutzen sein
wird. Also hier ist es...
Doch warum nenne ich es 'calcurse'? Nun, es ist einfach
zusammengesetzt aus den Wörtern 'CALendar' und 'nCurses', dem Namen
der Bibliothek die für das Benutzer-Interface verwendet wird.
Calcurse
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 Ähnlichem).
Calcurse
kann in zwei unterschiedlichen Modi gestartet
werden: Im interaktiven und im nicht-interaktiven Modus. Der erste Modus
erzeugt Dank des textbasierten Interfaces die Ansicht eines eigenen
persönlichen Terminkalenders. Mit dem zweiten Modus ist es möglich
sich ein Erinnerungstool (Reminder) zu erstellen, wenn
calcurse
mit den entsprechenden Argumenten in 'cron tab'
oder einem 'init script' eingebunden wird.
Darüber hinaus ist calcurse
für Benutzer erstellt worden,
mit der Absicht so benutzerfreundlich wie möglich zu sein. Das
bedeutet, dass eine komplette Onlinehilfe im Programm zu Verfügung
steht, sowie alle mögliche Aktionen jederzeit in einer Statuszeile
ersichtlich sind. Das Benutzer-Interface ist ebenfalls
einstellbar. Ebenso kann man verschiedene Textfarben und Layouts
wählen.
Last, a configurable notification system reminds user of upcoming
appointments.
ncurses
Bibliothek
Calcurse
benötigt einen C-Compiler wie etwa
cc
oder gcc
. Ferner wird die
ncurses-Bibliothek benötigt, die jedoch auf den meisten Unix-Systemen
verfügbar sein sollte. Falls nicht, können Sie sie von folgender URL herunter
laden:
http://ftp.gnu.org/pub/gnu/ncurses/
gettext
Bibliothek
Als erstes müssen die Dateien entpackt werden:
Wird
Wird keine, oder nur Option -c angegeben, startet
Beachte: Einige Handlungen, wie beispielsweise das Verändern oder
Hinzufügen eines Termins, benötigen Texteingaben, die
mithilfe des eingebauten Eingabeeditors eingegeben werden.
Die folgende Verzeichnisstruktur wird im $HOME-Verzeichnis angelegt,
wenn
Das integrierte Hilfe-System kann jederzeit mit '?' aufgerufen
werden. Informationen über bestimmte Befehle können mit der
entsprechenden Taste des Befehls aufgerufen werden.
Sämtliche in
Die im Folgenden beschriebenen Optionen steuern
Die verwendeten Textfarben können nach eigenen Vorlieben eingestellt
werden. Durch Betätigung der entsprechenden Taste kann die gewünschte
Farbkombination ausgewählt werden. Die gewählte Farbkombination werden
dem Rahmen, dem Titel und der Status-Zeile zugewiesen.
Eine schwarz/weiß Kombination ist ebenfalls verfügbar, um
Terminals ohne Farben zu unterstützen.
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 (vgl. die
im Abschnitt Interaktiver Modus
dargestellte Zeichnung des Standard-Layouts).
Folgende Optionen ändern das Verhalten der Benachrichtigungszeile:
Es kommt vor, dass Wörter bei Verwendung der schwarz/weißen
Farbkombination falsch hervorgehoben werden, wenn die
Bitte mailen Sie Fehler oder auch Anregungen an:
Wenn Sie gerne dieses Projekt unterstützen möchten, können Sie mir
zuerst eine kurze Rückmeldung geben. Was finden Sie an diesem Programm gut
oder was könnte besser sein? Gibt es vielleicht Programmeigenschaften, die
Sie vermissen? Teilen Sie sie mir mit!
Das doc/ Verzeichnis des Quellcodearchivs enthält bereits
übersetzte Versionen des
Wie bereits erwähnt, verwendet
Um Text in der Muttersprache des Benutzers erscheinen zu lassen, sind zwei Schritte nötig:
Internationalisierung
(i18n) und Lokalisierung (l10n).
Bei der i18n geht es darum,
Wenn Sie mit der Übersetzung in eine neue Sprache beginnen möchten,
finden Sie hierzu die nötigen Schritte:
Das Format der po-Dateien ist relativ einfach. po-Dateien gliedern sich in lediglich
vier Bestandteile:
Einige Anmerkungen:
Dieser Abschnitt enthält Links und Angaben, die Sie interessieren
könnten.
Die Internetseite des Projekts
Wenn Sie an
Um über neue Programmversionen informiert zu werden, können Sie
auch einfach den folgenden RSS-Feed aufrufen:
Folgenden Leuten möchte ich gerne für Ihre Unterstützung danken, ohne
die dieses Projekt nicht möglich gewesen wäre. Hier ist die Liste
derjenigen, denen ich Danke sagen möchte:
calcurse
unterstützt die Internationalisierung
(künftig i18n) durch gettext
.
Das bedeutet, dass calcurse
mehrsprachige Mitteilungen
erzeugen kann, wenn es mit der entsprechenden Sprachunterstützung
kompiliert wurde (z.B. NLS).
Dennoch, NLS ist optional und wenn keine mehrsprachigen Mitteilungen
gewünscht sind, kann diese Eigenschaft abgestellt werden.
Rufen Sie hierzu einfach das configure
Skript mit der Option
--disable-nls
auf (siehe Abschnitt
Um zu überprüfen, ob gettext
auf dem System installiert ist,
kann man nach der libintl.h
Datei suchen:
locate libintl.h
Wurde diese Datei nicht gefunden, kann gettext
von folgender URL
herunter geladen werden:
http://ftp.gnu.org/pub/gnu/gettext/
Beachte: Auch wenn libintl.h
auf dem System
gefunden wurde, kann es erforderlich sein den Pfad dieser Datei während des
configure
Skript lautet dann
--with-libintl-prefix
.
Das configure
Skript wird natürlich vorzeitig abbrechen, wenn die
dazugehörige Bibliothek nicht gefunden wurde.
Installationsprozess
tar zxvf calcurse-1.8.tar.gz
Ist diese Voraussetzung erfüllt und das Archiv entpackt,
sind nur noch die drei üblichen Schritte erforderlich:
Rufen Sie ./configure
make
make install
(mit Root-Rechten)
./configure --help
auf, um die
verfügbaren Optionen aufgelistet zu bekommen.
calcurse
GrundlagenProgrammaufruf
Programmargumente
Calcurse
kann mit den folgenden Optionen aufgerufen werden.
Es werden sowohl kurze als auch lange Optionsangaben unterstützt.
-a, --appointment
Beachte: Die Kalender-Datei, aus der die Termine gelesen
werden sollen, kann mit mit Hilfe der '-c' Option angegeben werden.
-c <file>, --calendar <file>
Der Standardkalender ist ~/.calcurse/apts
(beachte auch
Abschnitt: calcurse
Dateien).
-d <date|num>, --day <date|num>
Im ersten Fall wird eine Liste mit allen Terminen des angegebenen
Datums ausgegeben. Der zweite Fall listet alle folgenden Termine auf,
die in den nächsten 'n' Tagen zu erledigen sind.
Beispiel: Die Eingabe calcurse -d 3
gibt alle Termine des
heutigen und der beiden folgenden Tage aus.
-h, --help
-n, --next
Die dargestellte Zeitangabe weist darauf hin, in wie viel Stunden
und Minuten der Termin beginnen wird.
Beachte: Die Kalender-Datei, aus der die Termine gelesen
werden sollen, kann mit mit Hilfe der '-c' Option angegeben werden.
-t[num], --todo[=num]
Wird die optionale Angabe num
übergeben, werden nur diejenigen
Aufgaben angezeigt, denen die Prioriät num
zugewiesen wurde.
Beachte: Die angegebene Priorität muss zwischen 1 (höchste) und 9
(niedrigste) liegen.
-v, --version
-x, --export
Note: redirect standard output to export data to a file,
by issuing a command such as:
$ calcurse --export > my_data.ics
Umgebungsvariable für i18n
calcurse
kann mit Unterstützung für verschiedene Sprachen
kompiliert werden (siehe gettext
Bibliothek). Um Meldungen in anderen Sprachen zu erhalten,
sollte zunächst geprüft werden, ob die po/LINGUAS
Datei verfügbar ist.
Diese Datei zeigt alle verfügbaren Sprachen durch
zweibuchstabige Kürzel an (beispielsweise steht fr
für Französisch). Ist Ihre Muttersprache nicht aufgeführt, wäre es
natürlich großartig, wenn Sie sich an der Übersetzung von calcurse
in andere Sprachen beteiligen könnten (siehe Abschnitt Wie kann
ich einen Beitrag leisten?).
Wird Ihre Sprache bereits unterstützt, können Sie
calcurse
mit dem folgenden Aufruf starten:
LC_ALL=fr_FR calcurse
wobei fr_FR der Name der gewünschten Spracheausgabe ist und durch
das Kürzel Ihrer Sprache ersetzt werden kann.
Zusätzlich sollten Sie den verwendeten Zeichensatz angeben, da in einigen Fällen
Sonderzeichen wie etwa Akzente und Umlaute nicht korrekt dargestellt werden.
Auf den der entsprechende Sprache gewünschten Zeichensatz wird am Anfang der po-Datei
hingewiesen. Der Datei fr.po können Sie beispielsweise entnehmen, dass der Zeichensatz
iso-8859-1 verwendet wird. Sie könnten calcurse
folgendermaßen
aufrufen:
LC_ALL=fr_FR.ISO8859-1 calcurse
Benutzer-Interface
Nicht interaktiver Modus
calcurse
mit den Optionen:
-a
, -d
, -h
,
-n
, -t
, -v
, -x
gestartet, wird das Programm im nicht-interaktiven Modus
ausgeführt. Das bedeutet, dass die gewünschten Informationen
ausgegeben werden und das Programm anschließend sofort wieder beendet
wird. Durch das Einbinden von calcurse --todo --appointment
in eine init config
Datei ist es beispielsweise möglich, sich seine zu erledigenden Aufgaben
und alle Termine des heutigen Tages beim Logon anzeigen zu lassen.
Interaktiver Modus
calcurse
im interaktiven Modus. In diesem Modus erhält
man ein Interface mit drei unterschiedlichen Panels, einer
Benachrichtigungszeile, sowie einer Status-Zeile (siehe unten).
Die einzelnen Panels lassen sich durch die 'TAB'-Taste ansteuern.
Termin-Panel---. .---Kalender-Panel
| |
v v
+------------------------------------++----------------------------+
| Termine || Kalender |
|------------------------------------||----------------------------|
| 6. April 2006 || April 2006 |
| || Mo Di Mi Do Fr Sa So |
| || 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 |
| || |
| |+----------------------------+
| |+----------------------------+
| || Aufgaben | todo-
| ||----------------------------| Panel
| || | |
| || | |
| || |<--.
| || |
+------------------------------------++----------------------------+
|---[ So 2006-10-22 | 10:11:43 ]---(apts)----> 01:20 :: lunch <---|<--.
+------------------------------------------------------------------+ Benachrichtigungszeile
| ? Hilfe S Speichern H/L -/+1 Tag Tab ändere Ansicht |
| Q Beenden G Gehe zu J/K -/+1 Woche C Einstellung |<-.
+------------------------------------------------------------------+ |
|
Statuszeile
Das Kalender-Panel hebt den gewünschten Tag farblich hervor, wä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
über die möglichen Befehle und ihre entsprechenden Tasten
informiert.
Direkt über der Statuszeile befindet sich die Benachrichtigungszeile, die
von links nach rechts gesehen die folgenden Elemente anzeigt: Das aktuelle Datum,
die aktuelle Uhrzeit, die momentan verwendete Kalenderdatei (im obigen Beispiel
die standardmäßig verwendete Kalenderdatei apts [Vergleiche hierzu
den folgenden Abschnitt]) und der nächste Termin, der in den kommenden 24
Stunden ansteht. Im Beispiel ist dies der Termin lunch, der in 1 Stunde und
zwanzig Minuten beginnt.
Geht eine Zeile über die Bildschirmzeile hinaus, wird dies innerhalb
des Editors durch die Zeichen '>', '*', und '<' dargestellt.
Dadurch wird in der letzten Spalten darauf hingewiesen, dass sich
vor, vor und hinter, beziehungsweise nur hinter der momentanten
Position weiterer Text befindet. Gegebenenfalls wird Zeile
horizontal gescrollt.
Darüberhinaus sind einigen Editierfunktionen spezielle Tastenkürzel
zugewiesen, die in der folgenden Übersicht zusammengefasst sind.
Hierbei steht '^' für die Taste 'Strg' beziehungsweise 'Ctrl':
calcurse
Dateiencalcurse
das erste Mal gestartet wird:
$HOME/.calcurse/
|___conf
|___apts
|___todo
Die conf Datei enthält die Informationen zur Benutzerkonfiguration.
Die apts Datei enthält alle Termine.
Die todo Datei enthält die todo-Liste.
Online Hilfe
Optionen
calcurse
veränderbaren Parameter lassen sich
Konfigurationsmenü einstellen. Drücken Sie hierzu die Taste 'C'.
Daraufhin erscheint ein Untermenü mit vier weiteren Wahlmöglichkeiten:
Das erneute Betätigen von 'C' führt Sie zu den Farbeinstellungen und
über 'L' gelangen Sie in ein Untermenü, in dem Sie die Anordnung der
drei Panel ändern können. Drücken Sie 'G' um ins Auswahlmenü
der allgemeinen Optionen zu gelangen. Zu guter Letzt können Sie die
Einstellungen der Benachrichtigungszeile ändern, indem Sie die Taste 'N'
betätigen.
Allgemeine Optionen
calcurse
s
allgemeines Verhalten.
automatisches_Speichern
(Voreinstellung: ja)
Ist diese Option aktiviert, werden die Benutzerdaten automatisch beim
Verlassen gespeichert. Warnung: Beim Verlassen werden keine Daten gespeichert,
wenn automatisches_Speichern auf nein gesetzt wurde. Um Ihre
Eingaben dennoch zu speichern, müssen Sie als Nutzer die Taste 'S'
betätigen.
Beenden_bestätigen
(Voreinstellung: ja)
Wenn ja eingestellt worden ist, wird nachgefragt, ob das
Programm wirklich beenden werden soll. Wurde nein gewählt,
wird das Programm durch die Eingabe von 'Q' ohne Nachfrage sofort beendet.
Löschen_bestätigen
(Voreinstellung: ja)
Wurde ja eingestellt, fragt das Programm nach, ob ein
Eintrag wirklich gelöscht werden soll (entweder ein todo-Eintrag oder
ein Termin). Wurde nein gewählt, wird beim Drücken von 'D'
ohne Nachfrage gelöscht.
Systemdialoge_überspringen
(Voreinstellung: nein)
Durch Setzen auf ja werden die Dialoge beim Speichern und
Laden umgangen. Nützlich, wenn es mal schnell gehen muss.
Fortschrittsanzeige_überspringen
(Voreinstellung: nein)
Wird diese Option aktiviert, wird die beim Speichern von Daten normalerweise
erscheinende Fortschrittsanzeige nicht mehr angezeigt.
Ist diese Option auf nein gesetzt, werden ein
Zustandsbalken und der Name der zu speichernden Datei (siehe
Abschnitt Calcurse Dateien) angezeigt.
Wochenbeginn_am_Montag
(Voreinstellung: ja)
Es ist möglich zwischen Montag und Sonntag als ersten Tag der Woche
zu wählen. Wird die Option auf ja gesetzt, wird Montag
als erster Tag der Woche festgelegt. Ist nein gewählt,
beginnt die Woche sonntags.
Textfarben einstellen
calcurse
color theme can be customized to suit user's
needs. To change the default theme, the configuration page
displays possible choices for foreground and background colors.
Using arrows or calcurse displacement keys to move, and 'X' or space
to select a color, user can preview the theme which will be applied.
It is possible to keep the terminal's default colors by selecting the
corresponding choice in the list.
Beachte:
$TERM
zugewiesenen Werts abhängig.
Es erscheint eine Fehlermeldung, wenn versucht wird die Farbeinstellung
zu ändern, obwohl das Terminal keine Farben unterstützt.
calcurse
aber keine Farben erscheinen, versuchen Sie
die $TERM
Variable auf einen anderen Wert zu setzen
(etwa xterm-xfree86).
Layout einstellen
Durch Auswahl eines anderen Layouts kann der Benutzer das
Erscheinungsbild von calcurse
seinen eigenen Wünschen
entsprechend anpassen.
Benachrichtigungszeile einstellen
Benachrichtigungszeile_anzeigen
(Voreinstellung: ja)
Mit dieser Option legen Sie fest, ob die Benachrichtigungszeile anzeigt werden soll.
Benachrichtigungszeile_Datum
(Voreinstellung: %a %F)
Hiermit kann das Format festgelegt werden, wie das aktuelle Datum innerhalb
der Benachrichtigungszeile angezeigt werden soll.
Die möglichen Formatdefinitionen können Sie sich durch die Eingabe
von man 3 strftime auf der Kommandozeile anzeigen lassen.
Benachrichtigungszeile_Uhrzeit
(Voreinstellung: %T)
Hiermit kann das Format festgelegt werden, wie die aktuelle Uhrzeit
innerhalb der Benachrichtigungszeile angezeigt werden soll.
Die möglichen Formatdefinitionen können Sie sich durch die
Eingabe von man 3 strftime auf der Kommandozeile anzeigen
lassen.
Benachrichtigungszeile_Alarm
(Voreinstellung: 300)
Beginnt ein Termin innerhalb der nächsten, in 'Benachrichtigungszeile_Alarm'
festgelegten Sekunden, wird der Termin innerhalb der Benachrichtigungszeile
blinkend dargestellt. Auf diese Weise wird der Nutzer auf einen baldigen Termin
hingewiesen.
Moreover, the command defined by the notify-bar_command
option will be launched.
notify-bar_command
(default: printf '\a')
This option indicates which command is to be launched when there is an
upcoming appointment flagged as 'important'. This command will be
passed to the user's shell which will interpret it. To know what shell
must be used, the content of the $SHELL
environment variable
is used. If this variable is not set, /bin/sh
is used
instead.
Example: Say the mail
command is available on
the user's system, one can use the following command to get notified by
mail of an upcoming appointment (the appointment description will also
be mentioned in the mail body):
calcurse --next | mail -s "[calcurse] upcoming appointment!" user@host.com
Bekannte Fehler
$TERM
Variable auf xterm-color gesetzt ist.
Um diesen Fehler zu vermeiden, sollte nach Aussage von
Thomas E. Dickey (zuständig für xterm
),
xterm-xfree86 an Stelle für xterm-color als
$TERM
Variable gesetzt werden:
"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)."
Mitteilung von Fehlern und Anregungen
calcurse@culot.org
Oder an den Autor:
frederic@culot.org
Wie kann ich einen Beitrag leisten?
Von nun an ist es auch möglich, sich an der Übersetzung der Programmmitteilungen
und der Dokumentation von calcurse
zu beteiligen.
Beachte: Jegliche Unterstützung calcurse
in andere Sprachen zu übersetzen ist sehr willkommen. Bevor Sie beginnen, sollten
Sie jedoch eine E-Mail an calcurse-i18n@culot.org
senden: So erfahren Sie,
ob jemand die Übersetzung in Ihrer Sprache schon begonnen hat.
Übersetzung der Dokumentation
calcurse
Handbuchs.
Ist eine Übersetzung in Ihrer Sprache noch nicht vorhanden,
wäre es großartig, wenn Sie eine solche erstellen könnten.
Kopieren Sie dazu eine der vorhandenen Version mit dem Dateinamen
manual_XX.html
, wobei XX
das entsprechende Kürzel Ihrer Sprache ist. Übersetzen Sie diese
Datei anschließend und senden Sie sie dann an den Autor
(siehe Mitteilung von Fehlern und Anregungen), damit Ihre
Übersetzung der nächsten calcurse
Version
hinzugefügt werden kann.
calcurse
i18ncalcurse
die gettext
Utilities um mehrsprachige Programmmitteilungen zu erzeugen.
Dieser Abschnitt informiert Sie darüber, wie Programmmitteilungen in Ihre
Muttersprache übersetzt werden. Dieses Howto zur Übersetzung von
calcurse
mittels gettext
ist natürlich nur als Einstieg
gedacht und mit Absicht recht knapp gehalten. Um umfassendere Informationen
zu erhalten und sich die große weite Welt der Internationalisierung von Software zu
erschließen, sollten Sie die Seite der GNU gettext
-Anleitung besuchen:
http://www.gnu.org/software/gettext/manual/
An der Übersetzung sind im Grunde drei verschiedene Entwickler beteiligt:
Programmierer, Sprachkoordinator und Übersetzer.
Nach einem kurzen Überblick, wie so etwas funktioniert, werden anschließend die
Aufgaben des Übersetzers beschrieben.
Überblick
calcurse
auf die Unterstützung mehrerer
Sprachen vorzubereiten. Dies ist die Aufgabe des Programmierers, der die zu
übersetzenden Texte markiert und andererseits sicherstellen muss, dass zur Laufzeit
des Programms der übersetzt Text erscheint.
Bei der l10n geht es darum, dem bereits internationalisierten - also i18n markierten -
calcurse
die entsprechende Übersetzung des Benutzers zur Verfügung
zu stellen.
Gemäß den Umgebungsvariablen ersetzt calcurse
die zuvor vom
Programmierer markierten Texte durch die entsprechenden Übersetzungen.
Die zu übersetzenden Texte werden also zunächst vom Programmierer im
C
-Quellcode markiert und in einem Template (calcurse.pot -
die Dateierweiterung pot steht für portable object template)
gesammelt. Anschließend wird der Inhalt dieses Templates mit den Dateien, die
die Übersetzungen enthalten zusammengeführt (fr.po enthält
beispielsweise die Französische Übersetzung (po steht hierbei
für portable object, also ein von Menschen les- und veränderbares
Dateiformat),
Der Übersetzer kann diese Datei öffnen, die enthaltenen Texte übersetzen
und sie dann an den Programmierer zurück senden.
Wird das Programm compiliert, erzeugt der Compiler (aus Gründen der Effizienz)
eine binäre Version dieser Datei, die später installiert wird (fr.mo
- mo steht für machine object; dieses Format kann nur von
Programmen gelesen werden). calcurse
nutzt diese Datei zur Laufzeit,
um die Texte in Abhängigkeit der lokalen Einstellungen des Benutzers zu
übersetzen.
Aufgaben des Übersetzers
LC_ALL
zuweisen, um die Software übersetzt starten zu können
(siehe Umgebungsvariable für i18n).
'msginit -i calcurse.pot -o fr.po -l fr --no-translator'
Sollte msginit
nicht auf Ihrem System installiert sein, kopieren Sie einfach
die Datei calcurse.pot nach fr.po und änderen Sie den Inhalt am
Anfang der Datei von Hand.
Wurde die Datei fr.po erstellt, kann mit der eigentlichen Übersetzung
begonnen werden.
po-Dateien
Übersetzen Sie die msgid Zeilen und tragen Sie den übersetzten Text in die
sich direkt darunterbefindlichen, mit msgstr gekennzeichneten Zeilen ein.
Einige Texte sind mit "#, fuzzy"
kommentiert. calcurse
nutzt
derart markierte Texte nicht. Ein als fuzzy markierter Text deutet entweder darauf hin, dass
der Text schon übersetzt wurde, aber die Stelle im Programmcode verändert wurde, oder
aber es handelt sich um einen neuen Text, für welchen gettext
eine sog. 'wild
guess' vornimmt, also selbst eine Übersetzung versucht.
Das bedeutet, die Übersetzung sollte noch einmal überarbeitet werden.
Manchmal wurde der Originaltext verändert, weil ein Rechtschreibfehler korrigiert wurde.
In einem solchen Fall muss nichts geändert werden.
Mitunter ist die Übersetzung aber nicht mehr passend oder schlichtweg falsch und muss
abgeändert werden.
Entfernen Sie die "#, fuzzy"
-Zeilen, wenn Sie mit Ihrer Übersetzung fertig
sind, damit calcurse
die übersetzten Zeilen wieder verwendet und anzeigt.
Einige Texte haben folgende Kommentare: "#,
c-format"
.
Dieser Kommentar weist darauf hin, dass Teile dieses Textes eine besondere Bedeutung
haben und dieser Text nicht verändert werden sollte.
Beispielsweise bedeuten die %-Sequenzen, wie "%s"
, dass calcurse
dort Text einfügen wird. Es ist also wichtig, diese nicht zu verändern.
Ebenso kommen \-Sequenzen , wie etwa \n
oder \t
vor. Bitte
nehmen Sie auch hier keine Veränderungen vor. Erstere stellt das Zeilenende dar,
letztere einen Tabulator.
Sollten Zeilen zu lang werden, können sie auf mehrere verteilt werden:
msgid ""
"some very long line"
"another line"
Ganz zu Anfang einer po-Datei befindet sich der Header, der einige Informationen enthält.
Die wichtigste Information ist der Zeichensatz. Er sollte diesem ähnlich sein
"Content-Type: text/plain; charset=utf-8\n"
Auch das Übersetzer-Feld sollte ausgefüllt sein, damit potentielle Mitstreiter,
die sich an der Übersetzung beteiligen wollen, mit Ihnen Kontakt aufnehmen können.
Ebenso können von anderen entdeckte Fehler an den Übersetzer gemeldet werden. Geben
Sie Ihren Namen an, oder tragen Sie Ihre E-Mail-Adresse ein. Zum Beispiel folgendermaßen:
"Last-Translator: Frederic Culot <frederic@culot.org>\n"
Das Hinzufügen von Kommentaren (Zeilen beginnen mit dem '#' Zeichen) ist eine gute
Möglichkeit, um Probleme und Übersetzungsschwierigkeiten anderen besser
mitteilen zu können.
calcurse
ist ein curses/Konsolen Programm und ist somit stark von der
Größe des Terminals (Anzahl der Spalten) abhängig. Dies sollte bei
der Übersetzung berücksichtigt werden. Häufig müssen Texte in
eine einzige Zeile passen (Standardlänge ist 80 Zeichen).
Übersetzen Sie nicht blindlings darauf los! Versuchen Sie herauszufinden, wo der
Text angezeigt wird, um die Übersetzung entsprechend anzupassen.
Das po-Dateiformat ist sehr einfach und kann mit jedem Standard-Editor bearbeitet werden.
Es gibt aber auch einige spezielle Tools die das Erstellen und Änder der po-Dateien
vereinfachen:
poEdit
(
http://www.poedit.org/)
KBabel
(
http://i18n.kde.org/tools/kbabel/)
GTranslator
(
http://gtranslator.sourceforge.net/)
Emacs
po mode
Vim
po mode
Ich hoffe es wird Ihnen Freude bereiten, wenn Sie sich an diesem Projekt und
seiner Internationalisierung beteiligen :). Bitte scheuen Sie sich nicht, mir
eine E-Mail, frederic@culot.org, zu schreiben, sollten noch Fragen offen sein.
Links
calcurse
Internetseitecalcurse
lautet:
http://culot.org/calcurse
calcurse
Ankündigungslistecalcurse
Interesse gefunden haben und Sie gerne
über Neuerscheinungen informiert werden möchten, können Sie sich
gerne in calcurse
s Ankündigungsliste eintragen.
Sobald eine neue Version veröffentlicht wird, werden Sie per E-Mail über
die neusten Eigenschaften von calcurse
informiert
Um sich in die Liste einzutragen, schicken Sie einfach eine E-Mail mit dem Betreff
"subscribe" an calcurse-announce@culot.org
.
calcurse
RSS feed
http://culot.org/calcurse/news_rss.xml
Sobald eine neue calcurse
-Version verfügbar ist wird
der RSS-Feed aktualisiert und enthält eine Beschreibung der neu
hinzugekommenen Programmfunktionen.
Danksagungen
Und zuletzt, vielen vielen Dank an alle C
Programmierung.
calcurse
verbessert werden kann.
vim
für die Befehlssteuerung
orpheus
und abook
für die Dokumentation
pine
und aptitude
für das Text-Benutzer-Interface
calcurse
Benutzer, die mir Ihr Feedback mitgeteilt haben.
Copyright (c) 2004-2007 Frédéric Culot
German translation by Michael Schulz
<bloodshower.at.web.dot.de>
, and Chris.
Calcurse version 1.8 - Last change: April 25, 2007