Ich mag gern Kalender mit persönlichen Bildern. Das ist der Hauptgrund dafür, Kalender vollständig auf dem lokalen Rechner zu pflegen. Auf dem lokalen Rechner sind Änderungen einfach.
Als Voraussetzung braucht man nur die Möglichkeit, Dateien aus dem Web herunterladen zu können (z.B. wget), ein Programm zur Anwendung von XSLT-Transformationen (z.B. xsltproc) und einen nicht zu alten Webbrowser (z.B. Firefox). Sie können die Kalender-Dateien im Browser öffnen und ausdrucken.
Zusätzlich zu der hier beschriebenen Vorlage habe ich auch eine Vorlage für Kalender im Querformat mit quadratischen Bildern.
Um Bilder für den Kalender aufzubereiten, zum Beispiel auf einen quadratischen Ausschnitt zuzuschneiden, benutze ich Gimp.
KALENDER
KALENDER
/KALENDERNAME
.xml
KALENDER
/b
KALENDER
/b/JAHR
KALENDER
/img
Die hier aufgeführten Dateien sind zur Darstellung der Kalender nötig. Weitere Dateien helfen bei der Erstellung der Kalender.
KALENDER
/src/kal.xslt
KALENDER
/src/kal.js
KALENDER
/src/kal.css
KALENDER
/src/prt.css
KALENDER
/src/kal_help.css
KALENDER
/src/kal_help.js
KALENDER
/src/kal_help.xhtml.LANG
KALENDER
/src/local.xml.LANG
Im Unterschied zu den Kalendern der Website steht jede Kalenderdatei für eine Sprache und ein Land. Das Attribut kalenderbilder/@xml:lang
bezeichnet die Sprache (für die Lokalisierungsdatei und die Hilfe) und das Land (für die Kalender-Grunddaten). Wenn der Wert das Zeichen „-
” enthält, hat er die Form
. LANG
-COUNTRY
LANG
steht für die Kennung einer Sprache und COUNTRY
für die Kennung eines Landes. Wenn der Attributwert das Zeichen „-
” nicht enthält, ist er zugleich Kennung des Landes und der Sprache. Ich selbst habe Kalender für Deutschland in deutscher Sprache und für China in chinesischer Sprache.
Das Element t
enthält hier den Titel in der einen Sprache.
Das Element <i>
verweist auf die Bilddatei BILDNAME
</i>img/
.BILDNAME
.jpg
Die s
-Elemente, die in den Web-Kalendern auf ein Bild in einer Bildergeschichte verweisen, gibt es hier nicht.
Als Beispiel kann man eine Kalenderdatei der Website herunterladen, zum Beispiel „Puppen 2018”. Die Transformation src/web2local.xslt
passt die Datei an die lokale Verwendung an:
user:~/kalender$ # Hilfstransformation herunterladen user:~/kalender$ addr=http://kleider.herbaer.de/source/lockal/web2local.xslt user:~/kalender$ tr=src/web2local.xslt user:~/kalender$ wget --output-document=$tr $addr user:~/kalender$ # Kalenderdatei herunterladen (Punkt am Ende!) user:~/kalender$ addr=http://kleider.herbaer.de/kal/2018/puppen.xml. user:~/kalender$ file=puppen_web.xml user:~/kalender$ wget --output-document=$file $addr user:~/kalender$ # lokale Version deutsch user:~/kalender$ xsltproc --stringparam lang de $tr $file > puppen_de.xml user:~/kalender$ # lokale Version chinesisch user:~/kalender$ xsltproc --stringparam lang zh $tr $file > puppen_zh.xml user:~/kalender$ # puppen_web.xml wird noch zum Herunterladen der Bilddateien gebraucht.
Die Datei
enthält die Kalenderdaten mit den Feiertagen des Jahres KALENDER
/b/JAHR
/COUNTRY
.xmlJAHR
für das Land COUNTRY
.
Am einfachsten laden Sie die Grunddaten-Datei von der Website herunter. Dort ist auch beschrieben, wie Sie die Grunddaten-Datei selbst erstellen können. Die verwendeten Ländercodes sind hier aufgelistet. Die Grunddaten für China und Deutschland für 2022 laden Sie so herunter:
user:~/kalender$ # Kalender-Grunddaten 2022 China (Punkt am Ende!) user:~/kalender$ addr=http://kleider.herbaer.de/kal/b/2022/CN.xml. user:~/kalender$ # lokal verwende ich das Sprachkürzel zh auch für das Land China user:~/kalender$ file=b/2022/zh.xml user:~/kalender$ wget --output-document=$file $addr user:~/kalender$ # Kalender-Grunddaten 2022 Deutschland (Punkt am Ende!) user:~/kalender$ addr=http://kleider.herbaer.de/kal/b/2022/DE.xml. user:~/kalender$ file=b/2022/de.xml user:~/kalender$ wget --output-document=$file $addr
Das Verzeichnis img
enthält JPEG-Bilddateien mit der Dateinamensendung .jpg
. Das Seitenverhältnis von Breite zu Höhe ist vorzugsweise 2 : 3.
Das Element <i>
in einer Kalenderdatei BILDNAME
</i>
verweist auf die Bilddatei KALENDER
/KALENDERNAME
.xml
.KALENDER
/img/BILDNAME
.jpg
Um die Bilddateien zu einem Beispiel-Kalender der Website herunterzuladen, laden Sie am einfachsten zunächst die Datei
herunter. Diese liefert die relativen Pfade der Bilder. So laden Sie die Bilddateien des Beispiels herunter:KALENDER
/src/imgids.xslt
user:~/kalender$ # Hilfstransformation herunterladen user:~/kalender$ addr=http://kleider.herbaer.de/source/lockal/imgids.xslt user:~/kalender$ tr=src/imgids.xslt user:~/kalender$ wget --output-document=$tr $addr user:~/kalender$ cd img user:~/kalender/img$ for f in $(xsltproc ../$tr ../puppen_web.xml) > do > wget http://kleider.herbaer.de/$f > done
src
Das Unterverzeichnis src
enthält die oben aufgelisteten Stildateien, die zur Darstellung der Kalender nötig sind.
Die Datei
ist eine vereinfachte Version der entsprechenden Datei der Website-Kalender.KALENDER
/src/kal.xslt
Die Dateien
(Download) und KALENDER
/src/kal.js
(Download) sind die Dateien der Website-Kalender. Sie dienen der Darstellung im Browser.KALENDER
/src/kal.css
Die Datei
(Download) dient der Darstellung des Ausdrucks. In meinem Browser (Firefox ESR 52) musste ich in der Vorgabe-Einstellung der Druckseite die Kopf- und Fußzeilen löschen. Den oberen Seitenrand habe ich auf Null gesetzt. Die Kalenderbilder und die Schrift konnte ich vergrößern, aber dann passte bei einem älteren Browser eine Kalenderseite nicht mehr auf ein A4-Blatt. Probieren Sie verschiedene Schriftgrößen, Bildgrößen und Abstände aus!KALENDER
/src/prt.css
Die Dateien
(Download) und KALENDER
/src/kal_help.js
(Download) dienen zur Darstellung der Hilfe.KALENDER
/src/kal_help.css
Im Unterverzeichnis
liegen auch die sprachabhängigen Dateien (Hilfe, Texte zur Lokalisierung) Es ist das geeignete Verzeichnis für weitere Hilfsdateien.KALENDER
/src
Die Hilfe-Dateien
gibt es in verschiedenen Sprachen. Viele der hier aufgeführten Sprachcodes KALENDER
/src/kal_help.xhtml.LANG
LANG
sind verfügbar. Die Hilfe-Dateien erfordern im Vergleich zu den Website-Versionen kleine Anpassungen. Die Transformation mkhelp.xslt
passt die Website-Version zur Verwendung mit lokalen Kalendern an. So erzeugen Sie die Hilfe-Dateien in Chinesisch und Deutsch:
user:~/kalender/src$ # Hilfstransformation herunterladen user:~/kalender/src$ wget http://kleider.herbaer.de/source/lockal/mkhelp.xslt user:~/kalender/src$ # deutsch user:~/kalender/src$ file=kal_help.de user:~/kalender/src$ addr=http://kleider.herbaer.de/kal/s/kal_help.xhtml.de. user:~/kalender/src$ wget --output-document=$file $addr user:~/kalender/src$ xsltproc mkhelp.xslt $file > kal_help.xhtml.de user:~/kalender/src$ rm $file user:~/kalender/src$ # chinesisch (vereinfacht) user:~/kalender/src$ file=kal_help.zh user:~/kalender/src$ addr=http://kleider.herbaer.de/kal/s/kal_help.xhtml.zh. user:~/kalender/src$ wget --output-document=$file $addr user:~/kalender/src$ xsltproc mkhelp.xslt $file > kal_help.xhtml.zh user:~/kalender/src$ rm $file
Schließlich benötigen Sie für jede Sprache eine Lokalisierungsdatei
. Sie können Sie von der Web-Adresse KALENDER
/src/local.xml.LANG
http://kleider.herbaer.de/local/local.xml.
(mit Punkt am Ende!) herunterladen:LANG
.
user:~/kalender$ # Deutsch (Punkt am Ende!) user:~/kalender$ addr=http://kleider.herbaer.de/local/local.xml.de. user:~/kalender$ file=src/local.xml.de user:~/kalender$ wget --output-document=$file $addr user:~/kalender$ # Chinesisch (Punkt am Ende!) user:~/kalender$ addr=http://kleider.herbaer.de/local/local.xml.zh. user:~/kalender$ file=src/local.xml.zh user:~/kalender$ wget --output-document=$file $addr
Das folgende Skript fasst alle Schritte zusammen, die die nötigen Dateien für Kalender auf Ihrem Rechner erstellen. Es ist ist im Verzeichnis
(als aktuellem Verzeichnis) auszuführen.KALENDER
#!/bin/bash # Hier evtl. das gewünschte Kalenderjahr und/oder Basis-URL einsetzen jahr=$(date +%Y) # jahr=2022 baseurl=http://kleider.herbaer.de # Unterverzeichnisse anlegen for d in src b img do [[ -e $d ]] || mkdir $d done # Dateien, die keine Anpassung erfordern for n in kal.xslt imgids.xslt web2local.xslt mkhelp.xslt do file=src/$n addr=$baseurl/source/lockal/$n wget --output-document=$file $addr done for n in kal.js kal.css prt.css kal_help.js kal_help.css do file=src/$n addr=$baseurl/source/kalender/$n wget --output-document=$file $addr done # Kalender-Grunddaten für Deutschland und China # Lokal benutze ich den Sprachcode auch zur Bezeichnung der Länder # anstelle des Länder-Codes # Kalender-Grunddaten # China: Länderkennung CN, Sprachkennung zh # Deutschland: Länderkennung DE, Sprachkennung de [[ -e b/$jahr ]] || mkdir b/$jahr for code in zh-CN de-DE do lang=${code%-*} country=${code#*-} addr=$baseurl/kal/b/$jahr/$country.xml. file=b/$jahr/$lang.xml wget --output-document=$file $addr done # Sprachabhängige Dateien for lang in de zh do file=src/local.xml.$lang addr=$baseurl/local/local.xml.$lang. wget --output-document=$file $addr addr=$baseurl/kal/s/kal_help.xhtml.$lang. file=src/kal_help.xhtml wget --output-document=$file $addr xsltproc --stringparam lang $lang src/mkhelp.xslt $file > $file.$lang rm $file done # Beispiel-Kalender addr=$baseurl/kal/2018/puppen.xml. name=puppen wget --output-document=$name $addr for lang in de zh do xsltproc --stringparam lang $lang --stringparam year $jahr \ src/web2local.xslt $name > ${name}_${jahr}.$lang.xml done for bild in $(xsltproc src/imgids.xslt $name) do addr=$baseurl/$bild file=img/${bild##*/} wget --output-document=$file $addr done rm $name
Nun können Sie die Kalenderdatei(en) und die Stildateien bearbeiten und eigene Bilder einsetzen. Sie können die Kalenderdaei(en) im Browser öffnen und ausdrucken. Wenn Sie den Kalender als PDF-Datei mein_kalender.pdf
gespeichert haben, können Sie auf Debian-Systemen mit dem Befehl pdftoppm aus dem Paket poppler-utils die einzelnen Kalenderblätter als JPEG-Dateien speichern:
user:~/kalender$ pdftoppm -r 300 -jpeg mein_kalender.pdf mein_kalender