summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Mair <amair.sob@googlemail.com>2006-02-06 15:54:49 +0100
committerAndreas Mair <amair.sob@googlemail.com>2006-02-06 15:54:49 +0100
commit241fa247256050d545d0d4024f260012c20c498d (patch)
tree73d0fb27955a44cf4980d7dc04b2cbd2bf7c091a
parent34e86d2c14b20da21febb89614bbeb4522b481ef (diff)
downloadvdradmin-am-241fa247256050d545d0d4024f260012c20c498d.tar.gz
vdradmin-am-241fa247256050d545d0d4024f260012c20c498d.tar.bz2
2006-02-06: 3.4.3rc2v3.4.3rc2
- For timers that are checked by AutoTimer for start/stop times the broadcast's length must at least match 90% of the original timer's length (excluding before/behind buffers). - Reworked detection of already programmed AutoTimers and made it compatible to VDR v1.3.23+ (Based on suggestions by Jouni Karvo). - Don't crash if illegal characters are used for searching (Reported by foobar42). - Fixed error after progamming a timer if VDRAdmin is accessed through apache (Reported by speed). - If there were quotes in an AutoTimer's pattern and you clicked "test" the pattern got cleared (Reported by The_Pit).
-rw-r--r--HISTORY7
-rw-r--r--locale/de/LC_MESSAGES/vdradmin.mobin60385 -> 60389 bytes
-rw-r--r--locale/es/LC_MESSAGES/vdradmin.mobin58522 -> 58526 bytes
-rw-r--r--locale/fi/LC_MESSAGES/vdradmin.mobin13849 -> 13851 bytes
-rw-r--r--locale/fr/LC_MESSAGES/vdradmin.mobin34108 -> 34108 bytes
-rw-r--r--locale/nl/LC_MESSAGES/vdradmin.mobin41342 -> 58202 bytes
-rw-r--r--po/de.po64
-rw-r--r--po/es.po400
-rw-r--r--po/fi.po46
-rw-r--r--po/fr.po58
-rw-r--r--po/nl.po218
-rw-r--r--po/vdradmin.pot42
-rw-r--r--template/default/default/style.css5
-rw-r--r--template/default/style.css1
-rwxr-xr-xtools/check.sh6
-rw-r--r--tools/lib/String/Escape.pm625
-rwxr-xr-xtools/tmplgettext158
-rwxr-xr-xtools/update-po21
-rwxr-xr-xvdradmind.pl143
19 files changed, 1131 insertions, 663 deletions
diff --git a/HISTORY b/HISTORY
index c0719c1..6fbb5f1 100644
--- a/HISTORY
+++ b/HISTORY
@@ -4,6 +4,13 @@ E-Mail: mail AT andreas DOT vdr-developer DOT org
VDR-Portal: amair
-----------------------------------------------------------
+2006-02-06: 3.4.3rc2
+- For timers that are checked by AutoTimer for start/stop times the broadcast's length must at least match 90% of the original timer's length (excluding before/behind buffers).
+- Reworked detection of already programmed AutoTimers and made it compatible to VDR v1.3.23+ (Based on suggestions by Jouni Karvo).
+- Don't crash if illegal characters are used for searching (Reported by foobar42).
+- Fixed error after progamming a timer if VDRAdmin is accessed through apache (Reported by speed).
+- If there were quotes in an AutoTimer's pattern and you clicked "test" the pattern got cleared (Reported by The_Pit).
+
2006-01-17: 3.4.3rc
- Changed program name to VDRAdmin-AM to make clear it's a fork of VDRAdmin.
- Added "Help" and "About" to navigation bar at the left.
diff --git a/locale/de/LC_MESSAGES/vdradmin.mo b/locale/de/LC_MESSAGES/vdradmin.mo
index 3e34a5a..0b0bfaf 100644
--- a/locale/de/LC_MESSAGES/vdradmin.mo
+++ b/locale/de/LC_MESSAGES/vdradmin.mo
Binary files differ
diff --git a/locale/es/LC_MESSAGES/vdradmin.mo b/locale/es/LC_MESSAGES/vdradmin.mo
index d39b74f..18c7a8d 100644
--- a/locale/es/LC_MESSAGES/vdradmin.mo
+++ b/locale/es/LC_MESSAGES/vdradmin.mo
Binary files differ
diff --git a/locale/fi/LC_MESSAGES/vdradmin.mo b/locale/fi/LC_MESSAGES/vdradmin.mo
index f4bcd62..1eea106 100644
--- a/locale/fi/LC_MESSAGES/vdradmin.mo
+++ b/locale/fi/LC_MESSAGES/vdradmin.mo
Binary files differ
diff --git a/locale/fr/LC_MESSAGES/vdradmin.mo b/locale/fr/LC_MESSAGES/vdradmin.mo
index aa59e36..d7cfc60 100644
--- a/locale/fr/LC_MESSAGES/vdradmin.mo
+++ b/locale/fr/LC_MESSAGES/vdradmin.mo
Binary files differ
diff --git a/locale/nl/LC_MESSAGES/vdradmin.mo b/locale/nl/LC_MESSAGES/vdradmin.mo
index f934cc8..fd2f415 100644
--- a/locale/nl/LC_MESSAGES/vdradmin.mo
+++ b/locale/nl/LC_MESSAGES/vdradmin.mo
Binary files differ
diff --git a/po/de.po b/po/de.po
index faec6f3..6d16527 100644
--- a/po/de.po
+++ b/po/de.po
@@ -15,8 +15,8 @@ msgid ""
msgstr ""
"Project-Id-Version: VDRAdmin-AM-3.4.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-01-18 08:21+0100\n"
-"PO-Revision-Date: 2006-01-17 14:49+0100\n"
+"POT-Creation-Date: 2006-01-30 12:21+0100\n"
+"PO-Revision-Date: 2006-01-19 14:49+0100\n"
"Last-Translator: Andreas Mair <mail@andreas.vdr-developer.org>\n"
"Language-Team: <LL.org>\n"
"MIME-Version: 1.0\n"
@@ -356,7 +356,7 @@ msgstr "Ausgewählte Timer wirklich löschen?"
#: ../template/default/prog_summary.html:7
#: ../template/default/prog_timeline.html:7
-#: ../template/default/navigation.html:30 ../vdradmind.pl:4410
+#: ../template/default/navigation.html:30 ../vdradmind.pl:4439
msgid "What's On Now?"
msgstr "Was läuft jetzt?"
@@ -481,7 +481,7 @@ msgstr "Gast Passwort:"
#: ../template/default/config.html:213 ../template/default/help_config.html:38
#: ../template/default/help_config.html:86
-#: ../template/default/navigation.html:38 ../vdradmind.pl:4412
+#: ../template/default/navigation.html:38 ../vdradmind.pl:4441
msgid "Timeline"
msgstr "Zeitleiste"
@@ -755,7 +755,7 @@ msgid "Delete Selected Timers"
msgstr "Ausgewählte Timer löschen"
#: ../template/default/prog_list.html:6 ../template/default/navigation.html:42
-#: ../vdradmind.pl:4413
+#: ../vdradmind.pl:4442
msgid "Channels"
msgstr "Programmübersicht"
@@ -821,7 +821,7 @@ msgstr "Film in der Internet-Movie-Database (IMDb) suchen"
#: ../template/default/rec_list.html:6 ../template/default/rec_list.html:18
#: ../template/default/help_rec_list.html:6
#: ../template/default/help_rec_list.html:18
-#: ../template/default/navigation.html:54 ../vdradmind.pl:4415
+#: ../template/default/navigation.html:54 ../vdradmind.pl:4444
msgid "Recordings"
msgstr "Aufnahmen"
@@ -1311,7 +1311,7 @@ msgid "to"
msgstr "bis"
#: ../template/default/prog_list2.html:6
-#: ../template/default/navigation.html:34 ../vdradmind.pl:2527
+#: ../template/default/navigation.html:34 ../vdradmind.pl:2538
msgid "Playing Today"
msgstr "Was läuft heute?"
@@ -1960,7 +1960,7 @@ msgstr ""
"Wenn dies nicht die benötigte Information liefert, dann können Sie versuchen "
"Hilfe im <a href=\"http://www.vdrportal.de\" target=\"_new\">VDR-Portal</a> "
"zu bekommen. Bitte verwenden Sie hierfür wenn möglich den "
-"Ankündigungsthread, suchen dafür nach:"
+"Ankündigungsthread, suchen Sie dafür nach:"
#: ../template/default/help.html:32
msgid ""
@@ -1970,7 +1970,7 @@ msgid ""
msgstr ""
"Wenn Sie meinen, dass Sie einen Fehler gefunden haben, dann überprüfen Sie "
"im <a href=\"http://www.vdr-developer.org/mantisbt/main_page.php\" target="
-"\"_new\">VDRAdmin-AM BugTracking system</a>, ob es sich um einen neuen "
+"\"_new\">VDRAdmin-AM BugTracking System</a>, ob es sich um einen neuen "
"Fehler handelt und legen Sie gegebenenfalls einen neuen Fehlerbericht an."
#: ../template/default/about.html:18
@@ -2060,90 +2060,74 @@ msgstr "Konfigurationsdatei wurde erfolgreich geschrieben."
msgid "vdradmind.pl %s started with pid %d."
msgstr "vdradmind.pl %s wurde mit der Prozeß-ID %d gestartet."
-#: ../vdradmind.pl:405 ../vdradmind.pl:997 ../vdradmind.pl:1830
+#: ../vdradmind.pl:405 ../vdradmind.pl:997 ../vdradmind.pl:1841
msgid "Not found"
msgstr "Nicht gefunden"
-#: ../vdradmind.pl:405 ../vdradmind.pl:1831
+#: ../vdradmind.pl:405 ../vdradmind.pl:1842
msgid "The requested URL was not found on this server!"
msgstr "Die angeforderte URL konnte auf dem Server nicht gefunden werden!"
-#: ../vdradmind.pl:473 ../vdradmind.pl:993 ../vdradmind.pl:1833
+#: ../vdradmind.pl:473 ../vdradmind.pl:993 ../vdradmind.pl:1844
msgid "Forbidden"
msgstr "Verboten"
-#: ../vdradmind.pl:473 ../vdradmind.pl:1834
+#: ../vdradmind.pl:473 ../vdradmind.pl:1845
msgid "You don't have permission to access this function!"
msgstr "Sie haben nicht die Erlaubnis diese Funktion aufzurufen!"
-#: ../vdradmind.pl:993 ../vdradmind.pl:1835
+#: ../vdradmind.pl:993 ../vdradmind.pl:1846
#, perl-format
msgid "Access to file \"%s\" denied!"
msgstr "Zugriff auf Datei \"%s\" verweigert!"
-#: ../vdradmind.pl:997 ../vdradmind.pl:1832
+#: ../vdradmind.pl:997 ../vdradmind.pl:1843
#, perl-format
msgid "The URL \"%s\" was not found on this server!"
msgstr "Die URL \"%s\" wurde auf dem Server nicht gefunden!"
-#: ../vdradmind.pl:1836
+#: ../vdradmind.pl:1847
#, perl-format
msgid "Can't open file \"%s\"!"
msgstr "Kann Datei \"%s\" nicht öffnen!"
-#: ../vdradmind.pl:1837
+#: ../vdradmind.pl:1848
#, perl-format
msgid "Can't connect to VDR at %s!"
msgstr "Konnte Verbindung zu %s nicht aufbauen!"
-#: ../vdradmind.pl:1838
+#: ../vdradmind.pl:1849
#, perl-format
msgid "Error while sending command to VDR at %s"
msgstr "Fehler beim Senden eines Kommandos zu %s"
-#: ../vdradmind.pl:2527
+#: ../vdradmind.pl:2538
msgid "Playing Tomorrow"
msgstr "Was läuft morgen"
-#: ../vdradmind.pl:2527
+#: ../vdradmind.pl:2538
#, perl-format
msgid "Playing on the %d."
msgstr "Was läuft am %d."
-#: ../vdradmind.pl:3891
+#: ../vdradmind.pl:3920
msgid "Schedule"
msgstr "Übersicht"
-#: ../vdradmind.pl:4411
+#: ../vdradmind.pl:4440
msgid "Playing Today?"
msgstr "Was läuft heute?"
-#: ../vdradmind.pl:4414
+#: ../vdradmind.pl:4443
msgid "Timers"
msgstr "Timer"
-#: ../vdradmind.pl:4477
+#: ../vdradmind.pl:4506
msgid "System default"
msgstr "Systemstandard"
#~ msgid "Switch"
#~ msgstr "Umschalten"
-#~ msgid "Gets active after restarting VDRAdmin-AM"
-#~ msgstr "Wird erst nach einem Neustart von VDRAdmin-AM aktiv"
-
-#~ msgid "In \"Channels\" / \"Playing Today\"?"
-#~ msgstr "Bei \"Programmübersicht\" / \"Was läuft heute\"?"
-
-#~ msgid ""
-#~ "Change the number of columns displayed in <span class=\"ref_menu\">What's "
-#~ "On Now</span> with this option."
-#~ msgstr ""
-#~ "Hier kann die Anzahl der Spalten, die bei <span class=\"ref_menu\">Was "
-#~ "läuft jetzt</span> angezeigt werden, eingestellt werden."
-
-#~ msgid "Number of columns in \"What's On Now\":"
-#~ msgstr "Anzahl der Spalten bei \"Was läuft jetzt\"?"
-
#~ msgid "more"
#~ msgstr "mehr"
diff --git a/po/es.po b/po/es.po
index 61fa056..e68793c 100644
--- a/po/es.po
+++ b/po/es.po
@@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDRAdmin-AM-3.2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-01-18 08:21+0100\n"
+"POT-Creation-Date: 2006-01-30 12:21+0100\n"
"PO-Revision-Date: 2006-01-17 18:08+0100\n"
"Last-Translator: propietario <propietario@wanadoo.es>\n"
"Language-Team: Rudi <LL.org>\n"
@@ -361,7 +361,7 @@ msgstr "¿Estas seguro de que deseas borrar las programaciones elegidas?"
#: ../template/default/prog_summary.html:7
#: ../template/default/prog_timeline.html:7
-#: ../template/default/navigation.html:30 ../vdradmind.pl:4410
+#: ../template/default/navigation.html:30 ../vdradmind.pl:4439
msgid "What's On Now?"
msgstr "Estrenos ahora"
@@ -486,7 +486,7 @@ msgstr "Contraseña como invitado:"
#: ../template/default/config.html:213 ../template/default/help_config.html:38
#: ../template/default/help_config.html:86
-#: ../template/default/navigation.html:38 ../vdradmind.pl:4412
+#: ../template/default/navigation.html:38 ../vdradmind.pl:4441
msgid "Timeline"
msgstr "Tabla de tiempo"
@@ -761,7 +761,7 @@ msgid "Delete Selected Timers"
msgstr "Borrar programaciones elegidas"
#: ../template/default/prog_list.html:6 ../template/default/navigation.html:42
-#: ../vdradmind.pl:4413
+#: ../vdradmind.pl:4442
msgid "Channels"
msgstr "EPG por emisoras"
@@ -827,7 +827,7 @@ msgstr "Buscar la película en la base de datos de películas en Internet (IMDb)"
#: ../template/default/rec_list.html:6 ../template/default/rec_list.html:18
#: ../template/default/help_rec_list.html:6
#: ../template/default/help_rec_list.html:18
-#: ../template/default/navigation.html:54 ../vdradmind.pl:4415
+#: ../template/default/navigation.html:54 ../vdradmind.pl:4444
msgid "Recordings"
msgstr "Grabaciones"
@@ -1311,7 +1311,7 @@ msgid "to"
msgstr "hasta"
#: ../template/default/prog_list2.html:6
-#: ../template/default/navigation.html:34 ../vdradmind.pl:2527
+#: ../template/default/navigation.html:34 ../vdradmind.pl:2538
msgid "Playing Today"
msgstr "Estrenos hoy"
@@ -2028,7 +2028,7 @@ msgstr "Inglés:"
#: ../template/default/about.html:70
msgid "Finnish:"
-msgstr "Final:"
+msgstr "Finlandés:"
#: ../template/default/about.html:76
msgid "French:"
@@ -2087,424 +2087,68 @@ msgstr "¡Los archivos de configuración han creado!"
msgid "vdradmind.pl %s started with pid %d."
msgstr "vdradmind.pl %s se ha iniciado con pid %d."
-#: ../vdradmind.pl:405 ../vdradmind.pl:997 ../vdradmind.pl:1830
+#: ../vdradmind.pl:405 ../vdradmind.pl:997 ../vdradmind.pl:1841
msgid "Not found"
msgstr "No encontrado"
-#: ../vdradmind.pl:405 ../vdradmind.pl:1831
+#: ../vdradmind.pl:405 ../vdradmind.pl:1842
msgid "The requested URL was not found on this server!"
msgstr "¡No encontrado la URL requerida, en el servidor!"
-#: ../vdradmind.pl:473 ../vdradmind.pl:993 ../vdradmind.pl:1833
+#: ../vdradmind.pl:473 ../vdradmind.pl:993 ../vdradmind.pl:1844
msgid "Forbidden"
msgstr "Prohibido"
-#: ../vdradmind.pl:473 ../vdradmind.pl:1834
+#: ../vdradmind.pl:473 ../vdradmind.pl:1845
msgid "You don't have permission to access this function!"
msgstr "¡No tienes permiso para ésta funcción!"
-#: ../vdradmind.pl:993 ../vdradmind.pl:1835
+#: ../vdradmind.pl:993 ../vdradmind.pl:1846
#, perl-format
msgid "Access to file \"%s\" denied!"
msgstr "¡Acceso al archivo \"%s\" negado!"
-#: ../vdradmind.pl:997 ../vdradmind.pl:1832
+#: ../vdradmind.pl:997 ../vdradmind.pl:1843
#, perl-format
msgid "The URL \"%s\" was not found on this server!"
msgstr "¡No encontrado la URL %s en el servidor!"
-#: ../vdradmind.pl:1836
+#: ../vdradmind.pl:1847
#, perl-format
msgid "Can't open file \"%s\"!"
msgstr "¡No se pudo abrir el archivo \"%s\" !"
-#: ../vdradmind.pl:1837
+#: ../vdradmind.pl:1848
#, perl-format
msgid "Can't connect to VDR at %s!"
msgstr "¡No se pudo estabilizar la conexión a %s!"
-#: ../vdradmind.pl:1838
+#: ../vdradmind.pl:1849
#, perl-format
msgid "Error while sending command to VDR at %s"
msgstr "Error mientras mandó el orden a %s "
-#: ../vdradmind.pl:2527
+#: ../vdradmind.pl:2538
msgid "Playing Tomorrow"
msgstr "Estrenos mañana"
-#: ../vdradmind.pl:2527
+#: ../vdradmind.pl:2538
#, perl-format
msgid "Playing on the %d."
msgstr "Estrenos en %d"
-#: ../vdradmind.pl:3891
+#: ../vdradmind.pl:3920
msgid "Schedule"
msgstr "Vista general"
-#: ../vdradmind.pl:4411
+#: ../vdradmind.pl:4440
msgid "Playing Today?"
msgstr "¿Estrenos hoy?"
-#: ../vdradmind.pl:4414
+#: ../vdradmind.pl:4443
msgid "Timers"
msgstr "Programaciones"
-#: ../vdradmind.pl:4477
+#: ../vdradmind.pl:4506
msgid "System default"
msgstr "Defecto del sistema"
-
-#~ msgid "Gets active after restarting VDRAdmin-AM"
-#~ msgstr "Se va a ser visible despúes de reiniciar VDRAdmin-AM"
-
-#~ msgid "In \"Channels\" / \"Playing Today\"?"
-#~ msgstr "¿Usar en \"EPG (Guía electrónica) por emisoras\"?"
-
-#~ msgid "more"
-#~ msgstr "más"
-
-#, fuzzy
-#~ msgid "Channel Selections:"
-#~ msgstr "Emisoras preferidas"
-
-#~ msgid "Number of DVB Cards:"
-#~ msgstr "Cantidad tarjetas-DVB:"
-
-#, fuzzy
-#~ msgid "Directory:<"
-#~ msgstr "Carpeta:"
-
-#, fuzzy
-#~ msgid "Search Pattern:"
-#~ msgstr "Palabras claves:"
-
-#, fuzzy
-#~ msgid "Day Of Recording"
-#~ msgstr "Día de la grabación:"
-
-#, fuzzy
-#~ msgid "Start Time"
-#~ msgstr "Comienzo:"
-
-#, fuzzy
-#~ msgid "End Time"
-#~ msgstr "Fin:"
-
-#, fuzzy
-#~ msgid "Priority"
-#~ msgstr "Prioridad:"
-
-#, fuzzy
-#~ msgid "Lifetime"
-#~ msgstr "Durabilidad:"
-
-#, fuzzy
-#~ msgid "Title of Recording"
-#~ msgstr "Título de la grabación:"
-
-#, fuzzy
-#~ msgid "Summary"
-#~ msgstr "Resumen:"
-
-#~ msgid ""
-#~ "<b>Configuration:</b>\n"
-#~ "<p>Here you can change general settings and base settings for timers, "
-#~ "autotimers, channel selection and streaming parameters.\n"
-#~ "</p>\n"
-#~ "<b>General Settings:</b>\n"
-#~ "<p>Here you can change the languge, the start page, the look, and the "
-#~ "number of DVB cards. Besides this the base settings for timers, "
-#~ "autotimers, the channel selection and streaming parameters can be "
-#~ "configured here.\n"
-#~ "</p>\n"
-#~ "<b>Identification:</b>\n"
-#~ "<p>Clicking on |<input type=\"radio\"> <i>yes</i> | or |<input type="
-#~ "\"radio\" checked> <i>no</i> | activates or deactivates the <i>guest "
-#~ "account</i>. The default passwords for both accounts should be changed "
-#~ "when VDRAdmin-AM is accessible over the Internet.\n"
-#~ "</p>\n"
-#~ "<b>Time Line:</b>\n"
-#~ "<p>Here you can see a time line of the channels, where you can select the "
-#~ "displayed time span.<br>\n"
-#~ "The bars show the titles of each show. A time bar starts half an hour "
-#~ "before now. A thin red line indicates the current position.<br>Programmed "
-#~ "timers are shown in different colors.\n"
-#~ "</p>\n"
-#~ "<b>Settings for autotimers:</b>\n"
-#~ "<p>Clicking on |<input type=\"radio\"> <i>Yes</i> | or |<input type="
-#~ "\"radio\" checked> <i>No</i> | activates or deactivates the autotimer "
-#~ "function. You can also specify the interval, the the epg data is checked "
-#~ "for updating the autotimers.<br>\n"
-#~ "The life time of a recording can be set from 0 to 99 (99=live forever). "
-#~ "This value relates to the day, the recording was made. After the given "
-#~ "life time, a recording may be deleted to make room for new ones.<br>\n"
-#~ "The Priority indicates, what timer is prefered in case of a conflict."
-#~ "<br>\n"
-#~ "<b>Timer settings:</b>\n"
-#~ "<p>These are the same settings as for the autotimers, but apply to the "
-#~ "manually created timers.\n"
-#~ "</p>\n"
-#~ "\n"
-#~ "<b>Streaming settings:</b>\n"
-#~ "<p>Specify port, bandwith and VDR's recording directory here.\n"
-#~ "</p>\n"
-#~ "\n"
-#~ "<b>Channel Selection:</b>\n"
-#~ "<p>Clicking on |<input type=\"radio\"> <i>Yes</i> | or |<input type="
-#~ "\"radio\" checked> <i>No</i> | activates or deactivates the channel "
-#~ "selection for a specific view.<br>\n"
-#~ "</p>\n"
-#~ msgstr ""
-#~ "<b>Configuración:</b>\n"
-#~ "<p>En ésta página se ajusta las propiedades generales, las propiedades de "
-#~ "la programación y de la autoprogramación, como las emisoras preferidas y "
-#~ "por fin los ajustes del flujo.</p>\n"
-#~ "\n"
-#~ "<b>Propiedades generales:</b>\n"
-#~ "<p>Aquí se ajusta el idioma, la página principal, las pieles y cuantas "
-#~ "tarjetas de DVB hay.</p>\n"
-#~ "\n"
-#~ "<b>Identificaciones:</b>\n"
-#~ "<p>Ház clic en |<input type=\"radio\"> <i>sí</i> | o |<input type=\"radio"
-#~ "\" checked> <i>no</i> | para activar una cuenta de un <i>invitado</i>. "
-#~ "Usuario y contraseña tienes que cambiar por algunas palabras más seguras, "
-#~ "si estás conectado al ínternet.</p>\n"
-#~ "\n"
-#~ "<b>Tabla de tiempo:</b>\n"
-#~ "<p>Ésta página te ofrece una vista de las canales como una tabla, en "
-#~ "relacion al tiempo. Las horas introducidas, marcan el rango de las horas "
-#~ "que vas a ver. Por defecto empiezara a la última hora cumplida "
-#~ "anterioramente.\n"
-#~ "<br>En el campo de los horas puedes entregar las horarios fijas, donde la "
-#~ "barra va a empezar. Se refiere al campo en la página de tabla de tiempo, "
-#~ "donde entonces puedes elegir entre esos valores predeterminados.</p>\n"
-#~ "\n"
-#~ "<b>Propiedades de las autoprogramaciones:</b>\n"
-#~ "<p>Ház clic en |<input type=\"radio\" checked> <i>sí</i> | o |<input type="
-#~ "\"radio\"> <i>no</i> | para activar las autoprogramaciones. Ajusta "
-#~ "tambien con que frequencia se van a hacer las búsquedas en los datos de "
-#~ "la guía electrónica (EPG) por las <i>Palabras claves</i>.\n"
-#~ "<br>La durabilidad se puede ajustar entre 0 y 99 para dar a la grabación "
-#~ "creada de ésta autoprogramación el valor deseado. El valor se refiere al "
-#~ "día de la grabacion - más el rango que pones.<br>\n"
-#~ "Con el valor de la prioridad de la nueva grabacion tienes el segundo "
-#~ "parámetro, para que VDR pueda decidir, cuál de las grabaciones hechas se "
-#~ "puede borrar, cuando necesita espacio en el disco duro. Por los 2 valores "
-#~ "sabrá, si una grabación ha caducado y con una prioridad más alta de la "
-#~ "grabación deseada entonces borraría ésta antigua. Así te ofrece VDR "
-#~ "ajustar prioridades más altas a aquellas grabaciones, que te importan de "
-#~ "verdad.<br> Durabilidad=99 por ejemplo, creará una grabación que nunca "
-#~ "caduca!</p><b>Propiedades de las programaciones:</b><p>Ajuste la "
-#~ "prioridad de las programaciones entre 0 y 99 . \n"
-#~ "<br>La durabilidad se puede ajustar entre 0 y 99 para dar a la grabación "
-#~ "creada de ésta programación el valor deseado. El valor se refiere al día "
-#~ "de la grabación - más el rango que pones.</p>\n"
-#~ "\n"
-#~ "<b>Propiedades del flujo</b>\n"
-#~ "<p>Si quieres usar la función flujo (ver grabaciones por red) ajuste "
-#~ "aquí las propiedades.</p>\n"
-#~ "\n"
-#~ "<b>Emisoras preferidas</b>\n"
-#~ "<p>Con las emisoras preferidas te permite activar las pantallas que "
-#~ "quieres habilitar para ver solo las canales elegidas. Así se carga mas "
-#~ "rápido la página. Activa las páginas deseadas con los botones |<input "
-#~ "type=\"radio\" checked> <i>sí</i> | o |<input type=\"radio\"> <i>no</i> | "
-#~ "junto a los registros.\n"
-#~ "<br>El campo abajo te permite elegir las emisoras deseadas, marcándolas "
-#~ "en un campo una por una o juntas. Los botones entre los campos van a "
-#~ "mover las marcadas de un campo a otro y viceversa.\n"
-#~ "</p>\n"
-
-#~ msgid "January"
-#~ msgstr "Enero"
-
-#~ msgid "February"
-#~ msgstr "Febrero"
-
-#~ msgid "March"
-#~ msgstr "Marzo"
-
-#~ msgid "April"
-#~ msgstr "Abril"
-
-#~ msgid "May"
-#~ msgstr "Mayo"
-
-#~ msgid "June"
-#~ msgstr "Junio"
-
-#~ msgid "July"
-#~ msgstr "Julio"
-
-#~ msgid "August"
-#~ msgstr "Agosto"
-
-#~ msgid "September"
-#~ msgstr "Septiembre"
-
-#~ msgid "October"
-#~ msgstr "Octubre"
-
-#~ msgid "November"
-#~ msgstr "Noviembre"
-
-#~ msgid "December"
-#~ msgstr "Diciembre"
-
-#~ msgid ""
-#~ "<b>Timer</b>\n"
-#~ "<p>VDR timer overview.</p>\n"
-#~ "<p>Clicking on |<img src=\"bilder/poempl_gruen.gif\" alt=\"on\" valign="
-#~ "\"center\"> <i>Yes</i> | or |<img src=\"bilder/poempl_grau.gif\" alt=\"off"
-#~ "\" valign=\"center\"> <i>No</i> | in the column <i>Active</i>, switches "
-#~ "the timer on or off.<br>\n"
-#~ "<img src=\"bilder/poempl_gelb.gif\" alt=\"problem\" valign=\"center\"> "
-#~ "indicates overlapping timers. That's uncritical, as long as you have "
-#~ "enough DVB cards for the parallel recordings.<br>\n"
-#~ "To edit an entry, click on <img src=\"bilder/edit.gif\" alt=\"Stift\" "
-#~ "valign=\"center\">, to delete a timer use <img src=\"bilder/delete.gif\" "
-#~ "alt=\"Radiergummi\" valign=\"center\">. To delete more than one timer at "
-#~ "once, select them using the checkboxes (<input type=\"checkbox\" "
-#~ "checked>) and click on <i>Delete selected timers</i> at the end of the "
-#~ "list.\n"
-#~ "</p>"
-#~ msgstr ""
-#~ "<b>Programación:</b>\n"
-#~ "<p>Vista general de todas las programaciones.<br>\n"
-#~ "Ház clic en |<img src=\"bilder/poempl_gruen.gif\" alt=\"activado\" valign="
-#~ "\"center\"> <i>sí</i> | o |<img src=\"bilder/poempl_grau.gif\" alt="
-#~ "\"noencendido\" valign=\"center\"> <i>no</i> | en la columna <i>Activado</"
-#~ "i>, para activar o desactivar un registro correspondiente.<br>\n"
-#~ "<img src=\"bilder/poempl_gelb.gif\" alt=\"conflicto\" valign=\"center\"> "
-#~ "indica que haya conflictos. Esto no importa, mientras hay una tarjeta "
-#~ "disponible para cada una de las programaciones o estén en la misma "
-#~ "frecuencia. Con el símbolo <img src=\"bilder/poempl_rot.gif\" alt="
-#~ "\"imposible\" valign=\"center\"> la programaciõn es imposible.<br>\n"
-#~ "Para modificar un registro, ház clic enl símbolo <img src=\"bilder/edit."
-#~ "gif\" alt=\"Lapíz\" valign=\"center\">, para borrar en la <img src="
-#~ "\"bilder/delete.gif\" alt=\"Goma\" valign=\"center\">. Si quieres borrar "
-#~ "varios registros de una vez, marca (<input type=\"checkbox\" checked>) la "
-#~ "casilla a lado de los registros y ház clic encima <i>Borrar "
-#~ "programaciones elegidas</i> al final de la lista.</p>"
-
-#~ msgid ""
-#~ "<p>No help available for <b>Add Timer:</b> yet. For adding text please "
-#~ "contact mail@andreas.vdr-developer.org.\t\n"
-#~ "</p>"
-#~ msgstr ""
-#~ "<b>Añadir programación:</b>\n"
-#~ "<p>En ésta ventana se añade programaciones normales. Tienes que rellenar "
-#~ "el formulario a tu gusto, teniendo en cuenta las otras programaciones, "
-#~ "para que no produzcan problemas entre ellas.\n"
-#~ " </p>"
-
-#~ msgid ""
-#~ "<b>AutoTimer:</b><br>\n"
-#~ "<p>An overview of all AutoTimers</p>\n"
-#~ "<p>Click <i>Yes</i> or <i>No</i> in the <i>Active</i> column to (de-)"
-#~ "activate that AutoTimer.</p>\n"
-#~ "<p>Use <img src=\"bilder/edit.gif\" alt=\"pen\" valign=\"center\"> for "
-#~ "editing and <img src=\"bilder/delete.gif\" alt=\"Rubber\" valign=\"center"
-#~ "\"> for deleting an AutoTimer. If you want to delete multiple AutoTimers "
-#~ "all at once, you have to check the boxes (<input type=\"checkbox\" "
-#~ "checked>) on the right and finally click <i>Delete selected AutoTimers</"
-#~ "i>.</p>"
-#~ msgstr ""
-#~ "<b>Autoprogramación:</b><br>\n"
-#~ "<p>Vista general de todos los registros de Autoprogramación.</p>\n"
-#~ "<p>Ház clic en |<img src=\"bilder/poempl_gruen.gif\" alt=\"encendido\" "
-#~ "valign=\"center\"> <i>sí</i> | o |<img src=\"bilder/poempl_grau.gif\" alt="
-#~ "\"noencendido\" valign=\"center\"> <i>no</i> | en la columna <i>Activada</"
-#~ "i>, para activar o desactivar un registro correspondiente.</br>\n"
-#~ "Para modificar un registro, ház clic en el símbolo <img src=\"bilder/edit."
-#~ "gif\" alt=\"Lapíz\" valign=\"center\">, para borrar en la <img src="
-#~ "\"bilder/delete.gif\" alt=\"Goma\" valign=\"center\">.<br>\n"
-#~ "Si quieres borrar varios registros de una vez, marca (<input type="
-#~ "\"checkbox\" checked>) el campo junto a los registros y ház clic encima "
-#~ "de <i>Borrar autoprogramaciones elegidas</i> al final de la lista.\n"
-#~ "</p>"
-
-#~ msgid ""
-#~ "<b>Edit AutoTimer:</b><br>\n"
-#~ "<p>AutoTimer is a key feature of VDRAdmin-AM. An AutoTimer consists of "
-#~ "one or more search terms and some other settings, that are looked for "
-#~ "regularly in the Electronic Program Guide (EPG). On match AutoTimer adds "
-#~ "a timer in VDR automatically for that broadcast. That's very comfortable "
-#~ "for irregularly broadcasted series or movies you don't want to miss.</p>\n"
-#~ "<p>Here you can set an AutoTimer. It's required to specify at least one "
-#~ "search item. Please have a look at <i>Search Items</i> if you need more "
-#~ "information on how to find reasonable search items and how to avoid "
-#~ "unwanted recordings.</p>\n"
-#~ "<b>AutoTimer Active:</b><br>\n"
-#~ "<p><i>Yes</i> activates and <i>No</i> deactivates this AutoTimer. Please "
-#~ "note that VDR timers already added by VDRAdmin-AM are not deleted if you "
-#~ "deactivate this AutoTimer.</p>\n"
-#~ "<b>Search Items:</b><br>\n"
-#~ "<p>Choosing the right search items decides whether only the wanted "
-#~ "broadcast or broadcast having similar names or nothing gets recorded.</"
-#~ "p>\n"
-#~ "<p>Case doesn't matter, \"X-Files\" matches anything \"x-files\" will "
-#~ "match. You can set multiple search items by separating them with spaces. "
-#~ "Only broadcasts will match if they contain all items.</p>\n"
-#~ "<p>You'd better only use letters and numbers for search items, as EPGs "
-#~ "often miss colons, brackets and other characters.</p>\n"
-#~ "<p>Experts can also use regular expressions, but you have get needed "
-#~ "information from the VDRAdmin-AM sources (undocumented feature).</p>"
-#~ msgstr ""
-#~ "<b>Añadir/modificar nueva autoprogramación:</b>\n"
-#~ "<p>La autoprogramación es una función básica del VDR Admin. Una "
-#~ "autoprogramación se refiere a una o más <i>Palabras claves</i>, cuales "
-#~ "usará para analizar los datos de la guía electrónica (EPG) con un rango "
-#~ "de tiempo ajustable. Cuando encuentra las palabras elegidas teniendo en "
-#~ "cuenta la hora y la emisora, creará automáticamente una programación para "
-#~ "el estreno encontrado &#150; bastante útil para series (ir)regulares o "
-#~ "igual para estrenos, que quieran grabar con seguridad.<br>\n"
-#~ "En esta pantalla se puede crear una nueva autoprogramación. Una o más "
-#~ "palabras son obligatorias, para que puede actuar. Detalles, por palabras "
-#~ "útiles y como evitar grabaciones inútiles, se puede encontrar en la ayuda "
-#~ "para <i>Palabras claves</i> más abajo.</p>\n"
-#~ "\n"
-#~ "<b>Auto programación activo:</b>\n"
-#~ "<p>Marcando |<input type=\"radio\" checked> <i>sí</i> | activará la "
-#~ "autoprogramación, y se va a buscar regularmente en la guía electrónica "
-#~ "(EPG) por las <i>Palabras claves</i> y creará una programación, cuando "
-#~ "cumple con las <i>Palabras claves</i> como con los parámetros demás.</"
-#~ "br>\n"
-#~ "Con |<input type=\"radio\" checked> <i>no</i> | se desactiva la "
-#~ "autoprogramación, sin borrarla. No afectará a las programaciones ya "
-#~ "creadas por esta autoprogramación &#150; a lo mejor tienes que borrarla "
-#~ "manualmente en el menu.<i>Autoprogramación</i>.<br>\n"
-#~ "Con |<input type=\"radio\" checked> <i>una vez</i> | la autoprogramación "
-#~ "acaba de vigilar despúes de crear una programación. A partir de entonces "
-#~ "serán programaciones normales sin las ventajas de una autoprogramación.\n"
-#~ "</p>\n"
-#~ "\n"
-#~ "<b>Palabras claves:</b>\n"
-#~ "<p>Las palabras claves son importante, para lograr un buen resultado."
-#~ "<br>\n"
-#~ "No importa MAYÚSCULA o minúscula. Por eso las palabras claves \"X-Pasta\" "
-#~ "logrará los mismos resultados como \"x-pasta\". Todas palabras claves se "
-#~ "separa con espacio y para cumplir el orden, VDR-admin tiene que encontrar "
-#~ "todas las palabras claves para un estreno.<br>\n"
-#~ "Las palabras claves \"Pasta X\" encontrarán \"Pasta - La cocina extraña "
-#~ "de mi mujer\" como \"No se sabe hacer extra pasta\" y \"Pasta extrema \", "
-#~ "pero no \"La pasta increible\" (no se encuentra una \"X\"!).<br>\n"
-#~ "Se recomienda usar sólo letras y cifras como palabras claves, por que la "
-#~ "guía electrónica (EPG) se límita bastante en el uso de todas caracteres "
-#~ "posibles o los interpreta mál.\n"
-#~ "<p>También deberia ser posible usar expresiones regulares &#150; Expertos "
-#~ "puedan extraer info del texto fuente (undocumented feature).\n"
-#~ "</p>"
-
-#~ msgid ""
-#~ "<p>No help available for <b>Recordings:</b>. For adding text please "
-#~ "contact mail@andreas.vdr-developer.org.\t\n"
-#~ "</p>"
-#~ msgstr ""
-#~ "<b>Grabaciones</b>\n"
-#~ "<p>Aquí se puede ver todas las grabaciones hechas en el VDR conectado. \n"
-#~ "Desde aquí se puede cambiar título y carpeta de las grabaciones, haciendo "
-#~ "clic en el símbolo <img src=\"bilder/edit.gif\" alt=\"pen\" valign="
-#~ "\"center\">. Tambien se puede eliminar grabaciones con el símbolo <img "
-#~ "src=\"bilder/delete.gif\" alt=\"Rubber\" valign=\"center\">. \n"
-#~ "<br>La ruta de las grabaciones se separan por carpetas usando la &tilde;</"
-#~ "p>"
diff --git a/po/fi.po b/po/fi.po
index a55355d..e904b05 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -5,10 +5,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: VDRAdmin-AM-3.3\n"
+"Project-Id-Version: VDRAdmin-AM-3.4.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-01-18 08:21+0100\n"
-"PO-Revision-Date: 2005-06-17 12:36+0200\n"
+"POT-Creation-Date: 2006-01-30 12:21+0100\n"
+"PO-Revision-Date: 2006-01-18 12:36+0200\n"
"Last-Translator: Rofa\n"
"Language-Team: Suomi\n"
"MIME-Version: 1.0\n"
@@ -345,7 +345,7 @@ msgstr "Poistetaanko valitut ajastimet?"
#: ../template/default/prog_summary.html:7
#: ../template/default/prog_timeline.html:7
-#: ../template/default/navigation.html:30 ../vdradmind.pl:4410
+#: ../template/default/navigation.html:30 ../vdradmind.pl:4439
msgid "What's On Now?"
msgstr "Menossa nyt"
@@ -470,7 +470,7 @@ msgstr "Vierailijan salasana:"
#: ../template/default/config.html:213 ../template/default/help_config.html:38
#: ../template/default/help_config.html:86
-#: ../template/default/navigation.html:38 ../vdradmind.pl:4412
+#: ../template/default/navigation.html:38 ../vdradmind.pl:4441
msgid "Timeline"
msgstr "Aikajana"
@@ -744,7 +744,7 @@ msgid "Delete Selected Timers"
msgstr "Poista valitut ajastimet"
#: ../template/default/prog_list.html:6 ../template/default/navigation.html:42
-#: ../vdradmind.pl:4413
+#: ../vdradmind.pl:4442
msgid "Channels"
msgstr "Kanavat"
@@ -810,7 +810,7 @@ msgstr "etsi IMDB:stä"
#: ../template/default/rec_list.html:6 ../template/default/rec_list.html:18
#: ../template/default/help_rec_list.html:6
#: ../template/default/help_rec_list.html:18
-#: ../template/default/navigation.html:54 ../vdradmind.pl:4415
+#: ../template/default/navigation.html:54 ../vdradmind.pl:4444
msgid "Recordings"
msgstr "Tallenteet"
@@ -1180,7 +1180,7 @@ msgid "to"
msgstr "-"
#: ../template/default/prog_list2.html:6
-#: ../template/default/navigation.html:34 ../vdradmind.pl:2527
+#: ../template/default/navigation.html:34 ../vdradmind.pl:2538
msgid "Playing Today"
msgstr "Ohjelmisto tänään"
@@ -1708,68 +1708,68 @@ msgstr "VDRAdmin-AM konfigurointitiedosto muodostettu."
msgid "vdradmind.pl %s started with pid %d."
msgstr "vdradmind.pl %s käynnistetty prosessitunnisteella %d."
-#: ../vdradmind.pl:405 ../vdradmind.pl:997 ../vdradmind.pl:1830
+#: ../vdradmind.pl:405 ../vdradmind.pl:997 ../vdradmind.pl:1841
msgid "Not found"
msgstr "Ei löydy"
-#: ../vdradmind.pl:405 ../vdradmind.pl:1831
+#: ../vdradmind.pl:405 ../vdradmind.pl:1842
msgid "The requested URL was not found on this server!"
msgstr "Pyydettyä URL:ia ei löydy palvelimelta!"
-#: ../vdradmind.pl:473 ../vdradmind.pl:993 ../vdradmind.pl:1833
+#: ../vdradmind.pl:473 ../vdradmind.pl:993 ../vdradmind.pl:1844
msgid "Forbidden"
msgstr "Kielletty"
-#: ../vdradmind.pl:473 ../vdradmind.pl:1834
+#: ../vdradmind.pl:473 ../vdradmind.pl:1845
msgid "You don't have permission to access this function!"
msgstr "Puutteelliset käyttäjäoikeudet haluttuun toimintoon!"
-#: ../vdradmind.pl:993 ../vdradmind.pl:1835
+#: ../vdradmind.pl:993 ../vdradmind.pl:1846
#, perl-format
msgid "Access to file \"%s\" denied!"
msgstr "Pääsy tiedostoon \"%s\" evätty!"
-#: ../vdradmind.pl:997 ../vdradmind.pl:1832
+#: ../vdradmind.pl:997 ../vdradmind.pl:1843
#, perl-format
msgid "The URL \"%s\" was not found on this server!"
msgstr "URL:ia \"%s\" ei löydy palvelimelta!"
-#: ../vdradmind.pl:1836
+#: ../vdradmind.pl:1847
#, perl-format
msgid "Can't open file \"%s\"!"
msgstr "Tiedoston \"%s\" avaus ei onnistu!"
-#: ../vdradmind.pl:1837
+#: ../vdradmind.pl:1848
#, perl-format
msgid "Can't connect to VDR at %s!"
msgstr "VDR:ään ei saada yhteyttä (%s)"
-#: ../vdradmind.pl:1838
+#: ../vdradmind.pl:1849
#, perl-format
msgid "Error while sending command to VDR at %s"
msgstr "Komennon lähetys VDR:lle epäonnistui (%s)"
-#: ../vdradmind.pl:2527
+#: ../vdradmind.pl:2538
msgid "Playing Tomorrow"
msgstr "Ohjelmisto huomenna"
-#: ../vdradmind.pl:2527
+#: ../vdradmind.pl:2538
#, perl-format
msgid "Playing on the %d."
msgstr "Ohjelmisto %d. päivä"
-#: ../vdradmind.pl:3891
+#: ../vdradmind.pl:3920
msgid "Schedule"
msgstr "Ohjelmisto"
-#: ../vdradmind.pl:4411
+#: ../vdradmind.pl:4440
msgid "Playing Today?"
msgstr "Tänään"
-#: ../vdradmind.pl:4414
+#: ../vdradmind.pl:4443
msgid "Timers"
msgstr "Ajastimet"
-#: ../vdradmind.pl:4477
+#: ../vdradmind.pl:4506
msgid "System default"
msgstr "Oletus"
diff --git a/po/fr.po b/po/fr.po
index d5dbb08..29dd7c5 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -18,7 +18,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDRAdmin-AM-3.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-01-18 08:21+0100\n"
+"POT-Creation-Date: 2006-01-30 12:21+0100\n"
"PO-Revision-Date: 2005-10-04 14:02+0100\n"
"Last-Translator: Trois Six <trois.six@free.fr>\n"
"Language-Team: <fr@li.org>\n"
@@ -361,7 +361,7 @@ msgstr "Supprimer Programmations Sélectionnées ?"
#: ../template/default/prog_summary.html:7
#: ../template/default/prog_timeline.html:7
-#: ../template/default/navigation.html:30 ../vdradmind.pl:4410
+#: ../template/default/navigation.html:30 ../vdradmind.pl:4439
msgid "What's On Now?"
msgstr "En ce Moment ?"
@@ -486,7 +486,7 @@ msgstr "Mot de Passe Invité :"
#: ../template/default/config.html:213 ../template/default/help_config.html:38
#: ../template/default/help_config.html:86
-#: ../template/default/navigation.html:38 ../vdradmind.pl:4412
+#: ../template/default/navigation.html:38 ../vdradmind.pl:4441
msgid "Timeline"
msgstr "Chronologie"
@@ -769,7 +769,7 @@ msgid "Delete Selected Timers"
msgstr "Supprimer Programmations Sélectionnées"
#: ../template/default/prog_list.html:6 ../template/default/navigation.html:42
-#: ../vdradmind.pl:4413
+#: ../vdradmind.pl:4442
msgid "Channels"
msgstr "Chaînes"
@@ -835,7 +835,7 @@ msgstr "Plus de details sur Internet"
#: ../template/default/rec_list.html:6 ../template/default/rec_list.html:18
#: ../template/default/help_rec_list.html:6
#: ../template/default/help_rec_list.html:18
-#: ../template/default/navigation.html:54 ../vdradmind.pl:4415
+#: ../template/default/navigation.html:54 ../vdradmind.pl:4444
msgid "Recordings"
msgstr "Enregistrements"
@@ -1324,7 +1324,7 @@ msgid "to"
msgstr "à"
#: ../template/default/prog_list2.html:6
-#: ../template/default/navigation.html:34 ../vdradmind.pl:2527
+#: ../template/default/navigation.html:34 ../vdradmind.pl:2538
msgid "Playing Today"
msgstr "Joué Aujourd'hui"
@@ -2071,87 +2071,71 @@ msgstr "Fichier de configuration écrit avec succès."
msgid "vdradmind.pl %s started with pid %d."
msgstr "vdradmin.pl %s a démarré avec le pid %d."
-#: ../vdradmind.pl:405 ../vdradmind.pl:997 ../vdradmind.pl:1830
+#: ../vdradmind.pl:405 ../vdradmind.pl:997 ../vdradmind.pl:1841
msgid "Not found"
msgstr "Non trouvé"
-#: ../vdradmind.pl:405 ../vdradmind.pl:1831
+#: ../vdradmind.pl:405 ../vdradmind.pl:1842
msgid "The requested URL was not found on this server!"
msgstr "L'URL demandée n'a pas été trouvée sur le serveur !"
-#: ../vdradmind.pl:473 ../vdradmind.pl:993 ../vdradmind.pl:1833
+#: ../vdradmind.pl:473 ../vdradmind.pl:993 ../vdradmind.pl:1844
msgid "Forbidden"
msgstr "Interdit"
-#: ../vdradmind.pl:473 ../vdradmind.pl:1834
+#: ../vdradmind.pl:473 ../vdradmind.pl:1845
msgid "You don't have permission to access this function!"
msgstr "Vous n'avez pas la permission d'accéder à cette fonction !"
-#: ../vdradmind.pl:993 ../vdradmind.pl:1835
+#: ../vdradmind.pl:993 ../vdradmind.pl:1846
#, perl-format
msgid "Access to file \"%s\" denied!"
msgstr "Accès au fichier \"%s\" interdit !"
-#: ../vdradmind.pl:997 ../vdradmind.pl:1832
+#: ../vdradmind.pl:997 ../vdradmind.pl:1843
#, perl-format
msgid "The URL \"%s\" was not found on this server!"
msgstr "L'URL \"%s\" n'a pas été trouvée sur le serveur !"
-#: ../vdradmind.pl:1836
+#: ../vdradmind.pl:1847
#, perl-format
msgid "Can't open file \"%s\"!"
msgstr "Ne peut pas ouvrir le fichier \"%s\" !"
-#: ../vdradmind.pl:1837
+#: ../vdradmind.pl:1848
#, perl-format
msgid "Can't connect to VDR at %s!"
msgstr "Ne peut se connecter à %s !"
-#: ../vdradmind.pl:1838
+#: ../vdradmind.pl:1849
#, perl-format
msgid "Error while sending command to VDR at %s"
msgstr "Erreur en envoyant la commande à %s"
-#: ../vdradmind.pl:2527
+#: ../vdradmind.pl:2538
msgid "Playing Tomorrow"
msgstr "Joué demain"
-#: ../vdradmind.pl:2527
+#: ../vdradmind.pl:2538
#, perl-format
msgid "Playing on the %d."
msgstr "En cours sur la %d."
-#: ../vdradmind.pl:3891
+#: ../vdradmind.pl:3920
msgid "Schedule"
msgstr "Programmateur"
-#: ../vdradmind.pl:4411
+#: ../vdradmind.pl:4440
msgid "Playing Today?"
msgstr "Aujourd'hui ?"
-#: ../vdradmind.pl:4414
+#: ../vdradmind.pl:4443
msgid "Timers"
msgstr "Programmations"
-#: ../vdradmind.pl:4477
+#: ../vdradmind.pl:4506
msgid "System default"
msgstr ""
-#~ msgid "Gets active after restarting VDRAdmin-AM"
-#~ msgstr "Etre actif après le redémarrage de VDRAdmin-AM"
-
-#~ msgid "In \"Channels\" / \"Playing Today\"?"
-#~ msgstr "Dans \"Chaînes\" / \"Joué Aujourd'hui\" ?"
-
#~ msgid "more"
#~ msgstr "suite"
-
-#~ msgid "Number of columns in \"What's On Now\":"
-#~ msgstr "Nombre de colonnes dans \"En ce Moment\":"
-
-#~ msgid ""
-#~ "Change the number of columns displayed in <span class=\"ref_menu\">What's "
-#~ "On Now</span> with this option."
-#~ msgstr ""
-#~ "Change le nombre de colonnes affichées dans <span class=\"ref_menu\">En "
-#~ "ce moment .</span> avec cette option."
diff --git a/po/nl.po b/po/nl.po
index 9a4e577..7accf29 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,15 +1,16 @@
+# translation of nl.po to Nederlands
# translation of vdradmin-nl.po to Nederlands
# translation of vdradmin.po to Nederlands
# This file is distributed under the same license as the PACKAGE package.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Roel <rl.koelewijn@home.nl>, 2005.
+# Roel <rl.koelewijn@home.nl>, 2005, 2006.
#
msgid ""
msgstr ""
-"Project-Id-Version: vdradmin-nl\n"
+"Project-Id-Version: nl\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-01-18 08:21+0100\n"
-"PO-Revision-Date: 2005-12-13 19:46+0100\n"
+"POT-Creation-Date: 2006-01-30 12:21+0100\n"
+"PO-Revision-Date: 2006-01-27 20:37+0100\n"
"Last-Translator: Roel <rl.koelewijn@home.nl>\n"
"Language-Team: Nederlands <nl@li.org>\n"
"MIME-Version: 1.0\n"
@@ -194,7 +195,7 @@ msgstr "Eind tijd"
#: ../template/default/timer_new.html:144
msgid "Use VPS:"
-msgstr ""
+msgstr "Gebruik VPS"
#: ../template/default/timer_new.html:150
#: ../template/default/at_timer_list.html:24
@@ -349,7 +350,7 @@ msgstr "Verwijder alle geselecteerde timers?"
#: ../template/default/prog_summary.html:7
#: ../template/default/prog_timeline.html:7
-#: ../template/default/navigation.html:30 ../vdradmind.pl:4410
+#: ../template/default/navigation.html:30 ../vdradmind.pl:4439
msgid "What's On Now?"
msgstr "Wat is er nu op?"
@@ -424,7 +425,7 @@ msgstr "Lokaal netwerk (geen login benodigd):"
#: ../template/default/config.html:96 ../template/default/help_config.html:50
msgid "Language:"
-msgstr ""
+msgstr "Taal:"
#: ../template/default/config.html:120 ../template/default/help_config.html:38
#: ../template/default/help_config.html:56
@@ -474,7 +475,7 @@ msgstr "Wachtwoord gast"
#: ../template/default/config.html:213 ../template/default/help_config.html:38
#: ../template/default/help_config.html:86
-#: ../template/default/navigation.html:38 ../vdradmind.pl:4412
+#: ../template/default/navigation.html:38 ../vdradmind.pl:4441
msgid "Timeline"
msgstr "Tijdlijn"
@@ -490,7 +491,7 @@ msgstr "Tijden:"
#: ../template/default/help_config.html:92
#: ../template/default/help_config.html:120
msgid "Tooltips:"
-msgstr ""
+msgstr "Handigheden:"
#: ../template/default/config.html:264
#: ../template/default/help_config.html:100
@@ -519,35 +520,33 @@ msgstr "Tijd marge bij stop:"
#: ../template/default/config.html:305
#: ../template/default/help_config.html:108
-#, fuzzy
msgid "Send email after programming timer:"
-msgstr "Herinner geprogrammeerde timer:"
+msgstr "Stuur email na het programmeren van de timer:"
#: ../template/default/config.html:314
#: ../template/default/help_config.html:110
msgid "Send email as:"
-msgstr ""
+msgstr "Stuur email als:"
#: ../template/default/config.html:320
#: ../template/default/help_config.html:112
msgid "Send email to:"
-msgstr ""
+msgstr "Stuur email naar:"
#: ../template/default/config.html:326
#: ../template/default/help_config.html:114
msgid "Mail server:"
-msgstr ""
+msgstr "Mail server:"
#: ../template/default/config.html:332
#: ../template/default/help_config.html:116
msgid "SMTPAuth user:"
-msgstr ""
+msgstr "SMTPAuth gebruiker:"
#: ../template/default/config.html:338
#: ../template/default/help_config.html:118
-#, fuzzy
msgid "SMTPAuth password:"
-msgstr "Wachtwoord:"
+msgstr "SMTPAuth Wachtwoord:"
#: ../template/default/config.html:361 ../template/default/timer_list.html:6
#: ../template/default/timer_list.html:44
@@ -562,17 +561,17 @@ msgstr "Timer"
#: ../template/default/config.html:395
#: ../template/default/help_config.html:136
msgid "Tooltips in timeline:"
-msgstr ""
+msgstr "Handigheden in de tijdlijn:"
#: ../template/default/config.html:404
#: ../template/default/help_config.html:138
msgid "Tooltips in list:"
-msgstr ""
+msgstr "Handigheden in lijst:"
#: ../template/default/config.html:413
#: ../template/default/help_config.html:140
msgid "Add summary to new timers:"
-msgstr ""
+msgstr "Voeg beschrijving toe aan nieuwe timers:"
#: ../template/default/config.html:431 ../template/default/help_config.html:38
#: ../template/default/help_config.html:146
@@ -602,25 +601,22 @@ msgstr "Pad naar VDR opnames op uw werkstation:"
#: ../template/default/config.html:471
#: ../template/default/help_config.html:156
msgid "MIME type for live streaming:"
-msgstr ""
+msgstr "Mime type voor live streaming:"
#: ../template/default/config.html:477
#: ../template/default/help_config.html:158
-#, fuzzy
msgid "Suffix for live streaming:"
-msgstr "Live Streaming:"
+msgstr "Extensie voor Live Streaming:"
#: ../template/default/config.html:483
#: ../template/default/help_config.html:160
-#, fuzzy
msgid "MIME type for recordings streaming:"
-msgstr "Streaming opnames:"
+msgstr "MIME type voor opgenomen Streaming:"
#: ../template/default/config.html:489
#: ../template/default/help_config.html:162
-#, fuzzy
msgid "Suffix for recordings streaming:"
-msgstr "Streaming opnames:"
+msgstr "Extensie voor opgenomen Streaming:"
#: ../template/default/config.html:496
msgid "Bandwidth of Streams:"
@@ -672,9 +668,8 @@ msgid "In \"AutoTimer\"?"
msgstr "In \"AutoTimer\"?"
#: ../template/default/config.html:619
-#, fuzzy
msgid "In \"Watch TV\"?"
-msgstr "TV bekijken"
+msgstr "In \"TV bekijken\"?"
#: ../template/default/config.html:660
msgid "Apply"
@@ -692,11 +687,11 @@ msgstr "min"
#: ../template/default/timer_list.html:27
msgid "Transponder:"
-msgstr ""
+msgstr "Transponder:"
#: ../template/default/timer_list.html:27
msgid "CA-System:"
-msgstr ""
+msgstr "CA-Systeem:"
#: ../template/default/timer_list.html:46
msgid "New Timer"
@@ -738,26 +733,23 @@ msgid "Auto"
msgstr "Auto"
#: ../template/default/timer_list.html:380
-#, fuzzy
msgid "activate"
-msgstr "Aktief"
+msgstr "Aktiven"
#: ../template/default/timer_list.html:381
-#, fuzzy
msgid "inactivate"
-msgstr "Aktief"
+msgstr "Deaktiveren"
#: ../template/default/timer_list.html:382
-#, fuzzy
msgid "selected timers"
-msgstr "Timer verwijderen? "
+msgstr "Geselecteerde timers"
#: ../template/default/timer_list.html:385
msgid "Delete Selected Timers"
msgstr "Verwijder geselecteerde timers"
#: ../template/default/prog_list.html:6 ../template/default/navigation.html:42
-#: ../vdradmind.pl:4413
+#: ../vdradmind.pl:4442
msgid "Channels"
msgstr "Kanalen"
@@ -823,7 +815,7 @@ msgstr "Zoek de film op bij de Internet-Movie-Database (IMDb)"
#: ../template/default/rec_list.html:6 ../template/default/rec_list.html:18
#: ../template/default/help_rec_list.html:6
#: ../template/default/help_rec_list.html:18
-#: ../template/default/navigation.html:54 ../vdradmind.pl:4415
+#: ../template/default/navigation.html:54 ../vdradmind.pl:4444
msgid "Recordings"
msgstr "Opnames"
@@ -857,7 +849,7 @@ msgstr "Opname verwijderen?"
#: ../template/default/rec_list.html:170
msgid "Refresh"
-msgstr ""
+msgstr "Verversen"
#: ../template/default/rec_list.html:174
msgid "Commands:"
@@ -896,7 +888,6 @@ msgid "The page you want to see at first connect to VDRAdmin-AM."
msgstr "De pagina die u als eerste wilt zien als VDRAdmin-AM start."
#: ../template/default/help_config.html:47
-#, fuzzy
msgid ""
"VDRAdmin-AM will load the given number of channels from VDR and present only "
"those in any fields where channels can be selected. This also limits the EPG "
@@ -910,11 +901,7 @@ msgstr ""
"informatie die VDRAdmin-AM zal lezen zodat het geheugen gebruikt van "
"VDRAdmin-AM beperkt zal worden en de prestaties zal verbeteren. <strong>0</"
"strong>als deze functie is uitgeschakeld dan zal VDRAdmin-AM alle "
-"beschikbare kanalen gebruiken<h4> Opmerking:</h4> Veranderingen zullen niet "
-"direct in werking treden, u zult moeten wachten tot dat VDRAdmin-AM "
-"herverbind met VDR om de EPG data te verversen of forceer verversen "
-"handmating in de <span class=\"ref_menu\">Autotimer</span> menu of VDRAdmin-"
-"AM herstarten."
+"beschikbare kanalen gebruiken."
#: ../template/default/help_config.html:49
msgid ""
@@ -929,11 +916,8 @@ msgstr ""
"toestaan."
#: ../template/default/help_config.html:51
-#, fuzzy
msgid "Here you can set the localization VDRAdmin-AM should use."
-msgstr ""
-"Hier kunt u aangeven de EPG delen aangeven waar VDRAdmin-AM moet zoeken naar "
-"zoekpatronen."
+msgstr "Hier kunt u de taal instellen die VDRAdmin-AM moet gebruiken."
#: ../template/default/help_config.html:53
#: ../template/default/help_config.html:67
@@ -1029,7 +1013,7 @@ msgstr ""
#: ../template/default/help_config.html:93
#: ../template/default/help_config.html:121
msgid "Here you can (de-)activate the tooltips."
-msgstr ""
+msgstr "Hier kunt u de handigheden (de)aktiveren."
#: ../template/default/help_config.html:101
msgid "Activate or deactivate the AutoTimer function."
@@ -1103,18 +1087,20 @@ msgid ""
"VDRAdmin-AM will send an email whenever an event matches an AutoTimer and a "
"timer has been programmed if you enable this feature."
msgstr ""
+"VDRAdmin-AM zal een email sturen als een gebeurtenis overeenkomt met een "
+"autotimer en een timer is geprogrammeerd als u dit aktiveerd in de toekomst."
#: ../template/default/help_config.html:111
msgid "Here you set the sending domain of the generated email."
-msgstr ""
+msgstr "Hier het domein instellen voor de aangemaakte email."
#: ../template/default/help_config.html:113
msgid "The email address the email is sent to."
-msgstr ""
+msgstr "Het email adres, de email is gestuurd naar:"
#: ../template/default/help_config.html:115
msgid "The outgoing mail server."
-msgstr ""
+msgstr "De uitgaande mail server."
#: ../template/default/help_config.html:117
msgid ""
@@ -1122,11 +1108,13 @@ msgid ""
"to supply the username and the password below. Leaving this field empty will "
"disable SMTPAuth."
msgstr ""
+"Als u zich moet identificeren voor SMTPAuth de uitgaande mail server dan "
+"moet u uw gebruikersnaam en wachtwoord hieronder invoeren. Als dit veld leeg "
+"is dan zal SMTPAuth niet aktief zijn."
#: ../template/default/help_config.html:119
-#, fuzzy
msgid "The password for the SMTPAuth user."
-msgstr "De gebruikersnaam van de gast gebruiker."
+msgstr "Het wachtwoord voor de SMTPAuth gebruiker."
#: ../template/default/help_config.html:133
msgid ""
@@ -1152,17 +1140,19 @@ msgstr ""
#: ../template/default/help_config.html:137
msgid "Here you can (de-)activate the tooltips in the timeline."
-msgstr ""
+msgstr "Hier kunt u de handigheen (de)aktiveren in de tijdlijn."
#: ../template/default/help_config.html:139
msgid "Here you can (de-)activate the tooltips in the list."
-msgstr ""
+msgstr "Hier kunt u de handigheen (de)aktiveren in de lijst."
#: ../template/default/help_config.html:141
msgid ""
"If you don't want VDRAdmin-AM to add the summary taken from EPG to new "
"timers you can switch it off here."
msgstr ""
+"Als u niet wilt dat VDRAdmin-AM de programma informatie uit de EPG overneemt "
+"aan nieuwe timer dan kunt u dat hier uitzetten."
#: ../template/default/help_config.html:149
msgid ""
@@ -1218,20 +1208,24 @@ msgid ""
"The MIME type to send when using live streaming. Defaults to \"video/x-"
"mpegurl\"."
msgstr ""
+"Het MIME type te gebruiken voor live streaming. standaard is \"video/x-"
+"mpegurl\"."
#: ../template/default/help_config.html:159
msgid "The suffix to use for live streaming. Defaults to \"m3u\"."
-msgstr ""
+msgstr "De extensie voor live streaming. Standaard is \"m3u\"."
#: ../template/default/help_config.html:161
msgid ""
"The MIME type to send when using recordings streaming. Defaults to \"video/x-"
"mpegurl\"."
msgstr ""
+"Het MIME type te gebruiken voor opgenomen streaming. standaard is \"video/x-"
+"mpegurl\"."
#: ../template/default/help_config.html:163
msgid "The suffix to use for recordings streaming. Defaults to \"m3u\"."
-msgstr ""
+msgstr "De extensie voor opgenomen streaming. Standaard is \"m3u\"."
#: ../template/default/help_config.html:169
msgid ""
@@ -1301,7 +1295,7 @@ msgid "to"
msgstr "naar "
#: ../template/default/prog_list2.html:6
-#: ../template/default/navigation.html:34 ../vdradmind.pl:2527
+#: ../template/default/navigation.html:34 ../vdradmind.pl:2538
msgid "Playing Today"
msgstr "Programma vandaag "
@@ -1318,12 +1312,10 @@ msgid "New Name of Recording:"
msgstr "Nieuwe naam van de opname:"
#: ../template/default/rec_edit.html:51
-#, fuzzy
msgid "Subtitle:"
-msgstr "Subtitel"
+msgstr "Subtitel:"
#: ../template/default/help_timer_list.html:33
-#, fuzzy
msgid ""
"<p>Here you will find a listing of timers known to VDR.</p><p>On top you "
"will find a chart showing a day's timers graphically. This provides an quick "
@@ -1398,7 +1390,7 @@ msgstr ""
"in<input type=\"submit\" class=\"submit\" value=\"New Timer\"/> te klikken "
"en u kunt een aantal timers verwijderen door eenmaal op het selectie vakje "
"in de laatste kolom te klikken en dan op <input type=\"submit\" class="
-"\"submit\" value=\"Delete Selected Timers\"/>.</p> te klikken."
+"\"submit\" value=\"Verwijder geselecteerde timers\"/>.</p> te klikken."
#: ../template/default/help_timer_new.html:32
msgid "<p>Here you can edit a timer's settings.</p>"
@@ -1789,7 +1781,6 @@ msgstr ""
"toevoegen aan de resulterende reeks."
#: ../template/default/help_rec_list.html:29
-#, fuzzy
msgid ""
"<p>Here you will find a listing of recordings known to VDR. The headline "
"will also show you VDR's total and free disk space.</p><p>The listing "
@@ -1850,11 +1841,11 @@ msgstr ""
"\">Configuratie</span> menu. U kunt de opname bekijken op uw werkstation.</"
"dd></dl></p><p> Aanvullend bij deze functies kunt u een aantal opnames "
"verwijderen door te klikken in het aanvink vak van de opnames en te klikken "
-"op <input type=\"submit\" class=\"submit\" value=\"Delete Selected Recordings"
-"\"/>.</p><p>Als u het pad van de VDR configuratie bestanden heeft ingesteld "
-"en ingangen heeft staan in <span class=\"ref_file\">reccmds.conf</span> "
-"kunt u deze commando's uitvoeren voor de geselecteerde opnames door het "
-"gewenste commando aant te klikken in het aanvinkvak naast <span class="
+"op <input type=\"submit\" class=\"submit\" value=\"Verwijder geselecteerde "
+"opnames\"/>.</p><p>Als u het pad van de VDR configuratie bestanden heeft "
+"ingesteld en ingangen heeft staan in <span class=\"ref_file\">reccmds.conf</"
+"span> kunt u deze commando's uitvoeren voor de geselecteerde opnames door "
+"het gewenste commando aant te klikken in het aanvinkvak naast <span class="
"\"ref_label\">Commando's:</span> en te klikken op <input type=\"submit\" "
"class=\"submit\" value=\"Run\"/> knop.</p>"
@@ -1888,21 +1879,19 @@ msgstr "Alle"
#: ../template/default/at_timer_new.html:177
msgid "Test"
-msgstr ""
+msgstr "Test"
#: ../template/default/at_timer_new.html:192
msgid "Broadcasted"
-msgstr ""
+msgstr "Uitgezonden"
#: ../template/default/at_timer_new.html:193
-#, fuzzy
msgid "Stored in"
-msgstr "Streaming"
+msgstr "Opgeslagen in"
#: ../template/default/at_timer_new.html:213
-#, fuzzy
msgid "No matches found!"
-msgstr "Niet gevonden"
+msgstr "Geen overeenkomsten gevonden!"
#: ../template/default/navigation.html:66
msgid "Watch TV"
@@ -1913,19 +1902,21 @@ msgid "Search"
msgstr "Zoeken"
#: ../template/default/navigation.html:80 ../template/default/about.html:6
-#, fuzzy
msgid "About"
-msgstr "Auto"
+msgstr "Over"
#: ../template/default/help.html:18
msgid "Getting Help and Reporting Bugs"
-msgstr ""
+msgstr "Voor het verkrijgen van hulp en melden van bugs"
#: ../template/default/help.html:30
msgid ""
"If you need help please first try to use the online help you'll find on some "
"pages. You can access it by clicking <img src=\"bilder/help.gif\"/>."
msgstr ""
+"Als u hulp nodig heeft probeer dan eers de online hulp, u zult enige "
+"pagina's vinden. U kunt dit bezoeken door op <img src=\"bilder/help.gif\"/> "
+"te klikken."
#: ../template/default/help.html:31
msgid ""
@@ -1934,6 +1925,10 @@ msgid ""
"understand German language. Please use the announcement thread if possible, "
"search for:"
msgstr ""
+"Als dit niet de informatie verschaft die u zoekt dan kunt u het proberen op "
+"<a href=\"http://www.vdrportal.de\" target=\"_new\">VDR-Portal</a> als u de "
+"duitse taal verstaat. Gebruik graag de bekendmakingen draad indien mogelijk, "
+"zoek naar:"
#: ../template/default/help.html:32
msgid ""
@@ -1941,53 +1936,53 @@ msgid ""
"report it in the <a href=\"http://www.vdr-developer.org/mantisbt/main_page."
"php\" target=\"_new\">VDRAdmin-AM BugTracking system</a>."
msgstr ""
+"Als u denkt een bug gevonden te hebben controleer dan graag eerst of dit een "
+"nieuwe is en meld het in de <a href=\"http://www.vdr-developer.org/mantisbt/"
+"main_page.php\" target=\"_new\">VDRAdmin-AM BugTracking systeem</a>."
#: ../template/default/about.html:18
-#, fuzzy
msgid "Authors"
-msgstr "Auto"
+msgstr "Auteurs"
#: ../template/default/about.html:28
msgid "Current author (VDRAdmin-AM branch):"
-msgstr ""
+msgstr "Huidige auteur (VDRAdmin-AM branch):"
#: ../template/default/about.html:34
-#, fuzzy
msgid "Original author (VDRAdmin):"
-msgstr "Originele naam van de opname: "
+msgstr "Originele auteru van (VDRAdmin):"
#: ../template/default/about.html:48
msgid "Translation Team"
-msgstr ""
+msgstr "Vertalings team"
#: ../template/default/about.html:58
msgid "Dutch:"
-msgstr ""
+msgstr "Nederlands:"
#: ../template/default/about.html:64
msgid "English:"
-msgstr ""
+msgstr "Engels:"
#: ../template/default/about.html:70
msgid "Finnish:"
-msgstr ""
+msgstr "Fins:"
#: ../template/default/about.html:76
-#, fuzzy
msgid "French:"
-msgstr "Vrij:"
+msgstr "Frans:"
#: ../template/default/about.html:77
msgid "At the moment unmaintained, former translations by:"
-msgstr ""
+msgstr "Op dit moment niet onderhouden, eerdere vertalingen door:"
#: ../template/default/about.html:82
msgid "German:"
-msgstr ""
+msgstr "Duits:"
#: ../template/default/about.html:88
msgid "Spanish:"
-msgstr ""
+msgstr "Spaans:"
#: ../vdradmind.pl:286
msgid "What's your VDR hostname (e.g video.intra.net)?"
@@ -2030,71 +2025,68 @@ msgstr "Configuratie bestanden succesvol weggeschreven."
msgid "vdradmind.pl %s started with pid %d."
msgstr "vdradmind.pl %s gestart met pid %d."
-#: ../vdradmind.pl:405 ../vdradmind.pl:997 ../vdradmind.pl:1830
+#: ../vdradmind.pl:405 ../vdradmind.pl:997 ../vdradmind.pl:1841
msgid "Not found"
msgstr "Niet gevonden"
-#: ../vdradmind.pl:405 ../vdradmind.pl:1831
+#: ../vdradmind.pl:405 ../vdradmind.pl:1842
msgid "The requested URL was not found on this server!"
msgstr "De gevraagde URl is niet gevonden op deze server!"
-#: ../vdradmind.pl:473 ../vdradmind.pl:993 ../vdradmind.pl:1833
+#: ../vdradmind.pl:473 ../vdradmind.pl:993 ../vdradmind.pl:1844
msgid "Forbidden"
msgstr "Verboden"
-#: ../vdradmind.pl:473 ../vdradmind.pl:1834
+#: ../vdradmind.pl:473 ../vdradmind.pl:1845
msgid "You don't have permission to access this function!"
msgstr "U heeft geen toestemming om deze functie te gebruiken!"
-#: ../vdradmind.pl:993 ../vdradmind.pl:1835
+#: ../vdradmind.pl:993 ../vdradmind.pl:1846
#, perl-format
msgid "Access to file \"%s\" denied!"
msgstr "Toegang tot bestand \"%s\" geweigerd!"
-#: ../vdradmind.pl:997 ../vdradmind.pl:1832
+#: ../vdradmind.pl:997 ../vdradmind.pl:1843
#, perl-format
msgid "The URL \"%s\" was not found on this server!"
msgstr "De URl \"%s\" is niet gevonden op deze server!"
-#: ../vdradmind.pl:1836
+#: ../vdradmind.pl:1847
#, perl-format
msgid "Can't open file \"%s\"!"
msgstr "Kan bestand \"%s\" niet openen!"
-#: ../vdradmind.pl:1837
+#: ../vdradmind.pl:1848
#, perl-format
msgid "Can't connect to VDR at %s!"
msgstr "Kan niet met VDR verbinden op %s!"
-#: ../vdradmind.pl:1838
+#: ../vdradmind.pl:1849
#, perl-format
msgid "Error while sending command to VDR at %s"
msgstr "Fout tijdens verzenden van commando op %s"
-#: ../vdradmind.pl:2527
+#: ../vdradmind.pl:2538
msgid "Playing Tomorrow"
msgstr "Speelt morgen"
-#: ../vdradmind.pl:2527
+#: ../vdradmind.pl:2538
#, perl-format
msgid "Playing on the %d."
msgstr "Speelt op de %d."
-#: ../vdradmind.pl:3891
+#: ../vdradmind.pl:3920
msgid "Schedule"
msgstr "Schema"
-#: ../vdradmind.pl:4411
+#: ../vdradmind.pl:4440
msgid "Playing Today?"
msgstr "Speelt vandaag?"
-#: ../vdradmind.pl:4414
+#: ../vdradmind.pl:4443
msgid "Timers"
msgstr "Timers"
-#: ../vdradmind.pl:4477
+#: ../vdradmind.pl:4506
msgid "System default"
-msgstr ""
-
-#~ msgid "Gets active after restarting VDRAdmin-AM"
-#~ msgstr "Wordt geaktiveerd na herstarten van VDRAdmin-AM"
+msgstr "Systeem standaard"
diff --git a/po/vdradmin.pot b/po/vdradmin.pot
index 73dd374..876ec2b 100644
--- a/po/vdradmin.pot
+++ b/po/vdradmin.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-01-18 08:21+0100\n"
+"POT-Creation-Date: 2006-01-30 12:21+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -342,7 +342,7 @@ msgstr ""
#: ../template/default/prog_summary.html:7
#: ../template/default/prog_timeline.html:7
-#: ../template/default/navigation.html:30 ../vdradmind.pl:4410
+#: ../template/default/navigation.html:30 ../vdradmind.pl:4439
msgid "What's On Now?"
msgstr ""
@@ -467,7 +467,7 @@ msgstr ""
#: ../template/default/config.html:213 ../template/default/help_config.html:38
#: ../template/default/help_config.html:86
-#: ../template/default/navigation.html:38 ../vdradmind.pl:4412
+#: ../template/default/navigation.html:38 ../vdradmind.pl:4441
msgid "Timeline"
msgstr ""
@@ -741,7 +741,7 @@ msgid "Delete Selected Timers"
msgstr ""
#: ../template/default/prog_list.html:6 ../template/default/navigation.html:42
-#: ../vdradmind.pl:4413
+#: ../vdradmind.pl:4442
msgid "Channels"
msgstr ""
@@ -807,7 +807,7 @@ msgstr ""
#: ../template/default/rec_list.html:6 ../template/default/rec_list.html:18
#: ../template/default/help_rec_list.html:6
#: ../template/default/help_rec_list.html:18
-#: ../template/default/navigation.html:54 ../vdradmind.pl:4415
+#: ../template/default/navigation.html:54 ../vdradmind.pl:4444
msgid "Recordings"
msgstr ""
@@ -1177,7 +1177,7 @@ msgid "to"
msgstr ""
#: ../template/default/prog_list2.html:6
-#: ../template/default/navigation.html:34 ../vdradmind.pl:2527
+#: ../template/default/navigation.html:34 ../vdradmind.pl:2538
msgid "Playing Today"
msgstr ""
@@ -1705,68 +1705,68 @@ msgstr ""
msgid "vdradmind.pl %s started with pid %d."
msgstr ""
-#: ../vdradmind.pl:405 ../vdradmind.pl:997 ../vdradmind.pl:1830
+#: ../vdradmind.pl:405 ../vdradmind.pl:997 ../vdradmind.pl:1841
msgid "Not found"
msgstr ""
-#: ../vdradmind.pl:405 ../vdradmind.pl:1831
+#: ../vdradmind.pl:405 ../vdradmind.pl:1842
msgid "The requested URL was not found on this server!"
msgstr ""
-#: ../vdradmind.pl:473 ../vdradmind.pl:993 ../vdradmind.pl:1833
+#: ../vdradmind.pl:473 ../vdradmind.pl:993 ../vdradmind.pl:1844
msgid "Forbidden"
msgstr ""
-#: ../vdradmind.pl:473 ../vdradmind.pl:1834
+#: ../vdradmind.pl:473 ../vdradmind.pl:1845
msgid "You don't have permission to access this function!"
msgstr ""
-#: ../vdradmind.pl:993 ../vdradmind.pl:1835
+#: ../vdradmind.pl:993 ../vdradmind.pl:1846
#, perl-format
msgid "Access to file \"%s\" denied!"
msgstr ""
-#: ../vdradmind.pl:997 ../vdradmind.pl:1832
+#: ../vdradmind.pl:997 ../vdradmind.pl:1843
#, perl-format
msgid "The URL \"%s\" was not found on this server!"
msgstr ""
-#: ../vdradmind.pl:1836
+#: ../vdradmind.pl:1847
#, perl-format
msgid "Can't open file \"%s\"!"
msgstr ""
-#: ../vdradmind.pl:1837
+#: ../vdradmind.pl:1848
#, perl-format
msgid "Can't connect to VDR at %s!"
msgstr ""
-#: ../vdradmind.pl:1838
+#: ../vdradmind.pl:1849
#, perl-format
msgid "Error while sending command to VDR at %s"
msgstr ""
-#: ../vdradmind.pl:2527
+#: ../vdradmind.pl:2538
msgid "Playing Tomorrow"
msgstr ""
-#: ../vdradmind.pl:2527
+#: ../vdradmind.pl:2538
#, perl-format
msgid "Playing on the %d."
msgstr ""
-#: ../vdradmind.pl:3891
+#: ../vdradmind.pl:3920
msgid "Schedule"
msgstr ""
-#: ../vdradmind.pl:4411
+#: ../vdradmind.pl:4440
msgid "Playing Today?"
msgstr ""
-#: ../vdradmind.pl:4414
+#: ../vdradmind.pl:4443
msgid "Timers"
msgstr ""
-#: ../vdradmind.pl:4477
+#: ../vdradmind.pl:4506
msgid "System default"
msgstr ""
diff --git a/template/default/default/style.css b/template/default/default/style.css
index 55cde26..0b57a2f 100644
--- a/template/default/default/style.css
+++ b/template/default/default/style.css
@@ -500,6 +500,11 @@ body.help .heading {
#help .links a {
white-space: nowrap;
}
+#help a ,
+#help a:visited,
+#help a:active {
+ color: blue;
+}
#help .group {
margin-top: 0.6em;
border: 1px solid black;
diff --git a/template/default/style.css b/template/default/style.css
index 9c423f1..888b23b 100644
--- a/template/default/style.css
+++ b/template/default/style.css
@@ -133,6 +133,7 @@ label + input { margin-left: 1em; }
#help .ref_label { font-style: italic; }
#help .links { padding: 5px; background-color: silver; text-align: justify; }
#help .links a { white-space: nowrap; }
+#help a , #help a:visited, #help a:active { color: blue; }
#help .group { margin-top: 0.6em; border: 1px solid black; white-space: normal; }
#help .group p { padding: 5px; }
#help .top_link { text-align: right; font-size: 0.8em; background-color: silver; padding: 1px 5px; margin: 0px; }
diff --git a/tools/check.sh b/tools/check.sh
new file mode 100755
index 0000000..823d724
--- /dev/null
+++ b/tools/check.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+[ -z "$1" ] && exit 1
+
+cat $1 | sed -e 's#<\(tmpl_[^>]*\)>#<%!\1 /!%>#g' -e 's#</\(tmpl_[^>]*\)>#<%!\1 /!%>#g' | tidy -xml
+#cat $1 | sed -e 's#\(<tmpl_var [^>]*\)>#\1 />#g' -e 's#\(<tmpl_else\)>#\1 />#g' | tidy -xml
diff --git a/tools/lib/String/Escape.pm b/tools/lib/String/Escape.pm
new file mode 100644
index 0000000..2c40f45
--- /dev/null
+++ b/tools/lib/String/Escape.pm
@@ -0,0 +1,625 @@
+### String::Escape - Backslash escaping, word splitting, and elision functions
+
+### Copyright 2002 Matthew Simon Cavalletto.
+ # You may use this software under the same terms as Perl.
+
+########################################################################
+
+package String::Escape;
+
+require 5;
+use strict;
+use Carp;
+use Exporter;
+
+use vars qw( $VERSION @ISA @EXPORT_OK );
+$VERSION = 2002.001;
+
+push @ISA, qw( Exporter );
+push @EXPORT_OK, qw(
+ escape
+ printable unprintable
+ elide
+ quote unquote quote_non_words qprintable unqprintable
+ string2list string2hash list2string list2hash hash2string hash2list
+);
+
+########################################################################
+
+### Call by-name interface
+
+# %Escapes - escaper function references by name
+use vars qw( %Escapes );
+%Escapes = (
+ %Escapes,
+ 'none' => sub ($) { $_[0]; },
+
+ 'uppercase' => sub ($) { uc $_[0] },
+ 'lowercase' => sub ($) { lc $_[0] },
+ 'initialcase' => sub ($) { ucfirst lc $_[0] },
+
+ 'quote' => \&quote,
+ 'unquote' => \&unquote,
+ 'quote_non_words' => \&quote_non_words,
+
+ 'printable' => \&printable,
+ 'unprintable' => \&unprintable,
+
+ 'qprintable' => 'printable quote_non_words',
+ 'unqprintable' => 'unquote unprintable',
+
+ 'elide' => \&elide,
+);
+
+# String::Escape::add( $name, $subroutine );
+sub add ($$) { $Escapes{ shift(@_) } = shift(@_); }
+
+# @defined_names = String::Escape::names();
+sub names () { keys(%Escapes); }
+
+# $escaped = escape($escape_spec, $value);
+# @escaped = escape($escape_spec, @values);
+sub escape ($@) {
+ my ($escape_spec, @values) = @_;
+
+ croak "escape called with multiple values but in scalar context"
+ if ($#values > 0 && ! wantarray);
+
+ my @escapes = expand_escape_spec($escape_spec);
+ # warn "Escaping: ". join(' ', @escapes) . "\n";
+ my ($value, $escaper);
+ foreach $value ( @values ) {
+ foreach $escaper ( @escapes ) {
+ $value = &$escaper( $value );
+ }
+ }
+
+ return wantarray ? @values : $values[0];
+}
+
+# @escape_functions = expand_escape_spec($escape_spec);
+sub expand_escape_spec {
+ my $escape_spec = shift;
+
+ if ( ref($escape_spec) eq 'CODE' ) {
+ return $escape_spec;
+ } elsif ( ref($escape_spec) eq 'ARRAY' ) {
+ return map { expand_escape_spec($_) } @$escape_spec;
+ } elsif ( ! ref($escape_spec) ) {
+ return map {
+ expand_escape_spec($_)
+ } map {
+ $Escapes{$_} or croak "unsupported escape specification '$_'; " .
+ "should be one of " . join(', ', names())
+ } split(/\s+/, $escape_spec);
+ } else {
+ croak "unsupported escape specification '$escape_spec'";
+ }
+}
+
+########################################################################
+
+### Double Quoting
+
+# $with_surrounding_quotes = quote( $string_value );
+sub quote ($) { '"' . $_[0] . '"' }
+
+# $remove_surrounding_quotes = quote( $string_value );
+sub unquote ($) { local $_ = $_[0]; s/\A\"(.*)\"\Z/$1/s; $_; }
+
+# $word_or_phrase_with_surrounding_quotes = quote( $string_value );
+sub quote_non_words ($) {
+ ( ! length $_[0] or $_[0] =~ /[^\w\_\-\/\.\:\#]/ ) ? '"'.$_[0].'"' : $_[0]
+}
+
+### Backslash Escaping
+
+use vars qw( %Printable %Unprintable );
+%Printable = ( ( map { chr($_), unpack('H2', chr($_)) } (0..255) ),
+ "\\"=>'\\', "\r"=>'r', "\n"=>'n', "\t"=>'t', "\""=>'"' );
+%Unprintable = ( reverse %Printable );
+
+# $special_characters_escaped = printable( $source_string );
+sub printable ($) {
+ local $_ = ( defined $_[0] ? $_[0] : '' );
+ s/([\r\n\t\"\\\x00-\x1f\x7F-\xFF])/\\$Printable{$1}/sg;
+ return $_;
+}
+
+# $original_string = unprintable( $special_characters_escaped );
+sub unprintable ($) {
+ local $_ = ( defined $_[0] ? $_[0] : '' );
+ s/((?:\A|\G|[^\\]))\\([rRnNtT\"\\]|[\da-fA-F]{2})/$1.$Unprintable{lc($2)}/gse;
+ return $_;
+}
+
+# quoted_and_escaped = qprintable( $source_string );
+sub qprintable ($) { quote_non_words printable $_[0] }
+
+# $original_string = unqprintable( quoted_and_escaped );
+sub unqprintable ($) { unprintable unquote $_[0] }
+
+########################################################################
+
+### Elision
+
+use vars qw( $Elipses $DefaultLength $DefaultStrictness );
+$Elipses = '...';
+$DefaultLength = 60;
+$DefaultStrictness = 10;
+
+# $elided_string = elide($string);
+# $elided_string = elide($string, $length);
+# $elided_string = elide($string, $length, $word_boundary_strictness);
+ # Return a single-quoted, shortened version of the string, with ellipsis
+sub elide ($;$$) {
+ my $source = shift;
+ my $length = scalar(@_) ? shift() : $DefaultLength;
+ my $word_limit = scalar(@_) ? shift() : $DefaultStrictness;
+
+ # If the source is already short, we don't need to do anything
+ return $source if (length($source) < $length);
+
+ # Leave room for the elipses and make sure we include at least one character.
+ $length -= length( $Elipses );
+ $length = 1 if ( $length < 1 );
+
+ my $excerpt;
+
+ # Try matching $length characters or less at a word boundary.
+ $excerpt = ( $source =~ /^(.{0,$length})(?:\s|\Z)/ )[0] if ( $word_limit );
+
+ # Ignore boundaries if that fails or returns much less than we wanted.
+ $excerpt = substr($source, 0, $length) if ( ! defined $excerpt or
+ length($excerpt) < length($source) and
+ ! length($excerpt) || abs($length - length($excerpt)) > $word_limit);
+
+ return $excerpt . $Elipses;
+}
+
+########################################################################
+
+# @words = string2list( $space_separated_phrases );
+sub string2list {
+ my $text = shift;
+
+ carp "string2list called with a non-text argument, '$text'" if (ref $text);
+
+ my @words;
+ my $word = '';
+
+ while ( defined $text and length $text ) {
+ if ($text =~ s/\A(?: ([^\"\s\\]+) | \\(.) )//mx) {
+ $word .= $1;
+ } elsif ($text =~ s/\A"((?:[^\"\\]|\\.)*)"//mx) {
+ $word .= $1;
+ } elsif ($text =~ s/\A\s+//m){
+ push(@words, unprintable($word));
+ $word = '';
+ } elsif ($text =~ s/\A"//) {
+ carp "string2list found an unmatched quote at '$text'";
+ return;
+ } else {
+ carp "string2list parse exception at '$text'";
+ return;
+ }
+ }
+ push(@words, unprintable($word));
+
+ return @words;
+}
+
+# $space_sparated_string = list2string( @words );
+sub list2string {
+ join ( ' ', map qprintable($_), @_ );
+}
+
+# %hash = list2hash( @words );
+sub list2hash {
+ my @pairs;
+ foreach (@_) {
+ my ($key, $val) = m/\A(.*?)(?:\=(.*))?\Z/s;
+ push @pairs, $key, $val;
+ }
+ return @pairs;
+}
+
+# @words = hash2list( %hash );
+sub hash2list {
+ my @words;
+ while ( scalar @_ ) {
+ my ($key, $value) = ( shift, shift );
+ push @words, qprintable($key) . '=' . qprintable($value)
+ }
+ return @words;
+}
+
+# %hash = string2hash( $string );
+sub string2hash {
+ return list2hash( string2list( shift ) );
+}
+
+# $string = hash2string( %hash );
+sub hash2string {
+ join ( ' ', hash2list( @_ ) );
+}
+
+########################################################################
+
+1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+String::Escape - Registry of string functions, including backslash escapes
+
+
+=head1 SYNOPSIS
+
+ use String::Escape qw( printable unprintable );
+ # Convert control, high-bit chars to \n or \xxx escapes
+ $output = printable($value);
+ # Convert escape sequences back to original chars
+ $value = unprintable($input);
+
+ use String::Escape qw( elide );
+ # Shorten strings to fit, if necessary
+ foreach (@_) { print elide( $_, 79 ) . "\n"; }
+
+ use String::Escape qw( string2list list2string );
+ # Pack and unpack simple lists by quoting each item
+ $list = list2string( @list );
+ @list = string2list( $list );
+
+ use String::Escape qw( string2hash hash2string );
+ # Pack and unpack simple hashes by quoting each item
+ $hash = hash2string( %hash );
+ %hash = string2hash( $hash );
+
+ use String::Escape qw( escape );
+ # Defer selection of escaping routines until runtime
+ $escape_name = $use_quotes ? 'qprintable' : 'printable';
+ @escaped = escape($escape_name, @values);
+
+
+=head1 DESCRIPTION
+
+This module provides a flexible calling interface to some frequently-performed string conversion functions, including applying and removing C/Unix-style backslash escapes like \n and \t, wrapping and removing double-quotes, and truncating to fit within a desired length.
+
+Furthermore, the escape() function provides for dynamic selection of operations by using a package hash variable to map escape specification strings to the functions which implement them. The lookup imposes a bit of a performance penalty, but allows for some useful late-binding behaviour. Compound specifications (ex. 'quoted uppercase') are expanded to a list of functions to be applied in order. Other modules may also register their functions here for later general use. (See the "CALLING BY NAME" section below for more.)
+
+
+=head1 FUNCTION REFERENCE
+
+=head2 Escaping And Unescaping Functions
+
+Each of these functions takes a single simple scalar argument and
+returns its escaped (or unescaped) equivalent.
+
+=over 4
+
+=item quote($value) : $escaped
+
+Add double quote characters to each end of the string.
+
+=item quote_non_words($value) : $escaped
+
+As above, but only quotes empty, punctuated, and multiword values; simple values consisting of alphanumerics without special characters are not quoted.
+
+=item unquote($value) : $escaped
+
+If the string both begins and ends with double quote characters, they are removed, otherwise the string is returned unchanged.
+
+=item printable($value) : $escaped
+
+=item unprintable($value) : $escaped
+
+These functions convert return, newline, tab, backslash and unprintable
+characters to their backslash-escaped equivalents and back again.
+
+=item qprintable($value) : $escaped
+
+=item unqprintable($value) : $escaped
+
+The qprintable function applies printable escaping and then wraps the results
+with quote_non_words, while unqprintable applies unquote and then unprintable.
+(Note that this is I<not> MIME quoted-printable encoding.)
+
+=back
+
+=head2 Simple Arrays and Hashes
+
+=over 4
+
+=item @words = string2list( $space_separated_phrases );
+
+Converts a space separated string of words and quoted phrases to an array;
+
+=item $space_sparated_string = list2string( @words );
+
+Joins an array of strings into a space separated string of words and quoted phrases;
+
+=item %hash = string2hash( $string );
+
+Converts a space separated string of equal-sign-associated key=value pairs into a simple hash.
+
+=item $string = hash2string( %hash );
+
+Converts a simple hash into a space separated string of equal-sign-associated key=value pairs.
+
+=item %hash = list2hash( @words );
+
+Converts an array of equal-sign-associated key=value strings into a simple hash.
+
+=item @words = hash2list( %hash );
+
+Converts a hash to an array of equal-sign-associated key=value strings.
+
+=back
+
+=head2 String Elision Function
+
+This function extracts the leading portion of a provided string and appends ellipsis if it's longer than the desired maximum excerpt length.
+
+=over 4
+
+=item elide($string) : $elided_string
+
+=item elide($string, $length) : $elided_string
+
+=item elide($string, $length, $word_boundary_strictness) : $elided_string
+
+If the original string is shorter than $length, it is returned unchanged. At most $length characters are returned; if called with a single argument, $length defaults to $DefaultLength.
+
+Up to $word_boundary_strictness additional characters may be ommited in order to make the elided portion end on a word boundary; you can pass 0 to ignore word boundaries. If not provided, $word_boundary_strictness defaults to $DefaultStrictness.
+
+=item $Elipses
+
+The string of characters used to indicate the end of the excerpt. Initialized to '...'.
+
+=item $DefaultLength
+
+The default target excerpt length, used when the elide function is called with a single argument. Initialized to 60.
+
+=item $DefaultStrictness
+
+The default word-boundary flexibility, used when the elide function is called without the third argument. Initialized to 10.
+
+=back
+
+=head1 CALLING BY NAME
+
+These functions provide for the registration of string-escape specification
+names and corresponding functions, and then allow the invocation of one or
+several of these functions on one or several source string values.
+
+=over 4
+
+=item escape($escapes, $value) : $escaped_value
+
+=item escape($escapes, @values) : @escaped_values
+
+Returns an altered copy of the provided values by looking up the escapes string in a registry of string-modification functions.
+
+If called in a scalar context, operates on the single value passed in; if
+called in a list contact, operates identically on each of the provided values.
+
+Valid escape specifications are:
+
+=over 4
+
+=item one of the keys defined in %Escapes
+
+The coresponding specification will be looked up and used.
+
+=item a sequence of names separated by whitespace,
+
+Each name will be looked up, and each of the associated functions will be applied successively, from left to right.
+
+=item a reference to a function
+
+The provided function will be called on with each value in turn.
+
+=item a reference to an array
+
+Each item in the array will be expanded as provided above.
+
+=back
+
+A fatal error will be generated if you pass an unsupported escape specification, or if the function is called with multiple values in a scalar context.
+
+=item String::Escape::names() : @defined_escapes
+
+Returns a list of defined escape specification strings.
+
+=item String::Escape::add( $escape_name, \&escape_function );
+
+Add a new escape specification and corresponding function.
+
+=item %Escapes : $name, $operation, ...
+
+By default, the %Escapes hash is initialized to contain the following mappings:
+
+=over 4
+
+=item quote, unquote, or quote_non_words
+
+=item printable, unprintable, qprintable, or unqprintable,
+
+=item elide
+
+Run the above-described functions of the same names.
+
+=item uppercase, lowercase, or initialcase
+
+Alters the case of letters in the string to upper or lower case, or for initialcase, sets the first letter to upper case and all others to lower.
+
+=item none
+
+Return an unchanged copy of the original value.
+
+=back
+
+=back
+
+
+=head1 EXAMPLES
+
+Here are a few example uses of these functions, along with their output.
+
+=head2 Backslash Escaping
+
+C<print printable( "\tNow is the time\nfor all good folks\n" );>
+
+ \tNow is the time\nfor all good folks\n
+
+C<print unprintable( '\\tNow is the time\\nfor all good folks\\n' );>
+
+ Now is the time
+ for all good folks
+
+
+
+=head2 Escape By Name
+
+C<print escape('qprintable', "\tNow is the time\nfor all good folks\n" );>
+
+ "\tNow is the time\nfor all good folks\n"
+
+C<print escape('uppercase qprintable', "\tNow is the time\nfor all good folks\n" );>
+
+ "\tNOW IS THE TIME\nFOR ALL GOOD FOLKS\n"
+
+
+C<print join '--', escape('printable', "\tNow is the time\n", "for all good folks\n" );>
+
+ \tNow is the time\n--for all good folks\n
+
+
+=head2 String Elision Function
+
+C<$string = 'foo bar baz this that the other';>
+
+C<print elide( $string, 100 );>
+
+ foo bar baz this that the other
+
+
+C<print elide( $string, 12 );>
+
+ foo bar...
+
+
+C<print elide( $string, 12, 0 );>
+
+ foo bar b...
+
+
+=head2 Simple Arrays and Hashes
+
+C<print list2string('hello', 'I move next march');>
+
+ hello "I move next march"
+
+
+C<@list = string2list('one "second item" 3 "four\nlines\nof\ntext"');>
+
+C<print $list[1];>
+
+ second item
+
+
+C<print hash2string( 'foo' =E<gt> 'Animal Cities', 'bar' =E<gt> 'Cheap' );>
+
+ foo="Animal Cities" bar=Cheap
+
+
+C<%hash = string2hash('key=value "undefined key" words="the cat in the hat"');>
+
+C<print $hash{'words'};>
+
+ the cat in the hat
+
+C<print exists $hash{'undefined_key'} and ! defined $hash{'undefined_key'};>
+
+ 1
+
+
+=head1 PREREQUISITES AND INSTALLATION
+
+This package should run on any standard Perl 5 installation.
+
+To install this package, download and unpack the distribution archive from
+http://www.evoscript.com/dist/ or your favorite CPAN mirror, and execute
+the standard "perl Makefile.PL", "make test", "make install" sequence.
+
+
+=head1 STATUS AND SUPPORT
+
+This release of String::Escape is intended for public review and feedback.
+It has been tested in several environments and no major problems have been
+discovered, but it should be considered "beta" pending that feedback.
+
+ Name DSLI Description
+ -------------- ---- ---------------------------------------------
+ String::
+ ::Escape bdpf Registry of useful string escaping functions
+
+Further information and support for this module is available at E<lt>www.evoscript.orgE<gt>.
+
+Please report bugs or other problems to C<E<lt>simonm@cavalletto.orgE<gt>>.
+
+The following changes are in progress or under consideration:
+
+=over 4
+
+=item *
+
+Use word-boundary test in elide's regular expression rather than \s|\Z.
+
+=item *
+
+Check for possible problems in the use of printable escaping functions and list2hash. For example, are the encoded strings for hashes with high-bit characters in their keys properly unquoted and unescaped?
+
+=item *
+
+Update string2list; among other things, embedded quotes (eg: a@"!a) shouldn't cause phrase breaks.
+
+=back
+
+
+=head1 SEE ALSO
+
+Numerous modules provide collections of string manipulation functions; see L<String::Edit> for an example.
+
+The string2list function is similar to to the quotewords function in the standard distribution; see L<Text::ParseWords>.
+
+Use other packages to stringify more complex data structures; see L<Data::PropertyList>, L<Data::Dumper>, or other similar package.
+
+
+=head1 CREDITS AND COPYRIGHT
+
+=head2 Developed By
+
+ M. Simon Cavalletto, simonm@cavalletto.org
+ Evolution Softworks, www.evoscript.org
+
+=head2 Contributors
+
+ Eleanor J. Evans piglet@piglet.org
+ Jeremy G. Bishop
+
+=head2 Copyright
+
+Copyright 2002 Matthew Simon Cavalletto.
+
+Portions copyright 1996, 1997, 1998, 2001 Evolution Online Systems, Inc.
+
+=head2 License
+
+You may use, modify, and distribute this software under the same terms as Perl.
+
+=cut
diff --git a/tools/tmplgettext b/tools/tmplgettext
new file mode 100755
index 0000000..5a756ab
--- /dev/null
+++ b/tools/tmplgettext
@@ -0,0 +1,158 @@
+#!/usr/bin/perl
+
+#
+# tmplgettext <regexp> <directories>
+#
+# Creates a gettext pot-template from any text template specified by <regexp>
+# in <directories> (recursivly)
+#
+# Any text matching /<%! (.*) !%>/ (even across multiple lines) will be
+# interpreted as a translatable strings like in gettext("foo") or _("foo").
+#
+# e.g.: tmplgettext "^.*\.html$" ./templates >templates.pot
+#
+# Output goes to stdout.
+#
+# 04/2005 - Tobias Grimm <vdr@e-tobi.net>
+#
+
+my $BASENAME;
+BEGIN {
+ $BASENAME = $1;
+ unshift(@INC, $BASENAME . "../tools/lib/");
+}
+
+use String::Escape qw(printable);
+use File::Find;
+
+my $START_TAG = "<%! ";
+my $END_TAG = " !%>";
+
+my $filePattern = "";
+
+sub WritePotHeader
+{
+ my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) =
+ localtime(time);
+
+ print "#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+#, fuzzy
+msgid \"\"
+msgstr \"\"
+\"Project-Id-Version: VDRAdmin-0.97-AM3.3\\n\"
+\"Report-Msgid-Bugs-To: Andreas Mair <mail@andreas.vdr-developer.org>\\n\"\n";
+
+ # FIXME: Correctly set timezone
+
+ printf "\"POT-Creation-Date: %4d-%02d-%02d %02d:%02d+0100\"\n",
+ $year + 1900, $mon + 1, $mday, $hour, $min;
+
+ print "\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"
+\"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n\"
+\"Language-Team: LANGUAGE <LL@li.org>\\n\"
+\"MIME-Version: 1.0\\n\"
+\"Content-Type: text/plain; charset=CHARSET\\n\"
+\"Content-Transfer-Encoding: 8bit\\n\"\n\n";
+}
+
+sub my_normalize {
+ my $text = shift;
+ $text =~ s/[\t\n]//g;
+ return printable($text);
+}
+
+sub WritePotEntry
+{
+ my ($fileName, $lineNumber, $msgid) = @_;
+ my $escapedMsgid = my_normalize($msgid);
+
+ print "#: $fileName:$lineNumber\n";
+ print "msgid \"$escapedMsgid\"\n";
+ print "msgstr \"\"\n\n";
+}
+
+sub ExtractMsgids
+{
+ my ($fileName, @fileContent) = @_;
+ my $text = "";
+ my $isTextStarted = 0;
+ my $lineCounter = 0;
+ my $textStartLine;
+
+ foreach my $line (@fileContent)
+ {
+ my $lookAhead;
+
+ $lineCounter++;
+
+ if ($isTextStarted = 1)
+ {
+ $text = $text . "\n";
+ }
+
+ for (my $index=0; $index < length($line); $index++)
+ {
+ $lookAhead = substr($line, $index, length($START_TAG));
+ if ($lookAhead eq $START_TAG)
+ {
+ $index = $index + length($START_TAG); # skip whole tag
+ $isTextStarted = 1;
+ $textStartLine = $lineCounter;
+ $text = "";
+ }
+
+ $lookAhead = substr($line, $index, length($END_TAG));
+ if ($lookAhead eq $END_TAG)
+ {
+ if ($isTextStarted)
+ {
+ $index = $index + length($END_TAG); # skip whole tag
+ if (length($text) > 0)
+ {
+ WritePotEntry($fileName, $textStartLine, $text);
+ }
+ $isTextStarted = 0;
+ }
+ }
+
+ if ($isTextStarted)
+ {
+ $text = $text . substr($line, $index, 1);
+ }
+ }
+ }
+}
+
+sub ProcessFile
+{
+ if ($File::Find::name =~ /$filePattern/)
+ {
+ open(HTML, "< $File::Find::name");
+ my @fileContent = <HTML>;
+ close(HTML);
+
+ ExtractMsgids($File::Find::name, @fileContent);
+ }
+}
+
+#
+# main()
+#
+
+$filePattern = shift(@ARGV);
+
+WritePotHeader;
+
+find({no_chdir => 1, wanted => \&ProcessFile}, @ARGV);
diff --git a/tools/update-po b/tools/update-po
new file mode 100755
index 0000000..0aebd31
--- /dev/null
+++ b/tools/update-po
@@ -0,0 +1,21 @@
+#!/bin/sh -e
+
+pushd po/
+../tools/tmplgettext "^.*\.html$" ../template >tmp-html-x.pot
+msguniq tmp-html-x.pot >vdradmin.pot
+
+xgettext --from-code=ISO-8859-1 -L Perl ../vdradmind.pl -j -o vdradmin.pot
+#xgettext --from-code=ISO-8859-1 -L Perl ../template/i18n.pl -j -o vdradmin.pot
+rm tmp-*.pot
+popd
+
+
+for LANG in de es fi fr nl ; do
+ echo -n "$LANG: "
+ if msgmerge po/$LANG.po po/vdradmin.pot >temp.po ; then
+ mv -f temp.po po/$LANG.po
+ echo " untranslated=$(msgattrib --untranslated po/$LANG.po | grep ^msgid | wc -l) fuzzy=$(msgattrib --fuzzy po/$LANG.po | grep ^msgid | wc -l)"
+ else
+ echo "error merging po/$LANG.po and po/vdradmin.pot"
+ fi
+done
diff --git a/vdradmind.pl b/vdradmind.pl
index 80cff65..52ea88b 100755
--- a/vdradmind.pl
+++ b/vdradmind.pl
@@ -176,7 +176,7 @@ $CONFIG{TV_EXT} = "m3u";
$CONFIG{REC_MIMETYPE} = "video/x-mpegurl";
$CONFIG{REC_EXT} = "m3u";
-my $VERSION = "3.4.3rc";
+my $VERSION = "3.4.3rc2";
my $SERVERVERSION = "vdradmind/$VERSION";
my $LINVDR = isLinVDR();
my $VDRVERSION = 0;
@@ -1438,12 +1438,24 @@ sub AT_ProgTimer {
my $found = 0;
my $Update = 0;
for(ParseTimer(1)) {
- if(($event_id) && ($_->{event_id} == $event_id) && ($_->{vdr_id} == $channel)) {
- $found = 1;
- }
- if((!$found) && ($_->{vdr_id} == $channel) && ($_->{dor} =~ my_strftime("%d", $start)) && ($_->{start} eq $start)) {
+ if($_->{vdr_id} == $channel) {
+ if(($event_id) && ($_->{event_id} == $event_id)) {
+ $found = 1;
+ last;
+ }
+ if($_->{start} eq $start) {
$found = 1;
- }
+ last;
+ }
+ if(($VDRVERSION < 010323) && ($_->{dor} eq my_strftime("%Y-%m-%d", $start))) {
+ $found = 1;
+ last;
+ }
+ if(($_->{dor} == my_strftime("%d", $start))) {
+ $found = 1;
+ last;
+ }
+ }
}
# we will only programm new timers, CheckTimers is responsible for
@@ -1601,6 +1613,7 @@ sub CheckTimers {
# now we have all events in eventlist that touch the old timer margins
# check for each event how probable it is matching the old timer
if(scalar(@eventlist) > 0) {
+ my $origlen = ($timer->{stop} - $CONFIG{TM_MARGIN_END} * 60) - ($timer->{start} + $CONFIG{TM_MARGIN_BEGIN} * 60);
my $maxwight = 0;
$event = $eventlist[0];
@@ -1620,13 +1633,13 @@ sub CheckTimers {
my $wight = ($stop - $start) / ($eventlist[$i]->{stop} - $eventlist[$i]->{start});
- if($wight > $maxwight) {
+ if($wight > $maxwight && (($eventlist[$i]->{stop} - $eventlist[$i]->{start}) / $origlen) >= 0.9 ) {
$maxwight = $wight;
$event = $eventlist[$i];
}
}
# update timer if the existing one differs from the EPG
- if((($event->{summary}) && (!$timer->{summary})) ||
+ if(($CONFIG{TM_ADD_SUMMARY} && ($event->{summary}) && (!$timer->{summary})) ||
($timer->{start} > ($event->{start} - $CONFIG{TM_MARGIN_BEGIN} * 60)) ||
($timer->{stop} < ($event->{stop} + $CONFIG{TM_MARGIN_END} * 60))) {
Log(LOG_CHECKTIMER, sprintf("CheckTimers: Timer \"%s\" (No. %s, Event-ID %s, %s - %s) differs from EPG: \"%s\", Event-ID %s, %s - %s)", $timer->{title}, $timer->{id}, $timer->{event_id}, strftime("%Y%m%d-%H%M", localtime($timer->{start})), strftime("%Y%m%d-%H%M", localtime($timer->{stop})), $event->{title}, $event->{event_id}, strftime("%Y%m%d-%H%M", localtime($event->{start})), strftime("%Y%m%d-%H%M", localtime($event->{stop}))));
@@ -1864,12 +1877,12 @@ sub ProgTimer {
}
}
- Log(LOG_AT, sprintf("ProgTimer: Programming Timer \"%s\" (Channel %s, Event-ID %s, %s - %s)", $title, $channel, $event_id, my_strftime("%Y%m%d-%H%M", $start), my_strftime("%Y%m%d-%H%M", $stop)));
-
my $send_cmd = $timer_id ? "modt $timer_id" : "newt";
my $send_active = $active & 0x8000 ? PackStatus($active, $event_id) : $active;
my $send_dor = $dor ? $dor : RemoveLeadingZero(strftime("%d", localtime($start)));
my $send_summary = ($VDRVERSION >= 10336) ? $summary : substr($summary, 0, $VDR_MAX_SVDRP_LENGTH - 9 - length($send_cmd) - length($send_active) - length($channel) - length($send_dor) - 8 - length($prio) - length($lft) - length($title));
+
+ Log(LOG_AT, sprintf("ProgTimer: Programming Timer \"%s\" (Channel %s, Event-ID %s, %s - %s, Active %s)", $title, $channel, $event_id, my_strftime("%Y%m%d-%H%M", $start), my_strftime("%Y%m%d-%H%M", $stop), $send_active));
my $return = SendCMD(
sprintf("%s %s:%s:%s:%s:%s:%s:%s:%s:%s",
$send_cmd,
@@ -2249,7 +2262,7 @@ sub prog_switch {
if($channel) {
SendCMD("chan $channel");
}
- SendFile($BASENAME . "/bilder/spacer.gif");
+ SendFile("bilder/spacer.gif");
}
sub prog_detail {
@@ -3049,7 +3062,6 @@ sub timer_add {
#XXX
if($q->param("referer")) {
- printf("1: %s\n", Decode_Referer($q->param("referer")));
return(headerForward(Decode_Referer($q->param("referer"))));
} else {
return(headerForward("$MyURL?aktion=timer_list"));
@@ -3154,7 +3166,7 @@ sub getReferer {
} else {
my $vdr_id = $q->param("vdr_id");
# print("3: " . $q->param("old_aktion") . ", $vdr_id, $epg_id\n");
- return sprintf("/vdradmin.pl?aktion=%s%s#id%s", $q->param("old_aktion"), ($vdr_id ? "&vdr_id=$vdr_id" : ""), $epg_id);
+ return sprintf("./vdradmin.pl?aktion=%s%s#id%s", $q->param("old_aktion"), ($vdr_id ? "&vdr_id=$vdr_id" : ""), $epg_id);
}
}
}
@@ -3538,35 +3550,37 @@ sub at_timer_test {
my @at_matches = AutoTimer(1, @at);
my $template = TemplateNew("at_timer_new.html");
+ my $pattern = $q->param("pattern");
+ $pattern =~ s/"/\&quot;/g;
my $vars = {
usercss => $UserCSS,
url => $MyURL,
channels => \@chans,
- $q->Vars,
-# active => $q->param("active"),
-# pattern => $q->param("pattern"),
-# title => $q->param("title") ? $q->param("title") : 0,
-# subtitle => $q->param("subtitle") ? $q->param("subtitle") : 0,
-# description => $q->param("description") ? $q->param("description") :0 ,
-# wday_mon => $q->param("wday_mon") ? $q->param("wday_mon") : 0,
-# wday_tue => $q->param("wday_tue") ? $q->param("wday_tue") : 0,
-# wday_wed => $q->param("wday_wed") ? $q->param("wday_wed") : 0,
-# wday_thu => $q->param("wday_thu") ? $q->param("wday_thu") : 0,
-# wday_fri => $q->param("wday_fri") ? $q->param("wday_fri") : 0,
-# wday_sat => $q->param("wday_sat") ? $q->param("wday_sat") : 0,
-# wday_sun => $q->param("wday_sun") ? $q->param("wday_sun") : 0,
-# channel => $q->param("channel"),
-# starth => $q->param("starth"),
-# startm => $q->param("startm"),
-# stoph => $q->param("stoph"),
-# stopm => $q->param("stopm"),
-# prio => $q->param("prio"),
-# lft => $q->param("lft"),
-# episode => $q->param("episode") ? $q->param("episode") : 0,
-# done => $q->param("done"),
-# directory => $q->param("directory"),
+#TODO $q->Vars,
+ active => $q->param("active"),
+ pattern => $pattern,
+ title => $q->param("title") ? $q->param("title") : 0,
+ subtitle => $q->param("subtitle") ? $q->param("subtitle") : 0,
+ description => $q->param("description") ? $q->param("description") :0 ,
+ wday_mon => $q->param("wday_mon") ? $q->param("wday_mon") : 0,
+ wday_tue => $q->param("wday_tue") ? $q->param("wday_tue") : 0,
+ wday_wed => $q->param("wday_wed") ? $q->param("wday_wed") : 0,
+ wday_thu => $q->param("wday_thu") ? $q->param("wday_thu") : 0,
+ wday_fri => $q->param("wday_fri") ? $q->param("wday_fri") : 0,
+ wday_sat => $q->param("wday_sat") ? $q->param("wday_sat") : 0,
+ wday_sun => $q->param("wday_sun") ? $q->param("wday_sun") : 0,
+ channel => $q->param("channel"),
+ starth => $q->param("starth"),
+ startm => $q->param("startm"),
+ stoph => $q->param("stoph"),
+ stopm => $q->param("stopm"),
+ prio => $q->param("prio"),
+ lft => $q->param("lft"),
+ episode => $q->param("episode") ? $q->param("episode") : 0,
+ done => $q->param("done"),
+ directory => $q->param("directory"),
at_test => 1,
- matches => \@at_matches
+ matches => \@at_matches
};
$template->param($vars);
my $output;
@@ -3749,6 +3763,17 @@ sub prog_summary {
$event_time = time();
}
+ my $pattern;
+ my $mode;
+ if($search) {
+ if($search =~ /^\/(.*)\/(i?)$/) {
+ $pattern=$1;
+ $mode=$2
+ } else {
+ $search =~ s/([\+\?\.\*\^\$\(\)\[\]\{\}\|\\])/\\$1/g;
+ }
+ }
+
my(@show, @shows, @temp);
for(keys(%EPG)) {
for my $event (@{$EPG{$_}}) {
@@ -3763,15 +3788,31 @@ sub prog_summary {
next if($event_time > $event->{stop});
} else {
my($found);
- for my $word (split(/ +/, $search)) {
- $found = 0;
- for my $section (qw(title subtitle summary)) {
- if($event->{$section} =~ /$word/i) {
- $found = 1;
- }
+ if($pattern) {
+ # We have a RegExp
+ next if(!length($pattern));
+ next if(!defined($pattern));
+ my $SearchStr = $event->{title} . "~" . $event->{subtitle} . "~" . $event->{summary};
+ # Shall we search case insensitive?
+ if(($mode eq "i") && ($SearchStr !~ /$pattern/i)) {
+ next;
+ } elsif(($mode ne "i") && ($SearchStr !~ /$pattern/)) {
+ next;
+ } else {
+ $found = 1;
}
- if(!$found) {
- last;
+ } else {
+ next if(! length($search));
+ for my $word (split(/ +/, $search)) {
+ $found = 0;
+ for my $section (qw(title subtitle summary)) {
+ if($event->{$section} =~ /$word/i) {
+ $found = 1;
+ }
+ }
+ if(!$found) {
+ last;
+ }
}
}
next if(!$found);
@@ -4398,12 +4439,12 @@ sub config {
$CONFIG{CHANNELS_WANTED} = csvRemove($CONFIG{CHANNELS_WANTED}, $vdr_id);
}
ApplyConfig(); WriteConfig();
- } elsif($q->param("save")) {
- ApplyConfig(); WriteConfig();
- } elsif($q->param("apply")) {
- ApplyConfig();
- }
- }
+ }
+ } elsif($q->param("save")) {
+ ApplyConfig(); WriteConfig();
+ } elsif($q->param("apply")) {
+ ApplyConfig();
+ }
#
my @LOGINPAGES_DESCRIPTION = (