summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Mair <amair.sob@googlemail.com>2005-05-12 11:01:29 +0200
committerAndreas Mair <amair.sob@googlemail.com>2005-05-12 11:01:29 +0200
commitbebe0382652e0616c8d040b3e217c2a21b81beee (patch)
tree30378ade7ba3e45c4ed6fc0915580cecc344d226
parent022c4f162d7b83cb287b7d16749899d9e7c4242a (diff)
downloadvdradmin-am-0.97-am3.2.tar.gz
vdradmin-am-0.97-am3.2.tar.bz2
2005-05-12: 0.97-am3.2v0.97-am3.2
- Added "make uninstall" to remove VDRAdmin from your system if you have installed it using "make install". Please always use this before you install a new release! - Fixed programming of repeating timers when day is "D" (Thanks to "maxkr" for reporting this). - Print date in prog_list & prog_list2 in system's locale. Please comment! - More transparent "selected channels" usage. - Added reccmds.conf content to rec_list (needs valid VDRCONFDIR in vdradmind.conf) - AutoTimers can now be limited to certain weekdays (Patch submitted by Magnus Schmidt). - Streaming can be turn on/off for live viewing and recordings viewing (Based on code submitted by Tobias Grimm). - Added streaming button to prog_list2. - Fixed handling of incorrect start/stop times in AutoTimer. - Changed localisation to use gettext() (Thanks to Tobias Grimm for doing most of the needed work). - Language can no longer be set in VDRAdmin, it's taken from your system's setting. Issue "export LC_MESSAGES=<language code>" if you need to change it, where <language code> is one of "de_DE", "en_EN", "es_ES", "fi_FI" or "fr_FR". - Added Finnish i18n (Submitted by Rolf Ahrenberg). - Fixed ":" & "|" handling in timer's directory (Thanks "vejoun"). - Added links to prog_list on channels in at_timer_list and timer_list. - Added IMDb lookup button to recording's detail view. - Added "Priority" and "Lifetime" tooltip to at_timer_list and timer_list (point mouse to timer's name). - Small changes for streaming recordings: Please update your vdradmind.conf (VIDEODIR & ST_VIDEODIR)! - Non-LinVDR logo on non-LinVDR machines (Posted by Unimatrix0 at vdrportal.de).
-rw-r--r--HISTORY.am23
-rw-r--r--INSTALL62
-rw-r--r--Makefile60
-rw-r--r--README.translaters15
-rw-r--r--README.translators82
-rw-r--r--contrib/README.Streaming51
-rw-r--r--debian/NEWS2
-rw-r--r--debian/README.Debian23
-rw-r--r--debian/changelog135
-rw-r--r--debian/compat1
-rw-r--r--debian/control18
-rw-r--r--debian/copyright26
-rw-r--r--debian/patches/00list2
-rw-r--r--debian/patches/01_dist-var.dpatch21
-rw-r--r--debian/patches/03_cfgfiles-fhs.dpatch28
-rw-r--r--debian/postinst66
-rw-r--r--debian/postrm24
-rw-r--r--debian/prerm6
-rw-r--r--debian/rules52
-rw-r--r--debian/vdradmin.default20
-rw-r--r--debian/vdradmin.dirs2
-rw-r--r--debian/vdradmin.init91
-rw-r--r--debian/vdradmin.install9
-rw-r--r--debian/vdradmind.conf39
-rw-r--r--debian/watch2
-rw-r--r--i18n/Deutsch/i18n.pl325
-rw-r--r--i18n/English/i18n.pl280
-rw-r--r--i18n/French/i18n.pl280
-rw-r--r--i18n/Spanish/i18n.pl330
-rw-r--r--locale/de/LC_MESSAGES/vdradmin.mobin0 -> 24991 bytes
-rw-r--r--locale/es/LC_MESSAGES/vdradmin.mobin0 -> 25934 bytes
-rw-r--r--locale/fi/LC_MESSAGES/vdradmin.mobin0 -> 21807 bytes
-rw-r--r--locale/fr/LC_MESSAGES/vdradmin.mobin0 -> 22848 bytes
-rw-r--r--po/Makefile8
-rw-r--r--po/de.po1046
-rw-r--r--po/es.po1054
-rw-r--r--po/fi.po1110
-rw-r--r--po/fr.po1116
-rw-r--r--po/vdradmin.pot968
-rw-r--r--template/default/at_new.html127
-rw-r--r--template/default/at_timer_list.html87
-rw-r--r--template/default/bilder/logo_linvdr.gifbin0 -> 3749 bytes
-rw-r--r--template/default/bilder/logo_other.gifbin0 -> 5035 bytes
-rw-r--r--template/default/config.html287
-rw-r--r--template/default/copper/logo_linvdr.gifbin0 -> 3150 bytes
-rw-r--r--template/default/copper/logo_other.gifbin0 -> 1441 bytes
-rw-r--r--template/default/error.html13
-rw-r--r--template/default/index.html17
-rw-r--r--template/default/left.html39
-rw-r--r--template/default/library.js2
-rw-r--r--template/default/noauth.html10
-rw-r--r--template/default/noperm.html6
-rw-r--r--template/default/prog_detail.html33
-rw-r--r--template/default/prog_list.html49
-rw-r--r--template/default/prog_list2.html67
-rw-r--r--template/default/prog_summary.html53
-rw-r--r--template/default/prog_timeline.html84
-rw-r--r--template/default/rc.html67
-rw-r--r--template/default/rec_edit.html34
-rw-r--r--template/default/rec_list.html93
-rw-r--r--template/default/style.css2
-rw-r--r--template/default/timer_list.html145
-rw-r--r--template/default/timer_new.html110
-rw-r--r--template/default/toolbar.html23
-rw-r--r--template/default/tv.html93
-rw-r--r--template/default/tv_flash.html7
-rw-r--r--template/i18n.pl118
-rwxr-xr-xvdradmind.pl527
68 files changed, 6741 insertions, 2729 deletions
diff --git a/HISTORY.am b/HISTORY.am
index 65cfd05..ef5e261 100644
--- a/HISTORY.am
+++ b/HISTORY.am
@@ -4,10 +4,25 @@ E-Mail: mail AT andreas DOT vdr-developer DOT org
VDR-Portal: amair
-----------------------------------------------------------
-************************************************************
-PLEASE NOTE:
-- Streaming recordings is not implemented. If you have some code that works, please let me know!
-************************************************************
+2005-05-12: 0.97-am3.2
+- Added "make uninstall" to remove VDRAdmin from your system if you have installed it using "make install". Please always use this before you install a new release!
+- Fixed programming of repeating timers when day is "D" (Thanks to "maxkr" for reporting this).
+- Print date in prog_list & prog_list2 in system's locale. Please comment!
+- More transparent "selected channels" usage.
+- Added reccmds.conf content to rec_list (needs valid VDRCONFDIR in vdradmind.conf)
+- AutoTimers can now be limited to certain weekdays (Patch submitted by Magnus Schmidt).
+- Streaming can be turn on/off for live viewing and recordings viewing (Based on code submitted by Tobias Grimm).
+- Added streaming button to prog_list2.
+- Fixed handling of incorrect start/stop times in AutoTimer.
+- Changed localisation to use gettext() (Thanks to Tobias Grimm for doing most of the needed work).
+- Language can no longer be set in VDRAdmin, it's taken from your system's setting. Issue "export LC_MESSAGES=<language code>" if you need to change it, where <language code> is one of "de_DE", "en_EN", "es_ES", "fi_FI" or "fr_FR".
+- Added Finnish i18n (Submitted by Rolf Ahrenberg).
+- Fixed ":" & "|" handling in timer's directory (Thanks "vejoun").
+- Added links to prog_list on channels in at_timer_list and timer_list.
+- Added IMDb lookup button to recording's detail view.
+- Added "Priority" and "Lifetime" tooltip to at_timer_list and timer_list (point mouse to timer's name).
+- Small changes for streaming recordings: Please update your vdradmind.conf (VIDEODIR & ST_VIDEODIR)!
+- Non-LinVDR logo on non-LinVDR machines (Posted by Unimatrix0 at vdrportal.de).
2005-04-12: 0.97-am3.1
- Updated Spanish i18n (Thanks to Ruediger Jung).
diff --git a/INSTALL b/INSTALL
index 4f5d0cb..31e8f5b 100644
--- a/INSTALL
+++ b/INSTALL
@@ -2,45 +2,53 @@
*** Installation ***
***********************************************************
- Unpack the archive somewhere:
- $ tar xvf vdradmin-VERSION.tar.bz2
- $ cd vdradmin-VERSION
+1) Unpack the archive somewhere:
+ $ tar xvf vdradmin-VERSION.tar.bz2
+ $ cd vdradmin-VERSION
- Now you have to deside wether you want to run vdradmin locally
- in this directory or install it into your system.
+2) If you want to run VDRAdmin using a language other than set on
+ our system, then before running it you have to issue:
+ $ export LANG="<language code>"
-a) run locally
- First you have to configure vdradmin. This only has to be done once.
- $ ./vdradmind.pl --config
+ Where <language code> has to be one of: de_DE, es_ES, fi_FI or fr_FR
+ (en_GB is default).
- Some questions about the configuration will asked.
+3) Now you have to deside wether you want to run VDRAdmin locally (3a)
+ in this directory or install it into your system (3b).
- Now you're done and you can run vdradmin:
- $ ./vdradmind.pl
+3a) run locally
+ First you have to configure VDRAdmin. This only has to be done once.
+ $ ./vdradmind.pl --config
-b) install into system
- $ make install
-
- Now you have to configure vdradmin:
- $ vdradmind.pl --config
+ Some questions about the configuration will be asked.
- Some questions about the configuration will asked.
+ Now you're done and you can run VDRAdmin:
+ $ ./vdradmind.pl
- Now you're done and you can run vdradmin:
- $ vdradmind.pl
+3b) install into system
+ $ make install
- If you want vdradmin to run automatically on system boot, you have
- to add a startup script to the wanted runlevel. Please consult your
- Linux distribution's documentation. Maybe you'll also find some help
- in vdradmin's "contrib" directory.
+ Now you have to configure VDRAdmin:
+ $ vdradmind.pl --config
+ Some questions about the configuration will asked.
- No matter how you run vdradmin, you now can point your browser to
- the given parameters (e.g. http://localhost:8001).
+ Now you're done and you can run VDRAdmin:
+ $ vdradmind.pl
+
+4) If you want VDRAdmin to run automatically on system boot, you have
+ to add a startup script to the wanted runlevel. Please consult your
+ Linux distribution's documentation. Maybe you'll also find some help
+ in VDRAdmin's "contrib" directory.
+ Please also note that you might have to set the wanted language in
+ that startup as shown in (2).
+
+5) No matter how you run VDRAdmin, you now can point your browser to
+ the given parameters (e.g. http://localhost:8001).
***********************************************************
-*** Hide vdradmin behind apache ***
+*** Hide VDRAdmin behind apache ***
***********************************************************
you will need apache with mod_proxy and these lines in httpd.conf:
@@ -50,6 +58,7 @@ b) install into system
ProxyPass /vdradmin/ http://127.0.0.1:8001/
</IfModule>
+
***********************************************************
*** Hint from Martin Neuditschko for apache2 (untested) ***
***********************************************************
@@ -64,6 +73,7 @@ b) install into system
RewriteRule ^/vdradmin(.*) http://localhost:8001$1 [P,L]
</VirtualHost>
+
***********************************************************
*** See who's calling (you need an ISDN card for this) ***
***********************************************************
diff --git a/Makefile b/Makefile
index c44ee64..166df9d 100644
--- a/Makefile
+++ b/Makefile
@@ -3,10 +3,27 @@ LIBDIR=/usr/share/vdradmin
ETCDIR=/etc/vdradmin
DOCDIR=/usr/share/doc/vdradmin
BINDIR=/usr/bin
+LOCDIR=/usr/share/locale/
MANDIR=/usr/share/man/man1/
-distclean:
- rm -f vdradmind.conf vdradmind.at vdradmind.bl vdradmind.pid vdradmind.log
+LANGS=de es fr fi
+
+po/build_stamp:
+ $(MAKE) -C po LANGS="$(LANGS)"
+ for lang in $(LANGS); do \
+ [ ! -d locale/$$lang/LC_MESSAGES/ ] && mkdir -p locale/$$lang/LC_MESSAGES/; \
+ install -m 644 po/$$lang.mo locale/$$lang/LC_MESSAGES/vdradmin.mo; \
+ done
+
+all: po/build_stamp
+ touch build_stamp
+
+clean:
+ $(MAKE) -C po clean
+ -rm -f build_stamp
+
+distclean: clean
+ rm -f vdradmind.conf vdradmind.at vdradmind.bl vdradmind.done vdradmind.pid vdradmind.log
install:
@if [ ! -d $(DESTDIR)$(BINDIR) ]; then \
@@ -17,7 +34,7 @@ install:
@if [ ! -d $(DESTDIR)$(LIBDIR) ]; then \
mkdir -p $(DESTDIR)$(LIBDIR); \
fi
- cp -r i18n template lib $(DESTDIR)$(LIBDIR)
+ cp -r template lib $(DESTDIR)$(LIBDIR)
@if [ ! -d $(DESTDIR)$(ETCDIR) ]; then \
mkdir -p $(DESTDIR)$(ETCDIR); \
fi
@@ -29,3 +46,40 @@ install:
mkdir -p $(DESTDIR)$(DOCDIR); \
fi
cp -r COPYING HISTORY* README* INSTALL contrib $(DESTDIR)$(DOCDIR)
+ for lang in $(LANGS); do \
+ [ ! -d $(LOCDIR)/$$lang/LC_MESSAGES/ ] && mkdir -p $(LOCDIR)/$$lang/LC_MESSAGES/; \
+ install -m 644 po/$$lang.mo $(LOCDIR)/$$lang/LC_MESSAGES/vdradmin.mo; \
+ done
+
+uninstall:
+ if [ "$$(pidof -x vdradmind.pl)" ]; then \
+ killall vdradmind.pl; \
+ fi
+ if [ -d $(DESTDIR)$(DOCDIR) ]; then \
+ rm -rf $(DESTDIR)$(DOCDIR); \
+ fi
+ if [ -d $(DESTDIR)$(LIBDIR) ]; then \
+ rm -rf $(DESTDIR)$(LIBDIR); \
+ fi
+ if [ -e $(MANDIR)/vdradmind.pl.1 ]; then \
+ rm -f $(MANDIR)/vdradmind.pl.1; \
+ fi
+ if [ -e $(DESTDIR)$(BINDIR)/vdradmind.pl ]; then \
+ rm -f $(DESTDIR)$(BINDIR)/vdradmind.pl; \
+ fi
+ for lang in $(LANGS); do \
+ if [ -e $(LOCDIR)/$$lang/LC_MESSAGES/vdradmin.mo ]; then \
+ rm -f $(LOCDIR)/$$lang/LC_MESSAGES/vdradmin.mo; \
+ fi; \
+ done
+ @echo ""
+ @echo ""
+ @echo "******************************"
+ @echo "VDRAdmin has been uninstalled!"
+ @echo ""
+ @if [ -d $(DESTDIR)$(ETCDIR) ]; then \
+ echo ""; \
+ echo "Your configuration files located in $(DESTDIR)$(ETCDIR) have NOT been deleted!"; \
+ echo "If you want to get rid of them, please delete them manually!"; \
+ fi
+
diff --git a/README.translaters b/README.translaters
deleted file mode 100644
index 011349c..0000000
--- a/README.translaters
+++ /dev/null
@@ -1,15 +0,0 @@
-Since vdradmin-0.97-am3.0 all text has been extracted from the templates and vdradmind.pl to a single i18n.pl file. So it's much easier for anybody who wants to translate VDRAdmin to another language.
-
-All you need to do is to let me (mail AT andreas DOT vdr-developer DOT org) know that you plan to add a new language, so that I can tell you if anybody else is already working on that language. After my OK you can begin your work:
-
-- Simply create a new folder in the "i18n" folder named like the language you want to submit.
-- Copy an existing i18n.pl file depending on the languages you understand to this new folder.
-- Translate the file and take care that you use HTML's named entities: see http://www.w3.org/TR/WD-entities-961125 (English) or http://de.selfhtml.org/html/referenz/zeichen.htm (German)
-- Afterwards send the folder to me.
-
-Please note that you have to restart vdradmind.pl after any changes you made to the i18n.pl file because it is only read at startup.
-
-If you have any further questions please don't hesitate to contact me.
-
-2005-03-30, Andreas Mair
-
diff --git a/README.translators b/README.translators
new file mode 100644
index 0000000..2693a89
--- /dev/null
+++ b/README.translators
@@ -0,0 +1,82 @@
+VDRAdmin-am translators guide
+==============================
+
+Since vdradmin-0.97-am3.2 almost every text has been extracted from the
+scripts and templates. This makes it much easier for anybody, who wants to
+translate VDRAdmin to another language.
+
+All you need to do is to let me (mail AT andreas DOT vdr-developer DOT org)
+know, that you plan to add a new language, so that I can tell you if anybody
+else is already working on that language. After my OK you can start your work.
+
+
+Howto
+-----
+
+We've decided to use GNU gettext for translating the user interface to
+different languages. GNU gettext is widely used among Linux programs of all
+kind. It comes with a lot of tools and with support for most programming
+languages.
+
+The translations are stored in plain text files with a *.po file extension.
+Each language has its own file (e.g. de.po, fi.po, ...). You may edit these
+po-files with any text editor, but we recommend to use a po-editor like
+poedit [1], kbabel [2] or gtranslator [3].
+
+You must have installed the "gettext" package of your distribution to compile
+the plain text translations to the binary files needed by VDRAdmin.
+
+The basic work flow for a translation looks like this:
+
+1) Copy po/vdradmin.pot to po/<language code>.po. See [4] for a list of
+ available language codes.
+
+2) Open the file in your favorit po-editor. Make sure you set the correct
+ encoding and fill in your email and language in the corresponding header
+ fields. poedit makes this pretty easy - just go to catalog/options and
+ fill out the form.
+
+3) Now you can start translating. Each message is commented to give you a hint,
+ where it came from. Keep in mind, that if you translate a message, you should
+ use html entities [5], [6] for special characters. Any text that origins from
+ vdradmind.pl must not have html entities.
+ Beside the help texts, you will not need any formating tags.
+
+ Messages marked as "fuzzy" indicate, that they may have been derived from
+ similar messages and it's not sure, that the translation is correct. Check
+ these translations and correct them if needed or simply mark them as not
+ fuzzy (poedit: edit/mark as fuzzy)
+
+4) To check how your translated texts look like, you have to compile them
+ first to *.mo-files. To do so, you edit the "Makefile" first and append
+ your <language code> to the "LANGS=" line. Running "make" will then create
+ a new *.mo-file from your changed *.po-file.
+
+ Please note, that you have to restart vdradmind.pl after any changes you
+ make to the translation. In order to allow vdradmin to select your language,
+ you must have the appropriate locales installed on your system (see
+ `locale -a`). You should make sure, that the correct locale is selected
+ with the LANG and LC_* environemt variables.
+
+5) If you are done, send the *.po-file to me:
+
+ mail AT andreas DOT vdr-developer DOT org
+
+6) When changes have been made to vdradmin-am, that cause some messages to
+ change, the *.po-files will by modified and we will send them to the
+ translators. The process then starts with 2) again and we will include your
+ new translation with the next release.
+
+
+If you have any further questions, please don't hesitate to contact me.
+
+
+--- 2005-04-22, Andreas Mair ---
+
+
+[1] http://www.poedit.org (available for Windows and Linux)
+[2] http://i18n.kde.org/tools/kbabel/ (KDE)
+[3] http://gtranslator.sourceforge.net/ (GNOME)
+[4] http://www.gnu.org/software/gettext/manual/html_chapter/gettext_15.html
+[5] http://www.w3.org/TR/WD-entities-961125 (English)
+[6] http://de.selfhtml.org/html/referenz/zeichen.htm (German).
diff --git a/contrib/README.Streaming b/contrib/README.Streaming
new file mode 100644
index 0000000..b627bff
--- /dev/null
+++ b/contrib/README.Streaming
@@ -0,0 +1,51 @@
+VDRAdmin Streaming
+==================
+
+The idea of extending VDRAdmin with streaming features originally came from
+the Debian maintainers of the vdradmin package. For questions about the
+streaming, they are the right contact persons:
+
+Peter Siering <ps@ctmagazin.de>, Tobias Grimm <tg@e-tobi.net>
+
+You can enable access to the streaming feature, by setting STREAM_ON=1 in
+vdradmind.conf. vdradmin is not responsible for providing video streams,
+it's just a frontend to access them.
+
+At the configuration page you can now enable/disble live streaming and
+streaming of recordings.
+
+
+Live Streaming
+--------------
+
+Live streaming gives you access to the currently selected channel. To use
+live streaming, you must have the streamdev-server-plugin from
+Sascha Volkenandt (available at http://www.magoa.net/linux/) installed.
+This plugin provides access to the currently watched channel, by
+providing a video stream using the Video Transfer Protocol VTP.
+
+By default port 3000 is used, you can change this on the configuration page.
+
+
+Recordings Streaming
+--------------------
+
+There is no real streaming server for VDR recordings available yet. Our
+lazy solution right now is, to simply access the recordings using a Samba
+share. So your first step to make use of the recordings streaming should
+be, to make your recoordings directory available over the network.
+
+The URL, a client should use to access this network share, has to be
+configured at the configuration page.
+
+VDRAadmin will also need direct access to VDR's recordings directory. You
+have to set this in vdradmind.conf with VIDEODIR, which is by default
+set to VIDEODIR="/video".
+
+
+Setting up the Client / Browser
+-------------------------------
+
+!!! TODO !!!
+
+ -- Tobias Grimm <tg@e-tobi.net>, Sun, 23 Jan 2005 20:00:00 +0100
diff --git a/debian/NEWS b/debian/NEWS
deleted file mode 100644
index d3976f3..0000000
--- a/debian/NEWS
+++ /dev/null
@@ -1,2 +0,0 @@
-vdradmin (0.97-am3.0) unstable; urgency=low
-
diff --git a/debian/README.Debian b/debian/README.Debian
deleted file mode 100644
index 9119fb4..0000000
--- a/debian/README.Debian
+++ /dev/null
@@ -1,23 +0,0 @@
-vdradmin for Debian
--------------------
-
-This package provides a working config-file under /var/lib/vdradmin/vdradmind.conf,
-this files uses a standard-username and standard-password (linvdr/linvdr), you
-should change this before you enable the vdradmin-service in
-/etc/default/vdradmin, alternatively you can generate a new config with:
-
-vdradmin.pl --config
-
- -- Thomas Schmidt <thomas.schmidt@in.stud.tu-ilmenau.de>, Fri, 6 Aug 2004 22:57:28 +0200
-
-
-To hide vdradmin behind apache:
-
- you will need apache with mod_proxy and these lines in httpd.conf:
-
- <IfModule mod_proxy.c>
- ProxyRequests Off
- ProxyPass /vdradmin/ http://127.0.0.1:8001/
- </IfModule>
-
- -- Thomas Schmidt <thomas.schmidt@in.stud.tu-ilmenau.de>, Wed, 1 Oct 2003 21:07:47 +0200
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100644
index d0cfcb2..0000000
--- a/debian/changelog
+++ /dev/null
@@ -1,135 +0,0 @@
-vdradmin (0.97-am3.1) unstable; urgency=low
-
-vdradmin (0.97-am3.0) unstable; urgency=low
-
- * vdr-1.3.23
-
-vdradmin (0.96-5.ctvdr.3) unstable; urgency=low
-
- * Added fix for new date format in vdr > 1.2.6 (thx to Andreas Mair,
- Torsten Lang)
-
- -- Tobias Grimm <tg@e-tobi.net> Sun, 3 Apr 2005 19:11:39 +0200
-
-vdradmin (0.96-5.ctvdr.2) unstable; urgency=low
-
- * Made vdradmind.conf readable by group "vdr" (may be needed by
- autotimer plugin)
-
- -- Tobias Grimm <tg@e-tobi.net> Sun, 3 Apr 2005 13:45:13 +0200
-
-vdradmin (0.96-5.ctvdr.1) unstable; urgency=low
-
- * Tobias Grimm <tg@e-tobi.net>
- - Made package more compatible to official Debian version
- * Thomas Schmidt <tschmidt@debian.org>
- - From now on vdradmin will run under the user vdradmin,
- the owner of the cfg-file will be changed in postinst
- - Changed path of vdradmind.{conf,at} from /etc/vdradmin/ to
- /var/lib/vdradmin to comply with the FHS (existing files
- will be moved in postinst)
-
- -- Tobias Grimm <tg@e-tobi.net> Sun, 27 Mar 2005 14:33:27 +0200
-
-vdradmin (0.96-3.ctvdr.1) unstable; urgency=low
-
- * New upstream release
- * changed version numbering to "backports.org"-style to reflect relationship
- to official debian package
- * Modified streaming patch to allow streaming of recordings with
- dot, slash, double underscore and parenthesis in filename
- * Converted all patches to shorter format for new dpatch
- * Added dist-var patch, that change vdradmin.pl to search for it's
- files in system-directories, instead of local, relative paths
- (taken from official debian version 0.96-3)
- * Added 02_sectmpfiles.dpatch: use File::Temp to create temporary
- files, to prevent possible symlink-attacks (Closes: #287601)
- (taken from official debian version 0.96-3)
- * Set permissions of /etc/vdradmin/vdradmind.conf to 600 on new
- installations (users with an existing installation should
- ensure that the cfg-file has a permission of 600)
- (taken from official debian version 0.96-3)
- * using dh_install now
- * Added manpage for vdradmin.pl (taken from official debian version 0.96-2)
- * Set section to "web" and architecture to "all", set standards version to
- 3.6.1
- * Fixed depends (no longer depends on vdr, but suggests it)
- * Added watch file
- * The vdradmin daemon can now be enabled/disabled in /etc/default/vdradmin
- (taken from official debian version 0.96-3)
- * Do not install Base64.pm, Template.pm and RescDescent.pm
- from upstream anymore, depend on libhtml-template-perl and
- libparse-rescdescent-perl (Base64.pm is allready provided by
- perl) (taken from official debian version 0.96-2)
- * Link /usr/share/vdradmin/template/{English,French}/bilder to
- /usr/share/vdradmin/template/Deutsch/bilder, this reduces the
- size of the deb by about 50% (taken from official debian version 0.96-2)
- * Took over README.Debian from official debian version 0.96-3
- * added debian/compat
-
- -- Tobias Grimm <tg@e-tobi.net> Thu, 30 Dec 2004 22:20:00 +0100
-
-vdradmin (0.95-ct-10) unstable; urgency=low
-
- * Fix rec streaming patch: slashes in dir names and order
-
- -- Peter Siering <ps@ctmagazin.de> Fri, 29 Oct 2004 11:00:00 +0100
-
-vdradmin (0.95-ct-9) unstable; urgency=low
-
- * extracted Peter Sierings modifications as 05_streaming.dpatch
-
- -- Tobias Grimm <tg@e-tobi.net> Sat, 21 Mar 2004 16:00:00 +0100
-
-vdradmin (0.95-ct-8) unstable; urgency=low
-
- * added fix to rec_stream to skip "new"-char at time
-
- -- Tobias Grimm <tg@e-tobi.net> Wed, 17 Feb 2003 21:30:00 +0100
-
-vdradmin (0.95-ct-7) unstable; urgency=low
-
- * changed additional_images -patch to work within CVS source-dirs too
- * added patch to fix problem with vdr's Wareagle Icon Patch
- (Thanks to HFlor from vdrportal.de)
-
- -- Tobias Grimm <tg@e-tobi.net> Sat, 08 Feb 2003 23:50:00 +0100
-
-vdradmin (0.95-ct-6) unstable; urgency=low
-
- * vdradmin is distributed as non-native package from now on
-
- -- Tobias Grimm <tg@e-tobi.net> Sat, 08 Feb 2003 23:50:00 +0100
-
-vdradmin (0.95-ct-5) unstable; urgency=low
-
- * new upstream release
- * includes fix for using through apache
-
- -- Peter Siering <ps@ctmagazin.de> Tue, 22 Dec 2003 00:30:00 +0100
-
-vdradmin (0.94-ct-4) unstable; urgency=low
-
- * minor streaming fixes, repair init
-
- -- Peter Siering <ps@ctmagazin.de> Tue, 28 Nov 2003 10:00:00 +0100
-
-vdradmin (0.94-ct-3) unstable; urgency=low
-
- * incorporated (live) streaming functions
-
- -- Peter Siering <ps@ctmagazin.de> Tue, 25 Nov 2003 12:00:00 +0100
-
-vdradmin (0.94-2) unstable; urgency=low
-
- * fixed vdradmind.pl location in init skript
-
- -- Peter Siering <ps@ctmagazin.de> Sun, 16 Nov 2003 12:00:00 +0100
-
-vdradmin (0.94-1) unstable; urgency=low
-
- * Initial Release.
- * includes daylight saving fix
-
- -- Peter Siering <ps@ctmagazin.de> Thu, 30 Oct 2003 00:13:40 +0100
-
diff --git a/debian/compat b/debian/compat
deleted file mode 100644
index b8626c4..0000000
--- a/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-4
diff --git a/debian/control b/debian/control
deleted file mode 100644
index 223ca65..0000000
--- a/debian/control
+++ /dev/null
@@ -1,18 +0,0 @@
-Source: vdradmin
-Section: web
-Priority: optional
-Maintainer: Peter Siering <ps@ctmagazin.de>
-Origin: ctvdr
-Bugs: mailto:pkg-vdr-dvb-devel@lists.alioth.debian.org
-Build-Depends-Indep: debhelper (>= 4.0.0), dpatch (>= 2.0.9)
-Standards-Version: 3.6.1
-
-Package: vdradmin
-Architecture: all
-Depends: perl, libcompress-zlib-perl, libhtml-template-perl, libparse-recdescent-perl
-Suggests: vdr
-Description: VDRadmin is a web frontend to VDR
- VDRadmin is a web frontend to Klaus Schmidingers
- Video Disk Recorder. Beside that it adds some extras
- to VDR like auto timers; that are some kind of
- search lists to the electronic program guide (EPG).
diff --git a/debian/copyright b/debian/copyright
deleted file mode 100644
index d005dd8..0000000
--- a/debian/copyright
+++ /dev/null
@@ -1,26 +0,0 @@
-This package was debianized by Thomas Schmidt <thomas.schmidt@in.stud.tu-ilmenau.de> on
-Wed, 1 Oct 2003 20:36:52 +0200.
-It was modified for VDRAdmin-AM by Andreas Mair <mail@andreas.vdr-developer.org>.
-
-It was downloaded from http://andreas.vdr-developer.org
-
-Upstream Author: Thomas Koch <tom@linvdr.org>, Andreas Mair <mail@andreas.vdr-developer.org>
-
-Copyright: 2001-2004, Thomas Koch <tom@linvdr.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- see /usr/share/common-licenses/GPL-2
-
diff --git a/debian/patches/00list b/debian/patches/00list
deleted file mode 100644
index 7b9e8ba..0000000
--- a/debian/patches/00list
+++ /dev/null
@@ -1,2 +0,0 @@
-01_dist-var
-03_cfgfiles-fhs.dpatch
diff --git a/debian/patches/01_dist-var.dpatch b/debian/patches/01_dist-var.dpatch
deleted file mode 100644
index 3bf465e..0000000
--- a/debian/patches/01_dist-var.dpatch
+++ /dev/null
@@ -1,21 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-
-## 01_dist-var.dpatch by Thomas Schmidt <thomas.schmidt@in.stud.tu-ilmenau.de>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Change vdradmin.pl to search for it's files in system-directories,
-## DP: instead of local, relative paths
-
-@DPATCH@
-diff -urNad /home/chelli/vdr/cvs/vdr/vdradmin/vdradmind.pl vdradmin/vdradmind.pl
---- /home/chelli/vdr/cvs/vdr/vdradmin/vdradmind.pl 2004-05-27 16:34:55.000000000 +0200
-+++ vdradmin/vdradmind.pl 2004-05-27 16:35:55.000000000 +0200
-@@ -42,7 +42,7 @@
- #use warnings;
-
- #my $SEARCH_FILES_IN_SYSTEM = (-d '/usr/share/vdradmin/lib' ? 1 : 0); # for distribution
--my $SEARCH_FILES_IN_SYSTEM = 0;
-+my $SEARCH_FILES_IN_SYSTEM = 1;
-
- sub true () { 1 };
- sub false () { 0 };
diff --git a/debian/patches/03_cfgfiles-fhs.dpatch b/debian/patches/03_cfgfiles-fhs.dpatch
deleted file mode 100644
index 50bb8e1..0000000
--- a/debian/patches/03_cfgfiles-fhs.dpatch
+++ /dev/null
@@ -1,28 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 03_cfgfiles-fhs.dpatch by Thomas Schmidt <thomas.schmidt@in.stud.tu-ilmenau.de>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Change the path to the cfgfile and autotime-file to comply
-## DP: with the FHS (vdradmin changes these files at runtime)
-
-@DPATCH@
-diff -urNad vdradmin-0.96/vdradmind.pl /tmp/dpep.0DtdZt/vdradmin-0.96/vdradmind.pl
---- vdradmin-0.96/vdradmind.pl 2005-01-23 21:41:19.000000000 +0100
-+++ /tmp/dpep.0DtdZt/vdradmin-0.96/vdradmind.pl 2005-01-23 21:42:53.000000000 +0100
-@@ -94,10 +94,10 @@
- } else {
- $TEMPLATEDIR = "/usr/share/vdradmin/template";
- $I18NDIR = "/usr/share/vdradmin/i18n";
-- $CONFFILE = "/etc/vdradmin/vdradmind.conf";
-+ $CONFFILE = "/var/lib/vdradmin/vdradmind.conf";
- $LOGFILE = "/var/log/$CONFIG{LOGFILE}";
- $PIDFILE = "/var/run/vdradmind.pid";
-- $AT_FILENAME = "/etc/vdradmin/vdradmind.at";
-+ $AT_FILENAME = "/var/lib/vdradmin/vdradmind.at";
-- $DONE_FILENAME = "/etc/vdradmin/vdradmind.done";
-+ $DONE_FILENAME = "/var/lib/vdradmin/vdradmind.done";
-- $BL_FILENAME = "/etc/vdradmin/vdradmind.bl";
-+ $BL_FILENAME = "/var/lib/vdradmin/vdradmind.bl";
- }
- my $DONE = &DONE_Read || {};
-
diff --git a/debian/postinst b/debian/postinst
deleted file mode 100644
index 735d586..0000000
--- a/debian/postinst
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/bin/sh -e
-set -e
-
-TEMPLATE_DIR=/usr/share/vdradmin/template
-
-# Check if there are still cfgfiles in /etc/vdradmin/ and move them
-# to /var/lib/vdradmin
-if [ ! -f /var/lib/vdradmin/vdradmind.conf ]; then
- if [ -f /etc/vdradmin/vdradmind.conf ]; then
- mv /etc/vdradmin/vdradmind.conf /var/lib/vdradmin/
- else
- cp /usr/share/doc/vdradmin/examples/vdradmind.conf /var/lib/vdradmin/
- fi
-fi
-
-[ -e /etc/vdradmin/vdradmind.conf ] || ln -s /var/lib/vdradmin/vdradmind.conf \
-/etc/vdradmin/vdradmind.conf
-
-if [ ! -f /var/lib/vdradmin/vdradmind.at ]; then
- [ ! -f /etc/vdradmin/vdradmind.at ] || mv /etc/vdradmin/vdradmind.at /var/lib/vdradmin/
-fi
-
-# ensure that user and group 'vdradmin' exist
-USER=vdradmin
-GROUP=vdradmin
-if ! getent group | grep -q "^$GROUP:" ; then
- echo -n "Adding group $GROUP.."
- addgroup --quiet --system $GROUP
- echo "..done"
-fi
-if ! getent passwd | grep -q "^$USER:"; then
- echo -n "Adding user $USER.."
- adduser --system --home /var/lib/vdradmin --shell /bin/false \
- --gecos "VDRAdmin user" --no-create-home \
- --disabled-login --disabled-password \
- --ingroup $GROUP \
- $USER
- echo "...done"
-fi
-
-# ensure vdradmind.at (auto timers) exists
-ATFILE=/var/lib/vdradmin/vdradmind.at
-[ -e $ATFILE ] || touch $ATFILE
-
-# ensure that vdradmin's config files have the correct owner
-[ ! -d /var/lib/vdradmin ] || chown -R $USER:$GROUP /var/lib/vdradmin/
-
-# change the permissions of the cfg-file to 0600
-[ ! -e /var/lib/vdradmin/vdradmind.conf ] || chmod 0600 /var/lib/vdradmin/vdradmind.conf
-
-# change the owner and group of the logfile to vdradmin
-[ ! -e /var/log/vdradmind.log ] || chown $USER:$GROUP /var/log/vdradmind.log
-
-# make auto timer file "read/writeable" by group vdr and config file readable
-# by group "vdr",so that vdr plugins (Autotimeredit plugin) get access
-if getent group | grep -q "^vdr:" ; then
- if [ -d /var/lib/vdradmin ] ; then
- chgrp -R vdr /var/lib/vdradmin
- chmod a=,ug=rwx /var/lib/vdradmin
- chmod a=,ug=rw $ATFILE
- CFGFILE=/var/lib/vdradmin/vdradmind.conf
- [ -e $CFGFILE ] && chmod a=,u=rw,g=r $CFGFILE
- fi
-fi
-
-##DEBHELPER##
diff --git a/debian/postrm b/debian/postrm
deleted file mode 100644
index e2e719a..0000000
--- a/debian/postrm
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh -e
-set -e
-
-case "$1" in
- purge)
- rm -f /var/lib/vdradmin/vdradmind.conf > /dev/null 2>&1 || true
- rm -f /var/lib/vdradmin/vdradmind.at > /dev/null 2>&1 || true
- rm -f /var/lib/vdradmin/vdradmind.done > /dev/null 2>&1 || true
- rm -f /var/lib/vdradmin/vdradmind.bl > /dev/null 2>&1 || true
- rm -f /etc/vdradmin/vdradmind.conf > /dev/null 2>&1 || true
-
- chown root:root /var/log/vdradmind.log > /dev/null 2>&1 || true
-
- deluser vdradmin > /dev/null || true
- ;;
- remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
- ;;
- *)
- echo "postrm called with unknown argument \`$1'" >&2
- exit 1
- ;;
-esac
-
-##DEBHELPER##
diff --git a/debian/prerm b/debian/prerm
deleted file mode 100644
index 87380fc..0000000
--- a/debian/prerm
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh -e
-set -e
-
-TEMPLATE_DIR=/usr/share/vdradmin/template
-
-##DEBHELPER##
diff --git a/debian/rules b/debian/rules
deleted file mode 100644
index 2923e6c..0000000
--- a/debian/rules
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/make -f
-# -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# GNU copyright 1997 to 1999 by Joey Hess.
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-# include dpatch stuff
-include /usr/share/dpatch/dpatch.make
-
-clean: clean-patched unpatch
-
-clean-patched:
- dh_testdir
- dh_testroot
- dh_clean
-
-build: patch-stamp
- # Nothing to build here
- #
- # Note: all files are installed using dh_install
-
-install:
- dh_testdir
- dh_testroot
- dh_clean -k
-
- dh_installdirs
-
-# Build architecture-independent files here.
-binary-indep: install
- dh_testdir
- dh_testroot
- dh_installchangelogs HISTORY.am
- dh_installdocs
- dh_installexamples debian/vdradmind.conf
- dh_install
- dh_installinit
- dh_installman
- dh_link
- dh_compress
- dh_fixperms
- dh_perl
- dh_installdeb
- dh_shlibdeps
- dh_gencontrol
- dh_md5sums
- dh_builddeb
-
-binary: binary-indep
-.PHONY: build clean binary-indep install patch unpatch
diff --git a/debian/vdradmin.default b/debian/vdradmin.default
deleted file mode 100644
index cbf4813..0000000
--- a/debian/vdradmin.default
+++ /dev/null
@@ -1,20 +0,0 @@
-# Defaults for vdradmin initscript
-# sourced by /etc/init.d/vdradmin
-# installed at /etc/default/vdradmin by the maintainer scripts
-
-#
-# This is a POSIX shell fragment
-#
-
-# Should vdradmin's init-script be enabled?
-
-#################################################################
-# ATTENTION! YOU SHOULD MODIFY /var/lib/vdradmin/vdradmind.conf #
-# before enabling this, because the default config uses a #
-# really simple default username/password (linvdr/linvdr) #
-#################################################################
-
-ENABLED="1"
-
-# Additional options that are passed to the Daemon.
-DAEMON_OPTS=""
diff --git a/debian/vdradmin.dirs b/debian/vdradmin.dirs
deleted file mode 100644
index 0e9961e..0000000
--- a/debian/vdradmin.dirs
+++ /dev/null
@@ -1,2 +0,0 @@
-var/lib/vdradmin
-etc/vdradmin
diff --git a/debian/vdradmin.init b/debian/vdradmin.init
deleted file mode 100644
index 24f7a99..0000000
--- a/debian/vdradmin.init
+++ /dev/null
@@ -1,91 +0,0 @@
-#! /bin/sh
-#
-#
-# Init-script for vdradmin, created by Thomas Schmidt <thomas.schmidt@in.stud.tu-ilmenau.de>
-#
-#
-
-# Default Settings:
-
-# Username vdradmin should run as:
-USER=vdradmin
-
-# Group under which vdradmin should run:
-GROUP=vdradmin
-
-
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-DAEMON=/usr/bin/vdradmind.pl
-NAME=vdradmin
-DESC="VDR Webadministration interface"
-
-test -x $DAEMON || exit 0
-
-# Include vdradmin defaults if available
-if [ -f /etc/default/vdradmin ] ; then
- . /etc/default/vdradmin
-fi
-
-test "$ENABLED" != "0" || exit 0
-
-set -e
-
-# Create Temporary Directory
-create_temp ()
-{
- TEMPDIR=`mktemp -d -p /tmp vdradmin-XXXXXX`
-
- # Check if the group vdr exists and make vdr
- # the owner of the temporary directory
- if getent group | grep -q "^vdr:" ; then
- chown vdr $TEMPDIR
- fi
-
- chgrp vdradmin $TEMPDIR
- chmod 2770 $TEMPDIR
-}
-
-# Check if the logfile exists allready, if not, create it and set
-# group and owner to $USER:$GROUP
-create_logfile ()
-{
- LOGFILE="/var/log/vdradmind.log"
- if [ ! -e $LOGFILE ] ; then
- touch $LOGFILE
- chown $USER:$GROUP $LOGFILE
- fi
-}
-
-case "$1" in
- start)
- echo -n "Starting $DESC: "
- create_temp
- create_logfile
- TEMPDIR=$TEMPDIR start-stop-daemon --start \
- -c $USER:$GROUP -b -m --pidfile /var/run/vdradmin.pid \
- --exec /usr/bin/vdradmind.pl -- -nf
- echo "$NAME."
- ;;
- stop)
- echo -n "Stopping $DESC: "
- start-stop-daemon --stop -q -o --pidfile /var/run/vdradmin.pid
- echo "$NAME."
- ;;
- restart|force-reload)
- echo -n "Restarting $DESC: "
- create_temp
- create_logfile
- start-stop-daemon --stop -q -o --pidfile /var/run/vdradmin.pid
- TEMPDIR=$TEMPDIR start-stop-daemon --start \
- -c $USER:$GROUP -b -m --pidfile /var/run/vdradmin.pid \
- --exec /usr/bin/vdradmind.pl -- -nf
- echo "$NAME."
- ;;
- *)
- N=/etc/init.d/$NAME
- echo "Usage: $N {start|stop|restart|force-reload}" >&2
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/debian/vdradmin.install b/debian/vdradmin.install
deleted file mode 100644
index cfb76f1..0000000
--- a/debian/vdradmin.install
+++ /dev/null
@@ -1,9 +0,0 @@
-lib/ usr/share/vdradmin/
-
-template/ usr/share/vdradmin/
-
-i18n/ usr/share/vdradmin/
-
-vdradmind.pl usr/bin/
-
-vdradmind.pl.1 usr/share/man/man1/
diff --git a/debian/vdradmind.conf b/debian/vdradmind.conf
deleted file mode 100644
index dbac378..0000000
--- a/debian/vdradmind.conf
+++ /dev/null
@@ -1,39 +0,0 @@
-AT_FUNC = 1
-AT_LIFETIME = 99
-AT_PRIORITY = 99
-AT_TIMEOUT = 120
-CACHE_LASTUPDATE = 1112088214
-CACHE_TIMEOUT = 60
-CHANNELS_WANTED_AUTOTIMER = 0
-CHANNELS_WANTED_PRG = 0
-CHANNELS_WANTED_SUMMARY = 0
-EPG_DIRECT = 0
-EPG_FILENAME = /var/cache/vdr/epg.data
-GUEST_ACCOUNT = 0
-LANGUAGE = Deutsch
-LOCAL_NET = 0.0.0.0/32
-LOGFILE = vdradmind.log
-LOGGING = 1
-LOGINPAGE = 1
-LOGLEVEL = 81
-MOD_GZIP = 0
-PASSWORD = linvdr
-PASSWORD_GUEST =
-RECORDINGS = 2
-SERVERHOST = 0.0.0.0
-SERVERPORT = 8001
-SKIN = copper
-ST_FUNC = 1
-ST_STREAMDEV_PORT = 3000
-ST_URL =
-TIMES = 18:00, 20:00, 21:00, 22:00
-TM_LIFETIME = 99
-TM_MARGIN_BEGIN = 3
-TM_MARGIN_END = 3
-TM_PRIORITY = 99
-USERNAME = linvdr
-USERNAME_GUEST =
-VDR_HOST = localhost
-VDR_PORT = 2001
-VIDEODIR = /video
-ZEITRAHMEN = 1
diff --git a/debian/watch b/debian/watch
deleted file mode 100644
index 8497e1d..0000000
--- a/debian/watch
+++ /dev/null
@@ -1,2 +0,0 @@
-version=2
-http://linvdr.org/download/vdradmin/ vdradmin.*-([\d+\.]+|\d+)\.tar(\.gz|\.bz2) debian uupdate
diff --git a/i18n/Deutsch/i18n.pl b/i18n/Deutsch/i18n.pl
deleted file mode 100644
index 5a32ee9..0000000
--- a/i18n/Deutsch/i18n.pl
+++ /dev/null
@@ -1,325 +0,0 @@
-##
-# Deutsch
-#
-# Author: Andreas Mair
-##
-
-@I18N_Days = (
- "Sonntag",
- "Montag",
- "Dienstag",
- "Mittwoch",
- "Donnerstag",
- "Freitag",
- "Samstag"
-);
-
-@I18N_Month = (
- "Januar",
- "Februar",
- "M&auml;rz",
- "April",
- "Mai",
- "Juni",
- "Juli",
- "August",
- "September",
- "Oktober",
- "November",
- "Dezember"
-);
-
-@LOGINPAGES_DESCRIPTION = (
- "Programm&uuml;bersicht",
- "Was l&auml;uft heute?",
- "Was l&auml;uft jetzt?",
- "Zeitleiste",
- "Timer",
- "Aufnahmen"
-);
-
-%MESSAGES = (
-# common
- c_progname => "VDRAdmin",
- c_monday => $I18N_Days[1],
- c_tuesday => $I18N_Days[2],
- c_wednesday => $I18N_Days[3],
- c_thursday => $I18N_Days[4],
- c_friday => $I18N_Days[5],
- c_saturday => $I18N_Days[6],
- c_sunday => $I18N_Days[0],
- c_help => "Hilfe",
- c_yes => "Ja",
- c_no => "Nein",
- c_minutes => "Minuten",
- c_hours_short => "h",
- c_sec => "sek",
- c_off => "aus",
- c_channel => "Sender",
- c_time => "Uhrzeit",
- c_clock => "Uhr",
- c_priority => "Priorit&auml;t:",
- c_lifetime => "Lebenszeit:",
- c_buffer_before => "Zeitpuffer Anfang:",
- c_buffer_after => "Zeitpuffer Ende:",
- c_title => "Titel",
- c_subtitle => "Untertitel",
- c_description => "Beschreibung",
- c_summary => "Zusammenfassung:",
- c_save => "Speichern",
- c_apply => "Anwenden",
- c_cancel => "Abbrechen",
- c_once => "einmal",
- c_all => "alle",
- c_directory => "Ordner:",
- c_edit => "Bearbeiten",
- c_delete => "L&ouml;schen",
- c_whatson => "Was l&auml;uft:",
- c_now => "jetzt",
- c_at => "um:",
- c_go => "Go!",
- c_stream => "Stream",
- c_select_allnone => "Alle/keine ausw&auml;hlen",
-
-# JavaScript
- js_del_timer => "Timer l&ouml;schen?",
- js_del_selected_timer => "Ausgew&auml;hlte Timer wirklich l&ouml;schen?",
- js_change_timer => "Timerstatus &auml;ndern?",
- js_del_rec => "Aufnahme l&ouml;schen?",
- js_del_selected_rec => "Ausgew&auml;hlte Aufnahmen wirklich l&ouml;schen?",
-
-# headings for listings
- c_list_active => "Aktiv",
- c_list_channel => "Sender",
- c_list_start => "Beginn",
- c_list_stop => "Ende",
- c_list_name => "Name",
- c_list_date => "Datum",
- c_list_time => "Uhrzeit",
-
-# at_new.html
- an_new_timer => "Neuen AutoTimer anlegen",
- an_edit_timer => "AutoTimer editieren",
- an_timer_active => "AutoTimer aktiv:",
- an_search_items => "Suchbegriffe:",
- an_search_in => "zu suchen in:",
- an_search_start => "Beginnt fr&uuml;hestens:",
- an_search_stop => "Endet sp&auml;testens:",
- an_episode => "Serie:",
- an_done_active => "&quot;Done&quot; aktiv:",
-
-# at_timer_list.html
- al_autotimer => "AutoTimer",
- al_new_autotimer => "Neuer AutoTimer",
- al_force_update => "Manuelles Update",
- al_del_selected => "Ausgew&auml;hlte AutoTimer l&ouml;schen",
-
-# config.html
- co_config => "Konfiguration",
- co_hl_general => "Allgemeine Einstellungen",
- co_g_language => "Sprache:",
- co_g_template => "Template:",
- co_g_loginpage => "Startseite:",
- co_g_num_dvb => "Anzahl der DVB-Karten:",
- co_g_skin => "Skin:",
- co_hl_id => "Identifikation",
- co_id_user => "Benutzername:",
- co_id_password => "Passwort:",
- co_id_guest_account => "Gast-Zugang:",
- co_id_guest_user => "Gast Benutzername:",
- co_id_guest_password => "Gast Passwort:",
- co_hl_timeline => "Zeitleiste",
- co_tl_hours => "Stunden:",
- co_tl_times => "Zeiten:",
- co_hl_autotimer => "AutoTimer",
- co_at_active => "Aktiv:",
- co_at_timeout => "Timeout:",
- co_hl_timer => "Timer",
- co_hl_streaming => "Streaming",
- co_str_port => "HTTP-Port von Streamdev (auch m&ouml;glich 3000/ts):",
- co_str_bandwidth => "Bandbreite des Streams:",
- co_str_rec_path => "Pfad der Aufnahmen:",
- co_str_do_live => "Live Streaming?",
- co_str_do_rec => "Aufnahmen streamen?",
- co_hl_channels => "Selektive Senderauswahl",
- co_ch_use_summary => "Bei &quot;Programm&uuml;bersicht&quot;?",
- co_ch_use_whatsonnow => "Bei &quot;Was l&auml;uft jetzt&quot;?",
- co_ch_use_autotimer => "Bei &quot;AutoTimer&quot;?",
-
-# index.html
- i_no_frames => "Ihr Browser unterst&uuml;tzt keine Frames!",
-
-# left.html
- menu_prog_summary => "Was l&auml;uft jetzt?",
- menu_prog_list2 => "Was l&auml;uft heute?",
- menu_prog_timeline => "Zeitleiste",
- menu_prog_list => "Programm&uuml;bersicht",
- menu_timer_list => "Timer",
- menu_at_timer_list => "AutoTimer",
- menu_rec_list => "Aufnahmen",
- menu_config => "Konfiguration",
- menu_rc => "Fernbedienung",
- menu_tv => "Fernseher",
- menu_search => "Suchen",
-
-# vdradmind.pl, noauth.html, error.html
- err_notfound => "Nicht gefunden",
- err_notfound_long => "Die angeforderte URL konnte auf dem Server nicht gefunden werden!",
- err_notfound_file => "Die URL &quot;%s&quot; wurde auf dem Server nicht gefunden!",
- err_forbidden => "Verboten",
- err_forbidden_long => "Sie haben nicht die Erlaubnis diese Funktion aufzurufen!",
- err_forbidden_file => "Zugriff auf Datei &quot;%s&quot; verweigert!",
- err_cant_open => "Kann Datei &quot;%s&quot; nicht &ouml;ffnen!",
- err_noauth => "Autorisierung erforderlich",
- err_cant_verify => "Dieser Server kann nicht best&auml;tigen, dass Sie berechtigt sind, auf das angeforderte Dokument zuzugreifen. Entweder haben Sie falsche Anmeldedaten angegeben (z.B. falsches Passwort) oder Ihr Browser kann die Anmeldedaten nicht &uuml;bermitteln.",
- err_error => "Fehler!",
-
-# prog_detail.html
- pd_close => "schlie&szlig;en",
- pd_view => "umschalten",
- pd_record => "aufnehmen",
- pd_search => "Wiederholungen",
- pd_imdb => "Film in der Internet-Movie-Database (IMDb) suchen",
-
-# prog_list2.html
- pl2_headline => "Was l&auml;uft heute?",
-
-# prog_list.html
- pl_headline => "Programm&uuml;bersicht",
-
-# prog_summary.html
- ps_headline => "Was l&auml;uft jetzt?",
- ps_more => "mehr",
- ps_search => "Nach Wiederholungen suchen",
- ps_more_info => "mehr Infos",
- ps_view => "TV umschalten",
- ps_record => "Sendung aufnehmen",
-
-# prog_timeline.html
- pt_headline => "Was l&auml;uft jetzt?",
- pt_timeline => "Zeitleiste:",
- pt_to => "bis",
-
-# rc.html
- rc_headline => "Fernbedienung",
-
-# rec_edit.html
- re_headline => "Aufnahme umbenennen",
- re_old_title => "Alter Titel der Aufnahme:",
- re_new_title => "Neuer Titel der Aufnahme:",
- re_rename => "Umbenennen",
-
-# rec_list.html
- rl_headline => "Aufnahmen",
- rl_hd_total => "Total:",
- rl_hd_free => "Frei:",
- rl_rec_total => "Gesamt",
- rl_rec_new => "neu",
- rl_rename => "Umbenennen",
- rl_del_selected => "Ausgew&auml;hlte Aufnahmen l&ouml;schen",
-
-# timer_list.html
- tl_headline => "Timer",
- tl_new_timer => "Neuer Timer",
- tl_inactive => "Diese Aufnahme ist deaktiviert!",
- tl_impossible => "Diese Aufnahme ist nicht m&ouml;glich!",
- tl_nomore => "Keine weiteren Aufnahmen mehr m&ouml;glich!",
- tl_possible => "Diese Aufnahme ist m&ouml;glich.",
- tl_vps => "VPS",
- tl_auto => "Auto",
- tl_del_selected => "Ausgew&auml;hlte Timer l&ouml;schen",
-
-# timer_new.html
- tn_new_timer => "Neuen Timer anlegen",
- tn_edit_timer => "Timer editieren",
- tn_timer_active => "Timer aktiv:",
- tn_autotimer_checking => "Automatische Timer-&Uuml;berwachung:",
- tn_transmission_id => "Sendungskennung",
- tn_day_of_rec => "Tag der Aufnahme:",
- tn_time_start => "Startzeit:",
- tn_time_stop => "Endzeit:",
- tn_rec_title => "Titel der Aufnahme:",
-
-# tv.html
- tv_headline => "Fernseher",
- tv_interval => "Intervall:",
- tv_size => "Gr&ouml;&szlig;e:",
- tv_grab => "Hole das Bild!",
- tv_g => "G"
-);
-
-%ERRORMESSAGE = (
- CONNECT_FAILED => "Konnte Verbindung zu %s nicht aufbauen!",
- SEND_COMMAND => "Fehler beim Senden eines Kommandos zu %s",
-);
-
-%COMMONMESSAGE = (
- OVERVIEW => "&Uuml;bersicht",
-);
-
-%HELP = (
- at_timer_list =>
-"<b>Auto Timer:</b><br>
-<p>Eine &Uuml;bersicht aller Auto-Timer-Eintr&auml;ge.</p>
-<p>Ein Mausklick auf |<img src=\"bilder/poempl_gruen.gif\" alt=\"on\" valign=\"center\"> <i>Ja</i> | oder |<img src=\"bilder/poempl_rot.gif\" alt=\"off\" valign=\"center\"> <i>Nein</i> | in der Spalte <i>Aktiv</i>, schaltet den jeweiligen Eintrag an oder aus.</p>
-<p>Um einen Eintrag zu bearbeiten, klicken Sie auf das Symbol <img src=\"bilder/edit.gif\" alt=\"Stift\" valign=\"center\">, zum L&ouml;schen auf <img src=\"bilder/delete.gif\" alt=\"Radiergummi\" valign=\"center\">. Wenn Sie mehrere Auto-Timer-Eintr&auml;ge auf einmal l&ouml;schen m&ouml;chten, Aktivieren Sie die K&auml;stchen (<input type=\"checkbox\" checked>) rechts neben den gew&uuml;nschten Eintr&auml;gen und klicken Sie abschlie&szlig;end auf <i>Ausgew&auml;hlte Auto Timer l&ouml;schen</i> am Ende der Liste.</p>",
-
- at_timer_new =>
-"<b>Neuen Auto Timer anlegen/bearbeiten:</b><br>
-<p>Der Auto Timer ist eine der zentralen Funktionen VDR Admins. Ein Auto-Timer-Eintrag besteht haupts&auml;chlich aus einem oder mehreren Suchbegriffen, nach denen in regelm&auml;&szlig;igen Abst&auml;nden der elektronische Programmf&uuml;hrer (EPG) durchsucht wird. Bei &Uuml;bereinstimmung der Suchbegriffe (und &uuml;brigen Parameter wie Uhrzeit und Kanal) programmiert Auto Timer selbst&auml;ndig eine Aufnahme (Timer) f&uuml;r die gefundene Sendung &#150; das ist besonders f&uuml;r (un)regelm&auml;&szlig;ig gesendete Serien interessant, oder aber f&uuml;r Filme, die Sie keinesfalls verpassen wollen.</p>
-<p>In dieser Maske k&ouml;nnen Sie einen neuen Auto-Timer-Eintrag anlegen. Sie m&uuml;ssen in jedem Fall einen oder mehrere Suchbegriffe angeben, damit es &uuml;berhaupt zu &Uuml;bereinstimmungen kommen kann. Details, welche Suchbegriffe Sie w&auml;hlen sollten und wie Sie unsinnige Aufnahmen vermeiden, finden Sie in der Hilfe zu <i>Suchbegriffe</i>.</p>
-<b>Auto Timer Aktiv:</b><br>
-<p>Mit <i>ja</i> schalten Sie den Auto Timer scharf, der elektronische Programmf&uuml;hrer (EPG) wird dann regelm&auml;&szlig;ig nach <i>Suchbegriffe</i> durchsucht und ein neuer Timer-Eintrag programmiert, wenn es eine &Uuml;bereinstimmung mit <i>Suchbegriffe</i> sowie den &uuml;brigen Parametern gibt.</p>
-<p>Mit <i>nein</i> schalten Sie den Auto-Timer-Eintrag ab, ohne ihn zu l&ouml;schen. Dies l&auml;sst bereits automatisch programmierte Aufnahmen (Timer) jedoch unangetastet &#150; sie m&uuml;ssen gegebenenfalls von Hand im <i>Timer</i>-Men&uuml; gel&ouml;scht werden.</p>
-<b>Suchbegriffe:</b><br>
-<p>Die Wahl der Suchbegriffe hat entscheidenden Einfluss darauf, ob nur die gew&uuml;nschte Sendung, alle mit &auml;hnlichem Namen oder gar nichts programmiert wird.</p>
-<p>Zun&auml;chst einmal spielt Gro&szlig;-Kleinschreibung keine Rolle, die Suchbegriffe \"Akte X\" liefern genau die selben Treffer wie \"akte x\". Mehrere Suchbegriffe werden mit Leerzeichen getrennt, und es m&uuml;ssen stets alle angegebenen Suchbegriffe bei der gleichen Sendung gefunden werden.</p>
-<p>So finden die Suchbegriffe \"Akte X\" die Sendungen \"Akte X - Die unheimlichen F&auml;lle des FBI\" genauso wie \"Aktenzeichen XY ungel&ouml;st\" und \"Extrem Aktiv\", jedoch nicht die Sendung \"Die Akte Jane\" (dort ist kein \"X\" enthalten).</p>
-<p>Sie sollten m&ouml;glichst nur Buchstaben und Zahlen als Suchbegriffe verwenden, erfahrungsgem&auml;&szlig; fehlen im elektronischen Programmf&uuml;hrer (EPG) gerne mal ein Punkt, Klammern oder sonstige Zeichen.</p>
-<p>Es ist auch m&ouml;glich, regul&auml;re Ausdr&uuml;cke zu verwenden &#150; Experten m&ouml;gen doch bitte die n&ouml;tigen Infos dem Quelltext entnehmen (undocumented feature).
-</p>",
-
- timer_list =>
-"<b>Timer</b>
-<p>&Uuml;bersicht &uuml;ber alle Timer im VDR.</p>
-<p>Ein Mausklick auf |<img src=\"bilder/poempl_gruen.gif\" alt=\"on\" valign=\"center\"> <i>Ja</i> | oder |<img src=\"bilder/poempl_grau.gif\" alt=\"off\" valign=\"center\"> <i>Nein</i> | in der Spalte <i>Aktiv</i>, schaltet den jeweiligen Timer an oder aus.<br>
-<img src=\"bilder/poempl_gelb.gif\" alt=\"problem\" valign=\"center\"> zeigt an, da&szlig; es eine &Uuml;berschneidung gibt. Das ist unkritisch, solange es f&uuml;r jeden Timer eine Karte gibt, um die Aufnahme durchzuf&uuml;hren.<br>
-Um einen Eintrag zu bearbeiten, klicken Sie auf das Symbol <img src=\"bilder/edit.gif\" alt=\"Stift\" valign=\"center\">, zum L&ouml;schen auf <img src=\"bilder/delete.gif\" alt=\"Radiergummi\" valign=\"center\">. Wenn Sie mehrere Auto-Timer-Eintr&auml;ge auf einmal l&ouml;schen m&ouml;chten, Aktivieren Sie die K&auml;stchen (<input type=\"checkbox\" checked>) rechts neben den gew&uuml;nschten Eintr&auml;gen und klicken Sie abschlie&szlig;end auf <i>Ausgew&auml;hlte Timer l&ouml;schen</i> am Ende der Liste.
-</p>",
-
- conf_list =>
-"<b>Allgemeine Einstellungen:</b>
-<p>Hier kann man die allgemeinen Einstellungen vornehmen. Au&szlig;erdem die Grundeinstellungen f&uuml;r Timer, AutoTimer, Kanalselektionen und Streaming Parameter
-</p>
-<b>Allgemeine Einstellungen:</b>
-<p>Hier kann man die Sprache, die Startseite, das Aussehen, sowie die Anzahl der DVB-Karten einstellen. Au&szlig;erdem die Grundeinstellungen f&uuml;r Timer, AutoTimer, Kanalselektionen und Streaming Parameter
-</p>
-<b>Identifikationen:</b>
-<p>Ein Mausklick auf |<input type=\"radio\"> <i>ja</i> | oder |<input type=\"radio\" checked> <i>Nein</i> | aktiviert oder deaktiviert den <i>Gast-Zugang</i>. Die Passw&ouml;rter sollten f&uuml;r beide Konten ge&auml;ndert werden, wenn eine Verbindung zum Internet besteht
-</p>
-<b>Zeitleiste:</b>
-<p>Hier bekommt man eine Balkenansicht der Sender pr&auml;sentiert, wobei man den sichtbaren Zeitumfang einstellen kann.<br>
-In den Balken sieht man die Titel der jeweiligen Sendung. Der Zeitbalken beginnt in der vollen halben Stunde vor &quot;Jetzt&quot;. Ein feiner roter Strich zeigt die aktuelle Zeitposition an.<br>Programmierte Sendungen werden au&szlig;erdem farblich hervorgehoben.
-</p>
-<b>Einstellungen f&uuml;r AutoTimer:</b>
-<p>Ein Mausklick auf |<input type=\"radio\"> <i>Ja</i> | oder |<input type=\"radio\" checked> <i>Nein</i> | aktiviert oder deaktiviert die AutoTimer-Funktion. Hier bestimmt man auch wie oft der AutorTimer in den EPG-Daten nach den <i>Suchbegriffen</i> Ausschau halten soll.<br>
-Die Lebenszeit einer Aufnahme bestimmt man indem ein Wert zwischen 0 und 99 eingetr&auml;gt (99 verf&auml;llt nie). Der Wert bezieht sich dann auf den Tag, an dem die Aufnahme gemacht wurde. Sind die angegebenen Tage bereits verfallen, wenn beim VDR eine Aufnahme ansteht, so kann im Falle von Speicherknappheit die betreffende Aufnahme vom VDR gel&ouml;scht werden. Die am l&auml;ngsten abgelaufene Aufnahme wird zuerst gel&ouml;scht. Man bestimmt hier also, mit welcher Lebenszeitangabe der AutoTimer sp&auml;ter eine Aufnahme macht.<br>
-Die Priorit&auml;t bestimmt, wer im Falle eines Zeitkonfliktes den Vorrang bekommt. Die h&ouml;here Priorit&auml;t kommt dann zur Ausf&uuml;hrung. <br>
-Ein AutoTimer sollte also einen h&ouml;heren Wert zugewiesen bekommen, als die normalen Aufnahmen. Schlie&szlig;lich sucht der AutoTimer in der Regel nach Sendungen, die einem wichtig sind.</p>
-<b>Einstellungen f&uuml;r Timer:</b>
-<p>Priorit&auml;t und Lebenszeit haben die gleiche Bedeutung, wie vorher bei den AutoTimern beschrieben, gelten aber eben f&uuml;r die von Hand erstellten Timer.
-</p>
-
-<b>Einstellungen f&uuml;r das Streamdevice:</b>
-<p>Neben Port und Bandbreite, mu&szlig; hier auch das Videoverzeichnis von VDR eingetragen werden.
-</p>
-
-<b>Die selektive Kanalwahl:</b>
-<p>Ein Mausklick auf |<input type=\"radio\"> <i>Ja</i> | oder |<input type=\"radio\" checked> <i>Nein</i> | rechts neben den gew&uuml;nschten Eintr&auml;gen, aktiviert oder deaktiviert die &quot;selektiven&quot; Kan&auml;le f&uuml;r das jeweilige Hauptfenster.<br>
-So kann man die genannten Einzelansichten auf die gew&auml;hlten Kan&auml;le beschr&auml;nken, was &Uuml;bersichtlichkeit und Seitenaufbau g&uuml;nstig beeinflu&szlig;t.<br>
-Die Auswahl der Kan&auml;le erfolgt nach Auswahl eines oder mehrerer Kan&auml;le im linken Fenster (STRG-Taste gedr&uuml;ckt halten und alle Kan&auml;le die man hinzuf&uuml;gen will anklicken), durch &Uuml;bertragung in das rechte Fenster. <br>Mit den Kn&ouml;pfen sind beide Richtungen m&ouml;glich.
-</p>
-",
-
- ENOHELPMSG => "Bisher keine Hilfe vorhanden. Zum Hinzuf&uuml;gen oder &Auml;ndern eines Textes bitte an mail\@andreas.vdr-developer.org wenden."
-);
diff --git a/i18n/English/i18n.pl b/i18n/English/i18n.pl
deleted file mode 100644
index 0b3b852..0000000
--- a/i18n/English/i18n.pl
+++ /dev/null
@@ -1,280 +0,0 @@
-##
-# English
-#
-# Author: Andreas Mair
-##
-
-@I18N_Days = (
- "Sunday",
- "Monday",
- "Tuesday",
- "Wednesday",
- "Thursday",
- "Friday",
- "Saturday"
-);
-
-@I18N_Month = (
- "January",
- "February",
- "March",
- "April",
- "May",
- "June",
- "July",
- "August",
- "September",
- "October",
- "November",
- "December"
-);
-
-@LOGINPAGES_DESCRIPTION = (
- "Channels",
- "Playing Today",
- "Whats On?",
- "Timeline",
- "Timers",
- "Recordings"
-);
-
-%MESSAGES = (
-# common
- c_progname => "VDRAdmin",
- c_monday => $I18N_Days[1],
- c_tuesday => $I18N_Days[2],
- c_wednesday => $I18N_Days[3],
- c_thursday => $I18N_Days[4],
- c_friday => $I18N_Days[5],
- c_saturday => $I18N_Days[6],
- c_sunday => $I18N_Days[0],
- c_help => "Help",
- c_yes => "Yes",
- c_no => "No",
- c_minutes => "minutes",
- c_hours_short => "h",
- c_sec => "sec.",
- c_off => "off",
- c_channel => "Channel:",
- c_time => "Time",
- c_clock => "o'clock",
- c_priority => "Priority:",
- c_lifetime => "Lifetime:",
- c_buffer_before => "Time Margin at Start:",
- c_buffer_after => "Time Margin at Stop:",
- c_title => "Title",
- c_subtitle => "Subtitle",
- c_description => "Description",
- c_summary => "Summary:",
- c_save => "Save",
- c_apply => "Apply",
- c_cancel => "Cancel",
- c_once => "oneshot",
- c_all => "all",
- c_directory => "Directory:",
- c_edit => "Edit",
- c_delete => "Delete",
- c_whatson => "What's on:",
- c_now => "now",
- c_at => "at:",
- c_go => "Go!",
- c_stream => "Stream",
- c_select_all_none => "Select all/none",
-
-# JavaScript
- js_del_timer => "Delete timer?",
- js_del_selected_timer => "Delete all selected timers?",
- js_change_timer => "Edit timer status?",
- js_del_rec => "Delete recording?",
- js_del_selected_rec => "Delete all selected recordings?",
-
-# headings for listings
- c_list_active => "Active",
- c_list_channel => "Channel",
- c_list_start => "Start",
- c_list_stop => "Stop",
- c_list_name => "Name",
- c_list_date => "Date",
- c_list_time => "Time",
-
-# at_new.html
- an_new_timer => "Add New Auto Timer",
- an_edit_timer => "Edit Auto Timer",
- an_timer_active => "Auto Timer Active:",
- an_search_items => "Search Patterns:",
- an_search_in => "Search in:",
- an_search_start => "Starts Before:",
- an_search_stop => "Ends Before:",
- an_episode => "Episode:",
- an_done_active => "Done Active:",
-
-# at_timer_list.html
- al_autotimer => "Auto Timer",
- al_new_autotimer => "New Auto Timer",
- al_force_update => "Force Update",
- al_del_selected => "Delete Selected Auto Timers",
-
-# config.html
- co_config => "Configuration",
- co_hl_general => "General Settings",
- co_g_language => "Language:",
- co_g_template => "Template:",
- co_g_loginpage => "Login Page:",
- co_g_num_dvb => "Number of DVB Cards:",
- co_g_skin => "Skin:",
- co_hl_id => "Identification",
- co_id_user => "Username:",
- co_id_password => "Password:",
- co_id_guest_account => "Guest Account:",
- co_id_guest_user => "Guest Username:",
- co_id_guest_password => "Guest Password:",
- co_hl_timeline => "Timeline",
- co_tl_hours => "Hours:",
- co_tl_times => "Times:",
- co_hl_autotimer => "Auto Timer",
- co_at_active => "Active:",
- co_at_timeout => "Timeout:",
- co_hl_timer => "Timer",
- co_hl_streaming => "Streaming",
- co_str_port => "HTTP Port of Streamdev (also possible 3000/ts):",
- co_str_bandwidth => "Bandwidth of Streams:",
- co_str_rec_path => "Path to VDR Recordings:",
- co_str_do_live => "Live Streaming?",
- co_str_do_rec => "Stream recordings?",
- co_hl_channels => "Channel Selections",
- co_ch_use_summary => "In &quot;Channels&quot;?",
- co_ch_use_whatsonnow => "In &quot;What's On Now&quot;?",
- co_ch_use_autotimer => "In &quot;Auto Timer&quot;?",
-
-# index.html
- i_no_frames => "Your Browser does not support frames!",
-
-# left.html
- menu_prog_summary => "What's On Now?",
- menu_prog_list2 => "Playing Today?",
- menu_prog_timeline => "Timeline",
- menu_prog_list => "Channels",
- menu_timer_list => "Timer",
- menu_at_timer_list => "Auto Timer",
- menu_rec_list => "Recordings",
- menu_config => "Configuration",
- menu_rc => "Remote Control",
- menu_tv => "Watch TV",
- menu_search => "Search",
-
-# vdradmind.pl, noauth.html, error.html
- err_notfound => "Not found",
- err_notfound_long => "The requested URL was not found on this server!",
- err_notfound_file => "The URL &quot;%s&quot; was not found on this server!",
- err_forbidden => "Forbidden",
- err_forbidden_long => "You don't have permission to access this function!",
- err_forbidden_file => "Access to file &quot;%s&quot; denied!",
- err_cant_open => "Can't open file &quot;%s&quot;!",
- err_noauth => "Authorization Required",
- err_cant_verify => "This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g. bad password), or your browser doesn't understand how to supply the credentials required.",
- err_error => "Error!",
-
-# prog_detail.html
- pd_close => "close",
- pd_view => "view",
- pd_record => "record",
- pd_search => "search",
- pd_imdb => "Lookup movie in the Internet-Movie-Database (IMDb)",
-
-# prog_list2.html
- pl2_headline => "Playing Today",
-
-# prog_list.html
- pl_headline => "Channels",
-
-# prog_summary.html
- ps_headline => "What's On Now?",
- ps_more => "more",
- ps_search => "Search for other show times",
- ps_more_info => "More Information",
- ps_view => "TV select",
- ps_record => "Record",
-
-# prog_timeline.html
- pt_headline => "What's On Now?",
- pt_timeline => "Timeline:",
- pt_to => "to",
-
-# rc.html
- rc_headline => "Remote Control",
-
-# rec_edit.html
- re_headline => "Rename Recording",
- re_old_title => "Original Name of Recording:",
- re_new_title => "New Name of Recording:",
- re_rename => "Rename",
-
-# rec_list.html
- rl_headline => "Recordings",
- rl_hd_total => "Total:",
- rl_hd_free => "Free:",
- rl_rec_total => "Total",
- rl_rec_new => "New",
- rl_rename => "Rename",
- rl_del_selected => "Delete Selected Recordings",
-
-# timer_list.html
- tl_headline => "Timer",
- tl_new_timer => "New Timer",
- tl_inactive => "This timer is inactive!",
- tl_impossible => "This timer is impossible!",
- tl_nomore => "No more timers possible!",
- tl_possible => "Timer OK.",
- tl_vps => "VPS",
- tl_auto => "Auto",
- tl_del_selected => "Delete Selected Timers",
-
-# timer_new.html
- tn_new_timer => "Create New Timer",
- tn_edit_timer => "Edit Timer",
- tn_timer_active => "Timer Active:",
- tn_autotimer_checking => "Auto Timer Checking:",
- tn_transmission_id => "Transmission Identification",
- tn_day_of_rec => "Day Of Recording:",
- tn_time_start => "Start Time:",
- tn_time_stop => "End Time:",
- tn_rec_title => "Title of Recording:",
-
-# tv.html
- tv_headline => "TV",
- tv_interval => "Interval:",
- tv_size => "Size:",
- tv_grab => "Grab the picture!",
- tv_g => "G"
-);
-
-%ERRORMESSAGE = (
- CONNECT_FAILED => "Can't connect to VDR at %s!",
- SEND_COMMAND => "Error while sending command to VDR at %s",
-);
-
-%COMMONMESSAGE = (
- OVERVIEW => "Schedule",
-);
-
-%HELP = (
- at_timer_list =>
-"<b>Auto Timer:</b><br>
-<p>An overview of all Auto Timers</p>
-<p>Click <i>Yes</i> or <i>No</i> in the <i>Active</i> column to (de-)activate that Auto Timer.</p>
-<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 Auto Timer. If you want to delete multiple Auto Timers all at once, you have to check the boxes (<input type=\"checkbox\" checked>) on the right and finally click <i>Delete selected Auto Timers</i>.</p>",
-
- at_timer_new =>
-"<b>Edit Auto Timer:</b><br>
-<p>Auto Timer is a key feature of VDRAdmin. An Auto Timer consists of one or more search terms and some other settings, that are looked for regularly in the Electronic Program Guide (EPG). On match Auto Timer 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>
-<p>Here you can set an Auto Timer. 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>
-<b>Auto Timer Active:</b><br>
-<p><i>Yes</i> activates and <i>No</i> deactivates this Auto Timer. Please note that VDR timers already added by VDRAdmin are not deleted if you deactivate this Auto Timer.</p>
-<b>Search Items:</b><br>
-<p>Choosing the right search items decides whether only the wanted broadcast or broadcast having similar names or nothing gets recorded.</p>
-<p>Case doesn't matter, &quot;X-Files&quot; matches anything &quot;x-files&quot; will match. You can set multiple search items by separating them with spaces. Only broadcasts will match if they contain all items.</p>
-<p>You'd better only use letters and numbers for search items, as EPGs often miss colons, brackets and other characters.</p>
-<p>Experts can also use regular expressions, but you have get needed information from the VDRAdmin sources (undocumented feature).</p>",
-
- ENOHELPMSG => "No help available yet. For adding or changing text please contact mail\@andreas.vdr-developer.org."
-);
diff --git a/i18n/French/i18n.pl b/i18n/French/i18n.pl
deleted file mode 100644
index fa07f4a..0000000
--- a/i18n/French/i18n.pl
+++ /dev/null
@@ -1,280 +0,0 @@
-##
-# French
-#
-# Authors: "Trois Six", "map" and "lobotomise"
-##
-
-@I18N_Days = (
- "Dimanche",
- "Lundi",
- "Mardi",
- "Mercredi",
- "Jeudi",
- "Vendredi",
- "Samedi"
-);
-
-@I18N_Month = (
- "Janvier",
- "F&eacute;vrier",
- "Mars",
- "Avril",
- "Mai",
- "Juin",
- "Juillet",
- "Ao&ucirc;t",
- "Septembre",
- "Octobre",
- "Novembre",
- "D&eacute;cembre"
-);
-
-@LOGINPAGES_DESCRIPTION = (
- "Liste de Cha&icirc;nes",
- "Aujourd'hui ?",
- "En ce Moment ?",
- "Chronologie",
- "Programmations",
- "Enregistrements"
-);
-
-%MESSAGES = (
-# common
- c_progname => "VDRAdmin",
- c_monday => $I18N_Days[1],
- c_tuesday => $I18N_Days[2],
- c_wednesday => $I18N_Days[3],
- c_thursday => $I18N_Days[4],
- c_friday => $I18N_Days[5],
- c_saturday => $I18N_Days[6],
- c_sunday => $I18N_Days[0],
- c_help => "Aide",
- c_yes => "Oui",
- c_no => "Non",
- c_minutes => "minutes",
- c_hours_short => "h",
- c_sec => "sec.",
- c_off => "off",
- c_channel => "Cha&icirc;ne :",
- c_time => "horaires",
- c_clock => "Heure",
- c_priority => "Priorit&eacute; :",
- c_lifetime => "Chronologie :",
- c_buffer_before => "Marge avant :",
- c_buffer_after => "Marge apr&egrave;s :",
- c_title => "Titre",
- c_subtitle => "Sous-titre",
- c_description => "Description",
- c_summary => "Sommaire:",
- c_save => "Enregistrer",
- c_apply => "Appliquer",
- c_cancel => "Annuler",
- c_once => "une fois",
- c_all => "tout",
- c_directory => "Chemin :",
- c_edit => "Editer",
- c_delete => "Supprimer",
- c_whatson => "En ce moment :",
- c_now => "maintenant",
- c_at => "&agrave; :",
- c_go => "Ok !",
- c_stream => "Flux",
- c_select_all_none => "Select all/none", #TODO
-
-# JavaScript
- js_del_timer => "Supprimer Programmation ?",
- js_del_selected_timer => "Supprimer Programmations S&eacute;lectionn&eacute;es ?",
- js_change_timer => "Changer Statut Programmation ?",
- js_del_rec => "Supprimer l'Enregistrement ?",
- js_del_selected_rec => "Supprimer Enregistrements S&eacute;lectionn&eacute;s ?",
-
-# headings for listings
- c_list_active => "Actif",
- c_list_channel => "Cha&icirc;ne",
- c_list_start => "D&eacute;but",
- c_list_stop => "Fin",
- c_list_name => "Nom",
- c_list_date => "Date",
- c_list_time => "Dur&eacute;e",
-
-# at_new.html
- an_new_timer => "Ajouter Nouvelle Auto-Programmation",
- an_edit_timer => "Editer Auto-Programmation",
- an_timer_active => "Auto-Programmation Active :",
- an_search_items => "Rechercher Mod&egrave;les :",
- an_search_in => "Rechercher dans :",
- an_search_start => "D&eacute;but de recherche :",
- an_search_stop => "Fin de recherche :",
- an_episode => "Episode :",
- an_done_active => "Actif Prêt :",
-
-# at_timer_list.html
- al_autotimer => "Auto-Programmation",
- al_new_autotimer => "Nouvelle Auto-Programmation",
- al_force_update => "Forcer Mise &agrave; jour",
- al_del_selected => "Supprimer Auto-Programmations S&eacute;lectionn&eacute;es",
-
-# config.html
- co_config => "Configuration",
- co_hl_general => "Param&egrave;tres G&eacute;n&eacute;raux",
- co_g_language => "Langue :",
- co_g_template => "Gabarit :",
- co_g_loginpage => "Page de D&eacute;marrage :",
- co_g_num_dvb => "Nombre de Cartes DVB :",
- co_g_skin => "Th&egrave;me :",
- co_hl_id => "Identification",
- co_id_user => "Identifiant :",
- co_id_password => "Mot de Passe :",
- co_id_guest_account => "Compte d'Invit&eacute; :",
- co_id_guest_user => "Identifiant Invit&eacute; :",
- co_id_guest_password => "Mot de Passe Invit&eacute; :",
- co_hl_timeline => "Chronologie",
- co_tl_hours => "Heures :",
- co_tl_times => "P&eacute;riodes :",
- co_hl_autotimer => "Auto-Programmation",
- co_at_active => "Active :",
- co_at_timeout => "Timeout :",
- co_hl_timer => "Programmation",
- co_hl_streaming => "Emission de Flux",
- co_str_port => "Port HTTP de Streamdev (aussi possible 3000/ts) :",
- co_str_bandwidth => "Bande Passante Flux :",
- co_str_rec_path => "Chemin des Enregistrements VDR :",
- co_str_do_live => "Live Streaming?", # TODO
- co_str_do_rec => "Stream recordings?", # TODO
- co_hl_channels => "S&eacute;lections Cha&icirc;nes",
- co_ch_use_summary => "Dans &quot;Cha&icirc;nes&quot;?",
- co_ch_use_whatsonnow => "Dans &quot;En ce Moment&quot;?",
- co_ch_use_autotimer => "Dans &quot;Auto-Programmations&quot;?",
-
-# index.html
- i_no_frames => "Votre Navigateur ne supporte pas les frames !",
-
-# left.html
- menu_prog_summary => "En ce Moment ?",
- menu_prog_list2 => "Aujourd'hui ?",
- menu_prog_timeline => "Chronologie",
- menu_prog_list => "Cha&icirc;nes",
- menu_timer_list => "Programmation",
- menu_at_timer_list => "Auto-Programmation",
- menu_rec_list => "Enregistrements",
- menu_config => "Configuration",
- menu_rc => "T&eacute;l&eacute;commande",
- menu_tv => "Regarder TV",
- menu_search => "Rechercher",
-
-# vdradmind.pl, noauth.html, error.html
- err_notfound => "Non trouv&eacute;",
- err_notfound_long => "L'URL demand&eacute;e n'a pas &eacute;t&eacute; trouv&eacute;e sur le serveur !",
- err_notfound_file => "L'URL &quot;%s&quot; n'a pas &eacute;t&eacute; trouv&eacute;e sur le serveur !",
- err_forbidden => "Interdit",
- err_forbidden_long => "Vous n'avez pas la permission d'acc&eacute;der &agrave; cette fonction !",
- err_forbidden_file => "Acc&egrave;s au fichier &quot;%s&quot; interdit !",
- err_cant_open => "Ne peut pas ouvrir le fichier &quot;%s&quot; !",
- err_noauth => "Autorisation Requise",
- err_cant_verify => "Le serveur n'a pas pu v&eacute;rifier que vous &ecirc;tes autoris&eacute; &agrave; acc&eacute;der au document demand&eacute;. Ou vous avez fourni de mauvaises informations (par ex. mauvais mot de passe), ou votre navigateur n'a pu fournir les informations requises.",
- err_error => "Erreur !",
-
-# prog_detail.html
- pd_close => "fermer",
- pd_view => "vue",
- pd_record => "enregistrer",
- pd_search => "rechercher",
- pd_imdb => "Lookup movie in the Internet-Movie-Database (IMDb)", # TODO
-
-# prog_list2.html
- pl2_headline => "Jou&eacute; Aujourd'hui",
-
-# prog_list.html
- pl_headline => "Cha&icirc;nes",
-
-# prog_summary.html
- ps_headline => "En ce Moment ?",
- ps_more => "plus",
- ps_search => "Rechercher d&acute;autres temps de diffusion",
- ps_more_info => "Plus d&acute;Information",
- ps_view => "Zapper",
- ps_record => "Enregistrer",
-
-# prog_timeline.html
- pt_headline => "En ce Moment ?",
- pt_timeline => "Chronologie :",
- pt_to => "&agrave;",
-
-# rc.html
- rc_headline => "T&eacute;l&eacute;commande",
-
-# rec_edit.html
- re_headline => "Renommer l'Enregistrement",
- re_old_title => "Nom Original d'Enregistrement:",
- re_new_title => "Nouveau Nom d'Enregistrement:",
- re_rename => "Renommer",
-
-# rec_list.html
- rl_headline => "Enregistrements",
- rl_hd_total => "Total :",
- rl_hd_free => "Libre :",
- rl_rec_total => "Total",
- rl_rec_new => "Nouveau",
- rl_rename => "Renommer",
- rl_del_selected => "Supprimer Enregistrements S&eacute;lectionn&eacute;s",
-
-# timer_list.html
- tl_headline => "Programmation",
- tl_new_timer => "Nouvelle Programmation",
- tl_inactive => "Cette Programmation est inactive !",
- tl_impossible => "Cette Programmation est impossible !",
- tl_nomore => "Pas plus de Programmations possibles !",
- tl_possible => "Programmation OK.",
- tl_vps => "VPS",
- tl_auto => "Auto",
- tl_del_selected => "Supprimer Programmations S&eacute;lectionn&eacute;es",
-
-# timer_new.html
- tn_new_timer => "Cr&eacute;er Nouvelle Programmation",
- tn_edit_timer => "Editer Programmation", #ou "Modifier Programmation"
- tn_timer_active => "Programmation Active :",
- tn_autotimer_checking => "V&eacute;rification Auto-Programmation :",
- tn_transmission_id => "Identification Transmission",
- tn_day_of_rec => "Jour d'Enregistrement :",
- tn_time_start => "Heure De D&eacute;but :",
- tn_time_stop => "Heure De Fin :",
- tn_rec_title => "Titre d'Enregistrement :",
-
-# tv.html
- tv_headline => "TV",
- tv_interval => "Intervalle :",
- tv_size => "Taille :",
- tv_grab => "Rafra&icirc;chir",
- tv_g => "G"
-);
-
-%ERRORMESSAGE = (
- CONNECT_FAILED => "Ne peut se connecter &agrave; %s !",
- SEND_COMMAND => "Erreur en envoyant la commande &agrave; %s",
-);
-
-%COMMONMESSAGE = (
- OVERVIEW => "Programmateur",
-);
-
-%HELP = (
- at_timer_list =>
-"<b>Pro Auto-Programmation :</b><br>
-<p>Aper&ccedil;u g&eacute;n&eacute;ral des Auto-Programmations</p>
-<p>Cliquer sur <i>Oui</i> ou <i>Non</i> dans la colonne <i>Active</i> pour activer/d&eacute;sactiver cette Auto-Programmation.</p>
-<p>Utiliser <img src=\"bilder/edit.gif\" alt=\"pen\" valign=\"center\"> pour &eacute;diter et <img src=\"bilder/delete.gif\" alt=\"Rubber\" valign=\"center\"> pour supprimer une Auto-Programmation. Si vous voulez supprimer des Auto-Programmations multiples d'un seul coup, vous devez cocher les cases (<input type=\"checkbox\" checked>) a droite et finalement cliquer sur <i>Supprimer Auto-Programmations S&eacute;lectionn&eacute;es</i>.</p>",
-
- at_timer_new =>
-"<b>Editer une Programmation:</b><br>
-<p>L'Auto-Programmation est une caract&eacute;ristique cl&eacute; de VDRAdmin. Une Auto-Programmation consiste en un ou plusieurs articles de recherche et de quelques autres param&egrave;tres, ceci est recherch&eacute; r&eacute;guli&egrave;rement dans le Guide de Programme Electronique (EPG). Sur combinaison l'Auto-Programmation ajoute une programmation automatiquement dans VDR pour cette &eacute;mission. Ceci est tr&egrave;s appr&eacute;ciable pour les feuilletons ou les films diffus&eacute;s irr&eacute;guli&egrave;rement et que vous ne voulez pas manquer.</p>
-<p>Ici vous pouvez r&eacute;gler une Auto-Programmation. Il est exig&eacute; de sp&eacute;cifier au moins un article de recherche. Veuillez aller voir &agrave; <i>Rechercher Articles</i> si vous avez besoin de plus d'information sur la façon dont trouver les articles de recherche et comment &eacute;viter des enregistrements superflus.</p>
-<b>Auto-Programmation Active :</b><br>
-<p><i>Oui</i> active et <i>Non</i> d&eacute;sactive l'Auto-Programmation. Veuillez noter que les programmations de VDR d&eacute;j&agrave; ajout&eacute;es par VDRAdmin ne sont pas supprim&eacute;es si vous d&eacute;sactivez l'Auto-Programmation.</p>
-<b>Rechercher Articles :</b><br>
-<p>Le choix des &eacute;l&eacute;ments de recherche conditionne l'enregistrement de la diffusion, d'une diffusion avec un nom similaire, ou aucun enregistrement</p>
-<p>La casse n'a pas d'importance,si &quot;X-files&quot; s&eacute;lectionne tout &quot;x-files&quot; aussi.Vous pouvez choisir plusieurs &eacute;l&eacute;ments de recherche s&eacute;par&eacute;s par des espaces.Seul les diffusions contenant tous les &eacute;l&eacute;ments seront s&eacute;lectionn&eacute;es.</p>
-<p>Il est pr&eacute;f&eacute;rable d'utiliser uniquement des lettres et des nombres pour les &eacute;l&eacute;ments de recherche,les EPG n'ont pas souvent d'autres caract&egrave;res tels les deux points ou parenth&egrave;ses.</p>
-<p>Les experts peuvent utiliser aussi des expressions courantes, mais pour plus d'informations, regardez les sources de VDRAdmin (fonctions non document&eacute;es).</p>",
-
- ENOHELPMSG => "Aucune aide disponible. Pour ajouter ou changer du texte contactez mail\@andreas.vdr-developer.org."
-);
diff --git a/i18n/Spanish/i18n.pl b/i18n/Spanish/i18n.pl
deleted file mode 100644
index a738516..0000000
--- a/i18n/Spanish/i18n.pl
+++ /dev/null
@@ -1,330 +0,0 @@
-##
-# Español
-#
-# Author: Rüdiger Jung
-##
-
-@I18N_Days = (
- "Domingo",
- "Lunes",
- "Martes",
- "Mi&eacute;rcoles",
- "Jueves",
- "Viernes",
- "Sabado"
-);
-
-@I18N_Month = (
- "Enero",
- "Febrero",
- "Marzo",
- "Abril",
- "Mayo",
- "Junio",
- "Julio",
- "Agosto",
- "Septiembre",
- "Octubre",
- "Noviembre",
- "Diciembre"
-);
-
-@LOGINPAGES_DESCRIPTION = (
- "Datos de EPG",
- "Estrenos ahora",
- "&iquest;Qu&eacute; puedes ver hoy?",
- "Tabla de tiempo",
- "Programaciones",
- "Grabaciones"
-);
-
-%MESSAGES = (
-# common
- c_progname => "VDRAdmin",
- c_monday => $I18N_Days[1],
- c_tuesday => $I18N_Days[2],
- c_wednesday => $I18N_Days[3],
- c_thursday => $I18N_Days[4],
- c_friday => $I18N_Days[5],
- c_saturday => $I18N_Days[6],
- c_sunday => $I18N_Days[0],
- c_help => "Ayuda",
- c_yes => "S&iacute;",
- c_no => "No",
- c_minutes => "Minutos",
- c_hours_short => "h.",
- c_sec => "sec",
- c_off => "apagado",
- c_channel => "Emisoras",
- c_time => "Horario",
- c_clock => "h.",
- c_priority => "Prioridad:",
- c_lifetime => "Durabilidad:",
- c_buffer_before => "M&aacute;s tiempo al principio:",
- c_buffer_after => "M&aacute;s tiempo al final:",
- c_title => "T&iacute;tulo",
- c_subtitle => "Subt&iacute;tulo",
- c_description => "Descripci&oacute;n",
- c_summary => "Resumen:",
- c_save => "Guardar",
- c_apply => "Aplicar",
- c_cancel => "Cancelar",
- c_once => "una vez",
- c_all => "todas",
- c_directory => "Carpeta:",
- c_edit => "Modificar",
- c_delete => "Borrar",
- c_whatson => "Se puede ver:",
- c_now => "ahora",
- c_at => "a la/s:",
- c_go => "&iexcl;venga!",
- c_stream => "Flujo",
- c_select_all_none => "Selececionar todos/ninguno",
-
-# JavaScript
- js_del_timer => "&iquest;Borrar programaci&oacute;n?",
- js_del_selected_timer => "&iquest;Borrar en serio las programaciones elegidas?",
- js_change_timer => "&iquest;Cambiar estado de la programaci&oacute;n?",
- js_del_rec => "&iquest;Borrar grabaci&oacute;n?",
- js_del_selected_rec => "&iquest;Borrar en serio las grabaciones elegidas?",
-
-# headings for listings
- c_list_active => "Activada",
- c_list_channel => "Emisora",
- c_list_start => "Comienzo",
- c_list_stop => "Fin",
- c_list_name => "T&iacute;tulo",
- c_list_date => "Fecha",
- c_list_time => "Horarios",
-
-# at_new.html
- an_new_timer => "Crear nueva autoprogramaci&oacute;n",
- an_edit_timer => "Modificar autoprogramaci&oacute;n",
- an_timer_active => "Autoprogramaci&oacute;n activada:",
- an_search_items => "Palabras claves:",
- an_search_in => "Buscar en:",
- an_search_start => "Buscar entre la/s:",
- an_search_stop => "y la/s:",
- an_episode => "Serie:",
- an_done_active => "&quot;Hecho&quot; activado:",
-
-# at_timer_list.html
- al_autotimer => "Autoprogramaci&oacute;n",
- al_new_autotimer => "Nueva autoprogramaci&oacute;n",
- al_force_update => "Actualizar ahora",
- al_del_selected => "Borrar autoprogramaciones elegidas",
-
-# config.html
- co_config => "Configuraci&oacute;n",
- co_hl_general => "Propiedades generales",
- co_g_language => "Idioma:",
- co_g_template => "Template:",
- co_g_loginpage => "P&aacute;gina de inicio:",
- co_g_num_dvb => "Cantidad tarjetas-DVB:",
- co_g_skin => "Cara:",
- co_hl_id => "Identificaciones",
- co_id_user => "Nombre del usuario:",
- co_id_password => "Contrase&ntilde;a:",
- co_id_guest_account => "Acceso como invitado:",
- co_id_guest_user => "Nombre como invitado:",
- co_id_guest_password => "Contrase&ntilde;a como invitado:",
- co_hl_timeline => "Tabla de tiempo",
- co_tl_hours => "Rango de hora/s:",
- co_tl_times => "Horarios:",
- co_hl_autotimer => "Autoprogramaciones",
- co_at_active => "Activadas:",
- co_at_timeout => "Actualizaci&oacute;n cada:",
- co_hl_timer => "Programaciones",
- co_hl_streaming => "Flujo",
- co_str_port => "Puerto-HTTP para el flujo (3000/ts tambi&eacute;n posible):",
- co_str_bandwidth => "Ancho de banda del flujo:",
- co_str_rec_path => "Ruta de las grabaciones:",
- co_str_do_live => "¿Flujo en vivo?",
- co_str_do_rec => "¿Grabar flujo?",
- co_hl_channels => "Emisoras preferidas",
- co_ch_use_summary => "Usar en &quot;Datos de la gu&iacute;a electr&oacute;nica (EPG)&quot;?",
- co_ch_use_whatsonnow => "Usar en &quot;Estrenos ahora&quot;?",
- co_ch_use_autotimer => "Usar en &quot;Autoprogramaciones&quot;?",
-
-# index.html
- i_no_frames => "&iexcl;El navegador no soporta marcos!",
-
-# left.html
- menu_prog_summary => "Estrenos ahora",
- menu_prog_list2 => "&iquest;Qu&eacute; puedes ver hoy?",
- menu_prog_timeline => "Tabla de tiempo",
- menu_prog_list => "Datos de EPG",
- menu_timer_list => "Programaciones",
- menu_at_timer_list => "Autoprogramaciones",
- menu_rec_list => "Grabaciones",
- menu_config => "Configuraci&oacute;n",
- menu_rc => "Mando de distancia",
- menu_tv => "Televisi&oacute;n",
- menu_search => "Buscar",
-
-# vdradmind.pl, noauth.html, error.html
- err_notfound => "Nada encontrado",
- err_notfound_long => "&iexcl;La URL requerida, no se encontr&oacute; en el servidor!",
- err_notfound_file => "&iexcl;La URL %s no se encontr&oacute; en el servidor!",
- err_forbidden => "Prohibido",
- err_forbidden_long => "&iexcl;No tienes permiso para &eacute;sta funcci&oacute;n!",
- err_forbidden_file => "&iexcl;Acceso al archivo %s negado!",
- err_cant_open => "&iexcl;No se pudo abrir el archivo %s!",
- err_noauth => "Autorizaci&oacute;n obligatoria",
- err_cant_verify => "Este servidor no pudo verificar, t&uacute; permiso de acceso al documento requerido.<br>Posiblemente por entregar datos incorrectos (Nombre del usuario o contrase&ntilde;a p.e.) o por que t&uacute; navegador no soporta la forma de acceso.",
- err_error => "&iexcl;Error!",
-
-# prog_detail.html
- pd_close => "cerrar",
- pd_view => "cambiar",
- pd_record => "grabar",
- pd_search => "repeticiones",
- pd_imdb => "Buscar la pel&iacute;cula en la base de datos en Internet (IMDb)",
-
-# prog_list2.html
- pl2_headline => "&iquest;Qu&eacute; puedes ver hoy?",
-
-# prog_list.html
- pl_headline => "Datos de la gu&iacute;a electr&oacute;nica (EPG)",
-
-# prog_summary.html
- ps_headline => "Estrenos ahora",
- ps_more => "m&aacute;s",
- ps_search => "buscar repeticiones",
- ps_more_info => "m&aacute;s info",
- ps_view => "cambiar TV",
- ps_record => "Grabar estreno",
-
-# prog_timeline.html
- pt_headline => "Estrenos ahora",
- pt_timeline => "Tabla de tiempo:",
- pt_to => "hasta",
-
-# rc.html
- rc_headline => "Mando de distancia",
-
-# rec_edit.html
- re_headline => "Renombrar grabaciones",
- re_old_title => "T&iacute;tulo actual de la grabaci&oacute;n:",
- re_new_title => "T&iacute;tulo nuevo de la grabaci&oacute;n:",
- re_rename => "Renombrar",
-
-# rec_list.html
- rl_headline => "Grabaciones",
- rl_hd_total => "Espacio en el disco:",
- rl_hd_free => "Espacio disponible:",
- rl_rec_total => "Todas",
- rl_rec_new => "nueva",
- rl_rename => "Renombrar",
- rl_del_selected => "Borrar grabaciones elegidas",
-
-# timer_list.html
- tl_headline => "Programaciones",
- tl_new_timer => "Nueva programaci&oacute;n",
- tl_inactive => "&iexcl;&Eacute;sta programaci&oacute;n est&aacute; desactivada!",
- tl_impossible => "&iexcl;&Eacute;sta programaci&oacute;n es imposible!",
- tl_nomore => "&iexcl;No se puede grabar m&aacute;s!",
- tl_possible => "&Eacute;sta programaci&oacute;n es posible.",
- tl_vps => "VPS",
- tl_auto => "Auto",
- tl_del_selected => "Borrar programaciones elegidas",
-
-# timer_new.html
- tn_new_timer => "Crear nueva programaci&oacute;n",
- tn_edit_timer => "Modificar programaci&oacute;n",
- tn_timer_active => "Programaci&oacute;n activada:",
- tn_autotimer_checking => "Autovigilancia de las programaciones",
- tn_transmission_id => "Identificador de la emisora",
- tn_day_of_rec => "D&iacute;a de la grabaci&oacute;n:",
- tn_time_start => "Comienzo:",
- tn_time_stop => "Fin:",
- tn_rec_title => "T&iacute;tulo de la grabaci&oacute;n:",
-
-# tv.html
- tv_headline => "Televisi&oacute;n",
- tv_interval => "Intervalo:",
- tv_size => "Dimensiones:",
- tv_grab => "&iexcl;Captura la imagen!",
- tv_g => "C"
-);
-
-%ERRORMESSAGE = (
- CONNECT_FAILED => "&iexcl;No se pudo estabilizar la conexci&oacute;n a %s!",
- SEND_COMMAND => "Error mandando el comando a %s ",
-);
-
-%COMMONMESSAGE = (
- OVERVIEW => "Vista general",
-);
-
-%HELP = (
- at_timer_list =>
-"<b>Autoprogramaci&oacute;n:</b><br>
-<p>Vista general de todos los registros de Autoprogramaci&oacute;n.</p>
-<p>H&aacute;z cl&iacute;c encima de |<img src=\"bilder/poempl_gruen.gif\" alt=\"encendido\" valign=\"center\"> <i>s&iacute;</i> | o |<img src=\"bilder/poempl_rot.gif\" alt=\"noencendido\" valign=\"center\"> <i>no</i> | en la columna <i>Activada</i>, para activar o desactivar un registro correspondiente.</br>
-Para modificar un registro, h&aacute;z cl&iacute;c encima del s&iacute;mbolo <img src=\"bilder/edit.gif\" alt=\"Lap&iacute;z\" valign=\"center\">, para borrar encima de la <img src=\"bilder/delete.gif\" alt=\"Goma\" valign=\"center\">.<br>
-Si quieres borrar varios registros de una vez, marca (<input type=\"checkbox\" checked>) el campo junto a los registros y h&aacute;z cl&iacute;c encima de <i>Borrar autoprogramaciones elegidas</i> al final de la lista.
-</p>",
-
-###autotimer hinzufuegen--
- at_timer_new =>
-"<b>Crear/modificar nueva autoprogramaci&oacute;n:</b>
-<p>La autoprogramaci&oacute;n es una funci&oacute;n b&aacute;sica del VDR Admin. Una autoprogramaci&oacute;n se refiere a una o m&aacute;s <i>Palabras claves</i>, cuales usar&aacute; para analizar los datos de la gu&iacute;a electr&oacute;nica (EPG) con un rango de tiempo ajustable. Cuando encuentra las palabras elegidas teniendo en cuenta la hora y la emisora, crear&aacute; autom&aacute;ticamente una programaci&oacute;n para el estreno encontrado &#150; bastante &uacute;til para series (ir)regulares o igual para estrenos, que quieran grabar con seguridad.<br>
-En esta pantalla se puede crear una nueva autoprogramaci&oacute;n. Una o m&aacute;s palabras son obligatorias, para que puede actuar. Detalles, por palabras &uacute;tiles y como evitar grabaciones in&uacute;tiles, se puede encontrar en la ayuda para <i>Palabras claves</i> m&aacute;s abajo.
-</p>
-<b>Auto programaci&oacute;n activo:</b>
-<p>Marcando |<input type=\"radio\" checked> <i>s&iacute;</i> | activar&aacute; la autoprogramaci&oacute;n, y se va a buscar regularmente en la gu&iacute;a electr&oacute;nica (EPG) por las <i>Palabras claves</i> y crear&aacute; una programaci&oacute;n, cuando cumple con las <i>Palabras claves</i> como con los par&aacute;metros dem&aacute;s.</br>
-Con |<input type=\"radio\" checked> <i>no</i> | se desactiva la autoprogramaci&oacute;n, sin borrarla. No afectar&aacute; a las programaciones ya creadas por esta autoprogramaci&oacute;n &#150; a lo mejor tienes que borrarla manualmente en el menu <i>Autoprogramaci&oacute;n</i>.<br>
-Con |<input type=\"radio\" checked> <i>una vez</i> | la autoprogramaci&oacute;n acaba de vigilar desp&uacute;es de crear una programaci&oacute;n. A partir de entonces ser&aacute;n programaciones normales sin las ventajas de una autoprogramaci&oacute;n.
-</p>
-<b>Palabras claves:</b>
-<p>Las palabras claves son importante, para lograr un buen resultado.<br>
-No importa MAY&Uacute;SCULA o min&uacute;scula. Por eso las palabras claves \"X-Pasta\" lograr&aacute; los mismos resultados como \"x-pasta\". Todas palabras claves se separa con espacio y para cumplir el &oacute;rden, VDR-admin tiene que encontrar todas las palabras claves para un estreno.<br>
-Las palabras claves \"Pasta X\" encontrar&aacute;n \"Pasta - La cocina extra&ntilde;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>
-Se recomienda usar s&oacute;lo letras y cifras como palabras claves, por que la gu&iacute;a electr&oacute;nica (EPG) se l&iacute;mita bastante en el uso de todas caracteres posibles o los interpreta m&aacute;l.
-<p>Tambi&eacute;n deberia ser posible usar expresiones regulares &#150; Expertos puedan extraer info del texto fuente (undocumented feature).
-</p>",
-
-###Liste der Timer
- timer_list =>
-"<b>Programaci&oacute;n:</b>
-<p>Vista general de todas las programaciones.
-<br>H&aacute;z cl&iacute;c encima de |<img src=\"bilder/poempl_gruen.gif\" alt=\"activado\" valign=\"center\"> <i>s&iacute;</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>
-<img src=\"bilder/poempl_gelb.gif\" alt=\"conflicto\" valign=\"center\"> indica que haya conflictos. Esto no importa, si hay una tarjeta disponible para cada una de las programaciones o est&eacute;n en la misma frecuencia.<br>
-Para modificar un registro, h&aacute;z cl&iacute;c encima del s&iacute;mbolo <img src=\"bilder/edit.gif\" alt=\"Lap&iacute;z\" valign=\"center\">, para borrar encima de 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&aacute;z cl&iacute;c encima <i>Borrar programaciones elegidas</i> al final de la lista.</p>",
-
-###Konfigurationsseite
- conf_list =>
-"<b>Configuraci&oacute;n:</b>
-<p>En &eacute;sta p&aacute;gina se ajusta las propiedades generales, las propiedades de la programaci&oacute;n y de la autoprogramaci&oacute;n, como las emisoras preferidas y por fin los ajustes del flujo.
-</p>
-<b>Propiedades generales:</b>
-<p>Aqu&iacute; se ajusta el idioma, la p&aacute;gina principal, la cara y cuantas tarjetas de DVB hay.
-</p>
-<b>Identificaciones:</b>
-<p>H&aacute;z cl&iacute;c encima de |<input type=\"radio\"> <i>s&iacute;</i> | o |<input type=\"radio\" checked> <i>no</i> | para activar una cuenta de un <i>invitado</i>. Las contrase&ntilde;as tienes que cambiar por algunas m&aacute;s seguras, si est&aacute;s conectado al &iacute;nternet.
-</p>
-<b>Tabla de tiempo:</b>
-<p>&Eacute;sta p&aacute;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 &uacute;ltima hora cumplida anterioramente.<br>
-En el campo de los horarios puedes entregar las horarios fijas, donde la barra va a empezar. Se refiere al campo en la p&aacute;gina de tabla de tiempo, donde entonces puedes elegir entre esos valores predeterminados.
-</p>
-<b>Propiedades de las autoprogramaciones:</b>
-<p>H&aacute;z cl&iacute;c encima de |<input type=\"radio\" checked> <i>s&iacute;</i> | o |<input type=\"radio\"> <i>no</i> | para activar las autoprogramaciones. Ajusta tambien con que frequencia se van a hacer las b&uacute;squedas en los datos de la gu&iacute;a electr&oacute;nica (EPG) por las <i>Palabras claves</i>.<br>
-La durabilidad se puede ajustar entre 0 y 99 para dar a la grabaci&oacute;n creada de &eacute;sta autoprogramaci&oacute;n el valor deseado. El valor se refiere al d&iacute;a de la grabacion - m&aacute;s el rango que pones.<br>
-Con el valor de la prioridad de la nueva grabacion tienes el segundo par&aacute;metro, para que VDR puede decidir, cu&aacute;l de las grabaciones hechas se puede borrar, cuando necesita espacio en el disco duro. Por los 2 valores sabr&aacute;, si una grabaci&oacute;n ha caducado y con una prioridad m&aacute;s alta de la grabaci&oacute;n deseada entonces borrar&iacute;a &eacute;sta antigua. As&iacute; te ofrece VDR ajustar prioridades m&aacute;s altas a aquellas grabaciones, que te importan de verdad.<br> Durabilidad=99 por ejemplo, crear&aacute; una grabaci&oacute;n que nunca caduca!
-</p>
-<b>Propiedades de las programaciones:</b>
-<p>Pon la prioridad de las programaciones, que es ajustable entre 0 y 99 . <br>
-La durabilidad se puede ajustar entre 0 y 99 para dar a la grabaci&oacute;n creada de &eacute;sta programaci&oacute;n el valor deseado. El valor se refiere al d&iacute;a de la grabacion - m&aacute;s el rango que pones.
-</p>
-
-<b>Propiedades del flujo</b>
-<p>Si quieres usar la funci&oacute;n del flujo (streaming over net) ajuste aqu&iacute; las propiedades.
-</p>
-
-<b>Emisoras preferidas</b>
-<p>Con las emisoras preferidas te permite activar las pantallas que quieres usar con una cantidad de canales reducida. As&iacute; se carga mas rapido la p&aacute;gina. Activa las p&aacute;ginas deseadas con los botones |<input type=\"radio\" checked> <i>s&iacute;</i> | o |<input type=\"radio\"> <i>no</i> | junto a los registros.
-</p>",
-
- ENOHELPMSG => "Para &eacute;sta funci&oacute;n no hay ayuda disponible hasta ahora. Para a&ntilde;adir o modificar un texto, por favor pon te en contacto con mail\@andreas.vdr-developer.org."
-);
diff --git a/locale/de/LC_MESSAGES/vdradmin.mo b/locale/de/LC_MESSAGES/vdradmin.mo
new file mode 100644
index 0000000..5604220
--- /dev/null
+++ 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
new file mode 100644
index 0000000..507d0d7
--- /dev/null
+++ 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
new file mode 100644
index 0000000..64cee61
--- /dev/null
+++ 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
new file mode 100644
index 0000000..5a4d9c0
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/vdradmin.mo
Binary files differ
diff --git a/po/Makefile b/po/Makefile
new file mode 100644
index 0000000..3fa2aa8
--- /dev/null
+++ b/po/Makefile
@@ -0,0 +1,8 @@
+all: $(LANGS)
+
+$(LANGS):
+ msgfmt $@.po -o $@.mo
+
+clean:
+ -rm -f *.mo
+ -rm -f build_stamp
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 0000000..4fbf67b
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,1046 @@
+#
+# 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.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDRAdmin-0.97-AM3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-05-09 12:52+0200\n"
+"PO-Revision-Date: 2005-05-10 12:49+0100\n"
+"Last-Translator: rudibert <r_jung@web.de>\n"
+"Language-Team: Rudi <LL.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../template/default/index.html:18
+msgid "Your Browser does not support frames!"
+msgstr "Ihr Browser unterst&uuml;tzt keine Frames!"
+
+#: ../template/default/timer_new.html:6
+#: ../template/default/timer_new.html:45
+msgid "Create New Timer"
+msgstr "Neuen Timer anlegen"
+
+#: ../template/default/timer_new.html:6
+#: ../template/default/timer_new.html:45
+msgid "Edit Timer"
+msgstr "Timer editieren"
+
+#: ../template/default/timer_new.html:50
+#: ../template/default/at_new.html:20
+#: ../template/default/at_timer_list.html:31
+#: ../template/default/config.html:20
+#: ../template/default/timer_list.html:46
+#: ../template/default/rec_list.html:26
+msgid "Help"
+msgstr "Hilfe"
+
+#: ../template/default/timer_new.html:67
+msgid "Timer Active:"
+msgstr "Timer aktiv:"
+
+#: ../template/default/timer_new.html:69
+#: ../template/default/at_new.html:39
+#: ../template/default/at_new.html:43
+#: ../template/default/at_new.html:145
+#: ../template/default/at_timer_list.html:110
+#: ../template/default/config.html:114
+#: ../template/default/config.html:175
+#: ../template/default/config.html:267
+#: ../template/default/config.html:276
+#: ../template/default/config.html:335
+#: ../template/default/config.html:344
+#: ../template/default/config.html:353
+#: ../template/default/config.html:362
+#: ../template/default/timer_list.html:295
+msgid "Yes"
+msgstr "Ja"
+
+#: ../template/default/timer_new.html:70
+#: ../template/default/at_new.html:40
+#: ../template/default/at_new.html:44
+#: ../template/default/at_new.html:146
+#: ../template/default/at_timer_list.html:113
+#: ../template/default/config.html:115
+#: ../template/default/config.html:176
+#: ../template/default/config.html:268
+#: ../template/default/config.html:277
+#: ../template/default/config.html:336
+#: ../template/default/config.html:345
+#: ../template/default/config.html:354
+#: ../template/default/config.html:363
+#: ../template/default/timer_list.html:296
+msgid "No"
+msgstr "Nein"
+
+#: ../template/default/timer_new.html:76
+msgid "Auto Timer Checking:"
+msgstr "Automatische Timer-&Uuml;berwachung:"
+
+#: ../template/default/timer_new.html:79
+msgid "Transmission Identification"
+msgstr "Sendungskennung"
+
+#: ../template/default/timer_new.html:81
+#: ../template/default/rec_list.html:63
+msgid "Time"
+msgstr "Uhrzeit"
+
+#: ../template/default/timer_new.html:82
+#: ../template/default/tv.html:184
+msgid "off"
+msgstr "aus"
+
+#: ../template/default/timer_new.html:88
+#: ../template/default/at_new.html:84
+#: ../template/default/prog_list.html:23
+#: ../template/default/prog_list2.html:29
+msgid "Channel:"
+msgstr "Sender"
+
+#: ../template/default/timer_new.html:100
+msgid "Day Of Recording:"
+msgstr "Tag der Aufnahme:"
+
+#: ../template/default/timer_new.html:104
+#: ../template/default/at_new.html:72
+#: ../template/i18n.pl:3
+msgid "Monday"
+msgstr "Montag"
+
+#: ../template/default/timer_new.html:105
+#: ../template/default/at_new.html:73
+#: ../template/i18n.pl:4
+msgid "Tuesday"
+msgstr "Dienstag"
+
+#: ../template/default/timer_new.html:106
+#: ../template/default/at_new.html:74
+#: ../template/i18n.pl:5
+msgid "Wednesday"
+msgstr "Mittwoch"
+
+#: ../template/default/timer_new.html:107
+#: ../template/default/at_new.html:75
+#: ../template/i18n.pl:6
+msgid "Thursday"
+msgstr "Donnerstag"
+
+#: ../template/default/timer_new.html:108
+#: ../template/default/at_new.html:76
+#: ../template/i18n.pl:7
+msgid "Friday"
+msgstr "Freitag"
+
+#: ../template/default/timer_new.html:109
+#: ../template/default/at_new.html:77
+#: ../template/i18n.pl:8
+msgid "Saturday"
+msgstr "Samstag"
+
+#: ../template/default/timer_new.html:110
+#: ../template/default/at_new.html:78
+#: ../template/i18n.pl:2
+msgid "Sunday"
+msgstr "Sonntag"
+
+#: ../template/default/timer_new.html:116
+msgid "Start Time:"
+msgstr "Startzeit:"
+
+#: ../template/default/timer_new.html:121
+#: ../template/default/timer_new.html:132
+#: ../template/default/at_new.html:102
+#: ../template/default/at_new.html:113
+#: ../template/default/prog_summary.html:17
+#: ../template/default/prog_summary.html:22
+#: ../template/default/prog_list.html:61
+#: ../template/default/prog_timeline.html:71
+#: ../template/default/prog_timeline.html:84
+#: ../template/default/prog_timeline.html:99
+#: ../template/default/prog_list2.html:71
+msgid "o'clock"
+msgstr "Uhr"
+
+#: ../template/default/timer_new.html:127
+msgid "End Time:"
+msgstr "Endzeit:"
+
+#: ../template/default/timer_new.html:138
+#: ../template/default/at_new.html:119
+#: ../template/default/at_timer_list.html:133
+#: ../template/default/config.html:188
+#: ../template/default/config.html:233
+#: ../template/default/timer_list.html:316
+msgid "Priority:"
+msgstr "Priorit&auml;t:"
+
+#: ../template/default/timer_new.html:144
+#: ../template/default/at_new.html:127
+#: ../template/default/at_timer_list.html:133
+#: ../template/default/config.html:194
+#: ../template/default/config.html:227
+#: ../template/default/timer_list.html:316
+msgid "Lifetime:"
+msgstr "Lebenszeit:"
+
+#: ../template/default/timer_new.html:150
+msgid "Title of Recording:"
+msgstr "Titel der Aufnahme:"
+
+#: ../template/default/timer_new.html:156
+msgid "Summary:"
+msgstr "Zusammenfassung:"
+
+#: ../template/default/timer_new.html:169
+#: ../template/default/at_new.html:166
+#: ../template/default/config.html:403
+msgid "Save"
+msgstr "Speichern"
+
+#: ../template/default/timer_new.html:170
+#: ../template/default/at_new.html:167
+#: ../template/default/rec_edit.html:64
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: ../template/default/left.html:34
+#: ../template/default/prog_summary.html:7
+#: ../template/default/prog_timeline.html:7
+#: ../template/i18n.pl:27
+msgid "What's On Now?"
+msgstr "Was l&auml;uft jetzt?"
+
+#: ../template/default/left.html:38
+#: ../template/default/prog_list2.html:6
+#: ../template/default/prog_list2.html:25
+msgid "Playing Today"
+msgstr "Was l&auml;uft heute?"
+
+#: ../template/default/left.html:42
+#: ../template/default/config.html:141
+#: ../template/i18n.pl:29
+msgid "Timeline"
+msgstr "Zeitleiste"
+
+#: ../template/default/left.html:46
+#: ../template/default/prog_list.html:6
+#: ../template/i18n.pl:30
+msgid "Channels"
+msgstr "Programm&uuml;bersicht"
+
+#: ../template/default/left.html:50
+#: ../template/default/config.html:222
+#: ../template/default/timer_list.html:6
+#: ../template/default/timer_list.html:30
+msgid "Timer"
+msgstr "Timer"
+
+#: ../template/default/left.html:54
+#: ../template/default/at_timer_list.html:6
+#: ../template/default/at_timer_list.html:15
+#: ../template/default/config.html:168
+msgid "Auto Timer"
+msgstr "AutoTimer"
+
+#: ../template/default/left.html:58
+#: ../template/default/rec_list.html:6
+#: ../template/default/rec_list.html:15
+#: ../template/i18n.pl:32
+msgid "Recordings"
+msgstr "Aufnahmen"
+
+#: ../template/default/left.html:62
+#: ../template/default/config.html:5
+#: ../template/default/config.html:15
+msgid "Configuration"
+msgstr "Konfiguration"
+
+#: ../template/default/left.html:66
+#: ../template/default/rc.html:6
+msgid "Remote Control"
+msgstr "Fernbedienung"
+
+#: ../template/default/left.html:70
+msgid "Watch TV"
+msgstr "Fernseher"
+
+#: ../template/default/left.html:77
+msgid "Search"
+msgstr "Suchen"
+
+#: ../template/default/at_new.html:6
+#: ../template/default/at_new.html:16
+msgid "Add New Auto Timer"
+msgstr "Neuen AutoTimer anlegen"
+
+#: ../template/default/at_new.html:6
+#: ../template/default/at_new.html:16
+msgid "Edit Auto Timer"
+msgstr "AutoTimer editieren"
+
+#: ../template/default/at_new.html:36
+msgid "Auto Timer Active:"
+msgstr "AutoTimer aktiv:"
+
+#: ../template/default/at_new.html:41
+#: ../template/default/at_new.html:45
+msgid "oneshot"
+msgstr "einmal"
+
+#: ../template/default/at_new.html:52
+msgid "Search Patterns:"
+msgstr "Suchbegriffe:"
+
+#: ../template/default/at_new.html:60
+msgid "Search in:"
+msgstr "zu suchen in:"
+
+#: ../template/default/at_new.html:62
+msgid "Title"
+msgstr "Titel"
+
+#: ../template/default/at_new.html:63
+msgid "Subtitle"
+msgstr "Untertitel"
+
+#: ../template/default/at_new.html:64
+msgid "Description"
+msgstr "Beschreibung"
+
+#: ../template/default/at_new.html:70
+msgid "Search only on these days:"
+msgstr "Nur an diesen Tagen suchen:"
+
+#: ../template/default/at_new.html:87
+msgid "all"
+msgstr "alle"
+
+#: ../template/default/at_new.html:97
+msgid "Starts Before:"
+msgstr "Beginnt fr&uuml;hestens:"
+
+#: ../template/default/at_new.html:108
+msgid "Ends Before:"
+msgstr "Endet sp&auml;testens:"
+
+#: ../template/default/at_new.html:135
+msgid "Episode:"
+msgstr "Serie:"
+
+#: ../template/default/at_new.html:143
+msgid "Remember programmed timers:"
+msgstr "Programmierte Timer merken:"
+
+#: ../template/default/at_new.html:152
+msgid "Directory:"
+msgstr "Ordner:"
+
+#: ../template/default/noauth.html:5
+#: ../template/default/noauth.html:11
+msgid "Authorization Required"
+msgstr "Autorisierung erforderlich"
+
+#: ../template/default/noauth.html:12
+msgid "This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g. bad password), or your browser doesn't understand how to supply the credentials required."
+msgstr "Dieser Server kann nicht best&auml;tigen, dass Sie berechtigt sind, auf das angeforderte Dokument zuzugreifen. Entweder haben Sie falsche Anmeldedaten angegeben (z.B. falsches Passwort) oder Ihr Browser kann die Anmeldedaten nicht &uuml;bermitteln."
+
+#: ../template/default/at_timer_list.html:22
+msgid "New Auto Timer"
+msgstr "Neuer AutoTimer"
+
+#: ../template/default/at_timer_list.html:44
+#: ../template/default/timer_list.html:202
+msgid "Active"
+msgstr "Aktiv"
+
+#: ../template/default/at_timer_list.html:55
+#: ../template/default/timer_list.html:213
+msgid "Channel"
+msgstr "Sender"
+
+#: ../template/default/at_timer_list.html:66
+#: ../template/default/timer_list.html:235
+msgid "Start"
+msgstr "Beginn"
+
+#: ../template/default/at_timer_list.html:77
+#: ../template/default/timer_list.html:246
+msgid "Stop"
+msgstr "Ende"
+
+#: ../template/default/at_timer_list.html:88
+#: ../template/default/timer_list.html:257
+#: ../template/default/rec_list.html:74
+msgid "Name"
+msgstr "Name"
+
+#: ../template/default/at_timer_list.html:99
+#: ../template/default/timer_list.html:268
+#: ../template/default/rec_list.html:85
+msgid "Select all/none"
+msgstr "Alle/keine ausw&auml;hlen"
+
+#: ../template/default/at_timer_list.html:139
+#: ../template/default/timer_list.html:326
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: ../template/default/at_timer_list.html:144
+#: ../template/default/timer_list.html:329
+msgid "Delete timer?"
+msgstr "Timer l&ouml;schen?"
+
+#: ../template/default/at_timer_list.html:144
+#: ../template/default/timer_list.html:329
+#: ../template/default/rec_list.html:137
+msgid "Delete"
+msgstr "L&ouml;schen"
+
+#: ../template/default/at_timer_list.html:166
+msgid "Force Update"
+msgstr "Manuelles Update"
+
+#: ../template/default/at_timer_list.html:178
+#: ../template/default/timer_list.html:350
+msgid "Delete all selected timers?"
+msgstr "Ausgew&auml;hlte Timer wirklich l&ouml;schen?"
+
+#: ../template/default/at_timer_list.html:178
+msgid "Delete Selected Auto Timers"
+msgstr "Ausgew&auml;hlte AutoTimer l&ouml;schen"
+
+#: ../template/default/prog_summary.html:20
+#: ../template/default/prog_timeline.html:74
+msgid "What's on:"
+msgstr "Was l&auml;uft:"
+
+#: ../template/default/prog_summary.html:20
+#: ../template/default/prog_timeline.html:76
+msgid "now"
+msgstr "jetzt"
+
+#: ../template/default/prog_summary.html:20
+#: ../template/default/prog_timeline.html:82
+msgid "at:"
+msgstr "um:"
+
+#: ../template/default/prog_summary.html:43
+#: ../template/default/prog_list.html:19
+#: ../template/default/rec_list.html:150
+#: ../template/default/prog_list2.html:52
+msgid "Stream"
+msgstr "Stream"
+
+#: ../template/default/prog_summary.html:62
+msgid "more"
+msgstr "mehr"
+
+#: ../template/default/prog_summary.html:79
+msgid "TV select"
+msgstr "TV umschalten"
+
+#: ../template/default/prog_summary.html:83
+msgid "Search for other show times"
+msgstr "Nach Wiederholungen suchen"
+
+#: ../template/default/prog_summary.html:87
+msgid "More Information"
+msgstr "mehr Infos"
+
+#: ../template/default/prog_summary.html:93
+msgid "Record"
+msgstr "Sendung aufnehmen"
+
+#: ../template/default/config.html:38
+msgid "General Settings"
+msgstr "Allgemeine Einstellungen"
+
+#: ../template/default/config.html:44
+msgid "Template:"
+msgstr "Template:"
+
+#: ../template/default/config.html:57
+msgid "Skin:"
+msgstr "Skin:"
+
+#: ../template/default/config.html:69
+msgid "Login Page:"
+msgstr "Startseite:"
+
+#: ../template/default/config.html:81
+msgid "Number of DVB Cards:"
+msgstr "Anzahl der DVB-Karten:"
+
+#: ../template/default/config.html:95
+msgid "Identification"
+msgstr "Identifikation"
+
+#: ../template/default/config.html:100
+msgid "Username:"
+msgstr "Benutzername:"
+
+#: ../template/default/config.html:106
+msgid "Password:"
+msgstr "Passwort:"
+
+#: ../template/default/config.html:112
+msgid "Guest Account:"
+msgstr "Gast-Zugang:"
+
+#: ../template/default/config.html:121
+msgid "Guest Username:"
+msgstr "Gast Benutzername:"
+
+#: ../template/default/config.html:127
+msgid "Guest Password:"
+msgstr "Gast Passwort:"
+
+#: ../template/default/config.html:146
+msgid "Hours:"
+msgstr "Stunden:"
+
+#: ../template/default/config.html:152
+msgid "Times:"
+msgstr "Zeiten:"
+
+#: ../template/default/config.html:173
+msgid "Active:"
+msgstr "Aktiv:"
+
+#: ../template/default/config.html:182
+msgid "Timeout:"
+msgstr "Timeout:"
+
+#: ../template/default/config.html:183
+#: ../template/default/config.html:240
+#: ../template/default/config.html:246
+msgid "minutes"
+msgstr "Minuten"
+
+#: ../template/default/config.html:201
+#: ../template/default/config.html:239
+msgid "Time Margin at Start:"
+msgstr "Zeitpuffer Anfang:"
+
+#: ../template/default/config.html:207
+#: ../template/default/config.html:245
+msgid "Time Margin at Stop:"
+msgstr "Zeitpuffer Ende:"
+
+#: ../template/default/config.html:260
+msgid "Streaming"
+msgstr "Streaming"
+
+#: ../template/default/config.html:265
+msgid "Live Streaming"
+msgstr "LiveTV streamen"
+
+#: ../template/default/config.html:274
+msgid "Recordings Streaming"
+msgstr "Aufnahmen streamen"
+
+#: ../template/default/config.html:283
+msgid "HTTP Port of Streamdev (also possible 3000/ts):"
+msgstr "HTTP-Port von Streamdev (auch m&ouml;glich 3000/ts):"
+
+#: ../template/default/config.html:289
+msgid "Path to VDR Recordings:"
+msgstr "Pfad der Aufnahmen:"
+
+#: ../template/default/config.html:296
+msgid "Bandwidth of Streams:"
+msgstr "Bandbreite des Streams:"
+
+#: ../template/default/config.html:323
+msgid "Channel Selections"
+msgstr "Selektive Senderauswahl"
+
+#: ../template/default/config.html:333
+msgid "In &quot;Timeline&quot;?"
+msgstr "In der &quot;Zeitleiste&quot;?"
+
+#: ../template/default/config.html:342
+msgid "In &quot;Channels&quot; / &quot;Playing Today&quot;?"
+msgstr "Bei &quot;Programm&uuml;bersicht&quot; / &quot;Was l&auml;uft heute&quot;?"
+
+#: ../template/default/config.html:351
+msgid "In &quot;What's On Now&quot;?"
+msgstr "Bei &quot;Was l&auml;uft jetzt&quot;?"
+
+#: ../template/default/config.html:360
+msgid "In &quot;Auto Timer&quot;?"
+msgstr "Bei &quot;AutoTimer&quot;?"
+
+#: ../template/default/config.html:404
+msgid "Apply"
+msgstr "Anwenden"
+
+#: ../template/default/timer_list.html:38
+msgid "New Timer"
+msgstr "Neuer Timer"
+
+#: ../template/default/timer_list.html:224
+#: ../template/default/rec_list.html:52
+msgid "Date"
+msgstr "Datum"
+
+#: ../template/default/timer_list.html:278
+msgid "This timer is inactive!"
+msgstr "Diese Aufnahme ist deaktiviert!"
+
+#: ../template/default/timer_list.html:281
+msgid "This timer is impossible!"
+msgstr "Diese Aufnahme ist nicht m&ouml;glich!"
+
+#: ../template/default/timer_list.html:284
+msgid "No more timers possible!"
+msgstr "Keine weiteren Aufnahmen mehr m&ouml;glich!"
+
+#: ../template/default/timer_list.html:287
+msgid "Timer OK."
+msgstr "Diese Aufnahme ist m&ouml;glich."
+
+#: ../template/default/timer_list.html:293
+msgid "Edit timer status?"
+msgstr "Timerstatus &auml;ndern?"
+
+#: ../template/default/timer_list.html:297
+msgid "VPS"
+msgstr "VPS"
+
+#: ../template/default/timer_list.html:298
+msgid "Auto"
+msgstr "Auto"
+
+#: ../template/default/timer_list.html:350
+msgid "Delete Selected Timers"
+msgstr "Ausgew&auml;hlte Timer l&ouml;schen"
+
+#: ../template/default/prog_list.html:29
+#: ../template/default/prog_list2.html:34
+msgid "Go!"
+msgstr "Go!"
+
+#: ../template/default/error.html:6
+msgid "Error!"
+msgstr "Fehler!"
+
+#: ../template/default/tv.html:5
+#: ../template/default/tv_flash.html:4
+msgid "TV"
+msgstr "Fernseher"
+
+#: ../template/default/tv.html:182
+msgid "Interval:"
+msgstr "Intervall:"
+
+#: ../template/default/tv.html:185
+#: ../template/default/tv.html:186
+#: ../template/default/tv.html:187
+#: ../template/default/tv.html:188
+#: ../template/default/tv.html:189
+#: ../template/default/tv.html:190
+#: ../template/default/tv.html:191
+msgid "sec."
+msgstr "sek"
+
+#: ../template/default/tv.html:193
+#: ../template/default/tv.html:200
+msgid "G"
+msgstr "G"
+
+#: ../template/default/tv.html:193
+#: ../template/default/tv.html:200
+msgid "Grab the picture!"
+msgstr "Hole das Bild!"
+
+#: ../template/default/tv.html:194
+msgid "Size:"
+msgstr "Gr&ouml;&szlig;e:"
+
+#: ../template/default/prog_detail.html:28
+msgid "close"
+msgstr "schlie&szlig;en"
+
+#: ../template/default/prog_detail.html:30
+msgid "view"
+msgstr "umschalten"
+
+#: ../template/default/prog_detail.html:31
+msgid "record"
+msgstr "aufnehmen"
+
+#: ../template/default/prog_detail.html:32
+msgid "search"
+msgstr "Wiederholungen"
+
+#: ../template/default/prog_detail.html:34
+msgid "Lookup movie in the Internet-Movie-Database (IMDb)"
+msgstr "Film in der Internet-Movie-Database (IMDb) suchen"
+
+#: ../template/default/rec_list.html:19
+msgid "Total:"
+msgstr "Total:"
+
+#: ../template/default/rec_list.html:19
+#: ../template/default/rec_list.html:20
+msgid "h"
+msgstr "h"
+
+#: ../template/default/rec_list.html:20
+msgid "Free:"
+msgstr "Frei:"
+
+#: ../template/default/rec_list.html:100
+msgid "Total"
+msgstr "Gesamt"
+
+#: ../template/default/rec_list.html:109
+#: ../template/default/rec_list.html:112
+msgid "New"
+msgstr "neu"
+
+#: ../template/default/rec_list.html:130
+#: ../template/default/rec_edit.html:63
+msgid "Rename"
+msgstr "Umbenennen"
+
+#: ../template/default/rec_list.html:137
+msgid "Delete recording?"
+msgstr "Aufnahme l&ouml;schen?"
+
+#: ../template/default/rec_list.html:168
+msgid "Commands:"
+msgstr "Befehle"
+
+#: ../template/default/rec_list.html:174
+msgid "Run"
+msgstr "Ausf&uuml;hren"
+
+#: ../template/default/rec_list.html:174
+msgid "Really run this command?"
+msgstr "Diesen Befehl wirklich ausführen?"
+
+#: ../template/default/rec_list.html:181
+#: ../template/default/rec_list.html:187
+msgid "Delete all selected recordings?"
+msgstr "Ausgew&auml;hlte Aufnahmen wirklich l&ouml;schen?"
+
+#: ../template/default/rec_list.html:181
+#: ../template/default/rec_list.html:187
+msgid "Delete Selected Recordings"
+msgstr "Ausgew&auml;hlte Aufnahmen l&ouml;schen"
+
+#: ../template/default/prog_timeline.html:99
+msgid "Timeline:"
+msgstr "Zeitleiste:"
+
+#: ../template/default/prog_timeline.html:99
+msgid "to"
+msgstr "bis"
+
+#: ../template/default/rec_edit.html:6
+#: ../template/default/rec_edit.html:15
+msgid "Rename Recording"
+msgstr "Aufnahme umbenennen"
+
+#: ../template/default/rec_edit.html:38
+msgid "Original Name of Recording:"
+msgstr "Alter Titel der Aufnahme:"
+
+#: ../template/default/rec_edit.html:44
+msgid "New Name of Recording:"
+msgstr "Neuer Titel der Aufnahme:"
+
+#: ../vdradmind.pl:222
+msgid "What's your VDR hostname (e.g video.intra.net)?"
+msgstr "Wie lautet der Hostname des VDR (z.B. video.intra.net)?"
+
+#: ../vdradmind.pl:223
+msgid "On which port does VDR listen to SVDRP queries?"
+msgstr "Auf welchem Port hört der VDR auf SVDRP-Anfragen?"
+
+#: ../vdradmind.pl:224
+msgid "On which address should VDRAdmin listen (0.0.0.0 for any)?"
+msgstr "An welcher Adresse soll VDRAdmin auf Verbindungen warten (0.0.0.0 für alle)?"
+
+#: ../vdradmind.pl:225
+msgid "On which port should VDRAdmin listen?"
+msgstr "Auf welchem Port soll VDRAdmin hören?"
+
+#: ../vdradmind.pl:226
+msgid "Username?"
+msgstr "Benutzername?"
+
+#: ../vdradmind.pl:227
+msgid "Password?"
+msgstr "Passwort?"
+
+#: ../vdradmind.pl:228
+msgid "Where are your recordings stored?"
+msgstr "Wo befinden sich die Aufnahmen?"
+
+#: ../vdradmind.pl:229
+msgid "Where are your VDR's configuration files located?"
+msgstr "Wo befinden sich die Konfigurationsdateien des VDR?"
+
+#: ../vdradmind.pl:235
+msgid "Config file written successfully."
+msgstr "Konfigurationsdatei wurde erfolgreich geschrieben."
+
+#: ../vdradmind.pl:282
+#, perl-format
+msgid "vdradmind.pl %s started with pid %d."
+msgstr "vdradmind.pl %s wurde mit der Prozeß-ID %d gestartet."
+
+#: ../template/i18n.pl:12
+msgid "January"
+msgstr "Januar"
+
+#: ../template/i18n.pl:13
+msgid "February"
+msgstr "Februar"
+
+#: ../template/i18n.pl:14
+msgid "March"
+msgstr "M&auml;rz"
+
+#: ../template/i18n.pl:15
+msgid "April"
+msgstr "April"
+
+#: ../template/i18n.pl:16
+msgid "May"
+msgstr "Mai"
+
+#: ../template/i18n.pl:17
+msgid "June"
+msgstr "Juni"
+
+#: ../template/i18n.pl:18
+msgid "July"
+msgstr "Juli"
+
+#: ../template/i18n.pl:19
+msgid "August"
+msgstr "August"
+
+#: ../template/i18n.pl:20
+msgid "September"
+msgstr "September"
+
+#: ../template/i18n.pl:21
+msgid "October"
+msgstr "Oktober"
+
+#: ../template/i18n.pl:22
+msgid "November"
+msgstr "November"
+
+#: ../template/i18n.pl:23
+msgid "December"
+msgstr "Dezember"
+
+#: ../template/i18n.pl:28
+msgid "Playing Today?"
+msgstr "Was l&auml;uft heute?"
+
+#: ../template/i18n.pl:31
+msgid "Timers"
+msgstr "Timer"
+
+#: ../template/i18n.pl:36
+msgid "Not found"
+msgstr "Nicht gefunden"
+
+#: ../template/i18n.pl:37
+msgid "The requested URL was not found on this server!"
+msgstr "Die angeforderte URL konnte auf dem Server nicht gefunden werden!"
+
+#: ../template/i18n.pl:38
+#, perl-format
+msgid "The URL &quot;%s&quot; was not found on this server!"
+msgstr "Die URL &quot;%s&quot; wurde auf dem Server nicht gefunden!"
+
+#: ../template/i18n.pl:39
+msgid "Forbidden"
+msgstr "Verboten"
+
+#: ../template/i18n.pl:40
+msgid "You don't have permission to access this function!"
+msgstr "Sie haben nicht die Erlaubnis diese Funktion aufzurufen!"
+
+#: ../template/i18n.pl:41
+#, perl-format
+msgid "Access to file &quot;%s&quot; denied!"
+msgstr "Zugriff auf Datei &quot;%s&quot; verweigert!"
+
+#: ../template/i18n.pl:42
+#, perl-format
+msgid "Can't open file &quot;%s&quot;!"
+msgstr "Kann Datei &quot;%s&quot; nicht &ouml;ffnen!"
+
+#: ../template/i18n.pl:43
+#, perl-format
+msgid "Can't connect to VDR at %s!"
+msgstr "Konnte Verbindung zu %s nicht aufbauen!"
+
+#: ../template/i18n.pl:44
+#, perl-format
+msgid "Error while sending command to VDR at %s"
+msgstr "Fehler beim Senden eines Kommandos zu %s"
+
+#: ../template/i18n.pl:48
+msgid "Schedule"
+msgstr "&Uuml;bersicht"
+
+#: ../template/i18n.pl:53
+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>Timer</b>\n"
+"<p>&Uuml;bersicht &uuml;ber alle Timer im VDR.</p>\n"
+"<p>Ein Mausklick auf |<img src=\"bilder/poempl_gruen.gif\" alt=\"on\" valign=\"center\"> <i>Ja</i> | oder |<img src=\"bilder/poempl_grau.gif\" alt=\"off\" valign=\"center\"> <i>Nein</i> | in der Spalte <i>Aktiv</i>, schaltet den jeweiligen Timer an oder aus.<br>\n"
+"<img src=\"bilder/poempl_gelb.gif\" alt=\"problem\" valign=\"center\"> zeigt an, da&szlig; es eine &Uuml;berschneidung gibt. Das ist unkritisch, solange es f&uuml;r jeden Timer eine Karte gibt, um die Aufnahme durchzuf&uuml;hren.<br>\n"
+"Um einen Eintrag zu bearbeiten, klicken Sie auf das Symbol <img src=\"bilder/edit.gif\" alt=\"Stift\" valign=\"center\">, zum L&ouml;schen auf <img src=\"bilder/delete.gif\" alt=\"Radiergummi\" valign=\"center\">. Wenn Sie mehrere Auto-Timer-Eintr&auml;ge auf einmal l&ouml;schen m&ouml;chten, Aktivieren Sie die K&auml;stchen (<input type=\"checkbox\" checked>) rechts neben den gew&uuml;nschten Eintr&auml;gen und klicken Sie abschlie&szlig;end auf <i>Ausgew&auml;hlte Timer l&ouml;schen</i> am Ende der Liste.\n"
+"</p>"
+
+#: ../template/i18n.pl:61
+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>Neuer Timer:</b>\n"
+"<p>Dazu m&uuml;&szlig;en die ensprechenden Felder ausgef&uuml;llt werden. Wichtig ist auch nach der Programmierung einen Blick auf alle Timer zu werfen, um evtl. auftretende &Uuml;berschneidungen oder andere Probleme zu vermeiden.</p>"
+
+#: ../template/i18n.pl:65
+msgid ""
+"<b>Auto Timer:</b><br>\n"
+"<p>An overview of all Auto Timers</p>\n"
+"<p>Click <i>Yes</i> or <i>No</i> in the <i>Active</i> column to (de-)activate that Auto Timer.</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 Auto Timer. If you want to delete multiple Auto Timers all at once, you have to check the boxes (<input type=\"checkbox\" checked>) on the right and finally click <i>Delete selected Auto Timers</i>.</p>"
+msgstr ""
+"<b>Auto Timer:</b><br>\n"
+"<p>Eine &Uuml;bersicht aller Auto-Timer-Eintr&auml;ge.</p>\n"
+"<p>Ein Mausklick auf |<img src=\"bilder/poempl_gruen.gif\" alt=\"on\" valign=\"center\"> <i>Ja</i> | oder |<img src=\"bilder/poempl_rot.gif\" alt=\"off\" valign=\"center\"> <i>Nein</i> | in der Spalte <i>Aktiv</i>, schaltet den jeweiligen Eintrag an oder aus.</p>\n"
+"<p>Um einen Eintrag zu bearbeiten, klicken Sie auf das Symbol <img src=\"bilder/edit.gif\" alt=\"Stift\" valign=\"center\">, zum L&ouml;schen auf <img src=\"bilder/delete.gif\" alt=\"Radiergummi\" valign=\"center\">. Wenn Sie mehrere Auto-Timer-Eintr&auml;ge auf einmal l&ouml;schen m&ouml;chten, Aktivieren Sie die K&auml;stchen (<input type=\"checkbox\" checked>) rechts neben den gew&uuml;nschten Eintr&auml;gen und klicken Sie abschlie&szlig;end auf <i>Ausgew&auml;hlte Auto Timer l&ouml;schen</i> am Ende der Liste.</p>"
+
+#: ../template/i18n.pl:71
+msgid ""
+"<b>Edit Auto Timer:</b><br>\n"
+"<p>Auto Timer is a key feature of VDRAdmin. An Auto Timer consists of one or more search terms and some other settings, that are looked for regularly in the Electronic Program Guide (EPG). On match Auto Timer 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 Auto Timer. 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>Auto Timer Active:</b><br>\n"
+"<p><i>Yes</i> activates and <i>No</i> deactivates this Auto Timer. Please note that VDR timers already added by VDRAdmin are not deleted if you deactivate this Auto Timer.</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, &quot;X-Files&quot; matches anything &quot;x-files&quot; 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 sources (undocumented feature).</p>"
+msgstr ""
+"<b>Neuen Auto Timer anlegen/bearbeiten:</b><br>\n"
+"<p>Der Auto Timer ist eine der zentralen Funktionen VDR Admins. Ein Auto-Timer-Eintrag besteht haupts&auml;chlich aus einem oder mehreren Suchbegriffen, nach denen in regelm&auml;&szlig;igen Abst&auml;nden der elektronische Programmf&uuml;hrer (EPG) durchsucht wird. Bei &Uuml;bereinstimmung der Suchbegriffe (und &uuml;brigen Parameter wie Uhrzeit und Kanal) programmiert Auto Timer selbst&auml;ndig eine Aufnahme (Timer) f&uuml;r die gefundene Sendung &#150; das ist besonders f&uuml;r (un)regelm&auml;&szlig;ig gesendete Serien interessant, oder aber f&uuml;r Filme, die Sie keinesfalls verpassen wollen.</p>\n"
+"<p>In dieser Maske k&ouml;nnen Sie einen neuen Auto-Timer-Eintrag anlegen. Sie m&uuml;ssen in jedem Fall einen oder mehrere Suchbegriffe angeben, damit es &uuml;berhaupt zu &Uuml;bereinstimmungen kommen kann. Details, welche Suchbegriffe Sie w&auml;hlen sollten und wie Sie unsinnige Aufnahmen vermeiden, finden Sie in der Hilfe zu <i>Suchbegriffe</i>.</p>\n"
+"<b>Auto Timer Aktiv:</b><br>\n"
+"<p>Mit <i>ja</i> schalten Sie den Auto Timer scharf, der elektronische Programmf&uuml;hrer (EPG) wird dann regelm&auml;&szlig;ig nach <i>Suchbegriffe</i> durchsucht und ein neuer Timer-Eintrag programmiert, wenn es eine &Uuml;bereinstimmung mit <i>Suchbegriffe</i> sowie den &uuml;brigen Parametern gibt.</p>\n"
+"<p>Mit <i>nein</i> schalten Sie den Auto-Timer-Eintrag ab, ohne ihn zu l&ouml;schen. Dies l&auml;sst bereits automatisch programmierte Aufnahmen (Timer) jedoch unangetastet &#150; sie m&uuml;ssen gegebenenfalls von Hand im <i>Timer</i>-Men&uuml; gel&ouml;scht werden.</p>\n"
+"<b>Suchbegriffe:</b><br>\n"
+"<p>Die Wahl der Suchbegriffe hat entscheidenden Einfluss darauf, ob nur die gew&uuml;nschte Sendung, alle mit &auml;hnlichem Namen oder gar nichts programmiert wird.</p>\n"
+"<p>Zun&auml;chst einmal spielt Gro&szlig;-Kleinschreibung keine Rolle, die Suchbegriffe \"Akte X\" liefern genau die selben Treffer wie \"akte x\". Mehrere Suchbegriffe werden mit Leerzeichen getrennt, und es m&uuml;ssen stets alle angegebenen Suchbegriffe bei der gleichen Sendung gefunden werden.</p>\n"
+"<p>So finden die Suchbegriffe \"Akte X\" die Sendungen \"Akte X - Die unheimlichen F&auml;lle des FBI\" genauso wie \"Aktenzeichen XY ungel&ouml;st\" und \"Extrem Aktiv\", jedoch nicht die Sendung \"Die Akte Jane\" (dort ist kein \"X\" enthalten).</p>\n"
+"<p>Sie sollten m&ouml;glichst nur Buchstaben und Zahlen als Suchbegriffe verwenden, erfahrungsgem&auml;&szlig; fehlen im elektronischen Programmf&uuml;hrer (EPG) gerne mal ein Punkt, Klammern oder sonstige Zeichen.</p>\n"
+"<p>Es ist auch m&ouml;glich, regul&auml;re Ausdr&uuml;cke zu verwenden &#150; Experten m&ouml;gen doch bitte die n&ouml;tigen Infos dem Quelltext entnehmen (undocumented feature).\n"
+"</p>"
+
+#: ../template/i18n.pl:83
+msgid ""
+"<p>No help available for <b>Recordings:</b>. For adding text please contact mail@andreas.vdr-developer.org.\t\n"
+"</p>"
+msgstr ""
+"<b>Aufnahmen:</b>\n"
+"<p>Auf dieser Seite sieht man alle Aufnahmen, die sich auf dem angeschlossenen VDR-Rechner befinden. Hier kann man Namen und Verzeichnis der Aufnahmen &auml;ndern (<img src=\"bilder/edit.gif\" alt=\"pen\" valign=\"center\">) oder Aufnahmen l&ouml;schen (<img src=\"bilder/delete.gif\" alt=\"Rubber\" valign=\"center\">).</p>"
+
+#: ../template/i18n.pl:87
+msgid ""
+"<b>Configuration:</b>\n"
+"<p>Here you can change general settings and base settings for timers, auto timers, 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, auto timers, 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 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 auto timers:</b>\n"
+"<p>Clicking on |<input type=\"radio\"> <i>Yes</i> | or |<input type=\"radio\" checked> <i>No</i> | activates or deactivates the auto timer function. You can also specify the interval, the the epg data is checked for updating the auto timers.<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 auto timers, 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>Konfiguration:</b>\n"
+"<p>Hier kann man die allgemeinen Einstellungen vornehmen. Au&szlig;erdem die Grundeinstellungen f&uuml;r Timer, AutoTimer, Kanalselektionen und Streaming Parameter\n"
+"</p>\n"
+"<b>Allgemeine Einstellungen:</b>\n"
+"<p>Hier kann man die Sprache, die Startseite, das Aussehen, sowie die Anzahl der DVB-Karten einstellen. Au&szlig;erdem die Grundeinstellungen f&uuml;r Timer, AutoTimer, Kanalselektionen und Streaming Parameter\n"
+"</p>\n"
+"<b>Identifikationen:</b>\n"
+"<p>Ein Mausklick auf |<input type=\"radio\"> <i>ja</i> | oder |<input type=\"radio\" checked> <i>Nein</i> | aktiviert oder deaktiviert den <i>Gast-Zugang</i>. Die Passw&ouml;rter sollten f&uuml;r beide Konten ge&auml;ndert werden, wenn eine Verbindung zum Internet besteht\n"
+"</p>\n"
+"<b>Zeitleiste:</b>\n"
+"<p>Hier bekommt man eine Balkenansicht der Sender pr&auml;sentiert, wobei man den sichtbaren Zeitumfang einstellen kann.<br>\n"
+"In den Balken sieht man die Titel der jeweiligen Sendung. Der Zeitbalken beginnt in der vollen halben Stunde vor &quot;Jetzt&quot;. Ein feiner roter Strich zeigt die aktuelle Zeitposition an.<br>Programmierte Sendungen werden au&szlig;erdem farblich hervorgehoben.\n"
+"</p>\n"
+"<b>Einstellungen f&uuml;r AutoTimer:</b>\n"
+"<p>Ein Mausklick auf |<input type=\"radio\"> <i>Ja</i> | oder |<input type=\"radio\" checked> <i>Nein</i> | aktiviert oder deaktiviert die AutoTimer-Funktion. Hier bestimmt man auch wie oft der AutorTimer in den EPG-Daten nach den <i>Suchbegriffen</i> Ausschau halten soll.<br>\n"
+"Die Lebenszeit einer Aufnahme bestimmt man indem ein Wert zwischen 0 und 99 eingetr&auml;gt (99 verf&auml;llt nie). Der Wert bezieht sich dann auf den Tag, an dem die Aufnahme gemacht wurde. Sind die angegebenen Tage bereits verfallen, wenn beim VDR eine Aufnahme ansteht, so kann im Falle von Speicherknappheit die betreffende Aufnahme vom VDR gel&ouml;scht werden. Die am l&auml;ngsten abgelaufene Aufnahme wird zuerst gel&ouml;scht. Man bestimmt hier also, mit welcher Lebenszeitangabe der AutoTimer sp&auml;ter eine Aufnahme macht.<br>\n"
+"Die Priorit&auml;t bestimmt, wer im Falle eines Zeitkonfliktes den Vorrang bekommt. Die h&ouml;here Priorit&auml;t kommt dann zur Ausf&uuml;hrung. <br>\n"
+"Ein AutoTimer sollte also einen h&ouml;heren Wert zugewiesen bekommen, als die normalen Aufnahmen. Schlie&szlig;lich sucht der AutoTimer in der Regel nach Sendungen, die einem wichtig sind.</p>\n"
+"<b>Einstellungen f&uuml;r Timer:</b>\n"
+"<p>Priorit&auml;t und Lebenszeit haben die gleiche Bedeutung, wie vorher bei den AutoTimern beschrieben, gelten aber eben f&uuml;r die von Hand erstellten Timer.\n"
+"</p>\n"
+"\n"
+"<b>Einstellungen f&uuml;r das Streamdevice:</b>\n"
+"<p>Neben Port und Bandbreite, mu&szlig; hier auch das Videoverzeichnis von VDR eingetragen werden.\n"
+"</p>\n"
+"\n"
+"<b>Die selektive Kanalwahl:</b>\n"
+"<p>Ein Mausklick auf |<input type=\"radio\"> <i>Ja</i> | oder |<input type=\"radio\" checked> <i>Nein</i> | rechts neben den gew&uuml;nschten Eintr&auml;gen, aktiviert oder deaktiviert die &quot;selektiven&quot; Kan&auml;le f&uuml;r das jeweilige Hauptfenster.<br>\n"
+"So kann man die genannten Einzelansichten auf die gew&auml;hlten Kan&auml;le beschr&auml;nken, was &Uuml;bersichtlichkeit und Seitenaufbau g&uuml;nstig beeinflu&szlig;t.<br>\n"
+"Die Auswahl der Kan&auml;le erfolgt nach Auswahl eines oder mehrerer Kan&auml;le im linken Fenster (STRG-Taste gedr&uuml;ckt halten und alle Kan&auml;le die man hinzuf&uuml;gen will anklicken), durch &Uuml;bertragung in das rechte Fenster. <br>Mit den Kn&ouml;pfen sind beide Richtungen m&ouml;glich.\n"
+"</p>\n"
+
+#: ../template/i18n.pl:117
+msgid "No help available yet. For adding or changing text please contact mail@andreas.vdr-developer.org."
+msgstr "Bisher keine Hilfe vorhanden. Zum Hinzuf&uuml;gen oder &Auml;ndern eines Textes bitte an mail@andreas.vdr-developer.org wenden."
+
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 0000000..408cadb
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,1054 @@
+#
+# 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.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDRAdmin-0.97-AM3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-05-09 12:52+0200\n"
+"PO-Revision-Date: 2005-05-10 12:06+0100\n"
+"Last-Translator: rudibert <r_jung@web.de>\n"
+"Language-Team: Rudi <LL.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Spanish\n"
+"X-Poedit-Country: SPAIN\n"
+"X-Poedit-SourceCharset: iso-8859-1\n"
+
+#: ../template/default/index.html:18
+msgid "Your Browser does not support frames!"
+msgstr "&iexcl;El navegador no soporta marcos!"
+
+#: ../template/default/timer_new.html:6
+#: ../template/default/timer_new.html:45
+msgid "Create New Timer"
+msgstr "A&ntilde;adir programaci&oacute;n"
+
+#: ../template/default/timer_new.html:6
+#: ../template/default/timer_new.html:45
+msgid "Edit Timer"
+msgstr "Modificar programaci&oacute;n"
+
+#: ../template/default/timer_new.html:50
+#: ../template/default/at_new.html:20
+#: ../template/default/at_timer_list.html:31
+#: ../template/default/config.html:20
+#: ../template/default/timer_list.html:46
+#: ../template/default/rec_list.html:26
+msgid "Help"
+msgstr "Ayuda"
+
+#: ../template/default/timer_new.html:67
+msgid "Timer Active:"
+msgstr "Programaci&oacute;n activada:"
+
+#: ../template/default/timer_new.html:69
+#: ../template/default/at_new.html:39
+#: ../template/default/at_new.html:43
+#: ../template/default/at_new.html:145
+#: ../template/default/at_timer_list.html:110
+#: ../template/default/config.html:114
+#: ../template/default/config.html:175
+#: ../template/default/config.html:267
+#: ../template/default/config.html:276
+#: ../template/default/config.html:335
+#: ../template/default/config.html:344
+#: ../template/default/config.html:353
+#: ../template/default/config.html:362
+#: ../template/default/timer_list.html:295
+msgid "Yes"
+msgstr "S&iacute;"
+
+#: ../template/default/timer_new.html:70
+#: ../template/default/at_new.html:40
+#: ../template/default/at_new.html:44
+#: ../template/default/at_new.html:146
+#: ../template/default/at_timer_list.html:113
+#: ../template/default/config.html:115
+#: ../template/default/config.html:176
+#: ../template/default/config.html:268
+#: ../template/default/config.html:277
+#: ../template/default/config.html:336
+#: ../template/default/config.html:345
+#: ../template/default/config.html:354
+#: ../template/default/config.html:363
+#: ../template/default/timer_list.html:296
+msgid "No"
+msgstr "No"
+
+#: ../template/default/timer_new.html:76
+msgid "Auto Timer Checking:"
+msgstr "Autovigilancia de las programaciones:"
+
+#: ../template/default/timer_new.html:79
+msgid "Transmission Identification"
+msgstr "Identificador de la emisora"
+
+#: ../template/default/timer_new.html:81
+#: ../template/default/rec_list.html:63
+msgid "Time"
+msgstr "por hora"
+
+#: ../template/default/timer_new.html:82
+#: ../template/default/tv.html:184
+msgid "off"
+msgstr "apagado"
+
+#: ../template/default/timer_new.html:88
+#: ../template/default/at_new.html:84
+#: ../template/default/prog_list.html:23
+#: ../template/default/prog_list2.html:29
+msgid "Channel:"
+msgstr "Emisoras:"
+
+#: ../template/default/timer_new.html:100
+msgid "Day Of Recording:"
+msgstr "D&iacute;a de la grabaci&oacute;n:"
+
+#: ../template/default/timer_new.html:104
+#: ../template/default/at_new.html:72
+#: ../template/i18n.pl:3
+msgid "Monday"
+msgstr "Lunes"
+
+#: ../template/default/timer_new.html:105
+#: ../template/default/at_new.html:73
+#: ../template/i18n.pl:4
+msgid "Tuesday"
+msgstr "Martes"
+
+#: ../template/default/timer_new.html:106
+#: ../template/default/at_new.html:74
+#: ../template/i18n.pl:5
+msgid "Wednesday"
+msgstr "Mi&eacute;rcoles"
+
+#: ../template/default/timer_new.html:107
+#: ../template/default/at_new.html:75
+#: ../template/i18n.pl:6
+msgid "Thursday"
+msgstr "Jueves"
+
+#: ../template/default/timer_new.html:108
+#: ../template/default/at_new.html:76
+#: ../template/i18n.pl:7
+msgid "Friday"
+msgstr "Viernes"
+
+#: ../template/default/timer_new.html:109
+#: ../template/default/at_new.html:77
+#: ../template/i18n.pl:8
+msgid "Saturday"
+msgstr "S&aacute;bado"
+
+#: ../template/default/timer_new.html:110
+#: ../template/default/at_new.html:78
+#: ../template/i18n.pl:2
+msgid "Sunday"
+msgstr "Domingo"
+
+#: ../template/default/timer_new.html:116
+msgid "Start Time:"
+msgstr "Comienzo:"
+
+#: ../template/default/timer_new.html:121
+#: ../template/default/timer_new.html:132
+#: ../template/default/at_new.html:102
+#: ../template/default/at_new.html:113
+#: ../template/default/prog_summary.html:17
+#: ../template/default/prog_summary.html:22
+#: ../template/default/prog_list.html:61
+#: ../template/default/prog_timeline.html:71
+#: ../template/default/prog_timeline.html:84
+#: ../template/default/prog_timeline.html:99
+#: ../template/default/prog_list2.html:71
+msgid "o'clock"
+msgstr "h."
+
+#: ../template/default/timer_new.html:127
+msgid "End Time:"
+msgstr "Fin:"
+
+#: ../template/default/timer_new.html:138
+#: ../template/default/at_new.html:119
+#: ../template/default/at_timer_list.html:133
+#: ../template/default/config.html:188
+#: ../template/default/config.html:233
+#: ../template/default/timer_list.html:316
+msgid "Priority:"
+msgstr "Prioridad:"
+
+#: ../template/default/timer_new.html:144
+#: ../template/default/at_new.html:127
+#: ../template/default/at_timer_list.html:133
+#: ../template/default/config.html:194
+#: ../template/default/config.html:227
+#: ../template/default/timer_list.html:316
+msgid "Lifetime:"
+msgstr "Durabilidad:"
+
+#: ../template/default/timer_new.html:150
+msgid "Title of Recording:"
+msgstr "T&iacute;tulo de la grabaci&oacute;n:"
+
+#: ../template/default/timer_new.html:156
+msgid "Summary:"
+msgstr "Resumen:"
+
+#: ../template/default/timer_new.html:169
+#: ../template/default/at_new.html:166
+#: ../template/default/config.html:403
+msgid "Save"
+msgstr "Guardar"
+
+#: ../template/default/timer_new.html:170
+#: ../template/default/at_new.html:167
+#: ../template/default/rec_edit.html:64
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: ../template/default/left.html:34
+#: ../template/default/prog_summary.html:7
+#: ../template/default/prog_timeline.html:7
+#: ../template/i18n.pl:27
+msgid "What's On Now?"
+msgstr "Estrenos ahora"
+
+#: ../template/default/left.html:38
+#: ../template/default/prog_list2.html:6
+#: ../template/default/prog_list2.html:25
+msgid "Playing Today"
+msgstr "Estrenos hoy"
+
+#: ../template/default/left.html:42
+#: ../template/default/config.html:141
+#: ../template/i18n.pl:29
+msgid "Timeline"
+msgstr "Tabla de tiempo"
+
+#: ../template/default/left.html:46
+#: ../template/default/prog_list.html:6
+#: ../template/i18n.pl:30
+msgid "Channels"
+msgstr "Emisoras"
+
+#: ../template/default/left.html:50
+#: ../template/default/config.html:222
+#: ../template/default/timer_list.html:6
+#: ../template/default/timer_list.html:30
+msgid "Timer"
+msgstr "Programaciones"
+
+#: ../template/default/left.html:54
+#: ../template/default/at_timer_list.html:6
+#: ../template/default/at_timer_list.html:15
+#: ../template/default/config.html:168
+msgid "Auto Timer"
+msgstr "Autoprogramaciones"
+
+#: ../template/default/left.html:58
+#: ../template/default/rec_list.html:6
+#: ../template/default/rec_list.html:15
+#: ../template/i18n.pl:32
+msgid "Recordings"
+msgstr "Grabaciones"
+
+#: ../template/default/left.html:62
+#: ../template/default/config.html:5
+#: ../template/default/config.html:15
+msgid "Configuration"
+msgstr "Configuraci&oacute;n"
+
+#: ../template/default/left.html:66
+#: ../template/default/rc.html:6
+msgid "Remote Control"
+msgstr "Mando de distancia"
+
+#: ../template/default/left.html:70
+msgid "Watch TV"
+msgstr "Televisi&oacute;n"
+
+#: ../template/default/left.html:77
+msgid "Search"
+msgstr "Buscar"
+
+#: ../template/default/at_new.html:6
+#: ../template/default/at_new.html:16
+msgid "Add New Auto Timer"
+msgstr "A&ntilde;adir autoprogramaci&oacute;n"
+
+#: ../template/default/at_new.html:6
+#: ../template/default/at_new.html:16
+msgid "Edit Auto Timer"
+msgstr "Modificar autoprogramaci&oacute;n"
+
+#: ../template/default/at_new.html:36
+msgid "Auto Timer Active:"
+msgstr "Autoprogramaci&oacute;n activada:"
+
+#: ../template/default/at_new.html:41
+#: ../template/default/at_new.html:45
+msgid "oneshot"
+msgstr "una vez"
+
+#: ../template/default/at_new.html:52
+msgid "Search Patterns:"
+msgstr "Palabras claves:"
+
+#: ../template/default/at_new.html:60
+msgid "Search in:"
+msgstr "Buscar en:"
+
+#: ../template/default/at_new.html:62
+msgid "Title"
+msgstr "T&iacute;tulo"
+
+#: ../template/default/at_new.html:63
+msgid "Subtitle"
+msgstr "Subt&iacute;tulo"
+
+#: ../template/default/at_new.html:64
+msgid "Description"
+msgstr "Descripci&oacute;n"
+
+#: ../template/default/at_new.html:70
+msgid "Search only on these days:"
+msgstr "Los d&iacute;as para la b&uacute;squeda:"
+
+#: ../template/default/at_new.html:87
+msgid "all"
+msgstr "todos"
+
+#: ../template/default/at_new.html:97
+msgid "Starts Before:"
+msgstr "Buscar entre la/s:"
+
+#: ../template/default/at_new.html:108
+msgid "Ends Before:"
+msgstr "y la/s:"
+
+#: ../template/default/at_new.html:135
+msgid "Episode:"
+msgstr "Episodios:"
+
+#: ../template/default/at_new.html:143
+msgid "Remember programmed timers:"
+msgstr "Recordar programaciones:"
+
+#: ../template/default/at_new.html:152
+msgid "Directory:"
+msgstr "Carpeta:"
+
+#: ../template/default/noauth.html:5
+#: ../template/default/noauth.html:11
+msgid "Authorization Required"
+msgstr "Autorizaci&oacute;n requerida"
+
+#: ../template/default/noauth.html:12
+msgid "This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g. bad password), or your browser doesn't understand how to supply the credentials required."
+msgstr ""
+"Este servidor no pudo verificar, t&uacute; permiso de acceso al documento requerido.<br>\n"
+"Posiblemente por entregar datos incorrectos (Nombre del usuario o contrase&ntilde;a p.e.) o por que t&uacute; navegador no soporta la forma de acceso."
+
+#: ../template/default/at_timer_list.html:22
+msgid "New Auto Timer"
+msgstr "A&ntilde;adir autoprogramaci&oacute;n"
+
+#: ../template/default/at_timer_list.html:44
+#: ../template/default/timer_list.html:202
+msgid "Active"
+msgstr "Activada"
+
+#: ../template/default/at_timer_list.html:55
+#: ../template/default/timer_list.html:213
+msgid "Channel"
+msgstr "Emisora"
+
+#: ../template/default/at_timer_list.html:66
+#: ../template/default/timer_list.html:235
+msgid "Start"
+msgstr "Comienzo"
+
+#: ../template/default/at_timer_list.html:77
+#: ../template/default/timer_list.html:246
+msgid "Stop"
+msgstr "Fin"
+
+#: ../template/default/at_timer_list.html:88
+#: ../template/default/timer_list.html:257
+#: ../template/default/rec_list.html:74
+msgid "Name"
+msgstr "T&iacute;tulo"
+
+#: ../template/default/at_timer_list.html:99
+#: ../template/default/timer_list.html:268
+#: ../template/default/rec_list.html:85
+msgid "Select all/none"
+msgstr "Seleccionar todos/ninguno"
+
+#: ../template/default/at_timer_list.html:139
+#: ../template/default/timer_list.html:326
+msgid "Edit"
+msgstr "Modificar"
+
+#: ../template/default/at_timer_list.html:144
+#: ../template/default/timer_list.html:329
+msgid "Delete timer?"
+msgstr "&iquest;Borrar programaci&oacute;n?"
+
+#: ../template/default/at_timer_list.html:144
+#: ../template/default/timer_list.html:329
+#: ../template/default/rec_list.html:137
+msgid "Delete"
+msgstr "Borrar"
+
+#: ../template/default/at_timer_list.html:166
+msgid "Force Update"
+msgstr "Actualizar ahora"
+
+#: ../template/default/at_timer_list.html:178
+#: ../template/default/timer_list.html:350
+msgid "Delete all selected timers?"
+msgstr "&iquest;Borrar en serio las programaciones elegidas?"
+
+#: ../template/default/at_timer_list.html:178
+msgid "Delete Selected Auto Timers"
+msgstr "Borrar autoprogramaciones elegidas"
+
+#: ../template/default/prog_summary.html:20
+#: ../template/default/prog_timeline.html:74
+msgid "What's on:"
+msgstr "Se puede ver:"
+
+#: ../template/default/prog_summary.html:20
+#: ../template/default/prog_timeline.html:76
+msgid "now"
+msgstr "ahora"
+
+#: ../template/default/prog_summary.html:20
+#: ../template/default/prog_timeline.html:82
+msgid "at:"
+msgstr " a la/s:"
+
+#: ../template/default/prog_summary.html:43
+#: ../template/default/prog_list.html:19
+#: ../template/default/rec_list.html:150
+#: ../template/default/prog_list2.html:52
+msgid "Stream"
+msgstr "Flujo"
+
+#: ../template/default/prog_summary.html:62
+msgid "more"
+msgstr "m&aacute;s"
+
+#: ../template/default/prog_summary.html:79
+msgid "TV select"
+msgstr "cambiar canal"
+
+#: ../template/default/prog_summary.html:83
+msgid "Search for other show times"
+msgstr "buscar repeticiones"
+
+#: ../template/default/prog_summary.html:87
+msgid "More Information"
+msgstr "m&aacute;s info"
+
+#: ../template/default/prog_summary.html:93
+msgid "Record"
+msgstr "Grabar estreno"
+
+#: ../template/default/config.html:38
+msgid "General Settings"
+msgstr "Propiedades generales"
+
+#: ../template/default/config.html:44
+msgid "Template:"
+msgstr "Interfaz:"
+
+#: ../template/default/config.html:57
+msgid "Skin:"
+msgstr "Piel:"
+
+#: ../template/default/config.html:69
+msgid "Login Page:"
+msgstr "P&aacute;gina de inicio:"
+
+#: ../template/default/config.html:81
+msgid "Number of DVB Cards:"
+msgstr "Cantidad tarjetas-DVB:"
+
+#: ../template/default/config.html:95
+msgid "Identification"
+msgstr "Identificaciones"
+
+#: ../template/default/config.html:100
+msgid "Username:"
+msgstr "Nombre del usuario:"
+
+#: ../template/default/config.html:106
+msgid "Password:"
+msgstr "Contrase&ntilde;a:"
+
+#: ../template/default/config.html:112
+msgid "Guest Account:"
+msgstr "Acceso como invitado:"
+
+#: ../template/default/config.html:121
+msgid "Guest Username:"
+msgstr "Nombre como invitado:"
+
+#: ../template/default/config.html:127
+msgid "Guest Password:"
+msgstr "Contrase&ntilde;a como invitado:"
+
+#: ../template/default/config.html:146
+msgid "Hours:"
+msgstr "Rango de hora/s:"
+
+#: ../template/default/config.html:152
+msgid "Times:"
+msgstr "Horas:"
+
+#: ../template/default/config.html:173
+msgid "Active:"
+msgstr "Activadas:"
+
+#: ../template/default/config.html:182
+msgid "Timeout:"
+msgstr "Actualizaci&oacute;n cada:"
+
+#: ../template/default/config.html:183
+#: ../template/default/config.html:240
+#: ../template/default/config.html:246
+msgid "minutes"
+msgstr "minutos"
+
+#: ../template/default/config.html:201
+#: ../template/default/config.html:239
+msgid "Time Margin at Start:"
+msgstr "M&aacute;s tiempo al principio:"
+
+#: ../template/default/config.html:207
+#: ../template/default/config.html:245
+msgid "Time Margin at Stop:"
+msgstr "M&aacute;s tiempo al final:"
+
+#: ../template/default/config.html:260
+msgid "Streaming"
+msgstr "Flujo"
+
+#: ../template/default/config.html:265
+msgid "Live Streaming"
+msgstr "Flujo en vivo"
+
+#: ../template/default/config.html:274
+msgid "Recordings Streaming"
+msgstr "Flujo de grabaciones"
+
+#: ../template/default/config.html:283
+msgid "HTTP Port of Streamdev (also possible 3000/ts):"
+msgstr "Puerto-HTTP para el flujo (3000/ts tambi&eacute;n posible):"
+
+#: ../template/default/config.html:289
+msgid "Path to VDR Recordings:"
+msgstr "Ruta de las grabaciones:"
+
+#: ../template/default/config.html:296
+msgid "Bandwidth of Streams:"
+msgstr "Ancho de banda del flujo:"
+
+#: ../template/default/config.html:323
+msgid "Channel Selections"
+msgstr "Emisoras preferidas"
+
+#: ../template/default/config.html:333
+msgid "In &quot;Timeline&quot;?"
+msgstr "&iquest;Usar en &quot;Tabla de tiempo&quot;?"
+
+#: ../template/default/config.html:342
+msgid "In &quot;Channels&quot; / &quot;Playing Today&quot;?"
+msgstr "&iquest;Usar en &quot;Datos de la gu&iacute;a electr&oacute;nica (EPG)&quot;?"
+
+#: ../template/default/config.html:351
+msgid "In &quot;What's On Now&quot;?"
+msgstr "&iquest;Usar en &quot;Estrenos ahora&quot;?"
+
+#: ../template/default/config.html:360
+msgid "In &quot;Auto Timer&quot;?"
+msgstr "&iquest;Usar en &quot;Autoprogramaciones&quot;?"
+
+#: ../template/default/config.html:404
+msgid "Apply"
+msgstr "Aplicar"
+
+#: ../template/default/timer_list.html:38
+msgid "New Timer"
+msgstr "A&ntilde;adir programaci&oacute;n"
+
+#: ../template/default/timer_list.html:224
+#: ../template/default/rec_list.html:52
+msgid "Date"
+msgstr "Fecha"
+
+#: ../template/default/timer_list.html:278
+msgid "This timer is inactive!"
+msgstr "&iexcl;&Eacute;sta programaci&oacute;n est&aacute; desactivada!"
+
+#: ../template/default/timer_list.html:281
+msgid "This timer is impossible!"
+msgstr "&iexcl;&Eacute;sta programaci&oacute;n es imposible!"
+
+#: ../template/default/timer_list.html:284
+msgid "No more timers possible!"
+msgstr "&iexcl;No se puede a&ntilde;adir m&aacute;s!"
+
+#: ../template/default/timer_list.html:287
+msgid "Timer OK."
+msgstr "&Eacute;sta programaci&oacute;n es posible."
+
+#: ../template/default/timer_list.html:293
+msgid "Edit timer status?"
+msgstr "&iquest;Cambiar estado de la programaci&oacute;n?"
+
+#: ../template/default/timer_list.html:297
+msgid "VPS"
+msgstr "VPS"
+
+#: ../template/default/timer_list.html:298
+msgid "Auto"
+msgstr "Auto"
+
+#: ../template/default/timer_list.html:350
+msgid "Delete Selected Timers"
+msgstr "Borrar programaciones elegidas"
+
+#: ../template/default/prog_list.html:29
+#: ../template/default/prog_list2.html:34
+msgid "Go!"
+msgstr "&iexcl;venga!"
+
+#: ../template/default/error.html:6
+msgid "Error!"
+msgstr "&iexcl;Error!"
+
+#: ../template/default/tv.html:5
+#: ../template/default/tv_flash.html:4
+msgid "TV"
+msgstr "TV"
+
+#: ../template/default/tv.html:182
+msgid "Interval:"
+msgstr "Intervalo:"
+
+#: ../template/default/tv.html:185
+#: ../template/default/tv.html:186
+#: ../template/default/tv.html:187
+#: ../template/default/tv.html:188
+#: ../template/default/tv.html:189
+#: ../template/default/tv.html:190
+#: ../template/default/tv.html:191
+msgid "sec."
+msgstr "seg"
+
+#: ../template/default/tv.html:193
+#: ../template/default/tv.html:200
+msgid "G"
+msgstr "C"
+
+#: ../template/default/tv.html:193
+#: ../template/default/tv.html:200
+msgid "Grab the picture!"
+msgstr "&iexcl;Captura la imagen!"
+
+#: ../template/default/tv.html:194
+msgid "Size:"
+msgstr "Dimensiones:"
+
+#: ../template/default/prog_detail.html:28
+msgid "close"
+msgstr "cerrar"
+
+#: ../template/default/prog_detail.html:30
+msgid "view"
+msgstr "cambiar"
+
+#: ../template/default/prog_detail.html:31
+msgid "record"
+msgstr "grabar"
+
+#: ../template/default/prog_detail.html:32
+msgid "search"
+msgstr "repeticiones"
+
+#: ../template/default/prog_detail.html:34
+msgid "Lookup movie in the Internet-Movie-Database (IMDb)"
+msgstr "Buscar la pel&iacute;cula en la base de datos en Internet (IMDb)"
+
+#: ../template/default/rec_list.html:19
+msgid "Total:"
+msgstr "Espacio en el disco:"
+
+#: ../template/default/rec_list.html:19
+#: ../template/default/rec_list.html:20
+msgid "h"
+msgstr "h."
+
+#: ../template/default/rec_list.html:20
+msgid "Free:"
+msgstr "Espacio disponible:"
+
+#: ../template/default/rec_list.html:100
+msgid "Total"
+msgstr "en total"
+
+#: ../template/default/rec_list.html:109
+#: ../template/default/rec_list.html:112
+msgid "New"
+msgstr "nueva"
+
+#: ../template/default/rec_list.html:130
+#: ../template/default/rec_edit.html:63
+msgid "Rename"
+msgstr "Renombrar"
+
+#: ../template/default/rec_list.html:137
+msgid "Delete recording?"
+msgstr "&iquest;Borrar grabaci&oacute;n?"
+
+#: ../template/default/rec_list.html:168
+msgid "Commands:"
+msgstr "&Oacute;rdenes:"
+
+#: ../template/default/rec_list.html:174
+msgid "Run"
+msgstr "Iniciar"
+
+#: ../template/default/rec_list.html:174
+msgid "Really run this command?"
+msgstr "&iquest;Ejecutar el &oacute;rden de verdad?"
+
+#: ../template/default/rec_list.html:181
+#: ../template/default/rec_list.html:187
+msgid "Delete all selected recordings?"
+msgstr "&iquest;Borrar en serio las grabaciones elegidas?"
+
+#: ../template/default/rec_list.html:181
+#: ../template/default/rec_list.html:187
+msgid "Delete Selected Recordings"
+msgstr "Borrar grabaciones elegidas"
+
+#: ../template/default/prog_timeline.html:99
+msgid "Timeline:"
+msgstr "Tabla de tiempo:"
+
+#: ../template/default/prog_timeline.html:99
+msgid "to"
+msgstr "hasta"
+
+#: ../template/default/rec_edit.html:6
+#: ../template/default/rec_edit.html:15
+msgid "Rename Recording"
+msgstr "Renombrar grabaci&oacute;n"
+
+#: ../template/default/rec_edit.html:38
+msgid "Original Name of Recording:"
+msgstr "T&iacute;tulo actual de la grabaci&oacute;n:"
+
+#: ../template/default/rec_edit.html:44
+msgid "New Name of Recording:"
+msgstr "T&iacute;tulo nuevo de la grabaci&oacute;n:"
+
+#: ../vdradmind.pl:222
+msgid "What's your VDR hostname (e.g video.intra.net)?"
+msgstr "¿Cuál es el nombre del sitio del VDR (p.e. video.intra.net)?"
+
+#: ../vdradmind.pl:223
+msgid "On which port does VDR listen to SVDRP queries?"
+msgstr "¿Cuál puerto esta vigilando VDR para requeridas de SVDRP?"
+
+#: ../vdradmind.pl:224
+msgid "On which address should VDRAdmin listen (0.0.0.0 for any)?"
+msgstr "¿En qué dirección debe VDRAdmin escuchar (0.0.0.0 para todas)?"
+
+#: ../vdradmind.pl:225
+msgid "On which port should VDRAdmin listen?"
+msgstr "¿Qué puerto debe VDRAdmin escuchar ?"
+
+#: ../vdradmind.pl:226
+msgid "Username?"
+msgstr "¿Nombre del usuario?"
+
+#: ../vdradmind.pl:227
+msgid "Password?"
+msgstr "¿Contraseña?"
+
+#: ../vdradmind.pl:228
+msgid "Where are your recordings stored?"
+msgstr "Introduce la ruta de las grabaciones:"
+
+#: ../vdradmind.pl:229
+msgid "Where are your VDR's configuration files located?"
+msgstr "Introduce la ruta de los archivos de configuración:"
+
+#: ../vdradmind.pl:235
+msgid "Config file written successfully."
+msgstr "¡Los archivos de configuración han creado!"
+
+#: ../vdradmind.pl:282
+#, perl-format
+msgid "vdradmind.pl %s started with pid %d."
+msgstr "vdradmind.pl %s se ha iniciado con pid %d."
+
+#: ../template/i18n.pl:12
+msgid "January"
+msgstr "Enero"
+
+#: ../template/i18n.pl:13
+msgid "February"
+msgstr "Febrero"
+
+#: ../template/i18n.pl:14
+msgid "March"
+msgstr "Marzo"
+
+#: ../template/i18n.pl:15
+msgid "April"
+msgstr "Abril"
+
+#: ../template/i18n.pl:16
+msgid "May"
+msgstr "Mayo"
+
+#: ../template/i18n.pl:17
+msgid "June"
+msgstr "Junio"
+
+#: ../template/i18n.pl:18
+msgid "July"
+msgstr "Julio"
+
+#: ../template/i18n.pl:19
+msgid "August"
+msgstr "Agosto"
+
+#: ../template/i18n.pl:20
+msgid "September"
+msgstr "Septiembre"
+
+#: ../template/i18n.pl:21
+msgid "October"
+msgstr "Octubre"
+
+#: ../template/i18n.pl:22
+msgid "November"
+msgstr "Noviembre"
+
+#: ../template/i18n.pl:23
+msgid "December"
+msgstr "Diciembre"
+
+#: ../template/i18n.pl:28
+msgid "Playing Today?"
+msgstr "Estrenos hoy"
+
+#: ../template/i18n.pl:31
+msgid "Timers"
+msgstr "Programaciones"
+
+#: ../template/i18n.pl:36
+msgid "Not found"
+msgstr "No encontrado"
+
+#: ../template/i18n.pl:37
+msgid "The requested URL was not found on this server!"
+msgstr "&iexcl;No encontrado la URL requerida, en el servidor!"
+
+#: ../template/i18n.pl:38
+#, perl-format
+msgid "The URL &quot;%s&quot; was not found on this server!"
+msgstr "&iexcl;No encontrado la URL %s en el servidor!"
+
+#: ../template/i18n.pl:39
+msgid "Forbidden"
+msgstr "Prohibido"
+
+#: ../template/i18n.pl:40
+msgid "You don't have permission to access this function!"
+msgstr "&iexcl;No tienes permiso para &eacute;sta funcci&oacute;n!"
+
+#: ../template/i18n.pl:41
+#, perl-format
+msgid "Access to file &quot;%s&quot; denied!"
+msgstr "&iexcl;Acceso al archivo %s negado!"
+
+#: ../template/i18n.pl:42
+#, perl-format
+msgid "Can't open file &quot;%s&quot;!"
+msgstr "&iexcl;No se pudo abrir el archivo %s!"
+
+#: ../template/i18n.pl:43
+#, perl-format
+msgid "Can't connect to VDR at %s!"
+msgstr "&iexcl;No se pudo estabilizar la conexci&oacute;n a %s!"
+
+#: ../template/i18n.pl:44
+#, perl-format
+msgid "Error while sending command to VDR at %s"
+msgstr "Error mientras mand&oacute; el orden a %s "
+
+#: ../template/i18n.pl:48
+msgid "Schedule"
+msgstr "Vista general"
+
+#: ../template/i18n.pl:53
+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&oacute;n:</b>\n"
+"<p>Vista general de todas las programaciones.<br>\n"
+"H&aacute;z cl&iacute;c encima de |<img src=\"bilder/poempl_gruen.gif\" alt=\"activado\" valign=\"center\"> <i>s&iacute;</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&eacute;n en la misma frecuencia. Con el s&iacute;mbolo <img src=\"bilder/poempl_rot.gif\" alt=\"imposible\" valign=\"center\"> la programaci&otilde;n es imposible.<br>\n"
+"Para modificar un registro, h&aacute;z cl&iacute;c encima del s&iacute;mbolo <img src=\"bilder/edit.gif\" alt=\"Lap&iacute;z\" valign=\"center\">, para borrar encima de 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&aacute;z cl&iacute;c encima <i>Borrar programaciones elegidas</i> al final de la lista.</p>"
+
+#: ../template/i18n.pl:61
+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&ntilde;adir programaci&oacute;n:</b>\n"
+"<p>En &eacute;sta ventana se a&ntilde;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>"
+
+#: ../template/i18n.pl:65
+msgid ""
+"<b>Auto Timer:</b><br>\n"
+"<p>An overview of all Auto Timers</p>\n"
+"<p>Click <i>Yes</i> or <i>No</i> in the <i>Active</i> column to (de-)activate that Auto Timer.</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 Auto Timer. If you want to delete multiple Auto Timers all at once, you have to check the boxes (<input type=\"checkbox\" checked>) on the right and finally click <i>Delete selected Auto Timers</i>.</p>"
+msgstr ""
+"<b>Autoprogramaci&oacute;n:</b><br>\n"
+"<p>Vista general de todos los registros de Autoprogramaci&oacute;n.</p>\n"
+"<p>H&aacute;z cl&iacute;c encima de |<img src=\"bilder/poempl_gruen.gif\" alt=\"encendido\" valign=\"center\"> <i>s&iacute;</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&aacute;z cl&iacute;c encima del s&iacute;mbolo <img src=\"bilder/edit.gif\" alt=\"Lap&iacute;z\" valign=\"center\">, para borrar encima de 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&aacute;z cl&iacute;c encima de <i>Borrar autoprogramaciones elegidas</i> al final de la lista.\n"
+"</p>"
+
+#: ../template/i18n.pl:71
+msgid ""
+"<b>Edit Auto Timer:</b><br>\n"
+"<p>Auto Timer is a key feature of VDRAdmin. An Auto Timer consists of one or more search terms and some other settings, that are looked for regularly in the Electronic Program Guide (EPG). On match Auto Timer 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 Auto Timer. 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>Auto Timer Active:</b><br>\n"
+"<p><i>Yes</i> activates and <i>No</i> deactivates this Auto Timer. Please note that VDR timers already added by VDRAdmin are not deleted if you deactivate this Auto Timer.</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, &quot;X-Files&quot; matches anything &quot;x-files&quot; 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 sources (undocumented feature).</p>"
+msgstr ""
+"<b>A&ntilde;adir/modificar nueva autoprogramaci&oacute;n:</b>\n"
+"<p>La autoprogramaci&oacute;n es una funci&oacute;n b&aacute;sica del VDR Admin. Una autoprogramaci&oacute;n se refiere a una o m&aacute;s <i>Palabras claves</i>, cuales usar&aacute; para analizar los datos de la gu&iacute;a electr&oacute;nica (EPG) con un rango de tiempo ajustable. Cuando encuentra las palabras elegidas teniendo en cuenta la hora y la emisora, crear&aacute; autom&aacute;ticamente una programaci&oacute;n para el estreno encontrado &#150; bastante &uacute;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&oacute;n. Una o m&aacute;s palabras son obligatorias, para que puede actuar. Detalles, por palabras &uacute;tiles y como evitar grabaciones in&uacute;tiles, se puede encontrar en la ayuda para <i>Palabras claves</i> m&aacute;s abajo.</p>\n"
+"\n"
+"<b>Auto programaci&oacute;n activo:</b>\n"
+"<p>Marcando |<input type=\"radio\" checked> <i>s&iacute;</i> | activar&aacute; la autoprogramaci&oacute;n, y se va a buscar regularmente en la gu&iacute;a electr&oacute;nica (EPG) por las <i>Palabras claves</i> y crear&aacute; una programaci&oacute;n, cuando cumple con las <i>Palabras claves</i> como con los par&aacute;metros dem&aacute;s.</br>\n"
+"Con |<input type=\"radio\" checked> <i>no</i> | se desactiva la autoprogramaci&oacute;n, sin borrarla. No afectar&aacute; a las programaciones ya creadas por esta autoprogramaci&oacute;n &#150; a lo mejor tienes que borrarla manualmente en el menu.<i>Autoprogramaci&oacute;n</i>.<br>\n"
+"Con |<input type=\"radio\" checked> <i>una vez</i> | la autoprogramaci&oacute;n acaba de vigilar desp&uacute;es de crear una programaci&oacute;n. A partir de entonces ser&aacute;n programaciones normales sin las ventajas de una autoprogramaci&oacute;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&Uacute;SCULA o min&uacute;scula. Por eso las palabras claves \"X-Pasta\" lograr&aacute; 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&aacute;n \"Pasta - La cocina extra&ntilde;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&oacute;lo letras y cifras como palabras claves, por que la gu&iacute;a electr&oacute;nica (EPG) se l&iacute;mita bastante en el uso de todas caracteres posibles o los interpreta m&aacute;l.\n"
+"<p>Tambi&eacute;n deberia ser posible usar expresiones regulares &#150; Expertos puedan extraer info del texto fuente (undocumented feature).\n"
+"</p>"
+
+#: ../template/i18n.pl:83
+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&iacute; se puede ver todas las grabaciones hechas en el VDR conectado. \n"
+"Desde aqu&iacute; se puede cambiar t&iacute;tulo y carpeta de las grabaciones, haciendo cl&iacute;c encima del s&iacute;mbolo <img src=\"bilder/edit.gif\" alt=\"pen\" valign=\"center\">. Tambien se puede eliminar grabaciones con el s&iacute;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>"
+
+#: ../template/i18n.pl:87
+msgid ""
+"<b>Configuration:</b>\n"
+"<p>Here you can change general settings and base settings for timers, auto timers, 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, auto timers, 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 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 auto timers:</b>\n"
+"<p>Clicking on |<input type=\"radio\"> <i>Yes</i> | or |<input type=\"radio\" checked> <i>No</i> | activates or deactivates the auto timer function. You can also specify the interval, the the epg data is checked for updating the auto timers.<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 auto timers, 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&oacute;n:</b>\n"
+"<p>En &eacute;sta p&aacute;gina se ajusta las propiedades generales, las propiedades de la programaci&oacute;n y de la autoprogramaci&oacute;n, como las emisoras preferidas y por fin los ajustes del flujo.</p>\n"
+"\n"
+"<b>Propiedades generales:</b>\n"
+"<p>Aqu&iacute; se ajusta el idioma, la p&aacute;gina principal, las pieles y cuantas tarjetas de DVB hay.</p>\n"
+"\n"
+"<b>Identificaciones:</b>\n"
+"<p>H&aacute;z cl&iacute;c encima de |<input type=\"radio\"> <i>s&iacute;</i> | o |<input type=\"radio\" checked> <i>no</i> | para activar una cuenta de un <i>invitado</i>. Usuario y contrase&ntilde;a tienes que cambiar por algunas palabras m&aacute;s seguras, si est&aacute;s conectado al &iacute;nternet.</p>\n"
+"\n"
+"<b>Tabla de tiempo:</b>\n"
+"<p>&Eacute;sta p&aacute;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 &uacute;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&aacute;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&aacute;z cl&iacute;c encima de |<input type=\"radio\" checked> <i>s&iacute;</i> | o |<input type=\"radio\"> <i>no</i> | para activar las autoprogramaciones. Ajusta tambien con que frequencia se van a hacer las b&uacute;squedas en los datos de la gu&iacute;a electr&oacute;nica (EPG) por las <i>Palabras claves</i>.\n"
+"<br>La durabilidad se puede ajustar entre 0 y 99 para dar a la grabaci&oacute;n creada de &eacute;sta autoprogramaci&oacute;n el valor deseado. El valor se refiere al d&iacute;a de la grabacion - m&aacute;s el rango que pones.<br>\n"
+"Con el valor de la prioridad de la nueva grabacion tienes el segundo par&aacute;metro, para que VDR pueda decidir, cu&aacute;l de las grabaciones hechas se puede borrar, cuando necesita espacio en el disco duro. Por los 2 valores sabr&aacute;, si una grabaci&oacute;n ha caducado y con una prioridad m&aacute;s alta de la grabaci&oacute;n deseada entonces borrar&iacute;a &eacute;sta antigua. As&iacute; te ofrece VDR ajustar prioridades m&aacute;s altas a aquellas grabaciones, que te importan de verdad.<br> Durabilidad=99 por ejemplo, crear&aacute; una grabaci&oacute;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&oacute;n creada de &eacute;sta programaci&oacute;n el valor deseado. El valor se refiere al d&iacute;a de la grabaci&oacute;n - m&aacute;s el rango que pones.</p>\n"
+"\n"
+"<b>Propiedades del flujo</b>\n"
+"<p>Si quieres usar la funci&oacute;n flujo (ver grabaciones por red) ajuste aqu&iacute; 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&iacute; se carga mas r&aacute;pido la p&aacute;gina. Activa las p&aacute;ginas deseadas con los botones |<input type=\"radio\" checked> <i>s&iacute;</i> | o |<input type=\"radio\"> <i>no</i> | junto a los registros.\n"
+"<br>El campo abajo te permite elegir las emisoras deseadas, marc&aacute;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"
+
+#: ../template/i18n.pl:117
+msgid "No help available yet. For adding or changing text please contact mail@andreas.vdr-developer.org."
+msgstr "Para &eacute;sta funci&oacute;n no hay ayuda disponible hasta ahora. Para a&ntilde;adir o modificar un texto, por favor pon te en contacto con mail@andreas.vdr-developer.org."
+
diff --git a/po/fi.po b/po/fi.po
new file mode 100644
index 0000000..77f38cc
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,1110 @@
+#
+# 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.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDRAdmin-0.97-AM3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-05-09 12:52+0200\n"
+"Last-Translator: FULL NAME <EMAIL>\n"
+"Language-Team: LANGUAGE <LL.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../template/default/index.html:18
+msgid "Your Browser does not support frames!"
+msgstr "Selaimesi ei tue kehyksi&auml;!"
+
+#: ../template/default/timer_new.html:6 ../template/default/timer_new.html:45
+msgid "Create New Timer"
+msgstr "Luo uusi ajastin"
+
+#: ../template/default/timer_new.html:6 ../template/default/timer_new.html:45
+msgid "Edit Timer"
+msgstr "Muokkaa ajastinta"
+
+#: ../template/default/timer_new.html:50 ../template/default/at_new.html:20
+#: ../template/default/at_timer_list.html:31
+#: ../template/default/config.html:20 ../template/default/timer_list.html:46
+#: ../template/default/rec_list.html:26
+msgid "Help"
+msgstr "Opaste"
+
+#: ../template/default/timer_new.html:67
+msgid "Timer Active:"
+msgstr "Aktiivinen:"
+
+#: ../template/default/timer_new.html:69 ../template/default/at_new.html:39
+#: ../template/default/at_new.html:43 ../template/default/at_new.html:145
+#: ../template/default/at_timer_list.html:110
+#: ../template/default/config.html:114 ../template/default/config.html:175
+#: ../template/default/config.html:267 ../template/default/config.html:276
+#: ../template/default/config.html:335 ../template/default/config.html:344
+#: ../template/default/config.html:353 ../template/default/config.html:362
+#: ../template/default/timer_list.html:295
+msgid "Yes"
+msgstr "Kyll&auml;"
+
+#: ../template/default/timer_new.html:70 ../template/default/at_new.html:40
+#: ../template/default/at_new.html:44 ../template/default/at_new.html:146
+#: ../template/default/at_timer_list.html:113
+#: ../template/default/config.html:115 ../template/default/config.html:176
+#: ../template/default/config.html:268 ../template/default/config.html:277
+#: ../template/default/config.html:336 ../template/default/config.html:345
+#: ../template/default/config.html:354 ../template/default/config.html:363
+#: ../template/default/timer_list.html:296
+msgid "No"
+msgstr "Ei"
+
+#: ../template/default/timer_new.html:76
+msgid "Auto Timer Checking:"
+msgstr "Automaattisen ajastimen tarkistus:"
+
+#: ../template/default/timer_new.html:79
+msgid "Transmission Identification"
+msgstr "L&auml;hetteen tunniste"
+
+#: ../template/default/timer_new.html:81 ../template/default/rec_list.html:63
+msgid "Time"
+msgstr "Aika"
+
+#: ../template/default/timer_new.html:82 ../template/default/tv.html:184
+msgid "off"
+msgstr "Pois"
+
+#: ../template/default/timer_new.html:88 ../template/default/at_new.html:84
+#: ../template/default/prog_list.html:23
+#: ../template/default/prog_list2.html:29
+msgid "Channel:"
+msgstr "Kanava:"
+
+#: ../template/default/timer_new.html:100
+msgid "Day Of Recording:"
+msgstr "P&auml;iv&auml;:"
+
+#: ../template/default/timer_new.html:104 ../template/default/at_new.html:72
+#: ../template/i18n.pl:3
+msgid "Monday"
+msgstr "Maanantai"
+
+#: ../template/default/timer_new.html:105 ../template/default/at_new.html:73
+#: ../template/i18n.pl:4
+msgid "Tuesday"
+msgstr "Tiistai"
+
+#: ../template/default/timer_new.html:106 ../template/default/at_new.html:74
+#: ../template/i18n.pl:5
+msgid "Wednesday"
+msgstr "Keskiviikko"
+
+#: ../template/default/timer_new.html:107 ../template/default/at_new.html:75
+#: ../template/i18n.pl:6
+msgid "Thursday"
+msgstr "Torstai"
+
+#: ../template/default/timer_new.html:108 ../template/default/at_new.html:76
+#: ../template/i18n.pl:7
+msgid "Friday"
+msgstr "Perjantai"
+
+#: ../template/default/timer_new.html:109 ../template/default/at_new.html:77
+#: ../template/i18n.pl:8
+msgid "Saturday"
+msgstr "Lauantai"
+
+#: ../template/default/timer_new.html:110 ../template/default/at_new.html:78
+#: ../template/i18n.pl:2
+msgid "Sunday"
+msgstr "Sunnuntai"
+
+#: ../template/default/timer_new.html:116
+msgid "Start Time:"
+msgstr "Aloitusaika:"
+
+#: ../template/default/timer_new.html:121
+#: ../template/default/timer_new.html:132 ../template/default/at_new.html:102
+#: ../template/default/at_new.html:113
+#: ../template/default/prog_summary.html:17
+#: ../template/default/prog_summary.html:22
+#: ../template/default/prog_list.html:61
+#: ../template/default/prog_timeline.html:71
+#: ../template/default/prog_timeline.html:84
+#: ../template/default/prog_timeline.html:99
+#: ../template/default/prog_list2.html:71
+msgid "o'clock"
+msgstr " "
+
+#: ../template/default/timer_new.html:127
+msgid "End Time:"
+msgstr "Lopetusaika:"
+
+#: ../template/default/timer_new.html:138 ../template/default/at_new.html:119
+#: ../template/default/at_timer_list.html:133
+#: ../template/default/config.html:188 ../template/default/config.html:233
+#: ../template/default/timer_list.html:316
+msgid "Priority:"
+msgstr "Prioriteetti:"
+
+#: ../template/default/timer_new.html:144 ../template/default/at_new.html:127
+#: ../template/default/at_timer_list.html:133
+#: ../template/default/config.html:194 ../template/default/config.html:227
+#: ../template/default/timer_list.html:316
+msgid "Lifetime:"
+msgstr "Elinaika:"
+
+#: ../template/default/timer_new.html:150
+msgid "Title of Recording:"
+msgstr "Tallenteen nimi:"
+
+#: ../template/default/timer_new.html:156
+msgid "Summary:"
+msgstr "Tallenteen kuvaus:"
+
+#: ../template/default/timer_new.html:169 ../template/default/at_new.html:166
+#: ../template/default/config.html:403
+msgid "Save"
+msgstr "Tallenna"
+
+#: ../template/default/timer_new.html:170 ../template/default/at_new.html:167
+#: ../template/default/rec_edit.html:64
+msgid "Cancel"
+msgstr "Peru"
+
+#: ../template/default/left.html:34 ../template/default/prog_summary.html:7
+#: ../template/default/prog_timeline.html:7 ../template/i18n.pl:27
+msgid "What's On Now?"
+msgstr "Menossa nyt"
+
+#: ../template/default/left.html:38 ../template/default/prog_list2.html:6
+#: ../template/default/prog_list2.html:25
+msgid "Playing Today"
+msgstr "Ohjelmisto t&auml;n&auml;&auml;n"
+
+#: ../template/default/left.html:42 ../template/default/config.html:141
+#: ../template/i18n.pl:29
+msgid "Timeline"
+msgstr "Aikajana"
+
+#: ../template/default/left.html:46 ../template/default/prog_list.html:6
+#: ../template/i18n.pl:30
+msgid "Channels"
+msgstr "Kanavat"
+
+#: ../template/default/left.html:50 ../template/default/config.html:222
+#: ../template/default/timer_list.html:6
+#: ../template/default/timer_list.html:30
+msgid "Timer"
+msgstr "Ajastimet"
+
+#: ../template/default/left.html:54 ../template/default/at_timer_list.html:6
+#: ../template/default/at_timer_list.html:15
+#: ../template/default/config.html:168
+msgid "Auto Timer"
+msgstr "Automaattiset ajastimet"
+
+#: ../template/default/left.html:58 ../template/default/rec_list.html:6
+#: ../template/default/rec_list.html:15 ../template/i18n.pl:32
+msgid "Recordings"
+msgstr "Tallenteet"
+
+#: ../template/default/left.html:62 ../template/default/config.html:5
+#: ../template/default/config.html:15
+msgid "Configuration"
+msgstr "Asetukset"
+
+#: ../template/default/left.html:66 ../template/default/rc.html:6
+msgid "Remote Control"
+msgstr "Kauko-ohjain"
+
+#: ../template/default/left.html:70
+msgid "Watch TV"
+msgstr "Katso TV:t&auml;"
+
+#: ../template/default/left.html:77
+msgid "Search"
+msgstr "Etsi"
+
+#: ../template/default/at_new.html:6 ../template/default/at_new.html:16
+msgid "Add New Auto Timer"
+msgstr "Lis&auml;&auml; uusi automaattinen ajastin"
+
+#: ../template/default/at_new.html:6 ../template/default/at_new.html:16
+msgid "Edit Auto Timer"
+msgstr "Muokkaa automaattista ajastinta"
+
+#: ../template/default/at_new.html:36
+msgid "Auto Timer Active:"
+msgstr "Aktiivinen:"
+
+#: ../template/default/at_new.html:41 ../template/default/at_new.html:45
+msgid "oneshot"
+msgstr "Kerran"
+
+#: ../template/default/at_new.html:52
+msgid "Search Patterns:"
+msgstr "Hakuehto:"
+
+#: ../template/default/at_new.html:60
+msgid "Search in:"
+msgstr "Hakukent&auml;t:"
+
+#: ../template/default/at_new.html:62
+msgid "Title"
+msgstr "Otsikko"
+
+#: ../template/default/at_new.html:63
+msgid "Subtitle"
+msgstr "Lyhyt kuvaus"
+
+#: ../template/default/at_new.html:64
+msgid "Description"
+msgstr "Kuvaus"
+
+#: ../template/default/at_new.html:70
+msgid "Search only on these days:"
+msgstr "Etsi valittuina p&auml;ivin&auml;:"
+
+#: ../template/default/at_new.html:87
+msgid "all"
+msgstr "Kaikki"
+
+#: ../template/default/at_new.html:97
+msgid "Starts Before:"
+msgstr "Alkaa ennen:"
+
+#: ../template/default/at_new.html:108
+msgid "Ends Before:"
+msgstr "Loppuu ennen:"
+
+#: ../template/default/at_new.html:135
+msgid "Episode:"
+msgstr "Sarjatallennus:"
+
+#: ../template/default/at_new.html:143
+msgid "Remember programmed timers:"
+msgstr "Muista ohjelmoidut ajastimet:"
+
+#: ../template/default/at_new.html:152
+msgid "Directory:"
+msgstr "Hakemisto:"
+
+#: ../template/default/noauth.html:5 ../template/default/noauth.html:11
+msgid "Authorization Required"
+msgstr "K&auml;ytt&auml;j&auml;tunnistus puutteellinen"
+
+#: ../template/default/noauth.html:12
+msgid ""
+"This server could not verify that you are authorized to access the document "
+"requested. Either you supplied the wrong credentials (e.g. bad password), or "
+"your browser doesn't understand how to supply the credentials required."
+msgstr ""
+"K&auml;ytt&auml;j&auml;tunnistus ei onnistu! Tarkista sy&ouml;tt&auml;m&auml;"
+"si k&auml;ytt&auml;j&auml;tunnus/salasana."
+
+#: ../template/default/at_timer_list.html:22
+msgid "New Auto Timer"
+msgstr "Uusi automaattinen ajastin"
+
+#: ../template/default/at_timer_list.html:44
+#: ../template/default/timer_list.html:202
+msgid "Active"
+msgstr "Aktiivinen"
+
+#: ../template/default/at_timer_list.html:55
+#: ../template/default/timer_list.html:213
+msgid "Channel"
+msgstr "Kanava"
+
+#: ../template/default/at_timer_list.html:66
+#: ../template/default/timer_list.html:235
+msgid "Start"
+msgstr "Aloitus"
+
+#: ../template/default/at_timer_list.html:77
+#: ../template/default/timer_list.html:246
+msgid "Stop"
+msgstr "Lopetus"
+
+#: ../template/default/at_timer_list.html:88
+#: ../template/default/timer_list.html:257
+#: ../template/default/rec_list.html:74
+msgid "Name"
+msgstr "Nimi"
+
+#: ../template/default/at_timer_list.html:99
+#: ../template/default/timer_list.html:268
+#: ../template/default/rec_list.html:85
+msgid "Select all/none"
+msgstr "Valitse kaikki/ei yht&auml;&auml;n"
+
+#: ../template/default/at_timer_list.html:139
+#: ../template/default/timer_list.html:326
+msgid "Edit"
+msgstr "Muokkaa"
+
+#: ../template/default/at_timer_list.html:144
+#: ../template/default/timer_list.html:329
+msgid "Delete timer?"
+msgstr "Poistetaanko ajastin?"
+
+#: ../template/default/at_timer_list.html:144
+#: ../template/default/timer_list.html:329
+#: ../template/default/rec_list.html:137
+msgid "Delete"
+msgstr "Poista"
+
+#: ../template/default/at_timer_list.html:166
+msgid "Force Update"
+msgstr "P&auml;ivit&auml;"
+
+#: ../template/default/at_timer_list.html:178
+#: ../template/default/timer_list.html:350
+msgid "Delete all selected timers?"
+msgstr "Poistetaanko valitut ajastimet?"
+
+#: ../template/default/at_timer_list.html:178
+msgid "Delete Selected Auto Timers"
+msgstr "Poista valitut automaattiset ajastimet"
+
+#: ../template/default/prog_summary.html:20
+#: ../template/default/prog_timeline.html:74
+msgid "What's on:"
+msgstr "Menossa"
+
+#: ../template/default/prog_summary.html:20
+#: ../template/default/prog_timeline.html:76
+msgid "now"
+msgstr "nyt"
+
+#: ../template/default/prog_summary.html:20
+#: ../template/default/prog_timeline.html:82
+msgid "at:"
+msgstr "kello:"
+
+#: ../template/default/prog_summary.html:43
+#: ../template/default/prog_list.html:19 ../template/default/rec_list.html:150
+#: ../template/default/prog_list2.html:52
+msgid "Stream"
+msgstr "Toista"
+
+#: ../template/default/prog_summary.html:62
+msgid "more"
+msgstr "lis&auml;&auml;"
+
+#: ../template/default/prog_summary.html:79
+msgid "TV select"
+msgstr "katso"
+
+#: ../template/default/prog_summary.html:83
+msgid "Search for other show times"
+msgstr "etsi vaihtoehtoisia esitysaikoja"
+
+#: ../template/default/prog_summary.html:87
+msgid "More Information"
+msgstr "lis&auml;tietoja"
+
+#: ../template/default/prog_summary.html:93
+msgid "Record"
+msgstr "tallenna"
+
+#: ../template/default/config.html:38
+msgid "General Settings"
+msgstr "Yleiset asetukset"
+
+#: ../template/default/config.html:44
+msgid "Template:"
+msgstr "Pohja:"
+
+#: ../template/default/config.html:57
+msgid "Skin:"
+msgstr "Ulkoasu:"
+
+#: ../template/default/config.html:69
+msgid "Login Page:"
+msgstr "Aloitussivu:"
+
+#: ../template/default/config.html:81
+msgid "Number of DVB Cards:"
+msgstr "DVB-korttien lukum&auml;&auml;r&auml;:"
+
+#: ../template/default/config.html:95
+msgid "Identification"
+msgstr "K&auml;ytt&auml;j&auml;tunnistus"
+
+#: ../template/default/config.html:100
+msgid "Username:"
+msgstr "K&auml;ytt&auml;j&auml;tunnus:"
+
+#: ../template/default/config.html:106
+msgid "Password:"
+msgstr "Salasana:"
+
+#: ../template/default/config.html:112
+msgid "Guest Account:"
+msgstr "Sallitaanko vierailija:"
+
+#: ../template/default/config.html:121
+msgid "Guest Username:"
+msgstr "Vierailijan k&auml;ytt&auml;j&auml;tunnus:"
+
+#: ../template/default/config.html:127
+msgid "Guest Password:"
+msgstr "Vierailijan salasana:"
+
+#: ../template/default/config.html:146
+msgid "Hours:"
+msgstr "Pituus tunteina:"
+
+#: ../template/default/config.html:152
+msgid "Times:"
+msgstr "Ajankohdat:"
+
+#: ../template/default/config.html:173
+msgid "Active:"
+msgstr "K&auml;yt&ouml;ss&auml;:"
+
+#: ../template/default/config.html:182
+msgid "Timeout:"
+msgstr "Odotusaika:"
+
+#: ../template/default/config.html:183 ../template/default/config.html:240
+#: ../template/default/config.html:246
+msgid "minutes"
+msgstr "minuuttia"
+
+#: ../template/default/config.html:201 ../template/default/config.html:239
+msgid "Time Margin at Start:"
+msgstr "Aloitusmarginaali:"
+
+#: ../template/default/config.html:207 ../template/default/config.html:245
+msgid "Time Margin at Stop:"
+msgstr "Lopetusmarginaali:"
+
+#: ../template/default/config.html:260
+msgid "Streaming"
+msgstr "Suoratoisto"
+
+#: ../template/default/config.html:265
+msgid "Live Streaming"
+msgstr "Live-kuvan suoratoisto"
+
+#: ../template/default/config.html:274
+msgid "Recordings Streaming"
+msgstr "Tallenteiden suoratoisto"
+
+#: ../template/default/config.html:283
+msgid "HTTP Port of Streamdev (also possible 3000/ts):"
+msgstr "Streamdev-laajennoksen HTTP-portti (esim. 3000/ts):"
+
+#: ../template/default/config.html:289
+msgid "Path to VDR Recordings:"
+msgstr "VDR-tallenteiden polku:"
+
+#: ../template/default/config.html:296
+msgid "Bandwidth of Streams:"
+msgstr "Kaistanleveys:"
+
+#: ../template/default/config.html:323
+msgid "Channel Selections"
+msgstr "Kanavavalinnat"
+
+#: ../template/default/config.html:333
+msgid "In &quot;Timeline&quot;?"
+msgstr "K&auml;yt&auml; kanavavalintoja &quot;Aikajana&quot;-sivulla"
+
+#: ../template/default/config.html:342
+msgid "In &quot;Channels&quot; / &quot;Playing Today&quot;?"
+msgstr ""
+"K&auml;yt&auml; kanavavalintoja &quot;Kanavat&quot;- ja &quot;Ohjelmisto "
+"t&auml;n&auml;&auml;n&quot;-sivuilla"
+
+#: ../template/default/config.html:351
+msgid "In &quot;What's On Now&quot;?"
+msgstr "K&auml;yt&auml; kanavavalintoja &quot;Menossa nyt&quot;-sivulla"
+
+#: ../template/default/config.html:360
+msgid "In &quot;Auto Timer&quot;?"
+msgstr ""
+"K&auml;yt&auml; kanavavalintoja &quot;Automaattiset ajastimet&quot;-sivulla"
+
+#: ../template/default/config.html:404
+msgid "Apply"
+msgstr "K&auml;yt&auml;"
+
+#: ../template/default/timer_list.html:38
+msgid "New Timer"
+msgstr "Uusi ajastin"
+
+#: ../template/default/timer_list.html:224
+#: ../template/default/rec_list.html:52
+msgid "Date"
+msgstr "P&auml;iv&auml;m&auml;&auml;r&auml;"
+
+#: ../template/default/timer_list.html:278
+msgid "This timer is inactive!"
+msgstr "Ajastin ei ole aktiivinen!"
+
+#: ../template/default/timer_list.html:281
+msgid "This timer is impossible!"
+msgstr "Ajastin ei ole mahdollinen!"
+
+#: ../template/default/timer_list.html:284
+msgid "No more timers possible!"
+msgstr "Maksimim&auml;&auml;r&auml; ajastimia k&auml;yt&ouml;ss&auml;!"
+
+#: ../template/default/timer_list.html:287
+msgid "Timer OK."
+msgstr "Ajastin OK."
+
+#: ../template/default/timer_list.html:293
+msgid "Edit timer status?"
+msgstr "Muokataanko ajastinta?"
+
+#: ../template/default/timer_list.html:297
+msgid "VPS"
+msgstr "VPS"
+
+#: ../template/default/timer_list.html:298
+msgid "Auto"
+msgstr "Automaattinen"
+
+#: ../template/default/timer_list.html:350
+msgid "Delete Selected Timers"
+msgstr "Poista valitut ajastimet"
+
+#: ../template/default/prog_list.html:29
+#: ../template/default/prog_list2.html:34
+msgid "Go!"
+msgstr "Siirry"
+
+#: ../template/default/error.html:6
+msgid "Error!"
+msgstr "Virhe!"
+
+#: ../template/default/tv.html:5 ../template/default/tv_flash.html:4
+msgid "TV"
+msgstr "TV"
+
+#: ../template/default/tv.html:182
+msgid "Interval:"
+msgstr "P&auml;ivitysv&auml;li:"
+
+#: ../template/default/tv.html:185 ../template/default/tv.html:186
+#: ../template/default/tv.html:187 ../template/default/tv.html:188
+#: ../template/default/tv.html:189 ../template/default/tv.html:190
+#: ../template/default/tv.html:191
+msgid "sec."
+msgstr "s"
+
+#: ../template/default/tv.html:193 ../template/default/tv.html:200
+msgid "G"
+msgstr "K"
+
+#: ../template/default/tv.html:193 ../template/default/tv.html:200
+msgid "Grab the picture!"
+msgstr "Kuvankaappaus"
+
+#: ../template/default/tv.html:194
+msgid "Size:"
+msgstr "Koko:"
+
+#: ../template/default/prog_detail.html:28
+msgid "close"
+msgstr "sulje"
+
+#: ../template/default/prog_detail.html:30
+msgid "view"
+msgstr "katso"
+
+#: ../template/default/prog_detail.html:31
+msgid "record"
+msgstr "tallenna"
+
+#: ../template/default/prog_detail.html:32
+msgid "search"
+msgstr "etsi"
+
+#: ../template/default/prog_detail.html:34
+msgid "Lookup movie in the Internet-Movie-Database (IMDb)"
+msgstr "etsi IMBD:st&auml;"
+
+#: ../template/default/rec_list.html:19
+msgid "Total:"
+msgstr "K&auml;yt&ouml;ss&auml;:"
+
+#: ../template/default/rec_list.html:19 ../template/default/rec_list.html:20
+msgid "h"
+msgstr "h"
+
+#: ../template/default/rec_list.html:20
+msgid "Free:"
+msgstr "Vapaana:"
+
+#: ../template/default/rec_list.html:100
+msgid "Total"
+msgstr "K&auml;yt&ouml;ss&auml;"
+
+#: ../template/default/rec_list.html:109 ../template/default/rec_list.html:112
+msgid "New"
+msgstr "Uusi"
+
+#: ../template/default/rec_list.html:130 ../template/default/rec_edit.html:63
+msgid "Rename"
+msgstr "Nime&auml;"
+
+#: ../template/default/rec_list.html:137
+msgid "Delete recording?"
+msgstr "Poistetaanko tallenne?"
+
+#: ../template/default/rec_list.html:168
+msgid "Commands:"
+msgstr "Komennot:"
+
+#: ../template/default/rec_list.html:174
+msgid "Run"
+msgstr "Suorita"
+
+#: ../template/default/rec_list.html:174
+msgid "Really run this command?"
+msgstr "Suoritetaanko komento?"
+
+#: ../template/default/rec_list.html:181 ../template/default/rec_list.html:187
+msgid "Delete all selected recordings?"
+msgstr "Poistetaanko valitut tallenteet?"
+
+#: ../template/default/rec_list.html:181 ../template/default/rec_list.html:187
+msgid "Delete Selected Recordings"
+msgstr "Poista valitut tallenteet"
+
+#: ../template/default/prog_timeline.html:99
+msgid "Timeline:"
+msgstr "Aikajana:"
+
+#: ../template/default/prog_timeline.html:99
+msgid "to"
+msgstr "-"
+
+#: ../template/default/rec_edit.html:6 ../template/default/rec_edit.html:15
+msgid "Rename Recording"
+msgstr "Nime&auml; tallenne"
+
+#: ../template/default/rec_edit.html:38
+msgid "Original Name of Recording:"
+msgstr "Tallenteen alkuper&auml;inen nimi:"
+
+#: ../template/default/rec_edit.html:44
+msgid "New Name of Recording:"
+msgstr "Tallenteen uusi nimi:"
+
+#: ../vdradmind.pl:222
+msgid "What's your VDR hostname (e.g video.intra.net)?"
+msgstr "Anna VDR-koneesi nimi (esim. video.intra.net):"
+
+#: ../vdradmind.pl:223
+msgid "On which port does VDR listen to SVDRP queries?"
+msgstr "Anna VDR-koneesi käyttämä SVDRP-portti:"
+
+#: ../vdradmind.pl:224
+msgid "On which address should VDRAdmin listen (0.0.0.0 for any)?"
+msgstr "Anna VDRAdminin käyttämä osoiteavaruus (0.0.0.0 ei rajoituksia):"
+
+#: ../vdradmind.pl:225
+msgid "On which port should VDRAdmin listen?"
+msgstr "Anna VDRAdminin käyttämä portti:"
+
+#: ../vdradmind.pl:226
+msgid "Username?"
+msgstr "Anna käyttäjätunnus VDRAdminia varten:"
+
+#: ../vdradmind.pl:227
+msgid "Password?"
+msgstr "Anna salasana VDRAdminia varten:"
+
+#: ../vdradmind.pl:228
+msgid "Where are your recordings stored?"
+msgstr "Anna VDR-koneesi tallennehakemiston polku:"
+
+#: ../vdradmind.pl:229
+msgid "Where are your VDR's configuration files located?"
+msgstr "Anna VDR-koneesi konfigurointihakemiston polku:"
+
+#: ../vdradmind.pl:235
+msgid "Config file written successfully."
+msgstr "VDRAdminin konfigurointitiedosto muodostettu."
+
+#: ../vdradmind.pl:282
+#, perl-format
+msgid "vdradmind.pl %s started with pid %d."
+msgstr "vdradmind.pl %s käynnistetty prosessitunnisteella %d."
+
+#: ../template/i18n.pl:12
+msgid "January"
+msgstr "Tammikuu"
+
+#: ../template/i18n.pl:13
+msgid "February"
+msgstr "Helmikuu"
+
+#: ../template/i18n.pl:14
+msgid "March"
+msgstr "Maaliskuu"
+
+#: ../template/i18n.pl:15
+msgid "April"
+msgstr "Huhtikuu"
+
+#: ../template/i18n.pl:16
+msgid "May"
+msgstr "Toukokuu"
+
+#: ../template/i18n.pl:17
+msgid "June"
+msgstr "Kes&auml;kuu"
+
+#: ../template/i18n.pl:18
+msgid "July"
+msgstr "Hein&auml;kuu"
+
+#: ../template/i18n.pl:19
+msgid "August"
+msgstr "Elokuu"
+
+#: ../template/i18n.pl:20
+msgid "September"
+msgstr "Syyskuu"
+
+#: ../template/i18n.pl:21
+msgid "October"
+msgstr "Lokakuu"
+
+#: ../template/i18n.pl:22
+msgid "November"
+msgstr "Marraskuu"
+
+#: ../template/i18n.pl:23
+msgid "December"
+msgstr "Joulukuu"
+
+#: ../template/i18n.pl:28
+msgid "Playing Today?"
+msgstr "T&auml;n&auml;&auml;n"
+
+#: ../template/i18n.pl:31
+msgid "Timers"
+msgstr "Ajastimet"
+
+#: ../template/i18n.pl:36
+msgid "Not found"
+msgstr "Ei l&ouml;ydy"
+
+#: ../template/i18n.pl:37
+msgid "The requested URL was not found on this server!"
+msgstr "URL:ia ei l&ouml;ydy palvelimelta!"
+
+#: ../template/i18n.pl:38
+#, perl-format
+msgid "The URL &quot;%s&quot; was not found on this server!"
+msgstr "URL:ia &quot;%s&quot; ei l&ouml;ydy palvelimelta!"
+
+#: ../template/i18n.pl:39
+msgid "Forbidden"
+msgstr "Kielletty"
+
+#: ../template/i18n.pl:40
+msgid "You don't have permission to access this function!"
+msgstr "Puutteelliset k&auml;ytt&auml;j&auml;oikeudet haluttuun toimintoon!"
+
+#: ../template/i18n.pl:41
+#, perl-format
+msgid "Access to file &quot;%s&quot; denied!"
+msgstr "P&auml;&auml;sy tiedostoon &quot;%s&quot; ev&auml;tty!"
+
+#: ../template/i18n.pl:42
+#, perl-format
+msgid "Can't open file &quot;%s&quot;!"
+msgstr "Tiedostoa &quot;%s&quot; ei pystyt&auml; avaamaan!"
+
+#: ../template/i18n.pl:43
+#, perl-format
+msgid "Can't connect to VDR at %s!"
+msgstr "VDR:&auml;&auml;n ei saada yhteytt&auml; (%s)"
+
+#: ../template/i18n.pl:44
+#, perl-format
+msgid "Error while sending command to VDR at %s"
+msgstr "Komennon l&auml;hetys VDR:lle ep&auml;onnistui (%s)"
+
+#: ../template/i18n.pl:48
+msgid "Schedule"
+msgstr "Ohjelmisto"
+
+#: ../template/i18n.pl:53
+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>Ajastimet</b>\n"
+"<p>Ajastimen saat p&auml;&auml;lle/pois valitsemalla <img src=\"bilder/"
+"poempl_gruen.gif\" alt=\"p&auml;&auml;ll&auml;\" valign=\"center\"> "
+"<i>Kyll&auml;</i> tai <img src=\"bilder/poempl_grau.gif\" alt=\"pois\" "
+"valign=\"center\"> <i>Ei</i> -vaihtoehdon <i>Aktiivinen</i>-sarakkeesta."
+"<br>\n"
+"<img src=\"bilder/poempl_gelb.gif\" alt=\"ongelma\" valign=\"center\"> -"
+"kuvake ilmaisee p&auml;&auml;llekk&auml;iset ajastimet. P&auml;&auml;"
+"llekk&auml;isist&auml; ajastimista aiheutuu ongelmia vain, jos sinulla ei "
+"ole tarpeeksi DVB-kortteja rinnakkaisiin tallennuksiin.<br>\n"
+"<p>Valitse <img src=\"bilder/edit.gif\" alt=\"kyn&auml;\" valign=\"center\"> "
+"muokataksesi ja <img src=\"bilder/delete.gif\" alt=\"pyyhekumi\" valign="
+"\"center\"> poistaaksesi ajastimen. Jos haluat poistaa useita ajastimia "
+"kerralla, merkitse halutut ajastimet poistettaviksi (<input type=\"checkbox"
+"\" checked>) ja k&auml;yt&auml; <i>Poista valitut ajastimet</i> -"
+"painiketta.\n"
+"</p>"
+
+#: ../template/i18n.pl:61
+#, fuzzy
+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 ""
+"Valittua opastetta ei ole saatavilla. Jos haluat lis&auml;t&auml; tai "
+"muokata opastetta, ota yhteytt&auml; s&auml;hk&ouml;postitse: mail@andreas."
+"vdr-developer.org."
+
+#: ../template/i18n.pl:65
+msgid ""
+"<b>Auto Timer:</b><br>\n"
+"<p>An overview of all Auto Timers</p>\n"
+"<p>Click <i>Yes</i> or <i>No</i> in the <i>Active</i> column to (de-)"
+"activate that Auto Timer.</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 Auto Timer. If you want to delete multiple Auto Timers all "
+"at once, you have to check the boxes (<input type=\"checkbox\" checked>) on "
+"the right and finally click <i>Delete selected Auto Timers</i>.</p>"
+msgstr ""
+"<b>Automaattiset ajastimet</b><br>\n"
+"<p>Automaattisen ajastimen saat asetettua p&auml;&auml;lle/pois valitsemalla "
+"<i>Kyll&auml;</i>- tai <i>Ei</i>-vaihtoehdon <i>Aktiivinen</i>-sarakkeesta.</"
+"p>\n"
+"<p>Valitse <img src=\"bilder/edit.gif\" alt=\"kyn&auml;\" valign=\"center\"> "
+"muokataksesi ja <img src=\"bilder/delete.gif\" alt=\"pyyhekumi\" valign="
+"\"center\"> poistaaksesi automaattisen ajastimen. Jos haluat poistaa useita "
+"automaattisia ajastimia kerralla, merkitse halutut ajastimet poistettaviksi "
+"(<input type=\"checkbox\" checked>) ja k&auml;yt&auml; <i>Poista valitut "
+"automaattiset tallenteet</i>-painiketta.</p>"
+
+#: ../template/i18n.pl:71
+msgid ""
+"<b>Edit Auto Timer:</b><br>\n"
+"<p>Auto Timer is a key feature of VDRAdmin. An Auto Timer consists of one or "
+"more search terms and some other settings, that are looked for regularly in "
+"the Electronic Program Guide (EPG). On match Auto Timer 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 Auto Timer. 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>Auto Timer Active:</b><br>\n"
+"<p><i>Yes</i> activates and <i>No</i> deactivates this Auto Timer. Please "
+"note that VDR timers already added by VDRAdmin are not deleted if you "
+"deactivate this Auto Timer.</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, &quot;X-Files&quot; matches anything &quot;x-"
+"files&quot; 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 sources (undocumented feature).</p>"
+msgstr ""
+"<b>Automaattisen ajastimen muokkaus</b><br>\n"
+"<p>Automaattiset ajastimet ovat olennainen osa VDRAdminia. Ne koostuvat "
+"yhdest&auml; tai useammasta hakuehdosta, joita etsit&auml;&auml;n s&auml;"
+"&auml;nn&ouml;llisesti s&auml;hk&ouml;isest&auml; ohjelmaoppaasta (EPG). "
+"Ajastin lis&auml;t&auml;&auml;n automaattisesti VDR:&auml;&auml;n "
+"asetettujen hakuehtojen l&ouml;ydytty&auml;. Automaattiset ajastimet ovat "
+"eritt&auml;in k&auml;tevi&auml;, jos tallennettavien ohjelmien l&auml;"
+"hetysajat sattuvat olemaan ep&auml;s&auml;&auml;nn&ouml;lliset.</p>\n"
+"<p>Automaattiset ajastimet tarvitsevat v&auml;hint&auml;&auml;n yhden "
+"hakuehdon. <i>Automaattisen ajastimen hakuehdot</i>-kohdasta l&ouml;ytyy "
+"lis&auml;tietoja, kuinka muodostetaan kunnolliset hakuehdot ja siten v&auml;"
+"ltyt&auml;&auml;n turhilta ajastuksilta.</p>\n"
+"<b>Automaattisen ajastimen aktivointi</b><br>\n"
+"<p>Automaattinen ajastin asetetaan p&auml;&auml;lle/pois valitsemalla "
+"<i>Kyll&auml;</i>- tai <i>Ei</i>-vaihtoehto. VDRAdminin tekemi&auml; "
+"ajastimia ei poisteta VDR:n ajastinlistalta, jos automaattinen ajastin "
+"asetetaan my&ouml;hemmin pois p&auml;&auml;lt&auml;.</p>\n"
+"<b>Automaattiset ajastimen hakuehdot</b><br>\n"
+"<p>Sopivilla hakuehdoilla voidaan luoda helposti ajastimia tietyille "
+"ohjelmille tai samankaltaisille ohjelmille. Hakuehtoja kirjoitettaessa "
+"kannattaa kuitenkin olla tarkkana, koska pienikin virhe voi aiheuttaa sen, "
+"ett&auml; haluttua ohjelmaa ei tallenneta koskaan.</p>\n"
+"<p>Kirjainkokoa ei huomioida, joten termit &quot;X-Files&quot; ja &quot;x-"
+"files&quot; tuottavat saman hakutuloksen. Jos halutaan useampia "
+"hakutermej&auml;, ne voidaan erottaa toisistaan v&auml;lily&ouml;"
+"nnill&auml;. T&auml;ll&ouml;in ajastin luodaan, jos kaikki hakutermit l&ouml;"
+"ytyv&auml;t.</p>\n"
+"<p>Hakuehdossa kannattaa k&auml;ytt&auml;&auml; pelk&auml;st&auml;&auml;n "
+"kirjaimia tai numeroita, koska s&auml;hk&ouml;isess&auml; ohjelmaoppaassa "
+"(EPG) ei v&auml;ltt&auml;m&auml;tt&auml; k&auml;ytet&auml; "
+"erikoismerkkej&auml;.</p>\n"
+"<p>My&ouml;s s&auml;&auml;nn&ouml;llisi&auml; lausekkeita voidaan k&auml;"
+"ytt&auml;&auml; hakuehdossa. Lis&auml;tietoja t&auml;st&auml; l&ouml;ytyy "
+"VDRAdminin l&auml;hdekoodista.</p>"
+
+#: ../template/i18n.pl:83
+#, fuzzy
+msgid ""
+"<p>No help available for <b>Recordings:</b>. For adding text please contact "
+"mail@andreas.vdr-developer.org.\t\n"
+"</p>"
+msgstr ""
+"Valittua opastetta ei ole saatavilla. Jos haluat lis&auml;t&auml; tai "
+"muokata opastetta, ota yhteytt&auml; s&auml;hk&ouml;postitse: mail@andreas."
+"vdr-developer.org."
+
+#: ../template/i18n.pl:87
+msgid ""
+"<b>Configuration:</b>\n"
+"<p>Here you can change general settings and base settings for timers, auto "
+"timers, 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, auto timers, 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 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 auto timers:</b>\n"
+"<p>Clicking on |<input type=\"radio\"> <i>Yes</i> | or |<input type=\"radio"
+"\" checked> <i>No</i> | activates or deactivates the auto timer function. "
+"You can also specify the interval, the the epg data is checked for updating "
+"the auto timers.<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 auto timers, 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>Asetukset</b>\n"
+"<p>Yleisiss&auml; asetuksissa voit muokata mm. aloitussivua ja DVB-korttien "
+"lukum&auml;&auml;r&auml;&auml;. Lis&auml;ksi voidaan m&auml;&auml;"
+"ritell&auml; oletusasetukset ajastimille, automaattisille ajastimille, "
+"kanavien valinnalle sek&auml; suoratoistolle.\n"
+"</p>\n"
+"\n"
+"<b>K&auml;ytt&auml;j&auml;tunnistus</b>\n"
+"<p>Voit sallia/est&auml;&auml; <i>vierailijan k&auml;ytt&auml;j&auml;"
+"tunnuksen</i> valitsemalla <input type=\"radio\"> <i>Kyll&auml;</i> tai "
+"<input type=\"radio\" checked> <i>Ei</i> -vaihtoehdon. <b>Muista vaihtaa "
+"oletussalasanat!</b>\n"
+"</p>\n"
+"\n"
+"<b>Aikajana</b>\n"
+"<p>Aikajana n&auml;ytt&auml;&auml; kanavien ohjelmiston valittuna "
+"ajankohtana.<br>\n"
+"Punainen viiva osoittaa nykyhetken ja olemassa olevat ajastimet n&auml;"
+"ytet&auml;&auml;n v&auml;rillisin&auml;.\n"
+"</p>\n"
+"\n"
+"<b>Automaattiset ajastimet</b>\n"
+"<p>Voit ottaa k&auml;ytt&ouml;&ouml;n automaattiset ajastimet valitsemalla "
+"<input type=\"radio\"> <i>Kyll&auml;</i> tai <input type=\"radio\" checked> "
+"<i>Ei</i> -vaihtoehdon.\n"
+"Voit my&ouml;s m&auml;&auml;ritell&auml; p&auml;ivitysv&auml;lin "
+"automaattisille ajastimille.<p>\n"
+"Tallenteen elinaika p&auml;ivin&auml; tallennusp&auml;iv&auml;m&auml;&auml;"
+"r&auml;st&auml; voidaan asettaa v&auml;lill&auml; 0 ja 99 (99=&auml;&auml;"
+"ret&ouml;n). M&auml;&auml;ritellyn elinajan loputtua tallenne tuhotaan "
+"automaattisesti uusien tallenteiden tielt&auml;. P&auml;&auml;llekk&auml;"
+"isten ajastimien sattuessa keskin&auml;inen tallennusj&auml;rjestys m&auml;"
+"&auml;ritell&auml;&auml;n prioriteettiasetuksella.<br>\n"
+"</p>\n"
+"\n"
+"<b>Ajastimet</b>\n"
+"<p>N&auml;m&auml; yksitellen luotavien ajastimien asetukset ovat vastaavat "
+"kuin automaattisilla ajastimilla.\n"
+"</p>\n"
+"\n"
+"<b>Suoratoisto</b>\n"
+"<p>M&auml;&auml;rittele k&auml;ytt&auml;m&auml;si portti, kaistanleveys "
+"sek&auml; VDR:n tallennehakemisto.\n"
+"</p>\n"
+"\n"
+"<b>Kanavavalinnat</b>\n"
+"<p>Voit asettaa sivukohtaiset kanavavalinnat p&auml;&auml;lle/pois "
+"valitsemalla <input type=\"radio\"> <i>Kyll&auml;</i> tai <input type=\"radio"
+"\" checked> <i>Ei</i> -vaihtoehdon.<br>\n"
+"</p>\n"
+
+#: ../template/i18n.pl:117
+msgid ""
+"No help available yet. For adding or changing text please contact "
+"mail@andreas.vdr-developer.org."
+msgstr ""
+"Valittua opastetta ei ole saatavilla. Jos haluat lis&auml;t&auml; tai "
+"muokata opastetta, ota yhteytt&auml; s&auml;hk&ouml;postitse: mail@andreas."
+"vdr-developer.org."
+
+#~ msgid "Done Active:"
+#~ msgstr "K&auml;yt&auml; ajastinlokia:"
+
+#~ msgid "Language:"
+#~ msgstr "Kieli:"
+
+#~ msgid "Where is your epg.data?"
+#~ msgstr "Anna epg.data-tiedoston sijainti:"
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 0000000..b9f3f1d
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,1116 @@
+#
+# 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.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDRAdmin-0.97-AM3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-05-09 12:52+0200\n"
+"PO-Revision-Date: 2005-05-04 17:40+0100\n"
+"Last-Translator: Trois Six <trois.six@free.fr>\n"
+"Language-Team: FR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: French\n"
+"X-Poedit-Country: FRANCE\n"
+
+#: ../template/default/index.html:18
+msgid "Your Browser does not support frames!"
+msgstr "Votre Navigateur ne supporte pas les frames !"
+
+#: ../template/default/timer_new.html:6 ../template/default/timer_new.html:45
+msgid "Create New Timer"
+msgstr "Cr&eacute;er Nouvelle Programmation"
+
+#: ../template/default/timer_new.html:6 ../template/default/timer_new.html:45
+msgid "Edit Timer"
+msgstr "Editer Programmation"
+
+#: ../template/default/timer_new.html:50 ../template/default/at_new.html:20
+#: ../template/default/at_timer_list.html:31
+#: ../template/default/config.html:20 ../template/default/timer_list.html:46
+#: ../template/default/rec_list.html:26
+msgid "Help"
+msgstr "Aide"
+
+#: ../template/default/timer_new.html:67
+msgid "Timer Active:"
+msgstr "Programmation Active :"
+
+#: ../template/default/timer_new.html:69 ../template/default/at_new.html:39
+#: ../template/default/at_new.html:43 ../template/default/at_new.html:145
+#: ../template/default/at_timer_list.html:110
+#: ../template/default/config.html:114 ../template/default/config.html:175
+#: ../template/default/config.html:267 ../template/default/config.html:276
+#: ../template/default/config.html:335 ../template/default/config.html:344
+#: ../template/default/config.html:353 ../template/default/config.html:362
+#: ../template/default/timer_list.html:295
+msgid "Yes"
+msgstr "Oui"
+
+#: ../template/default/timer_new.html:70 ../template/default/at_new.html:40
+#: ../template/default/at_new.html:44 ../template/default/at_new.html:146
+#: ../template/default/at_timer_list.html:113
+#: ../template/default/config.html:115 ../template/default/config.html:176
+#: ../template/default/config.html:268 ../template/default/config.html:277
+#: ../template/default/config.html:336 ../template/default/config.html:345
+#: ../template/default/config.html:354 ../template/default/config.html:363
+#: ../template/default/timer_list.html:296
+msgid "No"
+msgstr "Non"
+
+#: ../template/default/timer_new.html:76
+msgid "Auto Timer Checking:"
+msgstr "V&eacute;rification Auto-Programmation :"
+
+#: ../template/default/timer_new.html:79
+msgid "Transmission Identification"
+msgstr "Identification Transmission"
+
+#: ../template/default/timer_new.html:81 ../template/default/rec_list.html:63
+msgid "Time"
+msgstr "Horaires"
+
+#: ../template/default/timer_new.html:82 ../template/default/tv.html:184
+msgid "off"
+msgstr "off"
+
+#: ../template/default/timer_new.html:88 ../template/default/at_new.html:84
+#: ../template/default/prog_list.html:23
+#: ../template/default/prog_list2.html:29
+msgid "Channel:"
+msgstr "Cha&icirc;ne :"
+
+#: ../template/default/timer_new.html:100
+msgid "Day Of Recording:"
+msgstr "Jour d'Enregistrement :"
+
+#: ../template/default/timer_new.html:104 ../template/default/at_new.html:72
+#: ../template/i18n.pl:3
+msgid "Monday"
+msgstr "Lundi"
+
+#: ../template/default/timer_new.html:105 ../template/default/at_new.html:73
+#: ../template/i18n.pl:4
+msgid "Tuesday"
+msgstr "Mardi"
+
+#: ../template/default/timer_new.html:106 ../template/default/at_new.html:74
+#: ../template/i18n.pl:5
+msgid "Wednesday"
+msgstr "Mercredi"
+
+#: ../template/default/timer_new.html:107 ../template/default/at_new.html:75
+#: ../template/i18n.pl:6
+msgid "Thursday"
+msgstr "Jeudi"
+
+#: ../template/default/timer_new.html:108 ../template/default/at_new.html:76
+#: ../template/i18n.pl:7
+msgid "Friday"
+msgstr "Vendredi"
+
+#: ../template/default/timer_new.html:109 ../template/default/at_new.html:77
+#: ../template/i18n.pl:8
+msgid "Saturday"
+msgstr "Samedi"
+
+#: ../template/default/timer_new.html:110 ../template/default/at_new.html:78
+#: ../template/i18n.pl:2
+msgid "Sunday"
+msgstr "Dimanche"
+
+#: ../template/default/timer_new.html:116
+msgid "Start Time:"
+msgstr "Heure De D&eacute;but :"
+
+#: ../template/default/timer_new.html:121
+#: ../template/default/timer_new.html:132 ../template/default/at_new.html:102
+#: ../template/default/at_new.html:113
+#: ../template/default/prog_summary.html:17
+#: ../template/default/prog_summary.html:22
+#: ../template/default/prog_list.html:61
+#: ../template/default/prog_timeline.html:71
+#: ../template/default/prog_timeline.html:84
+#: ../template/default/prog_timeline.html:99
+#: ../template/default/prog_list2.html:71
+msgid "o'clock"
+msgstr "Heure"
+
+#: ../template/default/timer_new.html:127
+msgid "End Time:"
+msgstr "Heure De Fin :"
+
+#: ../template/default/timer_new.html:138 ../template/default/at_new.html:119
+#: ../template/default/at_timer_list.html:133
+#: ../template/default/config.html:188 ../template/default/config.html:233
+#: ../template/default/timer_list.html:316
+msgid "Priority:"
+msgstr "Priorit&eacute; :"
+
+#: ../template/default/timer_new.html:144 ../template/default/at_new.html:127
+#: ../template/default/at_timer_list.html:133
+#: ../template/default/config.html:194 ../template/default/config.html:227
+#: ../template/default/timer_list.html:316
+msgid "Lifetime:"
+msgstr "Chronologie :"
+
+#: ../template/default/timer_new.html:150
+msgid "Title of Recording:"
+msgstr "Titre d'Enregistrement :"
+
+#: ../template/default/timer_new.html:156
+msgid "Summary:"
+msgstr "Sommaire :"
+
+#: ../template/default/timer_new.html:169 ../template/default/at_new.html:166
+#: ../template/default/config.html:403
+msgid "Save"
+msgstr "Enregistrer"
+
+#: ../template/default/timer_new.html:170 ../template/default/at_new.html:167
+#: ../template/default/rec_edit.html:64
+msgid "Cancel"
+msgstr "Annuler"
+
+#: ../template/default/left.html:34 ../template/default/prog_summary.html:7
+#: ../template/default/prog_timeline.html:7 ../template/i18n.pl:27
+msgid "What's On Now?"
+msgstr "En ce Moment ?"
+
+#: ../template/default/left.html:38 ../template/default/prog_list2.html:6
+#: ../template/default/prog_list2.html:25
+msgid "Playing Today"
+msgstr "Jou&eacute; Aujourd'hui"
+
+#: ../template/default/left.html:42 ../template/default/config.html:141
+#: ../template/i18n.pl:29
+msgid "Timeline"
+msgstr "Chronologie"
+
+#: ../template/default/left.html:46 ../template/default/prog_list.html:6
+#: ../template/i18n.pl:30
+msgid "Channels"
+msgstr "Cha&icirc;nes"
+
+#: ../template/default/left.html:50 ../template/default/config.html:222
+#: ../template/default/timer_list.html:6
+#: ../template/default/timer_list.html:30
+msgid "Timer"
+msgstr "Programmation"
+
+#: ../template/default/left.html:54 ../template/default/at_timer_list.html:6
+#: ../template/default/at_timer_list.html:15
+#: ../template/default/config.html:168
+msgid "Auto Timer"
+msgstr "Auto-Programmation"
+
+#: ../template/default/left.html:58 ../template/default/rec_list.html:6
+#: ../template/default/rec_list.html:15 ../template/i18n.pl:32
+msgid "Recordings"
+msgstr "Enregistrements"
+
+#: ../template/default/left.html:62 ../template/default/config.html:5
+#: ../template/default/config.html:15
+msgid "Configuration"
+msgstr "Configuration"
+
+#: ../template/default/left.html:66 ../template/default/rc.html:6
+msgid "Remote Control"
+msgstr "T&eacute;l&eacute;commande"
+
+#: ../template/default/left.html:70
+msgid "Watch TV"
+msgstr "Regarder TV"
+
+#: ../template/default/left.html:77
+msgid "Search"
+msgstr "Rechercher"
+
+#: ../template/default/at_new.html:6 ../template/default/at_new.html:16
+msgid "Add New Auto Timer"
+msgstr "Ajouter Nouvelle Auto-Programmation"
+
+#: ../template/default/at_new.html:6 ../template/default/at_new.html:16
+msgid "Edit Auto Timer"
+msgstr "Editer Auto-Programmation"
+
+#: ../template/default/at_new.html:36
+msgid "Auto Timer Active:"
+msgstr "Auto-Programmation Active :"
+
+#: ../template/default/at_new.html:41 ../template/default/at_new.html:45
+msgid "oneshot"
+msgstr "une fois"
+
+#: ../template/default/at_new.html:52
+msgid "Search Patterns:"
+msgstr "Rechercher Mod&egrave;les :"
+
+#: ../template/default/at_new.html:60
+msgid "Search in:"
+msgstr "Rechercher dans :"
+
+#: ../template/default/at_new.html:62
+msgid "Title"
+msgstr "Titre"
+
+#: ../template/default/at_new.html:63
+msgid "Subtitle"
+msgstr "Sous-titre"
+
+#: ../template/default/at_new.html:64
+msgid "Description"
+msgstr "Description"
+
+#: ../template/default/at_new.html:70
+msgid "Search only on these days:"
+msgstr "Rechercher uniquement sur ces jours :"
+
+#: ../template/default/at_new.html:87
+msgid "all"
+msgstr "tout"
+
+#: ../template/default/at_new.html:97
+msgid "Starts Before:"
+msgstr "D&eacute;but de recherche :"
+
+#: ../template/default/at_new.html:108
+msgid "Ends Before:"
+msgstr "Fin de recherche :"
+
+#: ../template/default/at_new.html:135
+msgid "Episode:"
+msgstr "Episode :"
+
+#: ../template/default/at_new.html:143
+msgid "Remember programmed timers:"
+msgstr "Se souvenir des programmations :"
+
+#: ../template/default/at_new.html:152
+msgid "Directory:"
+msgstr "Chemin :"
+
+#: ../template/default/noauth.html:5 ../template/default/noauth.html:11
+msgid "Authorization Required"
+msgstr "Autorisation Requise"
+
+#: ../template/default/noauth.html:12
+msgid ""
+"This server could not verify that you are authorized to access the document "
+"requested. Either you supplied the wrong credentials (e.g. bad password), or "
+"your browser doesn't understand how to supply the credentials required."
+msgstr ""
+"Le serveur n'a pas pu v&eacute;rifier que vous &ecirc;tes autoris&eacute; "
+"&agrave; acc&eacute;der au document demand&eacute;. Ou vous avez fourni de "
+"mauvaises informations (par ex. mauvais mot de passe), ou votre navigateur "
+"n'a pu fournir les informations requises."
+
+#: ../template/default/at_timer_list.html:22
+msgid "New Auto Timer"
+msgstr "Nouvelle Auto-Programmation"
+
+#: ../template/default/at_timer_list.html:44
+#: ../template/default/timer_list.html:202
+msgid "Active"
+msgstr "Actif"
+
+#: ../template/default/at_timer_list.html:55
+#: ../template/default/timer_list.html:213
+msgid "Channel"
+msgstr "Cha&icirc;ne"
+
+#: ../template/default/at_timer_list.html:66
+#: ../template/default/timer_list.html:235
+msgid "Start"
+msgstr "D&eacute;but"
+
+#: ../template/default/at_timer_list.html:77
+#: ../template/default/timer_list.html:246
+msgid "Stop"
+msgstr "Fin"
+
+#: ../template/default/at_timer_list.html:88
+#: ../template/default/timer_list.html:257
+#: ../template/default/rec_list.html:74
+msgid "Name"
+msgstr "Nom"
+
+#: ../template/default/at_timer_list.html:99
+#: ../template/default/timer_list.html:268
+#: ../template/default/rec_list.html:85
+msgid "Select all/none"
+msgstr "Selectionner toutl/rien"
+
+#: ../template/default/at_timer_list.html:139
+#: ../template/default/timer_list.html:326
+msgid "Edit"
+msgstr "Editer"
+
+#: ../template/default/at_timer_list.html:144
+#: ../template/default/timer_list.html:329
+msgid "Delete timer?"
+msgstr "Supprimer Programmation ?"
+
+#: ../template/default/at_timer_list.html:144
+#: ../template/default/timer_list.html:329
+#: ../template/default/rec_list.html:137
+msgid "Delete"
+msgstr "Supprimer"
+
+#: ../template/default/at_timer_list.html:166
+msgid "Force Update"
+msgstr "Forcer Mise &agrave; jour"
+
+#: ../template/default/at_timer_list.html:178
+#: ../template/default/timer_list.html:350
+msgid "Delete all selected timers?"
+msgstr "Supprimer Programmations S&eacute;lectionn&eacute;es ?"
+
+#: ../template/default/at_timer_list.html:178
+msgid "Delete Selected Auto Timers"
+msgstr "Supprimer Auto-Programmations S&eacute;lectionn&eacute;es"
+
+#: ../template/default/prog_summary.html:20
+#: ../template/default/prog_timeline.html:74
+msgid "What's on:"
+msgstr "En ce moment :"
+
+#: ../template/default/prog_summary.html:20
+#: ../template/default/prog_timeline.html:76
+msgid "now"
+msgstr "maintenant"
+
+#: ../template/default/prog_summary.html:20
+#: ../template/default/prog_timeline.html:82
+msgid "at:"
+msgstr "&agrave; :"
+
+#: ../template/default/prog_summary.html:43
+#: ../template/default/prog_list.html:19 ../template/default/rec_list.html:150
+#: ../template/default/prog_list2.html:52
+msgid "Stream"
+msgstr "Flux"
+
+#: ../template/default/prog_summary.html:62
+msgid "more"
+msgstr "suite"
+
+#: ../template/default/prog_summary.html:79
+msgid "TV select"
+msgstr "Zapper"
+
+#: ../template/default/prog_summary.html:83
+msgid "Search for other show times"
+msgstr "Rechercher d&acute;autres moments de diffusion"
+
+#: ../template/default/prog_summary.html:87
+msgid "More Information"
+msgstr "Plus d&acute;Information"
+
+#: ../template/default/prog_summary.html:93
+msgid "Record"
+msgstr "Enregistrer"
+
+#: ../template/default/config.html:38
+msgid "General Settings"
+msgstr "Param&egrave;tres G&eacute;n&eacute;raux"
+
+#: ../template/default/config.html:44
+msgid "Template:"
+msgstr "Gabarit :"
+
+#: ../template/default/config.html:57
+msgid "Skin:"
+msgstr "Th&egrave;me :"
+
+#: ../template/default/config.html:69
+msgid "Login Page:"
+msgstr "Page de D&eacute;marrage :"
+
+#: ../template/default/config.html:81
+msgid "Number of DVB Cards:"
+msgstr "Nbre de Cartes DVB :"
+
+#: ../template/default/config.html:95
+msgid "Identification"
+msgstr "Identification"
+
+#: ../template/default/config.html:100
+msgid "Username:"
+msgstr "Identifiant :"
+
+#: ../template/default/config.html:106
+msgid "Password:"
+msgstr "Mot de Passe :"
+
+#: ../template/default/config.html:112
+msgid "Guest Account:"
+msgstr "Compte d'Invit&eacute; :"
+
+#: ../template/default/config.html:121
+msgid "Guest Username:"
+msgstr "Identifiant Invit&eacute; :"
+
+#: ../template/default/config.html:127
+msgid "Guest Password:"
+msgstr "Mot de Passe Invit&eacute; :"
+
+#: ../template/default/config.html:146
+msgid "Hours:"
+msgstr "Heures :"
+
+#: ../template/default/config.html:152
+msgid "Times:"
+msgstr "P&eacute;riodes :"
+
+#: ../template/default/config.html:173
+msgid "Active:"
+msgstr "Active :"
+
+#: ../template/default/config.html:182
+msgid "Timeout:"
+msgstr "Timeout :"
+
+#: ../template/default/config.html:183 ../template/default/config.html:240
+#: ../template/default/config.html:246
+msgid "minutes"
+msgstr "minutes"
+
+#: ../template/default/config.html:201 ../template/default/config.html:239
+msgid "Time Margin at Start:"
+msgstr "Marge avant :"
+
+#: ../template/default/config.html:207 ../template/default/config.html:245
+msgid "Time Margin at Stop:"
+msgstr "Marge apr&egrave;s :"
+
+#: ../template/default/config.html:260
+msgid "Streaming"
+msgstr "Emission de Flux"
+
+#: ../template/default/config.html:265
+msgid "Live Streaming"
+msgstr "Emission de Flux en direct"
+
+#: ../template/default/config.html:274
+msgid "Recordings Streaming"
+msgstr "Emission d'Enregistrements"
+
+#: ../template/default/config.html:283
+msgid "HTTP Port of Streamdev (also possible 3000/ts):"
+msgstr "Port HTTP Streamdev (aussi possible 3000/ts) :"
+
+#: ../template/default/config.html:289
+msgid "Path to VDR Recordings:"
+msgstr "Chemin des Enregistrements VDR :"
+
+#: ../template/default/config.html:296
+msgid "Bandwidth of Streams:"
+msgstr "Bande Passante Flux :"
+
+#: ../template/default/config.html:323
+msgid "Channel Selections"
+msgstr "S&eacute;lections Cha&icirc;nes"
+
+#: ../template/default/config.html:333
+msgid "In &quot;Timeline&quot;?"
+msgstr "Dans &quot;Chronologie&quot; ?"
+
+#: ../template/default/config.html:342
+msgid "In &quot;Channels&quot; / &quot;Playing Today&quot;?"
+msgstr "Dans &quot;Cha&icirc;nes&quot; / &quot;Jou&eacute; Aujourd'hui&quot; ?"
+
+#: ../template/default/config.html:351
+msgid "In &quot;What's On Now&quot;?"
+msgstr "Dans &quot;En ce Moment&quot; ?"
+
+#: ../template/default/config.html:360
+msgid "In &quot;Auto Timer&quot;?"
+msgstr "Dans &quot;Auto-Programmations&quot; ?"
+
+#: ../template/default/config.html:404
+msgid "Apply"
+msgstr "Appliquer"
+
+#: ../template/default/timer_list.html:38
+msgid "New Timer"
+msgstr "Nouvelle Programmation"
+
+#: ../template/default/timer_list.html:224
+#: ../template/default/rec_list.html:52
+msgid "Date"
+msgstr "Date"
+
+#: ../template/default/timer_list.html:278
+msgid "This timer is inactive!"
+msgstr "Cette Programmation est inactive !"
+
+#: ../template/default/timer_list.html:281
+msgid "This timer is impossible!"
+msgstr "Cette Programmation est impossible !"
+
+#: ../template/default/timer_list.html:284
+msgid "No more timers possible!"
+msgstr "Pas plus de Programmations possibles !"
+
+#: ../template/default/timer_list.html:287
+msgid "Timer OK."
+msgstr "Programmation OK."
+
+#: ../template/default/timer_list.html:293
+msgid "Edit timer status?"
+msgstr "Changer Statut Programmation ?"
+
+#: ../template/default/timer_list.html:297
+msgid "VPS"
+msgstr "VPS"
+
+#: ../template/default/timer_list.html:298
+msgid "Auto"
+msgstr "Auto"
+
+#: ../template/default/timer_list.html:350
+msgid "Delete Selected Timers"
+msgstr "Supprimer Programmations S&eacute;lectionn&eacute;es"
+
+#: ../template/default/prog_list.html:29
+#: ../template/default/prog_list2.html:34
+msgid "Go!"
+msgstr "Ok !"
+
+#: ../template/default/error.html:6
+msgid "Error!"
+msgstr "Erreur !"
+
+#: ../template/default/tv.html:5 ../template/default/tv_flash.html:4
+msgid "TV"
+msgstr "TV"
+
+#: ../template/default/tv.html:182
+msgid "Interval:"
+msgstr "Intervalle :"
+
+#: ../template/default/tv.html:185 ../template/default/tv.html:186
+#: ../template/default/tv.html:187 ../template/default/tv.html:188
+#: ../template/default/tv.html:189 ../template/default/tv.html:190
+#: ../template/default/tv.html:191
+msgid "sec."
+msgstr "sec."
+
+#: ../template/default/tv.html:193 ../template/default/tv.html:200
+msgid "G"
+msgstr "R"
+
+#: ../template/default/tv.html:193 ../template/default/tv.html:200
+msgid "Grab the picture!"
+msgstr "Rafra&icirc;chir"
+
+#: ../template/default/tv.html:194
+msgid "Size:"
+msgstr "Taille :"
+
+#: ../template/default/prog_detail.html:28
+msgid "close"
+msgstr "fermer"
+
+#: ../template/default/prog_detail.html:30
+msgid "view"
+msgstr "vue"
+
+#: ../template/default/prog_detail.html:31
+msgid "record"
+msgstr "enregistrer"
+
+#: ../template/default/prog_detail.html:32
+msgid "search"
+msgstr "rechercher"
+
+#: ../template/default/prog_detail.html:34
+msgid "Lookup movie in the Internet-Movie-Database (IMDb)"
+msgstr "Plus de details sur Internet"
+
+#: ../template/default/rec_list.html:19
+msgid "Total:"
+msgstr "Total :"
+
+#: ../template/default/rec_list.html:19 ../template/default/rec_list.html:20
+msgid "h"
+msgstr "h"
+
+#: ../template/default/rec_list.html:20
+msgid "Free:"
+msgstr "Libre :"
+
+#: ../template/default/rec_list.html:100
+msgid "Total"
+msgstr "Total"
+
+#: ../template/default/rec_list.html:109 ../template/default/rec_list.html:112
+msgid "New"
+msgstr "Nouveau"
+
+#: ../template/default/rec_list.html:130 ../template/default/rec_edit.html:63
+msgid "Rename"
+msgstr "Renommer"
+
+#: ../template/default/rec_list.html:137
+msgid "Delete recording?"
+msgstr "Supprimer l'Enregistrement ?"
+
+#: ../template/default/rec_list.html:168
+msgid "Commands:"
+msgstr "Commandes :"
+
+#: ../template/default/rec_list.html:174
+msgid "Run"
+msgstr "Exécuter"
+
+#: ../template/default/rec_list.html:174
+msgid "Really run this command?"
+msgstr "Voulez-vous réellement exécuter cette commande ?"
+
+#: ../template/default/rec_list.html:181 ../template/default/rec_list.html:187
+msgid "Delete all selected recordings?"
+msgstr "Supprimer Enregistrements S&eacute;lectionn&eacute;s ?"
+
+#: ../template/default/rec_list.html:181 ../template/default/rec_list.html:187
+msgid "Delete Selected Recordings"
+msgstr "Supprimer Enregistrements S&eacute;lectionn&eacute;s"
+
+#: ../template/default/prog_timeline.html:99
+msgid "Timeline:"
+msgstr "Chronologie :"
+
+#: ../template/default/prog_timeline.html:99
+msgid "to"
+msgstr "&agrave;"
+
+#: ../template/default/rec_edit.html:6 ../template/default/rec_edit.html:15
+msgid "Rename Recording"
+msgstr "Renommer l'Enregistrement"
+
+#: ../template/default/rec_edit.html:38
+msgid "Original Name of Recording:"
+msgstr "Nom Original d'Enregistrement :"
+
+#: ../template/default/rec_edit.html:44
+msgid "New Name of Recording:"
+msgstr "Nouveau Nom d'Enregistrement :"
+
+#: ../vdradmind.pl:222
+msgid "What's your VDR hostname (e.g video.intra.net)?"
+msgstr "Quel est votre Nom d'Hôte (ex video.intra.net) ?"
+
+#: ../vdradmind.pl:223
+msgid "On which port does VDR listen to SVDRP queries?"
+msgstr "Sur quel port VDR écoute les requêtes SVDRP ?"
+
+#: ../vdradmind.pl:224
+msgid "On which address should VDRAdmin listen (0.0.0.0 for any)?"
+msgstr "Sur quel adresse VDRAdmin doit-il écouter (0.0.0.0 pour toutes) ?"
+
+#: ../vdradmind.pl:225
+msgid "On which port should VDRAdmin listen?"
+msgstr "Sur quel port VDRAdmin doit-il écouter ?"
+
+#: ../vdradmind.pl:226
+msgid "Username?"
+msgstr "Identifiant ?"
+
+#: ../vdradmind.pl:227
+msgid "Password?"
+msgstr "Mot de Passe ?"
+
+#: ../vdradmind.pl:228
+msgid "Where are your recordings stored?"
+msgstr "Où vos enregistrements sont-ils stockés ?"
+
+#: ../vdradmind.pl:229
+msgid "Where are your VDR's configuration files located?"
+msgstr "Où sont vos fichiers de configuration de VDR ?"
+
+#: ../vdradmind.pl:235
+msgid "Config file written successfully."
+msgstr "Fichier de configuration écrit avec succès."
+
+#: ../vdradmind.pl:282
+#, perl-format
+msgid "vdradmind.pl %s started with pid %d."
+msgstr "vdradmin.pl %s a démarré avec le pid %d."
+
+#: ../template/i18n.pl:12
+msgid "January"
+msgstr "Janvier"
+
+#: ../template/i18n.pl:13
+msgid "February"
+msgstr "F&eacute;vrier"
+
+#: ../template/i18n.pl:14
+msgid "March"
+msgstr "Mars"
+
+#: ../template/i18n.pl:15
+msgid "April"
+msgstr "Avril"
+
+#: ../template/i18n.pl:16
+msgid "May"
+msgstr "Mai"
+
+#: ../template/i18n.pl:17
+msgid "June"
+msgstr "Juin"
+
+#: ../template/i18n.pl:18
+msgid "July"
+msgstr "Juillet"
+
+#: ../template/i18n.pl:19
+msgid "August"
+msgstr "Ao&ucirc;t"
+
+#: ../template/i18n.pl:20
+msgid "September"
+msgstr "Septembre"
+
+#: ../template/i18n.pl:21
+msgid "October"
+msgstr "Octobre"
+
+#: ../template/i18n.pl:22
+msgid "November"
+msgstr "Novembre"
+
+#: ../template/i18n.pl:23
+msgid "December"
+msgstr "D&eacute;cembre"
+
+#: ../template/i18n.pl:28
+msgid "Playing Today?"
+msgstr "Aujourd'hui ?"
+
+#: ../template/i18n.pl:31
+msgid "Timers"
+msgstr "Programmations"
+
+#: ../template/i18n.pl:36
+msgid "Not found"
+msgstr "Non trouv&eacute;"
+
+#: ../template/i18n.pl:37
+msgid "The requested URL was not found on this server!"
+msgstr ""
+"L'URL demand&eacute;e n'a pas &eacute;t&eacute; trouv&eacute;e sur le "
+"serveur !"
+
+#: ../template/i18n.pl:38
+#, perl-format
+msgid "The URL &quot;%s&quot; was not found on this server!"
+msgstr ""
+"L'URL &quot;%s&quot; n'a pas &eacute;t&eacute; trouv&eacute;e sur le "
+"serveur !"
+
+#: ../template/i18n.pl:39
+msgid "Forbidden"
+msgstr "Interdit"
+
+#: ../template/i18n.pl:40
+msgid "You don't have permission to access this function!"
+msgstr ""
+"Vous n'avez pas la permission d'acc&eacute;der &agrave; cette fonction !"
+
+#: ../template/i18n.pl:41
+#, perl-format
+msgid "Access to file &quot;%s&quot; denied!"
+msgstr "Acc&egrave;s au fichier &quot;%s&quot; interdit !"
+
+#: ../template/i18n.pl:42
+#, perl-format
+msgid "Can't open file &quot;%s&quot;!"
+msgstr "Ne peut pas ouvrir le fichier &quot;%s&quot; !"
+
+#: ../template/i18n.pl:43
+#, perl-format
+msgid "Can't connect to VDR at %s!"
+msgstr "Ne peut se connecter &agrave; %s !"
+
+#: ../template/i18n.pl:44
+#, perl-format
+msgid "Error while sending command to VDR at %s"
+msgstr "Erreur en envoyant la commande &agrave; %s"
+
+#: ../template/i18n.pl:48
+msgid "Schedule"
+msgstr "Programmateur"
+
+#: ../template/i18n.pl:53
+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>Programmation</b>\n"
+"<p>Pr&eacute;sentation des programmations de VDR timer.</p>\n"
+"<p>Cliquer sur |<img src=\"bilder/poempl_gruen.gif\" alt=\"on\" valign="
+"\"center\"> <i>On</i> | ou |<img src=\"bilder/poempl_grau.gif\" alt=\"off\" "
+"valign=\"center\"> <i>Off</i> | dans la colonne <i>Active</i>, change "
+"l'activation de la programmation.<br>\n"
+"<img src=\"bilder/poempl_gelb.gif\" alt=\"probl&egrave;me\" valign=\"center"
+"\"> indique des programmations qui se chevauchent. Ceci n'est pas critique, "
+"tant que vous avez le nombre de cartes DVB correspondantes pour enregistrer "
+"en parall&egrave;le.<br>\n"
+"Pour &eacute;diter une programmation, cliquez sur <img src=\"bilder/edit.gif"
+"\" alt=\"Editer\" valign=\"center\">, pour supprimer une programmation "
+"utilisez <img src=\"bilder/delete.gif\" alt=\"Supprimer\" valign=\"center"
+"\">. Pour supprimer plus d'une programmation &agrave; la fois, s&eacute;"
+"lectionnez les programmations &agrave; l'aide des cases &agrave; cocher "
+"(<input type=\"checkbox\" checked>) et cliquez sur <i>Supprimer les "
+"programmations s&eacute;lectionn&eacute;es</i> &agrave; la fin de la liste.\n"
+"</p>"
+
+#: ../template/i18n.pl:61
+#, fuzzy
+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 ""
+"Aucune aide n'est disponible. Pour ajouter ou changer du texte contactez "
+"mail@andreas.vdr-developer.org."
+
+#: ../template/i18n.pl:65
+msgid ""
+"<b>Auto Timer:</b><br>\n"
+"<p>An overview of all Auto Timers</p>\n"
+"<p>Click <i>Yes</i> or <i>No</i> in the <i>Active</i> column to (de-)"
+"activate that Auto Timer.</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 Auto Timer. If you want to delete multiple Auto Timers all "
+"at once, you have to check the boxes (<input type=\"checkbox\" checked>) on "
+"the right and finally click <i>Delete selected Auto Timers</i>.</p>"
+msgstr ""
+"<b>Auto-Programmation :</b><br>\n"
+"<p>Aper&ccedil;u g&eacute;n&eacute;ral des Auto-Programmations</p>\n"
+"<p>Cliquer sur <i>Oui</i> ou <i>Non</i> dans la colonne <i>Active</i> pour "
+"activer/d&eacute;sactiver cette Auto-Programmation.</p>\n"
+"<p>Utiliser <img src=\"bilder/edit.gif\" alt=\"pen\" valign=\"center\"> pour "
+"&eacute;diter et <img src=\"bilder/delete.gif\" alt=\"Rubber\" valign="
+"\"center\"> pour supprimer une Auto-Programmation. Si vous voulez supprimer "
+"des Auto-Programmations multiples d'un seul coup, vous devez cocher les "
+"cases (<input type=\"checkbox\" checked>) a droite et finalement cliquer sur "
+"<i>Supprimer Auto-Programmations S&eacute;lectionn&eacute;es</i>.</p>"
+
+#: ../template/i18n.pl:71
+msgid ""
+"<b>Edit Auto Timer:</b><br>\n"
+"<p>Auto Timer is a key feature of VDRAdmin. An Auto Timer consists of one or "
+"more search terms and some other settings, that are looked for regularly in "
+"the Electronic Program Guide (EPG). On match Auto Timer 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 Auto Timer. 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>Auto Timer Active:</b><br>\n"
+"<p><i>Yes</i> activates and <i>No</i> deactivates this Auto Timer. Please "
+"note that VDR timers already added by VDRAdmin are not deleted if you "
+"deactivate this Auto Timer.</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, &quot;X-Files&quot; matches anything &quot;x-"
+"files&quot; 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 sources (undocumented feature).</p>"
+msgstr ""
+"<b>Editer une Programmation:</b><br>\n"
+"<p>L'Auto-Programmation est une caract&eacute;ristique cl&eacute; de "
+"VDRAdmin. Une Auto-Programmation consiste en un ou plusieurs articles de "
+"recherche et de quelques autres param&egrave;tres, ceci est recherch&eacute; "
+"r&eacute;guli&egrave;rement dans le Guide de Programme Electronique (EPG). "
+"Sur combinaison l'Auto-Programmation ajoute une programmation "
+"automatiquement dans VDR pour cette &eacute;mission. Ceci est tr&egrave;s "
+"appr&eacute;ciable pour les feuilletons ou les films diffus&eacute;s "
+"irr&eacute;guli&egrave;rement et que vous ne voulez pas manquer.</p>\n"
+"<p>Ici vous pouvez r&eacute;gler une Auto-Programmation. Il est exig&eacute; "
+"de sp&eacute;cifier au moins un article de recherche. Veuillez aller voir "
+"&agrave; <i>Rechercher Articles</i> si vous avez besoin de plus "
+"d'information sur la fa?on dont trouver les articles de recherche et comment "
+"&eacute;viter des enregistrements superflus.</p>\n"
+"<b>Auto-Programmation Active :</b><br>\n"
+"<p><i>Oui</i> active et <i>Non</i> d&eacute;sactive l'Auto-Programmation. "
+"Veuillez noter que les programmations de VDR d&eacute;j&agrave; ajout&eacute;"
+"es par VDRAdmin ne sont pas supprim&eacute;es si vous d&eacute;sactivez "
+"l'Auto-Programmation.</p>\n"
+"<b>Rechercher Articles :</b><br>\n"
+"<p>Le choix des &eacute;l&eacute;ments de recherche conditionne "
+"l'enregistrement de la diffusion, d'une diffusion avec un nom similaire, ou "
+"aucun enregistrement</p>\n"
+"<p>La casse n'a pas d'importance,si &quot;X-files&quot; s&eacute;lectionne "
+"tout &quot;x-files&quot; aussi.Vous pouvez choisir plusieurs &eacute;"
+"l&eacute;ments de recherche s&eacute;par&eacute;s par des espaces.Seul les "
+"diffusions contenant tous les &eacute;l&eacute;ments seront s&eacute;"
+"lectionn&eacute;es.</p>\n"
+"<p>Il est pr&eacute;f&eacute;rable d'utiliser uniquement des lettres et des "
+"nombres pour les &eacute;l&eacute;ments de recherche,les EPG n'ont pas "
+"souvent d'autres caract&egrave;res tels les deux points ou parenth&egrave;"
+"ses.</p>\n"
+"<p>Les experts peuvent utiliser aussi des expressions courantes, mais pour "
+"plus d'informations, regardez les sources de VDRAdmin (fonctions non "
+"document&eacute;es).</p>"
+
+#: ../template/i18n.pl:83
+#, fuzzy
+msgid ""
+"<p>No help available for <b>Recordings:</b>. For adding text please contact "
+"mail@andreas.vdr-developer.org.\t\n"
+"</p>"
+msgstr ""
+"Aucune aide n'est disponible. Pour ajouter ou changer du texte contactez "
+"mail@andreas.vdr-developer.org."
+
+#: ../template/i18n.pl:87
+msgid ""
+"<b>Configuration:</b>\n"
+"<p>Here you can change general settings and base settings for timers, auto "
+"timers, 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, auto timers, 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 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 auto timers:</b>\n"
+"<p>Clicking on |<input type=\"radio\"> <i>Yes</i> | or |<input type=\"radio"
+"\" checked> <i>No</i> | activates or deactivates the auto timer function. "
+"You can also specify the interval, the the epg data is checked for updating "
+"the auto timers.<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 auto timers, 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>Configuration :</b>\n"
+"<p>Ici vou pouvez changer les param&egrave;tres g&eacute;n&eacute;raux et "
+"les param&egrave;tres par d&eacute;faut des programmations, auto-"
+"programmations, s&eacute;lections de chaine, &eacute;missions de flux.\n"
+"</p>\n"
+"<b>Param&egrave;tres G&eacute;n&eacute;raux :</b>\n"
+"<p>Ici vous pouvez changer la langue, la page de d&eacute;marrage, les "
+"th&egrave;mes, et le nombre de cartes DVB.\n"
+"</p>\n"
+"<b>Identification:</b>\n"
+"<p>Cliquer sur |<input type=\"radio\"> <i>oui</i> | ou |<input type=\"radio"
+"\" checked> <i>non</i> | active ou d&eacute;sactive le compte "
+"<i>invit&eacute;</i>. Il est conseill&eacute; de changer les mots de passe "
+"par d&eacute;faut si vous permettez l'acc&egrave;s &agrave; VDRAdmin depuis "
+"Internet.\n"
+"</p>\n"
+"<b>Chronologie :</b>\n"
+"<p>Ici vous pouvez voir par l'interm&eacute;diaire d'une chronologie les "
+"&eacute;missions &agrave; venir sur toutes les chaines.<br>\n"
+"A l'int&eacute;rieur des barres vous pouvez voir les titres de chaque "
+"&eacute;misssion. Une barre de temps commence 1h30 avant maintenant. La fine "
+"barre rouge indique la position courante.<br>Les programmations apparaissent "
+"avec des couleurs diff&eacute;rentes.\n"
+"</p>\n"
+"<b>Param&egrave;tres pour les enregistrements automatiques :</b>\n"
+"<p>Cliquer sur |<input type=\"radio\"> <i>Oui</i> | ou |<input type=\"radio"
+"\" checked> <i>Non</i> | active ou d&eacute;sactive la fonction programmes "
+"automatiques. Vous pouvez aussi sp&eacute;cifier l'intervalle pendant lequel "
+"les donn&eacute;es epg sont scrut&eacute;es pour mettre &agrave; jour les "
+"programmes automatiques.<br>\n"
+"La dur&eacute;e de vie d'un enregistrement peut être &eacute;tablie de 0 "
+"&agrave; 99 (99=vit pour toujours). Cette valeur r&eacute;f&egrave;re au "
+"jour ou l'enregistrement a &eacute;t&eacute; fait. Une fois la dur&eacute;e "
+"de vie d&eacute;pass&eacute;e, l'enregistrement est supprim&eacute;.<br>\n"
+"La priorit&eacute; indique quel programme est pr&eacute;pond&eacute;rant en "
+"cas de conflit.<br>\n"
+"<b>Param&egrave;tres des programmations :</b>\n"
+"<p>Voir les param&egrave;tres des auto-programmations qui sont identiques.\n"
+"</p>\n"
+"\n"
+"<b>Param&egrave;tres pour l'Emission de Flux :</b>\n"
+"<p>Vous pouvez sp&eacute;cifier le port, la bande passante et le r&eacute;"
+"pertoire des enregistrements ici.\n"
+"</p>\n"
+"\n"
+"<b>S&eacute;lection de Cha&icirc;nes :</b>\n"
+"<p>Cliquer sur |<input type=\"radio\"> <i>Oui</i> | ou |<input type=\"radio"
+"\" checked> <i>Non</i> | active ou d&eacute;sactive une s&eacute;lection de "
+"cha&icirc;nes pour une vue sp&eacute;cifique.<br>\n"
+"</p>\n"
+
+#: ../template/i18n.pl:117
+msgid ""
+"No help available yet. For adding or changing text please contact "
+"mail@andreas.vdr-developer.org."
+msgstr ""
+"Aucune aide n'est disponible. Pour ajouter ou changer du texte contactez "
+"mail@andreas.vdr-developer.org."
+
+#~ msgid "Done Active:"
+#~ msgstr "Actif Pr&ecirc;t :"
+
+#~ msgid "Language:"
+#~ msgstr "Langue :"
+
+#~ msgid "Where is your epg.data?"
+#~ msgstr "Où est votre epg.data ?"
diff --git a/po/vdradmin.pot b/po/vdradmin.pot
new file mode 100644
index 0000000..88aa8f6
--- /dev/null
+++ b/po/vdradmin.pot
@@ -0,0 +1,968 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-05-09 12:52+0200\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../template/default/index.html:18
+msgid "Your Browser does not support frames!"
+msgstr ""
+
+#: ../template/default/timer_new.html:6 ../template/default/timer_new.html:45
+msgid "Create New Timer"
+msgstr ""
+
+#: ../template/default/timer_new.html:6 ../template/default/timer_new.html:45
+msgid "Edit Timer"
+msgstr ""
+
+#: ../template/default/timer_new.html:50 ../template/default/at_new.html:20
+#: ../template/default/at_timer_list.html:31
+#: ../template/default/config.html:20 ../template/default/timer_list.html:46
+#: ../template/default/rec_list.html:26
+msgid "Help"
+msgstr ""
+
+#: ../template/default/timer_new.html:67
+msgid "Timer Active:"
+msgstr ""
+
+#: ../template/default/timer_new.html:69 ../template/default/at_new.html:39
+#: ../template/default/at_new.html:43 ../template/default/at_new.html:145
+#: ../template/default/at_timer_list.html:110
+#: ../template/default/config.html:114 ../template/default/config.html:175
+#: ../template/default/config.html:267 ../template/default/config.html:276
+#: ../template/default/config.html:335 ../template/default/config.html:344
+#: ../template/default/config.html:353 ../template/default/config.html:362
+#: ../template/default/timer_list.html:295
+msgid "Yes"
+msgstr ""
+
+#: ../template/default/timer_new.html:70 ../template/default/at_new.html:40
+#: ../template/default/at_new.html:44 ../template/default/at_new.html:146
+#: ../template/default/at_timer_list.html:113
+#: ../template/default/config.html:115 ../template/default/config.html:176
+#: ../template/default/config.html:268 ../template/default/config.html:277
+#: ../template/default/config.html:336 ../template/default/config.html:345
+#: ../template/default/config.html:354 ../template/default/config.html:363
+#: ../template/default/timer_list.html:296
+msgid "No"
+msgstr ""
+
+#: ../template/default/timer_new.html:76
+msgid "Auto Timer Checking:"
+msgstr ""
+
+#: ../template/default/timer_new.html:79
+msgid "Transmission Identification"
+msgstr ""
+
+#: ../template/default/timer_new.html:81 ../template/default/rec_list.html:63
+msgid "Time"
+msgstr ""
+
+#: ../template/default/timer_new.html:82 ../template/default/tv.html:184
+msgid "off"
+msgstr ""
+
+#: ../template/default/timer_new.html:88 ../template/default/at_new.html:84
+#: ../template/default/prog_list.html:23
+#: ../template/default/prog_list2.html:29
+msgid "Channel:"
+msgstr ""
+
+#: ../template/default/timer_new.html:100
+msgid "Day Of Recording:"
+msgstr ""
+
+#: ../template/default/timer_new.html:104 ../template/default/at_new.html:72
+#: ../template/i18n.pl:3
+msgid "Monday"
+msgstr ""
+
+#: ../template/default/timer_new.html:105 ../template/default/at_new.html:73
+#: ../template/i18n.pl:4
+msgid "Tuesday"
+msgstr ""
+
+#: ../template/default/timer_new.html:106 ../template/default/at_new.html:74
+#: ../template/i18n.pl:5
+msgid "Wednesday"
+msgstr ""
+
+#: ../template/default/timer_new.html:107 ../template/default/at_new.html:75
+#: ../template/i18n.pl:6
+msgid "Thursday"
+msgstr ""
+
+#: ../template/default/timer_new.html:108 ../template/default/at_new.html:76
+#: ../template/i18n.pl:7
+msgid "Friday"
+msgstr ""
+
+#: ../template/default/timer_new.html:109 ../template/default/at_new.html:77
+#: ../template/i18n.pl:8
+msgid "Saturday"
+msgstr ""
+
+#: ../template/default/timer_new.html:110 ../template/default/at_new.html:78
+#: ../template/i18n.pl:2
+msgid "Sunday"
+msgstr ""
+
+#: ../template/default/timer_new.html:116
+msgid "Start Time:"
+msgstr ""
+
+#: ../template/default/timer_new.html:121
+#: ../template/default/timer_new.html:132 ../template/default/at_new.html:102
+#: ../template/default/at_new.html:113
+#: ../template/default/prog_summary.html:17
+#: ../template/default/prog_summary.html:22
+#: ../template/default/prog_list.html:61
+#: ../template/default/prog_timeline.html:71
+#: ../template/default/prog_timeline.html:84
+#: ../template/default/prog_timeline.html:99
+#: ../template/default/prog_list2.html:71
+msgid "o'clock"
+msgstr ""
+
+#: ../template/default/timer_new.html:127
+msgid "End Time:"
+msgstr ""
+
+#: ../template/default/timer_new.html:138 ../template/default/at_new.html:119
+#: ../template/default/at_timer_list.html:133
+#: ../template/default/config.html:188 ../template/default/config.html:233
+#: ../template/default/timer_list.html:316
+msgid "Priority:"
+msgstr ""
+
+#: ../template/default/timer_new.html:144 ../template/default/at_new.html:127
+#: ../template/default/at_timer_list.html:133
+#: ../template/default/config.html:194 ../template/default/config.html:227
+#: ../template/default/timer_list.html:316
+msgid "Lifetime:"
+msgstr ""
+
+#: ../template/default/timer_new.html:150
+msgid "Title of Recording:"
+msgstr ""
+
+#: ../template/default/timer_new.html:156
+msgid "Summary:"
+msgstr ""
+
+#: ../template/default/timer_new.html:169 ../template/default/at_new.html:166
+#: ../template/default/config.html:403
+msgid "Save"
+msgstr ""
+
+#: ../template/default/timer_new.html:170 ../template/default/at_new.html:167
+#: ../template/default/rec_edit.html:64
+msgid "Cancel"
+msgstr ""
+
+#: ../template/default/left.html:34 ../template/default/prog_summary.html:7
+#: ../template/default/prog_timeline.html:7 ../template/i18n.pl:27
+msgid "What's On Now?"
+msgstr ""
+
+#: ../template/default/left.html:38 ../template/default/prog_list2.html:6
+#: ../template/default/prog_list2.html:25
+msgid "Playing Today"
+msgstr ""
+
+#: ../template/default/left.html:42 ../template/default/config.html:141
+#: ../template/i18n.pl:29
+msgid "Timeline"
+msgstr ""
+
+#: ../template/default/left.html:46 ../template/default/prog_list.html:6
+#: ../template/i18n.pl:30
+msgid "Channels"
+msgstr ""
+
+#: ../template/default/left.html:50 ../template/default/config.html:222
+#: ../template/default/timer_list.html:6
+#: ../template/default/timer_list.html:30
+msgid "Timer"
+msgstr ""
+
+#: ../template/default/left.html:54 ../template/default/at_timer_list.html:6
+#: ../template/default/at_timer_list.html:15
+#: ../template/default/config.html:168
+msgid "Auto Timer"
+msgstr ""
+
+#: ../template/default/left.html:58 ../template/default/rec_list.html:6
+#: ../template/default/rec_list.html:15 ../template/i18n.pl:32
+msgid "Recordings"
+msgstr ""
+
+#: ../template/default/left.html:62 ../template/default/config.html:5
+#: ../template/default/config.html:15
+msgid "Configuration"
+msgstr ""
+
+#: ../template/default/left.html:66 ../template/default/rc.html:6
+msgid "Remote Control"
+msgstr ""
+
+#: ../template/default/left.html:70
+msgid "Watch TV"
+msgstr ""
+
+#: ../template/default/left.html:77
+msgid "Search"
+msgstr ""
+
+#: ../template/default/at_new.html:6 ../template/default/at_new.html:16
+msgid "Add New Auto Timer"
+msgstr ""
+
+#: ../template/default/at_new.html:6 ../template/default/at_new.html:16
+msgid "Edit Auto Timer"
+msgstr ""
+
+#: ../template/default/at_new.html:36
+msgid "Auto Timer Active:"
+msgstr ""
+
+#: ../template/default/at_new.html:41 ../template/default/at_new.html:45
+msgid "oneshot"
+msgstr ""
+
+#: ../template/default/at_new.html:52
+msgid "Search Patterns:"
+msgstr ""
+
+#: ../template/default/at_new.html:60
+msgid "Search in:"
+msgstr ""
+
+#: ../template/default/at_new.html:62
+msgid "Title"
+msgstr ""
+
+#: ../template/default/at_new.html:63
+msgid "Subtitle"
+msgstr ""
+
+#: ../template/default/at_new.html:64
+msgid "Description"
+msgstr ""
+
+#: ../template/default/at_new.html:70
+msgid "Search only on these days:"
+msgstr ""
+
+#: ../template/default/at_new.html:87
+msgid "all"
+msgstr ""
+
+#: ../template/default/at_new.html:97
+msgid "Starts Before:"
+msgstr ""
+
+#: ../template/default/at_new.html:108
+msgid "Ends Before:"
+msgstr ""
+
+#: ../template/default/at_new.html:135
+msgid "Episode:"
+msgstr ""
+
+#: ../template/default/at_new.html:143
+msgid "Remember programmed timers:"
+msgstr ""
+
+#: ../template/default/at_new.html:152
+msgid "Directory:"
+msgstr ""
+
+#: ../template/default/noauth.html:5 ../template/default/noauth.html:11
+msgid "Authorization Required"
+msgstr ""
+
+#: ../template/default/noauth.html:12
+msgid ""
+"This server could not verify that you are authorized to access the document "
+"requested. Either you supplied the wrong credentials (e.g. bad password), or "
+"your browser doesn't understand how to supply the credentials required."
+msgstr ""
+
+#: ../template/default/at_timer_list.html:22
+msgid "New Auto Timer"
+msgstr ""
+
+#: ../template/default/at_timer_list.html:44
+#: ../template/default/timer_list.html:202
+msgid "Active"
+msgstr ""
+
+#: ../template/default/at_timer_list.html:55
+#: ../template/default/timer_list.html:213
+msgid "Channel"
+msgstr ""
+
+#: ../template/default/at_timer_list.html:66
+#: ../template/default/timer_list.html:235
+msgid "Start"
+msgstr ""
+
+#: ../template/default/at_timer_list.html:77
+#: ../template/default/timer_list.html:246
+msgid "Stop"
+msgstr ""
+
+#: ../template/default/at_timer_list.html:88
+#: ../template/default/timer_list.html:257
+#: ../template/default/rec_list.html:74
+msgid "Name"
+msgstr ""
+
+#: ../template/default/at_timer_list.html:99
+#: ../template/default/timer_list.html:268
+#: ../template/default/rec_list.html:85
+msgid "Select all/none"
+msgstr ""
+
+#: ../template/default/at_timer_list.html:139
+#: ../template/default/timer_list.html:326
+msgid "Edit"
+msgstr ""
+
+#: ../template/default/at_timer_list.html:144
+#: ../template/default/timer_list.html:329
+msgid "Delete timer?"
+msgstr ""
+
+#: ../template/default/at_timer_list.html:144
+#: ../template/default/timer_list.html:329
+#: ../template/default/rec_list.html:137
+msgid "Delete"
+msgstr ""
+
+#: ../template/default/at_timer_list.html:166
+msgid "Force Update"
+msgstr ""
+
+#: ../template/default/at_timer_list.html:178
+#: ../template/default/timer_list.html:350
+msgid "Delete all selected timers?"
+msgstr ""
+
+#: ../template/default/at_timer_list.html:178
+msgid "Delete Selected Auto Timers"
+msgstr ""
+
+#: ../template/default/prog_summary.html:20
+#: ../template/default/prog_timeline.html:74
+msgid "What's on:"
+msgstr ""
+
+#: ../template/default/prog_summary.html:20
+#: ../template/default/prog_timeline.html:76
+msgid "now"
+msgstr ""
+
+#: ../template/default/prog_summary.html:20
+#: ../template/default/prog_timeline.html:82
+msgid "at:"
+msgstr ""
+
+#: ../template/default/prog_summary.html:43
+#: ../template/default/prog_list.html:19 ../template/default/rec_list.html:150
+#: ../template/default/prog_list2.html:52
+msgid "Stream"
+msgstr ""
+
+#: ../template/default/prog_summary.html:62
+msgid "more"
+msgstr ""
+
+#: ../template/default/prog_summary.html:79
+msgid "TV select"
+msgstr ""
+
+#: ../template/default/prog_summary.html:83
+msgid "Search for other show times"
+msgstr ""
+
+#: ../template/default/prog_summary.html:87
+msgid "More Information"
+msgstr ""
+
+#: ../template/default/prog_summary.html:93
+msgid "Record"
+msgstr ""
+
+#: ../template/default/config.html:38
+msgid "General Settings"
+msgstr ""
+
+#: ../template/default/config.html:44
+msgid "Template:"
+msgstr ""
+
+#: ../template/default/config.html:57
+msgid "Skin:"
+msgstr ""
+
+#: ../template/default/config.html:69
+msgid "Login Page:"
+msgstr ""
+
+#: ../template/default/config.html:81
+msgid "Number of DVB Cards:"
+msgstr ""
+
+#: ../template/default/config.html:95
+msgid "Identification"
+msgstr ""
+
+#: ../template/default/config.html:100
+msgid "Username:"
+msgstr ""
+
+#: ../template/default/config.html:106
+msgid "Password:"
+msgstr ""
+
+#: ../template/default/config.html:112
+msgid "Guest Account:"
+msgstr ""
+
+#: ../template/default/config.html:121
+msgid "Guest Username:"
+msgstr ""
+
+#: ../template/default/config.html:127
+msgid "Guest Password:"
+msgstr ""
+
+#: ../template/default/config.html:146
+msgid "Hours:"
+msgstr ""
+
+#: ../template/default/config.html:152
+msgid "Times:"
+msgstr ""
+
+#: ../template/default/config.html:173
+msgid "Active:"
+msgstr ""
+
+#: ../template/default/config.html:182
+msgid "Timeout:"
+msgstr ""
+
+#: ../template/default/config.html:183 ../template/default/config.html:240
+#: ../template/default/config.html:246
+msgid "minutes"
+msgstr ""
+
+#: ../template/default/config.html:201 ../template/default/config.html:239
+msgid "Time Margin at Start:"
+msgstr ""
+
+#: ../template/default/config.html:207 ../template/default/config.html:245
+msgid "Time Margin at Stop:"
+msgstr ""
+
+#: ../template/default/config.html:260
+msgid "Streaming"
+msgstr ""
+
+#: ../template/default/config.html:265
+msgid "Live Streaming"
+msgstr ""
+
+#: ../template/default/config.html:274
+msgid "Recordings Streaming"
+msgstr ""
+
+#: ../template/default/config.html:283
+msgid "HTTP Port of Streamdev (also possible 3000/ts):"
+msgstr ""
+
+#: ../template/default/config.html:289
+msgid "Path to VDR Recordings:"
+msgstr ""
+
+#: ../template/default/config.html:296
+msgid "Bandwidth of Streams:"
+msgstr ""
+
+#: ../template/default/config.html:323
+msgid "Channel Selections"
+msgstr ""
+
+#: ../template/default/config.html:333
+msgid "In &quot;Timeline&quot;?"
+msgstr ""
+
+#: ../template/default/config.html:342
+msgid "In &quot;Channels&quot; / &quot;Playing Today&quot;?"
+msgstr ""
+
+#: ../template/default/config.html:351
+msgid "In &quot;What's On Now&quot;?"
+msgstr ""
+
+#: ../template/default/config.html:360
+msgid "In &quot;Auto Timer&quot;?"
+msgstr ""
+
+#: ../template/default/config.html:404
+msgid "Apply"
+msgstr ""
+
+#: ../template/default/timer_list.html:38
+msgid "New Timer"
+msgstr ""
+
+#: ../template/default/timer_list.html:224
+#: ../template/default/rec_list.html:52
+msgid "Date"
+msgstr ""
+
+#: ../template/default/timer_list.html:278
+msgid "This timer is inactive!"
+msgstr ""
+
+#: ../template/default/timer_list.html:281
+msgid "This timer is impossible!"
+msgstr ""
+
+#: ../template/default/timer_list.html:284
+msgid "No more timers possible!"
+msgstr ""
+
+#: ../template/default/timer_list.html:287
+msgid "Timer OK."
+msgstr ""
+
+#: ../template/default/timer_list.html:293
+msgid "Edit timer status?"
+msgstr ""
+
+#: ../template/default/timer_list.html:297
+msgid "VPS"
+msgstr ""
+
+#: ../template/default/timer_list.html:298
+msgid "Auto"
+msgstr ""
+
+#: ../template/default/timer_list.html:350
+msgid "Delete Selected Timers"
+msgstr ""
+
+#: ../template/default/prog_list.html:29
+#: ../template/default/prog_list2.html:34
+msgid "Go!"
+msgstr ""
+
+#: ../template/default/error.html:6
+msgid "Error!"
+msgstr ""
+
+#: ../template/default/tv.html:5 ../template/default/tv_flash.html:4
+msgid "TV"
+msgstr ""
+
+#: ../template/default/tv.html:182
+msgid "Interval:"
+msgstr ""
+
+#: ../template/default/tv.html:185 ../template/default/tv.html:186
+#: ../template/default/tv.html:187 ../template/default/tv.html:188
+#: ../template/default/tv.html:189 ../template/default/tv.html:190
+#: ../template/default/tv.html:191
+msgid "sec."
+msgstr ""
+
+#: ../template/default/tv.html:193 ../template/default/tv.html:200
+msgid "G"
+msgstr ""
+
+#: ../template/default/tv.html:193 ../template/default/tv.html:200
+msgid "Grab the picture!"
+msgstr ""
+
+#: ../template/default/tv.html:194
+msgid "Size:"
+msgstr ""
+
+#: ../template/default/prog_detail.html:28
+msgid "close"
+msgstr ""
+
+#: ../template/default/prog_detail.html:30
+msgid "view"
+msgstr ""
+
+#: ../template/default/prog_detail.html:31
+msgid "record"
+msgstr ""
+
+#: ../template/default/prog_detail.html:32
+msgid "search"
+msgstr ""
+
+#: ../template/default/prog_detail.html:34
+msgid "Lookup movie in the Internet-Movie-Database (IMDb)"
+msgstr ""
+
+#: ../template/default/rec_list.html:19
+msgid "Total:"
+msgstr ""
+
+#: ../template/default/rec_list.html:19 ../template/default/rec_list.html:20
+msgid "h"
+msgstr ""
+
+#: ../template/default/rec_list.html:20
+msgid "Free:"
+msgstr ""
+
+#: ../template/default/rec_list.html:100
+msgid "Total"
+msgstr ""
+
+#: ../template/default/rec_list.html:109 ../template/default/rec_list.html:112
+msgid "New"
+msgstr ""
+
+#: ../template/default/rec_list.html:130 ../template/default/rec_edit.html:63
+msgid "Rename"
+msgstr ""
+
+#: ../template/default/rec_list.html:137
+msgid "Delete recording?"
+msgstr ""
+
+#: ../template/default/rec_list.html:168
+msgid "Commands:"
+msgstr ""
+
+#: ../template/default/rec_list.html:174
+msgid "Run"
+msgstr ""
+
+#: ../template/default/rec_list.html:174
+msgid "Really run this command?"
+msgstr ""
+
+#: ../template/default/rec_list.html:181 ../template/default/rec_list.html:187
+msgid "Delete all selected recordings?"
+msgstr ""
+
+#: ../template/default/rec_list.html:181 ../template/default/rec_list.html:187
+msgid "Delete Selected Recordings"
+msgstr ""
+
+#: ../template/default/prog_timeline.html:99
+msgid "Timeline:"
+msgstr ""
+
+#: ../template/default/prog_timeline.html:99
+msgid "to"
+msgstr ""
+
+#: ../template/default/rec_edit.html:6 ../template/default/rec_edit.html:15
+msgid "Rename Recording"
+msgstr ""
+
+#: ../template/default/rec_edit.html:38
+msgid "Original Name of Recording:"
+msgstr ""
+
+#: ../template/default/rec_edit.html:44
+msgid "New Name of Recording:"
+msgstr ""
+
+#: ../vdradmind.pl:222
+msgid "What's your VDR hostname (e.g video.intra.net)?"
+msgstr ""
+
+#: ../vdradmind.pl:223
+msgid "On which port does VDR listen to SVDRP queries?"
+msgstr ""
+
+#: ../vdradmind.pl:224
+msgid "On which address should VDRAdmin listen (0.0.0.0 for any)?"
+msgstr ""
+
+#: ../vdradmind.pl:225
+msgid "On which port should VDRAdmin listen?"
+msgstr ""
+
+#: ../vdradmind.pl:226
+msgid "Username?"
+msgstr ""
+
+#: ../vdradmind.pl:227
+msgid "Password?"
+msgstr ""
+
+#: ../vdradmind.pl:228
+msgid "Where are your recordings stored?"
+msgstr ""
+
+#: ../vdradmind.pl:229
+msgid "Where are your VDR's configuration files located?"
+msgstr ""
+
+#: ../vdradmind.pl:235
+msgid "Config file written successfully."
+msgstr ""
+
+#: ../vdradmind.pl:282
+#, perl-format
+msgid "vdradmind.pl %s started with pid %d."
+msgstr ""
+
+#: ../template/i18n.pl:12
+msgid "January"
+msgstr ""
+
+#: ../template/i18n.pl:13
+msgid "February"
+msgstr ""
+
+#: ../template/i18n.pl:14
+msgid "March"
+msgstr ""
+
+#: ../template/i18n.pl:15
+msgid "April"
+msgstr ""
+
+#: ../template/i18n.pl:16
+msgid "May"
+msgstr ""
+
+#: ../template/i18n.pl:17
+msgid "June"
+msgstr ""
+
+#: ../template/i18n.pl:18
+msgid "July"
+msgstr ""
+
+#: ../template/i18n.pl:19
+msgid "August"
+msgstr ""
+
+#: ../template/i18n.pl:20
+msgid "September"
+msgstr ""
+
+#: ../template/i18n.pl:21
+msgid "October"
+msgstr ""
+
+#: ../template/i18n.pl:22
+msgid "November"
+msgstr ""
+
+#: ../template/i18n.pl:23
+msgid "December"
+msgstr ""
+
+#: ../template/i18n.pl:28
+msgid "Playing Today?"
+msgstr ""
+
+#: ../template/i18n.pl:31
+msgid "Timers"
+msgstr ""
+
+#: ../template/i18n.pl:36
+msgid "Not found"
+msgstr ""
+
+#: ../template/i18n.pl:37
+msgid "The requested URL was not found on this server!"
+msgstr ""
+
+#: ../template/i18n.pl:38
+#, perl-format
+msgid "The URL &quot;%s&quot; was not found on this server!"
+msgstr ""
+
+#: ../template/i18n.pl:39
+msgid "Forbidden"
+msgstr ""
+
+#: ../template/i18n.pl:40
+msgid "You don't have permission to access this function!"
+msgstr ""
+
+#: ../template/i18n.pl:41
+#, perl-format
+msgid "Access to file &quot;%s&quot; denied!"
+msgstr ""
+
+#: ../template/i18n.pl:42
+#, perl-format
+msgid "Can't open file &quot;%s&quot;!"
+msgstr ""
+
+#: ../template/i18n.pl:43
+#, perl-format
+msgid "Can't connect to VDR at %s!"
+msgstr ""
+
+#: ../template/i18n.pl:44
+#, perl-format
+msgid "Error while sending command to VDR at %s"
+msgstr ""
+
+#: ../template/i18n.pl:48
+msgid "Schedule"
+msgstr ""
+
+#: ../template/i18n.pl:53
+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 ""
+
+#: ../template/i18n.pl:61
+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 ""
+
+#: ../template/i18n.pl:65
+msgid ""
+"<b>Auto Timer:</b><br>\n"
+"<p>An overview of all Auto Timers</p>\n"
+"<p>Click <i>Yes</i> or <i>No</i> in the <i>Active</i> column to (de-)"
+"activate that Auto Timer.</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 Auto Timer. If you want to delete multiple Auto Timers all "
+"at once, you have to check the boxes (<input type=\"checkbox\" checked>) on "
+"the right and finally click <i>Delete selected Auto Timers</i>.</p>"
+msgstr ""
+
+#: ../template/i18n.pl:71
+msgid ""
+"<b>Edit Auto Timer:</b><br>\n"
+"<p>Auto Timer is a key feature of VDRAdmin. An Auto Timer consists of one or "
+"more search terms and some other settings, that are looked for regularly in "
+"the Electronic Program Guide (EPG). On match Auto Timer 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 Auto Timer. 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>Auto Timer Active:</b><br>\n"
+"<p><i>Yes</i> activates and <i>No</i> deactivates this Auto Timer. Please "
+"note that VDR timers already added by VDRAdmin are not deleted if you "
+"deactivate this Auto Timer.</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, &quot;X-Files&quot; matches anything &quot;x-"
+"files&quot; 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 sources (undocumented feature).</p>"
+msgstr ""
+
+#: ../template/i18n.pl:83
+msgid ""
+"<p>No help available for <b>Recordings:</b>. For adding text please contact "
+"mail@andreas.vdr-developer.org.\t\n"
+"</p>"
+msgstr ""
+
+#: ../template/i18n.pl:87
+msgid ""
+"<b>Configuration:</b>\n"
+"<p>Here you can change general settings and base settings for timers, auto "
+"timers, 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, auto timers, 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 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 auto timers:</b>\n"
+"<p>Clicking on |<input type=\"radio\"> <i>Yes</i> | or |<input type=\"radio"
+"\" checked> <i>No</i> | activates or deactivates the auto timer function. "
+"You can also specify the interval, the the epg data is checked for updating "
+"the auto timers.<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 auto timers, 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 ""
+
+#: ../template/i18n.pl:117
+msgid ""
+"No help available yet. For adding or changing text please contact "
+"mail@andreas.vdr-developer.org."
+msgstr ""
diff --git a/template/default/at_new.html b/template/default/at_new.html
index 879d014..e1cabde 100644
--- a/template/default/at_new.html
+++ b/template/default/at_new.html
@@ -1,9 +1,10 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
- <title><?% msg.c_progname %?> - <tmpl_if newtimer><?% msg.an_new_timer %?><tmpl_else><?% msg.an_edit_timer %?></tmpl_if></title>
- <link href="style.css" rel="stylesheet" media="screen">
+ <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"/>
+ <title>VDRAdmin - <tmpl_if newtimer><%! Add New Auto Timer !%><tmpl_else><%! Edit Auto Timer !%></tmpl_if></title>
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css"/>
<script type="text/javascript" language="JavaScript1.2" src="library.js"></script>
</head>
@@ -12,146 +13,160 @@
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="39">
<tr>
<td valign="middle" width="500" background="bilder/nav_button_back.gif">
- <p class="einzug_ohnetop"><b><tmpl_if newtimer><?% msg.an_new_timer %?><tmpl_else><?% msg.an_edit_timer %?></tmpl_if></b></p>
+ <p class="einzug_ohnetop"><b><tmpl_if newtimer><%! Add New Auto Timer !%><tmpl_else><%! Edit Auto Timer !%></tmpl_if></b></p>
</td>
<tmpl_if name="help_url">
<td align="right" background="bilder/nav_button_back_mitte.gif">
- <a href="javascript:open_help('<tmpl_var help_url>');"><img src="bilder/help.gif" border="0" align="right" valign="top" alt="help" title="<?% msg.c_help %?>"></a>
+ <a href="javascript:open_help('<tmpl_var help_url>');"><img src="bilder/help.gif" border="0" align="right" valign="top" alt="help" title="<%! Help !%>"/></a>
</td>
</tmpl_if>
<td width="15" background="bilder/nav_button_back_end.gif">&nbsp;</td>
</tr>
</table>
- <br>
+ <br/>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr height="30">
- <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0"/></td>
<td height="30" background="bilder/uebersicht_oben.gif">&nbsp;</td>
<td height="30" background="bilder/uebersicht_oben.gif">&nbsp;</td>
- <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0"/></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td width="20%" height="25" background="bilder/uebersicht_mitte.gif"><?% msg.an_timer_active %?></td>
+ <td width="20%" height="25" background="bilder/uebersicht_mitte.gif"><%! Auto Timer Active: !%></td>
<td height="25" background="bilder/uebersicht_mitte.gif">
<tmpl_if name="oneshot">
- <input type="radio" name="active" value="1"><?% msg.c_yes %?>
- <input type="radio" name="active" value="0"><?% msg.c_no %?>
- <input type="radio" name="active" value="2" checked><?% msg.c_once %?>
+ <input type="radio" name="active" value="1" /> <%! Yes !%>
+ <input type="radio" name="active" value="0" /> <%! No !%>
+ <input type="radio" name="active" value="2" checked /> <%! oneshot !%>
<tmpl_else>
- <input type="radio" name="active" value="1" <tmpl_if active>checked</tmpl_if>><?% msg.c_yes %?>
- <input type="radio" name="active" value="0" <tmpl_unless active>checked</tmpl_unless>><?% msg.c_no %?>
- <input type="radio" name="active" value="2"><?% msg.c_once %?>
+ <input type="radio" name="active" value="1" <tmpl_if active>checked</tmpl_if> /> <%! Yes !%>
+ <input type="radio" name="active" value="0" <tmpl_unless active>checked</tmpl_unless> /> <%! No !%>
+ <input type="radio" name="active" value="2" /> <%! oneshot !%>
</tmpl_if>
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.an_search_items %?></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Search Patterns: !%></td>
<td height="25" background="bilder/uebersicht_mitte_dark.gif">
- <input type="text" name="pattern" value="<tmpl_var pattern>" size="40">
+ <input type="text" name="pattern" value="<tmpl_var pattern>" size="40" />
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
<tr height="25">
<td valign="top" width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.an_search_in %?></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Search in: !%></td>
<td height="25" background="bilder/uebersicht_mitte.gif">
- <input type="checkbox" name="title" value="1" <tmpl_if title>checked</tmpl_if>> <?% msg.c_title %?>
- <input type="checkbox" name="subtitle" value="1" <tmpl_if subtitle>checked</tmpl_if>> <?% msg.c_subtitle %?>
- <input type="checkbox" name="description" value="1" <tmpl_if description>checked</tmpl_if>> <?% msg.c_description %?>
+ <input type="checkbox" name="title" value="1" <tmpl_if title>checked</tmpl_if> /> <%! Title !%>
+ <input type="checkbox" name="subtitle" value="1" <tmpl_if subtitle>checked</tmpl_if> /> <%! Subtitle !%>
+ <input type="checkbox" name="description" value="1" <tmpl_if description>checked</tmpl_if> /> <%! Description !%>
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="25">
<td valign="top" width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.c_channel %?></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Search only on these days: !%></td>
<td height="25" background="bilder/uebersicht_mitte_dark.gif">
+ <input type="checkbox" name="wday_mon" value="1" <tmpl_if wday_mon>checked</tmpl_if> /> <%! Monday !%>
+ <input type="checkbox" name="wday_tue" value="1" <tmpl_if wday_tue>checked</tmpl_if> /> <%! Tuesday !%>
+ <input type="checkbox" name="wday_wed" value="1" <tmpl_if wday_wed>checked</tmpl_if> /> <%! Wednesday !%>
+ <input type="checkbox" name="wday_thu" value="1" <tmpl_if wday_thu>checked</tmpl_if> /> <%! Thursday !%>
+ <input type="checkbox" name="wday_fri" value="1" <tmpl_if wday_fri>checked</tmpl_if> /> <%! Friday !%>
+ <input type="checkbox" name="wday_sat" value="1" <tmpl_if wday_sat>checked</tmpl_if> /> <%! Saturday !%>
+ <input type="checkbox" name="wday_sun" value="1" <tmpl_if wday_sun>checked</tmpl_if> /> <%! Sunday !%>
+ </td>
+ <td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
+ </tr>
+ <tr height="25">
+ <td valign="top" width="30" height="25" background="bilder/uebersicht_links.gif"></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Channel: !%></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif">
<select name="channel" size="1">
- <option value="0"><?% msg.c_all %?></option>
+ <option value="0"><%! all !%></option>
<tmpl_loop channels>
<option value="<tmpl_var vdr_id>" <tmpl_if cur> selected</tmpl_if>><tmpl_var name></option>
</tmpl_loop>
</select>
</td>
- <td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
- </tr>
- <tr height="25">
- <td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.an_search_start %?></td>
- <td height="25" background="bilder/uebersicht_mitte.gif">
- <input type="text" name="starth" value="<tmpl_var starth>" size="2" maxlength="2">
- <b>&nbsp;:&nbsp;</b>
- <input type="text" name="startm" value="<tmpl_var startm>" size="2" maxlength="2">
- &nbsp;<?% msg.c_clock %?>
- </td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.an_search_stop %?></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Starts Before: !%></td>
<td height="25" background="bilder/uebersicht_mitte_dark.gif">
- <input type="text" name="stoph" value="<tmpl_var stoph>" size="2" maxlength="2">
+ <input type="text" name="starth" value="<tmpl_var starth>" size="2" maxlength="2" />
<b>&nbsp;:&nbsp;</b>
- <input type="text" name="stopm" value="<tmpl_var stopm>" size="2" maxlength="2">
- &nbsp;<?% msg.c_clock %?>
+ <input type="text" name="startm" value="<tmpl_var startm>" size="2" maxlength="2" />
+ &nbsp;<%! o'clock !%>
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.c_priority %?></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Ends Before: !%></td>
<td height="25" background="bilder/uebersicht_mitte.gif">
- <input type="text" name="prio" value="<tmpl_var prio>" size="2" maxlength="2">
+ <input type="text" name="stoph" value="<tmpl_var stoph>" size="2" maxlength="2" />
+ <b>&nbsp;:&nbsp;</b>
+ <input type="text" name="stopm" value="<tmpl_var stopm>" size="2" maxlength="2" />
+ &nbsp;<%! o'clock !%>
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.c_lifetime %?></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Priority: !%></td>
<td height="25" background="bilder/uebersicht_mitte_dark.gif">
- <input type="text" name="lft" value="<tmpl_var lft>" size="2" maxlength="2">
+ <input type="text" name="prio" value="<tmpl_var prio>" size="2" maxlength="2" />
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.an_episode %?></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Lifetime: !%></td>
<td height="25" background="bilder/uebersicht_mitte.gif">
- <input type="checkbox" name="episode" value="1" <tmpl_if episode>checked</tmpl_if>>
+ <input type="text" name="lft" value="<tmpl_var lft>" size="2" maxlength="2" />
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="25">
+ <td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Episode: !%></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif">
+ <input type="checkbox" name="episode" value="1" <tmpl_if episode>checked</tmpl_if> />
+ </td>
+ <td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
+ </tr>
+ <tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.an_done_active %?></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Remember programmed timers: !%></td>
<td height="25" background="bilder/uebersicht_mitte.gif">
- <input type="radio" name="done" value="1" <tmpl_if done>checked</tmpl_if>><?% msg.c_yes %?>
- <input type="radio" name="done" value="0" <tmpl_unless done>checked</tmpl_unless>><?% msg.c_no %?>
+ <input type="radio" name="done" value="1" <tmpl_if done>checked</tmpl_if> /> <%! Yes !%>
+ <input type="radio" name="done" value="0" <tmpl_unless done>checked</tmpl_unless> /> <%! No !%>
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.c_directory %?></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Directory: !%></td>
<td height="25" background="bilder/uebersicht_mitte_dark.gif">
- <input type="text" name="directory" value="<tmpl_var directory>" size="40">
+ <input type="text" name="directory" value="<tmpl_var directory>" size="40" />
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
<tr height="30">
- <td width="30" height="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0"/></td>
<td height="30" background="bilder/uebersicht_unten.gif">&nbsp;</td>
<td height="30" background="bilder/uebersicht_unten.gif">&nbsp;</td>
- <td width="30" height="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0"/></td>
</tr>
</table>
- <br>
- <input type="submit" name="save" value="<?% msg.c_save %?>">
- <input type="submit" name="exit" value="<?% msg.c_cancel %?>">
- <input type="hidden" name="aktion" value="at_timer_save">
- <input type="hidden" name="id" value="<tmpl_var id>">
+ <br/>
+ <input type="submit" name="save" value="<%! Save !%>" />
+ <input type="submit" name="exit" value="<%! Cancel !%>" />
+ <input type="hidden" name="aktion" value="at_timer_save" />
+ <input type="hidden" name="id" value="<tmpl_var id>" />
</form>
</body>
diff --git a/template/default/at_timer_list.html b/template/default/at_timer_list.html
index c1bba7a..c29fa11 100644
--- a/template/default/at_timer_list.html
+++ b/template/default/at_timer_list.html
@@ -1,11 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
- <title><?% msg.c_progname %?> - <?% msg.al_autotimer %?></title>
- <link href="style.css" rel="stylesheet" media="screen">
+ <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"/>
+ <title>VDRAdmin - <%! Auto Timer !%></title>
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css"/>
<script type="text/javascript" language="JavaScript1.2" src="library.js"></script>
</head>
@@ -13,14 +12,14 @@
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="39">
<tr>
<td valign="middle" width="200" background="bilder/nav_button_back.gif">
- <p class="einzug_ohnetop"><b><?% msg.al_autotimer %?></b></p>
+ <p class="einzug_ohnetop"><b><%! Auto Timer !%></b></p>
</td>
<td align="right" background="bilder/nav_button_back_mitte.gif">
<table border="0" cellspacing="0" cellpadding="0">
<tr height="20">
<td width="12" height="20" background="bilder/gbutton_left.gif"></td>
<td align="center" height="20" background="bilder/gbutton_middle.gif">
- <a href="<tmpl_var naturl>"><div class="gbutton"><?% msg.al_new_autotimer %?></div></a>
+ <a href="<tmpl_var naturl>"><div class="gbutton"><%! New Auto Timer !%></div></a>
</td>
<td width="12" height="20" background="bilder/gbutton_right.gif"></td>
<td></td>
@@ -29,78 +28,76 @@
</td>
<tmpl_if name="help_url">
<td align="right" width="35" background="bilder/nav_button_back_mitte.gif">
- <a href="javascript:open_help('<tmpl_var help_url>');"><img src="bilder/help.gif" border="0" align="right" valign="top" alt="help" title="<?% msg.c_help %?>"></a>
+ <a href="javascript:open_help('<tmpl_var help_url>');"><img src="bilder/help.gif" border="0" align="right" valign="top" alt="help" title="<%! Help !%>"/></a>
</td>
</tmpl_if>
<td width="15" background="bilder/nav_button_back_end.gif">&nbsp;</td>
</tr>
</table>
- <br>
+ <br/>
<form action="<tmpl_var url>" method="get" name="FormName">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
- <td valign="top" width="30">
- <p><img src="bilder/uebersicht_oben_links.gif" alt="" height="30" width="30" border="0"></p>
- </td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_oben_links.gif" alt="" height="30" width="30" border="0"/></td>
<td width="70" background="bilder/uebersicht_oben<tmpl_if sortbyactive>_selected</tmpl_if>.gif">
<nobr class="einzug_liste_headlines">
- <a class="sort" href="<tmpl_var sortbyactiveurl>"><?% msg.c_list_active %?>
+ <a class="sort" href="<tmpl_var sortbyactiveurl>"><%! Active !%>
<tmpl_if sortbyactive>
- <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0"/>
<tmpl_else>
- <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0"/>
</tmpl_if>
</a>
</nobr>
</td>
<td width="10%" background="bilder/uebersicht_oben<tmpl_if sortbychannel>_selected</tmpl_if>.gif">
<nobr class="einzug_liste_headlines">
- <a class="sort" href="<tmpl_var sortbychannelurl>"><?% msg.c_list_channel %?>
+ <a class="sort" href="<tmpl_var sortbychannelurl>"><%! Channel !%>
<tmpl_if sortbychannel>
- <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0"/>
<tmpl_else>
- <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0"/>
</tmpl_if>
</a>
</nobr>
</td>
<td width="40" background="bilder/uebersicht_oben<tmpl_if sortbystart>_selected</tmpl_if>.gif">
<nobr class="einzug_liste_headlines">
- <a class="sort" href="<tmpl_var sortbystarturl>"><?% msg.c_list_start %?>
+ <a class="sort" href="<tmpl_var sortbystarturl>"><%! Start !%>
<tmpl_if sortbystart>
- <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0"/>
<tmpl_else>
- <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0"/>
</tmpl_if>
</a>
</nobr>
</td>
<td width="40" background="bilder/uebersicht_oben<tmpl_if sortbystop>_selected</tmpl_if>.gif">
<nobr class="einzug_liste_headlines">
- <a class="sort" href="<tmpl_var sortbystopurl>"><?% msg.c_list_stop %?>
+ <a class="sort" href="<tmpl_var sortbystopurl>"><%! Stop !%>
<tmpl_if sortbystop>
- <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0"/>
<tmpl_else>
- <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0"/>
</tmpl_if>
</a>
</nobr>
</td>
<td background="bilder/uebersicht_oben<tmpl_if sortbypattern>_selected</tmpl_if>.gif">
<nobr class="einzug_liste_headlines">
- <a class="sort" href="<tmpl_var sortbypatternurl>"><?% msg.c_list_name %?>
+ <a class="sort" href="<tmpl_var sortbypatternurl>"><%! Name !%>
<tmpl_if sortbypattern>
- <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0"/>
<tmpl_else>
- <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0"/>
</tmpl_if>
</a>
</nobr>
</td>
<td width="30" background="bilder/uebersicht_oben.gif">&nbsp;</td>
<td width="30" background="bilder/uebersicht_oben.gif">&nbsp;</td>
- <td align="center" width="30" background="bilder/uebersicht_oben.gif"><input type="checkbox" name="SELALL" value="SELALL" onclick="AllMessages(this.form);" title="<?% msg.c_select_allnone %?>"></td>
- <td valign="top" width="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" height="30" width="30" border="0"></td>
+ <td align="center" width="30" background="bilder/uebersicht_oben.gif"><input type="checkbox" name="SELALL" value="SELALL" onclick="AllMessages(this.form);" title="<%! Select all/none !%>"/></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" height="30" width="30" border="0"/></td>
</tr>
<tmpl_loop at_timer_loop>
@@ -109,17 +106,17 @@
<td valign="top" width="70" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if><tmpl_if sortbyactive>_selected</tmpl_if>.gif">
<p class="einzug_liste">
<tmpl_if active>
- <img src="bilder/poempl_gruen.gif" alt="" width="19" height="19" align="absmiddle" border="0">
- <a href="<tmpl_var toggleurl>"><font color="black"><?% msg.c_yes %?></font></a>
+ <img src="bilder/poempl_gruen.gif" alt="" width="19" height="19" align="absmiddle" border="0"/>
+ <a href="<tmpl_var toggleurl>"><font color="black"><%! Yes !%></font></a>
<tmpl_else>
- <img src="bilder/poempl_rot.gif" alt="" width="19" height="19" align="absmiddle" border="0">
- <a href="<tmpl_var toggleurl>"><font color="black"><?% msg.c_no %?></font></a>
+ <img src="bilder/poempl_grey.gif" alt="" width="19" height="19" align="absmiddle" border="0"/>
+ <a href="<tmpl_var toggleurl>"><font color="black"><%! No !%></font></a>
</tmpl_if>
</p>
</td>
<td valign="top" width="120" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if><tmpl_if sortbychannel>_selected</tmpl_if>.gif">
<p class="einzug_liste">
- <tmpl_if channel><tmpl_var channel><tmpl_else>-</tmpl_if>
+ <tmpl_if channel><a href="<tmpl_var proglink>"><tmpl_var channel></a><tmpl_else>-</tmpl_if>
</p>
</td>
<td valign="top" width="40" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if><tmpl_if sortbystart>_selected</tmpl_if>.gif">
@@ -133,52 +130,52 @@
</p>
</td>
<td valign="top" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if><tmpl_if sortbypattern>_selected</tmpl_if>.gif">
- <p class="einzug_liste">
+ <p class="einzug_liste" title="<%! Priority: !%> <tmpl_var prio> / <%! Lifetime: !%> <tmpl_var lft>">
<tmpl_var pattern>
</p>
</td>
<td align="center" valign="top" width="30" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
<p class="einzug_liste">
- <a href="<tmpl_var modurl>"><img src="bilder/edit.gif" alt="edit" height="17" width="17" border="0" title="<?% msg.c_edit %?>"></a>
+ <a href="<tmpl_var modurl>"><img src="bilder/edit.gif" alt="edit" height="17" width="17" border="0" title="<%! Edit !%>"/></a>
</p>
</td>
<td align="center" valign="top" width="30" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
<p class="einzug_liste">
- <a href="javascript:del('<?% msg.js_del_timer %?>', '<tmpl_var delurl>');"><img src="bilder/delete.gif" alt="delete" height="17" width="17" border="0" title="<?% msg.c_delete %?>"></a>
+ <a href="javascript:del('<%! Delete timer? !%>', '<tmpl_var delurl>');"><img src="bilder/delete.gif" alt="delete" height="17" width="17" border="0" title="<%! Delete !%>"/></a>
</p>
</td>
<td align="center" valign="top" width="30" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
- <p class="einzug_liste"><input type="checkbox" name="xxxx_<tmpl_var id>"></p>
+ <p class="einzug_liste"><input type="checkbox" name="xxxx_<tmpl_var id>"/></p>
</td>
<td valign="top" width="30" background="bilder/uebersicht_rechts<tmpl_if __ODD__>_dark</tmpl_if>.gif">&nbsp;</td>
</tr>
</tmpl_loop>
<tr>
- <td valign="top" width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" height="30" width="30" border="0"></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" height="30" width="30" border="0"/></td>
<td colspan="8" background="bilder/uebersicht_unten.gif">&nbsp;</td>
- <td valign="top" width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" height="30" width="30" border="0"></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" height="30" width="30" border="0"/></td>
</tr>
<tr>
<td colspan="5" valign="top">
<table border="0" cellspacing="0" cellpadding="0">
- <br>
+ <br/>
<tr height="20">
<td width="12" height="20" background="bilder/gbutton_left.gif"></td>
<td align="center" height="20" background="bilder/gbutton_middle.gif">
- <a href="<tmpl_var force_update_url>"><div class="gbutton"><?% msg.al_force_update %?></div></a>
+ <a href="<tmpl_var force_update_url>"><div class="gbutton"><%! Force Update !%></div></a>
</td>
<td width="12" height="20" background="bilder/gbutton_right.gif"></td>
</tr>
</table>
</td>
<td colspan="4" align="right">
- <br>
+ <br/>
<table border="0" cellspacing="0" cellpadding="0">
<tr height="20">
<td width="12" height="20" background="bilder/gbutton_left.gif"></td>
<td align="center" height="20" background="bilder/gbutton_middle.gif">
- <a href="javascript:mdel('<?% msg.js_del_selected_timer %?>');"><div class="gbutton"><?% msg.al_del_selected %?></div></a>
+ <a href="javascript:mdel('<%! Delete all selected timers? !%>');"><div class="gbutton"><%! Delete Selected Auto Timers !%></div></a>
</td>
<td width="12" height="20" background="bilder/gbutton_right.gif"></td>
</tr>
@@ -187,7 +184,7 @@
<td valign="top" width="30"></td>
</tr>
</table>
- <input type="hidden" name="aktion" value="at_timer_delete">
+ <input type="hidden" name="aktion" value="at_timer_delete"/>
</form>
</body>
diff --git a/template/default/bilder/logo_linvdr.gif b/template/default/bilder/logo_linvdr.gif
new file mode 100644
index 0000000..d9d0398
--- /dev/null
+++ b/template/default/bilder/logo_linvdr.gif
Binary files differ
diff --git a/template/default/bilder/logo_other.gif b/template/default/bilder/logo_other.gif
new file mode 100644
index 0000000..8344c58
--- /dev/null
+++ b/template/default/bilder/logo_other.gif
Binary files differ
diff --git a/template/default/config.html b/template/default/config.html
index 690cf37..0f8cd5a 100644
--- a/template/default/config.html
+++ b/template/default/config.html
@@ -1,10 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
- <title><?% msg.c_progname %?> - <?% msg.co_config %?></title>
- <link href="style.css" rel="stylesheet" media="screen">
+ <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1" />
+ <title>VDRAdmin - <%! Configuration !%></title>
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css" />
<script type="text/javascript" language="JavaScript1.2" src="library.js"></script>
</head>
@@ -13,18 +12,18 @@
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="39">
<tr>
<td valign="middle" width="200" background="bilder/nav_button_back.gif">
- <p class="einzug_ohnetop"><b><?% msg.co_config %?></b></p>
+ <p class="einzug_ohnetop"><b><%! Configuration !%></b></p>
</td>
<td align="right" background="bilder/nav_button_back_mitte.gif">&nbsp;</td>
<td align="right" width="35" background="bilder/nav_button_back_mitte.gif">
<tmpl_if name="help_url">
- <a href="javascript:open_help('<tmpl_var help_url>');"><img src="bilder/help.gif" border="0" alt="help" title="<?% msg.c_help %?>"></a>
+ <a href="javascript:open_help('<tmpl_var help_url>');"><img src="bilder/help.gif" border="0" alt="help" title="<%! Help !%>" /></a>
</tmpl_if>
</td>
<td width="15" background="bilder/nav_button_back_end.gif">&nbsp;</td>
</tr>
</table>
- <br>
+ <br />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td></td>
@@ -35,13 +34,14 @@
<td valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr height="30">
- <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0"></td>
- <td colspan="2" height="30" background="bilder/uebersicht_oben.gif"><b><?% msg.co_hl_general %?></b></td>
- <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0" /></td>
+ <td colspan="2" height="30" background="bilder/uebersicht_oben.gif"><b><%! General Settings !%></b></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0" /></td>
</tr>
+<!-- Only one template, so no need to chose
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.co_g_template %?></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Template: !%></td>
<td width="40%" height="25" background="bilder/uebersicht_mitte.gif">
<select name="TEMPLATE" size="1">
<tmpl_loop name="TEMPLATELIST">
@@ -51,33 +51,22 @@
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
+-->
<tr height="25">
- <td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.co_g_skin %?></td>
- <td width="40%" height="25" background="bilder/uebersicht_mitte_dark.gif">
+ <td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Skin: !%></td>
+ <td width="40%" height="25" background="bilder/uebersicht_mitte.gif">
<select name="SKIN" size="1">
<tmpl_loop name="SKINLIST">
<option value="<tmpl_var name>" <tmpl_if sel> selected</tmpl_if>><tmpl_var name></option>
</tmpl_loop>
</select>
</td>
- <td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
- </tr>
- <tr height="25">
- <td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.co_g_language %?></td>
- <td width="40%" height="25" background="bilder/uebersicht_mitte.gif">
- <select name="LANGUAGE" size="1">
-<tmpl_loop name="LANGLIST">
- <option value="<tmpl_var name>" <tmpl_if aklang> selected</tmpl_if>><tmpl_var name></option>
-</tmpl_loop>
- </select>
- </td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.co_g_loginpage %?></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Login Page: !%></td>
<td width="40%" height="25" background="bilder/uebersicht_mitte_dark.gif">
<select name="LOGINPAGE" size="1">
<tmpl_loop name="LOGINPAGES">
@@ -89,85 +78,85 @@
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.co_g_num_dvb %?></td>
- <td width="40%" height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="RECORDINGS" value="<tmpl_var RECORDINGS>" size="2"></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Number of DVB Cards: !%></td>
+ <td width="40%" height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="RECORDINGS" value="<tmpl_var RECORDINGS>" size="2" /></td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr>
- <td width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0" /></td>
<td colspan="2" background="bilder/uebersicht_unten.gif">&nbsp;</td>
- <td width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0" /></td>
</tr>
</table>
- <br>
+ <br />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr height="30">
- <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0"></td>
- <td colspan="2" height="30" background="bilder/uebersicht_oben.gif"><b><?% msg.co_hl_id %?></b></td>
- <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0" /></td>
+ <td colspan="2" height="30" background="bilder/uebersicht_oben.gif"><b><%! Identification !%></b></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0" /></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.co_id_user %?></td>
- <td width="40%" height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="USERNAME" value="<tmpl_var USERNAME>" size="12"></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Username: !%></td>
+ <td width="40%" height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="USERNAME" value="<tmpl_var USERNAME>" size="12" /></td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.co_id_password %?></td>
- <td width="40%" height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="password" name="PASSWORD" value="<tmpl_var PASSWORD>" size="12"></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Password: !%></td>
+ <td width="40%" height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="password" name="PASSWORD" value="<tmpl_var PASSWORD>" size="12" /></td>
<td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.co_id_guest_account %?></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Guest Account: !%></td>
<td width="40%" height="25" background="bilder/uebersicht_mitte.gif">
- <input type="radio" name="GUEST_ACCOUNT" value="1" <tmpl_if guest_account>checked</tmpl_if>><?% msg.c_yes %?>
- <input type="radio" name="GUEST_ACCOUNT" value="0" <tmpl_unless guest_account>checked</tmpl_unless>><?% msg.c_no %?>
+ <input type="radio" name="GUEST_ACCOUNT" value="1" <tmpl_if guest_account>checked</tmpl_if> /> <%! Yes !%>
+ <input type="radio" name="GUEST_ACCOUNT" value="0" <tmpl_unless guest_account>checked</tmpl_unless> /> <%! No !%>
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.co_id_guest_user %?></td>
- <td width="40%" height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="text" name="USERNAME_GUEST" value="<tmpl_var USERNAME_GUEST>" size="12"></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Guest Username: !%></td>
+ <td width="40%" height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="text" name="USERNAME_GUEST" value="<tmpl_var USERNAME_GUEST>" size="12" /></td>
<td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.co_id_guest_password %?></td>
- <td width="40%" height="25" background="bilder/uebersicht_mitte.gif"><input type="password" name="PASSWORD_GUEST" value="<tmpl_var PASSWORD_GUEST>" size="12"></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Guest Password: !%></td>
+ <td width="40%" height="25" background="bilder/uebersicht_mitte.gif"><input type="password" name="PASSWORD_GUEST" value="<tmpl_var PASSWORD_GUEST>" size="12" /></td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="30">
- <td width="30" height="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0" /></td>
<td colspan="2" height="30" background="bilder/uebersicht_unten.gif">&nbsp;</td>
- <td width="30" height="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0" /></td>
</tr>
</table>
- <br>
+ <br />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr height="30">
- <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0"></td>
- <td colspan="2" height="30" background="bilder/uebersicht_oben.gif"><b><?% msg.co_hl_timeline %?></b></td>
- <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0" /></td>
+ <td colspan="2" height="30" background="bilder/uebersicht_oben.gif"><b><%! Timeline !%></b></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0" /></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.co_tl_hours %?></td>
- <td width="40%" height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="ZEITRAHMEN" value="<tmpl_var ZEITRAHMEN>" size="2"></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Hours: !%></td>
+ <td width="40%" height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="ZEITRAHMEN" value="<tmpl_var ZEITRAHMEN>" size="2" /></td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.co_tl_times %?></td>
- <td width="40%" height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="text" name="TIMES" value="<tmpl_var TIMES>" size="16"></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Times: !%></td>
+ <td width="40%" height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="text" name="TIMES" value="<tmpl_var TIMES>" size="16" /></td>
<td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
<tr height="30">
- <td width="30" height="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0" /></td>
<td colspan="2" height="30" background="bilder/uebersicht_unten.gif">&nbsp;</td>
- <td width="30" height="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0" /></td>
</tr>
</table>
</td>
@@ -175,111 +164,136 @@
<td valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr height="30">
- <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0"></td>
- <td colspan="2" height="30" background="bilder/uebersicht_oben.gif"><b><?% msg.co_hl_autotimer %?></b></td>
- <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0" /></td>
+ <td colspan="2" height="30" background="bilder/uebersicht_oben.gif"><b><%! Auto Timer !%></b></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0" /></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif">&nbsp;</td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.co_at_active %?></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Active: !%></td>
<td width="30%" height="25" background="bilder/uebersicht_mitte.gif">
- <input type="radio" name="AT_FUNC" value="1" <tmpl_if at_func>checked</tmpl_if>><?% msg.c_yes %?>
- <input type="radio" name="AT_FUNC" value="0" <tmpl_unless at_func>checked</tmpl_unless>><?% msg.c_no %?>
+ <input type="radio" name="AT_FUNC" value="1" <tmpl_if at_func>checked</tmpl_if> /> <%! Yes !%>
+ <input type="radio" name="AT_FUNC" value="0" <tmpl_unless at_func>checked</tmpl_unless> /> <%! No !%>
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.co_at_timeout %?></td>
- <td width="30%" height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="text" name="AT_TIMEOUT" value="<tmpl_var AT_TIMEOUT>" size="4"> <?% msg.c_minutes %?></td>
- <td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
- </tr>
- <tr height="25">
- <td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.c_priority %?></td>
- <td width="30%" height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="text" name="AT_PRIORITY" value="<tmpl_var AT_PRIORITY>" size="2" maxlength="2"></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Timeout: !%></td>
+ <td width="30%" height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="text" name="AT_TIMEOUT" value="<tmpl_var AT_TIMEOUT>" size="4" /> <%! minutes !%></td>
<td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.c_lifetime %?></td>
- <td width="30%" height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="AT_LIFETIME" value="<tmpl_var AT_LIFETIME>" size="2" maxlength="2"></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Priority: !%></td>
+ <td width="30%" height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="AT_PRIORITY" value="<tmpl_var AT_PRIORITY>" size="2" maxlength="2" /></td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
+ <tr height="25">
+ <td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Lifetime: !%></td>
+ <td width="30%" height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="text" name="AT_LIFETIME" value="<tmpl_var AT_LIFETIME>" size="2" maxlength="2" /></td>
+ <td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
+ </tr>
<!--
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.c_buffer_before %?></td>
- <td width="30%" height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="textfieldName" size="2" maxlength="2"></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Time Margin at Start: !%></td>
+ <td width="30%" height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="AT_MARGIN_BEGIN" value="<tmpl_var AT_MARGIN_BEGIN>" size="2" maxlength="2" /></td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.c_buffer_after %?></td>
- <td width="30%" height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="text" name="textfieldName" size="2" maxlength="2"></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Time Margin at Stop: !%></td>
+ <td width="30%" height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="text" name="AT_MARGIN_END" value="<tmpl_var AT_MARGIN_END>" size="2" maxlength="2" /></td>
<td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
// -->
<tr>
- <td width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0" /></td>
<td colspan="2" background="bilder/uebersicht_unten.gif">&nbsp;</td>
- <td width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0" /></td>
</tr>
</table>
- <br>
+ <br />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr height="30">
- <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0"></td>
- <td colspan="2" height="30" background="bilder/uebersicht_oben.gif"><b><?% msg.co_hl_timer %?></b></td>
- <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0" /></td>
+ <td colspan="2" height="30" background="bilder/uebersicht_oben.gif"><b><%! Timer !%></b></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0" /></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.c_lifetime %?></td>
- <td width="30%" height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="TM_LIFETIME" value="<tmpl_var TM_LIFETIME>" size="2" maxlength="2"></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Lifetime: !%></td>
+ <td width="30%" height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="TM_LIFETIME" value="<tmpl_var TM_LIFETIME>" size="2" maxlength="2" /></td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.c_priority %?></td>
- <td width="30%" height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="text" name="TM_PRIORITY" value="<tmpl_var TM_PRIORITY>" size="2" maxlength="2"></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Priority: !%></td>
+ <td width="30%" height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="text" name="TM_PRIORITY" value="<tmpl_var TM_PRIORITY>" size="2" maxlength="2" /></td>
<td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.c_buffer_before %?></td>
- <td width="30%" height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="TM_MARGIN_BEGIN" value="<tmpl_var TM_MARGIN_BEGIN>" size="3"> <?% msg.c_minutes %?></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Time Margin at Start: !%></td>
+ <td width="30%" height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="TM_MARGIN_BEGIN" value="<tmpl_var TM_MARGIN_BEGIN>" size="3" /> <%! minutes !%></td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.c_buffer_after %?></td>
- <td width="30%" height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="text" name="TM_MARGIN_END" value="<tmpl_var TM_MARGIN_END>" size="3"> <?% msg.c_minutes %?></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Time Margin at Stop: !%></td>
+ <td width="30%" height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="text" name="TM_MARGIN_END" value="<tmpl_var TM_MARGIN_END>" size="3" /> <%! minutes !%></td>
<td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
<tr>
- <td width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0" /></td>
<td colspan="2" background="bilder/uebersicht_unten.gif">&nbsp;</td>
- <td width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0" /></td>
</tr>
</table>
- <br>
+<tmpl_if ST_FUNC>
+ <br />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr height="30">
- <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0"></td>
- <td colspan="2" height="30" background="bilder/uebersicht_oben.gif"><b><?% msg.co_hl_streaming %?></b></td>
- <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0" /></td>
+ <td colspan="2" height="30" background="bilder/uebersicht_oben.gif"><b><%! Streaming !%></b></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0" /></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.co_str_port %?></td>
- <td width="30%" height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="ST_STREAMDEV_PORT" value="<tmpl_var ST_STREAMDEV_PORT>" size="10"></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! Live Streaming !%></td>
+ <td width="30%" height="25" background="bilder/uebersicht_mitte.gif">
+ <input type="radio" name="ST_LIVE_ON" value="1" <tmpl_if ST_LIVE_ON>checked</tmpl_if> /> <%! Yes !%>
+ <input type="radio" name="ST_LIVE_ON" value="0" <tmpl_unless ST_LIVE_ON>checked</tmpl_unless> /> <%! No !%>
+ </td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
- <tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.co_str_bandwidth %?></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Recordings Streaming !%></td>
+ <td width="30%" height="25" background="bilder/uebersicht_mitte_dark.gif">
+ <input type="radio" name="ST_REC_ON" value="1" <tmpl_if ST_REC_ON>checked</tmpl_if> /> <%! Yes !%>
+ <input type="radio" name="ST_REC_ON" value="0" <tmpl_unless ST_REC_ON>checked</tmpl_unless> /> <%! No !%>
+ </td>
+ <td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
+ </tr>
+ <tr height="25">
+ <td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><%! HTTP Port of Streamdev (also possible 3000/ts): !%></td>
+ <td width="30%" height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="ST_STREAMDEV_PORT" value="<tmpl_var ST_STREAMDEV_PORT>" size="10" /></td>
+ <td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
+ </tr>
+ <tr height="25">
+ <td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Path to VDR Recordings: !%></td>
+ <td width="30%" height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="text" name="ST_VIDEODIR" value="<tmpl_var ST_VIDEODIR>" size="20" maxlength="256" /></td>
+ <td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
+ </tr>
+<!-- not (yet?) supported
+ <tr height="25">
+ <td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Bandwidth of Streams: !%></td>
<td width="30%" height="25" background="bilder/uebersicht_mitte_dark.gif">
<select name="STREAMTYPE" size="1">
<tmpl_loop name="STREAMTYPELIST">
@@ -289,66 +303,71 @@
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
- <tr height="25">
- <td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><?% msg.co_str_rec_path %?></td>
- <td width="30%" height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="VIDEODIR" value="<tmpl_var VIDEODIR>" size="20" maxlength="256"></td>
- <td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
- </tr>
+-->
<tr>
- <td width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0" /></td>
<td colspan="2" background="bilder/uebersicht_unten.gif">&nbsp;</td>
- <td width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0" /></td>
</tr>
</table>
+</tmpl_if>
</td>
</tr>
<tr>
<td colspan="3">
- <br>
+ <br />
<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="black">
<tr height="30">
- <td width="30" height="30" background="bilder/uebersicht_oben.gif"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30" background="bilder/uebersicht_oben.gif"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0" /></td>
<td width="40%" height="30" background="bilder/uebersicht_oben.gif">
- <div align="left"><b><?% msg.co_hl_channels %?></b></div>
+ <div align="left"><b><%! Channel Selections !%></b></div>
</td>
<td bgcolor="#c6c6c6" height="30" background="bilder/uebersicht_oben.gif">&nbsp;</td>
<td bgcolor="#c6c6c6" width="45%" height="30" background="bilder/uebersicht_oben.gif">
<div align="center"></div>
</td>
- <td bgcolor="#c6c6c6" width="30" height="30" background="bilder/uebersicht_oben.gif"><img src="bilder/uebersicht_oben_rechts.gif" alt="" height="30" width="30" border="0"></td>
+ <td bgcolor="#c6c6c6" width="30" height="30" background="bilder/uebersicht_oben.gif"><img src="bilder/uebersicht_oben_rechts.gif" alt="" height="30" width="30" border="0" /></td>
+ </tr>
+ <tr height="30">
+ <td width="30" height="30" background="bilder/uebersicht_links_dark.gif"></td>
+ <td width="40%" height="30" background="bilder/uebersicht_mitte_dark.gif"><%! In &quot;Timeline&quot;? !%></td>
+ <td colspan="2" bgcolor="#c6c6c6" height="30" background="bilder/uebersicht_mitte_dark.gif">
+ <input type="radio" name="CHANNELS_WANTED_TIMELINE" value="1" <tmpl_if CHANNELS_WANTED_TIMELINE>checked</tmpl_if> /> <%! Yes !%>
+ <input type="radio" name="CHANNELS_WANTED_TIMELINE" value="0" <tmpl_unless CHANNELS_WANTED_TIMELINE>checked</tmpl_unless> /> <%! No !%>
+ </td>
+ <td bgcolor="#c6c6c6" width="30" height="30" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
<tr height="30">
<td width="30" height="30" background="bilder/uebersicht_links.gif"></td>
- <td width="40%" height="30" background="bilder/uebersicht_mitte.gif"><?% msg.co_ch_use_summary %?></td>
+ <td width="40%" height="30" background="bilder/uebersicht_mitte.gif"><%! In &quot;Channels&quot; / &quot;Playing Today&quot;? !%></td>
<td colspan="2" bgcolor="#c6c6c6" height="30" background="bilder/uebersicht_mitte.gif">
- <input type="radio" name="CHANNELS_WANTED_PRG" value="1" <tmpl_if CHANNELS_WANTED_PRG>checked</tmpl_if>><?% msg.c_yes %?>
- <input type="radio" name="CHANNELS_WANTED_PRG" value="0" <tmpl_unless CHANNELS_WANTED_PRG>checked</tmpl_unless>><?% msg.c_no %?>
+ <input type="radio" name="CHANNELS_WANTED_PRG" value="1" <tmpl_if CHANNELS_WANTED_PRG>checked</tmpl_if> /> <%! Yes !%>
+ <input type="radio" name="CHANNELS_WANTED_PRG" value="0" <tmpl_unless CHANNELS_WANTED_PRG>checked</tmpl_unless> /> <%! No !%>
</td>
<td bgcolor="#c6c6c6" width="30" height="30" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="30">
<td width="30" height="30" background="bilder/uebersicht_links_dark.gif"></td>
- <td width="40%" height="30" background="bilder/uebersicht_mitte_dark.gif"><?% msg.co_ch_use_whatsonnow %?></td>
+ <td width="40%" height="30" background="bilder/uebersicht_mitte_dark.gif"><%! In &quot;What's On Now&quot;? !%></td>
<td colspan="2" bgcolor="#c6c6c6" height="30" background="bilder/uebersicht_mitte_dark.gif">
- <input type="radio" name="CHANNELS_WANTED_SUMMARY" value="1" <tmpl_if CHANNELS_WANTED_SUMMARY>checked</tmpl_if>><?% msg.c_yes %?>
- <input type="radio" name="CHANNELS_WANTED_SUMMARY" value="0" <tmpl_unless CHANNELS_WANTED_SUMMARY>checked</tmpl_unless>><?% msg.c_no %?>
+ <input type="radio" name="CHANNELS_WANTED_SUMMARY" value="1" <tmpl_if CHANNELS_WANTED_SUMMARY>checked</tmpl_if> /> <%! Yes !%>
+ <input type="radio" name="CHANNELS_WANTED_SUMMARY" value="0" <tmpl_unless CHANNELS_WANTED_SUMMARY>checked</tmpl_unless> /> <%! No !%>
</td>
<td bgcolor="#c6c6c6" width="30" height="30" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
<tr height="30">
<td width="30" height="30" background="bilder/uebersicht_links.gif"></td>
- <td width="40%" height="30" background="bilder/uebersicht_mitte.gif"><?% msg.co_ch_use_autotimer %?></td>
+ <td width="40%" height="30" background="bilder/uebersicht_mitte.gif"><%! In &quot;Auto Timer&quot;? !%></td>
<td colspan="2" bgcolor="#c6c6c6" height="30" background="bilder/uebersicht_mitte.gif">
- <input type="radio" name="CHANNELS_WANTED_AUTOTIMER" value="1" <tmpl_if CHANNELS_WANTED_AUTOTIMER>checked</tmpl_if>><?% msg.c_yes %?>
- <input type="radio" name="CHANNELS_WANTED_AUTOTIMER" value="0" <tmpl_unless CHANNELS_WANTED_AUTOTIMER>checked</tmpl_unless>><?% msg.c_no %?>
+ <input type="radio" name="CHANNELS_WANTED_AUTOTIMER" value="1" <tmpl_if CHANNELS_WANTED_AUTOTIMER>checked</tmpl_if> /> <%! Yes !%>
+ <input type="radio" name="CHANNELS_WANTED_AUTOTIMER" value="0" <tmpl_unless CHANNELS_WANTED_AUTOTIMER>checked</tmpl_unless> /> <%! No !%>
</td>
<td bgcolor="#c6c6c6" width="30" height="30" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr>
<td bgcolor="#dfdcdc" width="30" background="bilder/uebersicht_links.gif"></td>
<td width="40%" align="center" background="bilder/uebersicht_mitte.gif">
- <br>
+ <br />
<select name="all_channels" size="8" multiple>
<tmpl_loop name="ALL_CHANNELS">
<option value="<tmpl_var vdr_id>"><tmpl_var name></option>
@@ -356,11 +375,11 @@
</select>
</td>
<td align="center" valign="middle" background="bilder/uebersicht_mitte.gif">
- <input type="submit" name="submit" value="&gt;&gt;&gt;&gt;&gt;"><br>
- <input type="submit" name="submit" value="&lt;&lt;&lt;&lt;&lt;">
+ <input type="submit" name="submit" value="&gt;&gt;&gt;&gt;&gt;" /><br />
+ <input type="submit" name="submit" value="&lt;&lt;&lt;&lt;&lt;" />
</td>
<td width="45%" align="center" background="bilder/uebersicht_mitte.gif">
- <br>
+ <br />
<select name="selected_channels" size="8" multiple>
<tmpl_loop name="SELECTED_CHANNELS">
<option value="<tmpl_var vdr_id>"><tmpl_var name></option>
@@ -370,20 +389,20 @@
<td bgcolor="#dfdcdc" width="30" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="30">
- <td bgcolor="#dfdcdc" width="30" height="30" background="bilder/uebersicht_links.gif"><img src="bilder/uebersicht_unten_links.gif" alt="" height="30" width="30" border="0"></td>
+ <td bgcolor="#dfdcdc" width="30" height="30" background="bilder/uebersicht_links.gif"><img src="bilder/uebersicht_unten_links.gif" alt="" height="30" width="30" border="0" /></td>
<td width="40%" height="30" background="bilder/uebersicht_unten.gif"></td>
<td height="30" background="bilder/uebersicht_unten.gif"></td>
<td width="45%" height="30" background="bilder/uebersicht_unten.gif"></td>
- <td bgcolor="#dfdcdc" width="30" height="30" background="bilder/uebersicht_rechts.gif"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td bgcolor="#dfdcdc" width="30" height="30" background="bilder/uebersicht_rechts.gif"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0" /></td>
</tr>
</table>
</td>
</tr>
</table>
- <br>
- <input type="submit" name="save" value="<?% msg.c_save %?>">
- <input type="submit" name="apply" value="<?% msg.c_apply %?>">
- <input type="hidden" name="aktion" value="conf_list">
+ <br />
+ <input type="submit" name="save" value="<%! Save !%>" />
+ <input type="submit" name="apply" value="<%! Apply !%>" />
+ <input type="hidden" name="aktion" value="conf_list" />
</form>
</body>
diff --git a/template/default/copper/logo_linvdr.gif b/template/default/copper/logo_linvdr.gif
new file mode 100644
index 0000000..2196a8f
--- /dev/null
+++ b/template/default/copper/logo_linvdr.gif
Binary files differ
diff --git a/template/default/copper/logo_other.gif b/template/default/copper/logo_other.gif
new file mode 100644
index 0000000..4e95955
--- /dev/null
+++ b/template/default/copper/logo_other.gif
Binary files differ
diff --git a/template/default/error.html b/template/default/error.html
index 5e72bab..69f297d 100644
--- a/template/default/error.html
+++ b/template/default/error.html
@@ -1,16 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
- <title><tmpl_var name="title"></title>
+ <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"/>
+ <title><%! Error! !%></title>
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css"/>
+ <script type="text/javascript" language="JavaScript1.2" src="library.js"></script>
</head>
<body bgcolor="#f0f0f0">
<div align="center">
- <img src="bilder/sauerei.gif" height="230" width="177" border="0">
- <br>
+ <img src="bilder/sauerei.gif" height="230" width="177" border="0"/>
+ <br/>
<font color="red"><tmpl_var name="error"></font>
- <br>
+ <br/>
</div>
</body>
diff --git a/template/default/index.html b/template/default/index.html
index 0763baa..6485b4a 100644
--- a/template/default/index.html
+++ b/template/default/index.html
@@ -1,20 +1,21 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
- <title><?% msg.c_progname %?> <tmpl_var version> (<tmpl_var host>)</title>
- <link href="bilder/favicon.ico" rel="shortcut icon">
+ <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1" />
+ <title>VDRAdmin <tmpl_var version> (<tmpl_var host>)</title>
+ <link href="bilder/favicon.ico" rel="shortcut icon" />
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css" />
+ <script type="text/javascript" language="JavaScript1.2" src="library.js"></script>
</head>
<frameset border="0" cols="165,*" frameborder="no" framespacing="0">
- <frame name="nav" noresize src="left.html">
- <frame name="main" noresize src="<tmpl_var loginpage>">
+ <frame name="nav" noresize src="left.html" />
+ <frame name="main" noresize src="<tmpl_var loginpage>" />
<noframes>
<body bgcolor="#ffffff">
- <p><?% msg.i_noframes %?></p>
+ <p><%! Your Browser does not support frames! !%></p>
</body>
</noframes>
</frameset>
diff --git a/template/default/left.html b/template/default/left.html
index e998200..f48b6e7 100644
--- a/template/default/left.html
+++ b/template/default/left.html
@@ -1,11 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
- <title><?% msg.c_progname %?></title>
- <link href="navi.css" rel="stylesheet" media="screen">
+ <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1" />
+ <title>VDRAdmin</title>
+ <link href="navi.css" rel="stylesheet" media="screen" />
<script>
<!--
@@ -25,58 +24,58 @@
<table width="150" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
- <br>
- <a href="./" target="_top"><img src="bilder/linvdr.gif" alt="" height="50" width="150" border="0"></a>
+ <br />
+ <a href="./" target="_top"><tmpl_if linvdr><img src="bilder/logo_linvdr.gif" alt="" height="50" width="150" border="0" /><tmpl_else><img src="bilder/logo_other.gif" alt="" height="50" width="150" border="0" /></tmpl_if></a>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr height="2"><td bgcolor="white" height="2" background="bilder/separator.png"></td></tr>
<tr height="25">
- <td height="25"><span class="navi">&nbsp;<a href="vdradmin.pl?aktion=prog_summary" target="main"><?% msg.menu_prog_summary %?></a></span></td>
+ <td height="25"><span class="navi">&nbsp;<a href="vdradmin.pl?aktion=prog_summary" target="main"><%! What's On Now? !%></a></span></td>
</tr>
<tr height="2"><td bgcolor="white" height="2" background="bilder/separator.png"></td></tr>
<tr height="25">
- <td height="25"><span class="navi">&nbsp;<a href="vdradmin.pl?aktion=prog_list2" target="main"><?% msg.menu_prog_list2 %?></a></span></td>
+ <td height="25"><span class="navi">&nbsp;<a href="vdradmin.pl?aktion=prog_list2" target="main"><%! Playing Today !%></a></span></td>
</tr>
<tr height="2"><td bgcolor="white" height="2" background="bilder/separator.png"></td></tr>
<tr height="25">
- <td height="25"><span class="navi">&nbsp;<a href="vdradmin.pl?aktion=prog_timeline" target="main"><?% msg.menu_prog_timeline %?></a></span></td>
+ <td height="25"><span class="navi">&nbsp;<a href="vdradmin.pl?aktion=prog_timeline" target="main"><%! Timeline !%></a></span></td>
</tr>
<tr height="2"><td bgcolor="white" height="2" background="bilder/separator.png"></td></tr>
<tr height="25">
- <td height="25"><span class="navi">&nbsp;<a href="vdradmin.pl?aktion=prog_list" target="main"><?% msg.menu_prog_list %?></a></span></td>
+ <td height="25"><span class="navi">&nbsp;<a href="vdradmin.pl?aktion=prog_list" target="main"><%! Channels !%></a></span></td>
</tr>
<tr height="2"><td bgcolor="white" height="2" background="bilder/separator.png"></td></tr>
<tr height="25">
- <td height="25"><span class="navi">&nbsp;<a href="vdradmin.pl?aktion=timer_list" target="main"><?% msg.menu_timer_list %?></a></span></td>
+ <td height="25"><span class="navi">&nbsp;<a href="vdradmin.pl?aktion=timer_list" target="main"><%! Timer !%></a></span></td>
</tr>
<tr height="2"><td bgcolor="white" height="2" background="bilder/separator.png"></td></tr>
<tr height="25">
- <td height="25"><span class="navi">&nbsp;<a href="vdradmin.pl?aktion=at_timer_list" target="main"><?% msg.menu_at_timer_list %?></a></span></td>
+ <td height="25"><span class="navi">&nbsp;<a href="vdradmin.pl?aktion=at_timer_list" target="main"><%! Auto Timer !%></a></span></td>
</tr>
<tr height="2"><td bgcolor="white" height="2" background="bilder/separator.png"></td></tr>
<tr height="25">
- <td height="25"><span class="navi">&nbsp;<a href="vdradmin.pl?aktion=rec_list" target="main"><?% msg.menu_rec_list %?></a></span></td>
+ <td height="25"><span class="navi">&nbsp;<a href="vdradmin.pl?aktion=rec_list" target="main"><%! Recordings !%></a></span></td>
</tr>
<tr height="2"><td bgcolor="white" height="2" background="bilder/separator.png"></td></tr>
<tr height="25">
- <td height="25"><span class="navi">&nbsp;<a href="vdradmin.pl?aktion=conf_list" target="main"><?% msg.menu_config %?></a></span></td>
+ <td height="25"><span class="navi">&nbsp;<a href="vdradmin.pl?aktion=conf_list" target="main"><%! Configuration !%></a></span></td>
</tr>
<tr height="2"><td bgcolor="white" height="2" background="bilder/separator.png"></td></tr>
<tr height="25">
- <td height="25"><span class="navi">&nbsp;<a href="javascript:rc_open();"><?% msg.menu_rc %?></a></span></td>
+ <td height="25"><span class="navi">&nbsp;<a href="javascript:rc_open();"><%! Remote Control !%></a></span></td>
</tr>
<tr height="2"><td bgcolor="white" height="2" background="bilder/separator.png"></td></tr>
<tr height="25">
- <td height="25"><span class="navi">&nbsp;<a href="javascript:tv_open();"><?% msg.menu_tv %?></a></span></td>
+ <td height="25"><span class="navi">&nbsp;<a href="javascript:tv_open();"><%! Watch TV !%></a></span></td>
</tr>
<tr height="2"><td bgcolor="white" height="2" background="bilder/separator.png"></td></tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td>
- &nbsp;<b><input type="text" name="search" size="15"></b><br>
- &nbsp;<input type="submit" name="submit" value="<?% msg.menu_search %?>">
- <input type="hidden" name="aktion" value="prog_summary">
+ &nbsp;<b><input type="text" name="search" size="15" /></b><br />
+ &nbsp;<input type="submit" name="submit" value="<%! Search !%>" />
+ <input type="hidden" name="aktion" value="prog_summary" />
</td>
</tr>
</table>
diff --git a/template/default/library.js b/template/default/library.js
index 75c8ad3..fc36da8 100644
--- a/template/default/library.js
+++ b/template/default/library.js
@@ -26,7 +26,7 @@ function callurl( url ) {
}
function popup(URL) {
- window.open(URL, '_new', 'width=450, height=250, scrollbars=auto, resizable=yes');
+ window.open(URL, '_new', 'width=500, height=250, scrollbars=auto, resizable=yes');
}
function toolbar(URL) {
diff --git a/template/default/noauth.html b/template/default/noauth.html
index 646eb08..2f3d559 100644
--- a/template/default/noauth.html
+++ b/template/default/noauth.html
@@ -1,10 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <title><?% msg.err_noauth %?></title>
+ <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
+ <title><%! Authorization Required !%></title>
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css" />
+ <script type="text/javascript" language="JavaScript1.2" src="library.js"></script>
</head>
<body>
- <h1><?% msg.err_noauth %?></h2>
- <p><?% msg.err_cant_verify %?><p>
+ <h1><%! Authorization Required !%></h1>
+ <p><%! This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g. bad password), or your browser doesn't understand how to supply the credentials required. !%></p>
</body>
</html>
diff --git a/template/default/noperm.html b/template/default/noperm.html
index 8f99768..e81480c 100644
--- a/template/default/noperm.html
+++ b/template/default/noperm.html
@@ -1,11 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
+ <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
<title><tmpl_var title></title>
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css"/>
+ <script type="text/javascript" language="JavaScript1.2" src="library.js"></script>
</head>
<body>
<h1><tmpl_var h1></h1>
- <p><tmpl_var error><p><hr>
+ <p><tmpl_var error></p><hr />
</body>
</html>
diff --git a/template/default/prog_detail.html b/template/default/prog_detail.html
index 16b1d67..5e36114 100644
--- a/template/default/prog_detail.html
+++ b/template/default/prog_detail.html
@@ -1,45 +1,46 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
+ <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1" />
<title><tmpl_var title></title>
<script type="text/javascript" language="JavaScript1.2" src="library.js"></script>
- <link href="style.css" rel="stylesheet" media="screen">
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css" />
</head>
<body bgcolor="#c4cdd7">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr height="30">
- <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0" /></td>
<td height="30" valign="middle" background="bilder/uebersicht_oben.gif">
<b><tmpl_var channel_name><tmpl_if date> | <tmpl_var date> <tmpl_var start> - <tmpl_var stop></tmpl_if></b>
</td>
- <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0" /></td>
</tr>
<tr>
<td width="30" background="bilder/uebersicht_links.gif">&nbsp;</td>
<td bgcolor="#c4cdd7" background="bilder/uebersicht_mitte.gif">
- <b><tmpl_var title></b><br>
+ <b><tmpl_var title></b><br />
<tmpl_if subtitle>
- <i><nobr><tmpl_var subtitle></nobr></i><br><br>
+ <i><nobr><tmpl_var subtitle></nobr></i><br /><br />
</tmpl_if>
- <tmpl_var text><br><br>
- &nbsp;<a href="javascript:window.close()">[<?% msg.pd_close %?>]</a>
+ <tmpl_var text><br /><br />
+ &nbsp;<a href="javascript:window.close()">[<%! close !%>]</a>
<tmpl_if date>
- &nbsp;<a href="javascript:callurl('<tmpl_var switchurl>')">[<?% msg.pd_view %?>]</a>
- &nbsp;<a href="javascript:window.close();opener.location.href='<tmpl_var recurl>'">[<?% msg.pd_record %?>]</a>
- &nbsp;<a href="vdradmin.pl?search=<tmpl_var title>&aktion=prog_summary&submit=go11)" target="main">[<?% msg.pd_search %?>]</a>
- &nbsp;<a href="http://akas.imdb.com/Tsearch?title=<tmpl_var title>" target="_blank" title="<?% msg.pd_imdb %?>">[IMDb]</a>
+ &nbsp;<a href="javascript:callurl('<tmpl_var switchurl>')">[<%! view !%>]</a>
+ &nbsp;<a href="javascript:window.close();opener.location.href='<tmpl_var recurl>'">[<%! record !%>]</a>
+ &nbsp;<a href="vdradmin.pl?search=<tmpl_var title>&aktion=prog_summary&submit=go11)" target="main">[<%! search !%>]</a>
+ </tmpl_if>
+ <tmpl_if title>
+ &nbsp;<a href="http://akas.imdb.com/Tsearch?title=<tmpl_var title>" target="_blank" title="<%! Lookup movie in the Internet-Movie-Database (IMDb) !%>">[IMDb]</a>
</tmpl_if>
</td>
<td width="30" background="bilder/uebersicht_rechts.gif">&nbsp;</td>
</tr>
<tr>
- <td width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0" /></td>
<td background="bilder/uebersicht_unten.gif"></td>
- <td width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0" /></td>
</tr>
</table>
</body>
diff --git a/template/default/prog_list.html b/template/default/prog_list.html
index 6852551..da18971 100644
--- a/template/default/prog_list.html
+++ b/template/default/prog_list.html
@@ -1,11 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
- <title><?% msg.c_progname %?> - <?% msg.pl_headline %?></title>
- <link href="style.css" rel="stylesheet" media="screen">
+ <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1" />
+ <title>VDRAdmin - <%! Channels !%></title>
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css" />
<script language="JavaScript" src="library.js"></script>
</head>
@@ -16,38 +15,38 @@
<td valign="left" width="200" background="bilder/nav_button_back.gif">
<p class="einzug_ohnetop">
<a href="javascript:callurl('<tmpl_var switchurl>');"><b><tmpl_var progname></b></a>&nbsp;&nbsp;
- <a href="<tmpl_var streamurl>"><img src="bilder/stream.jpg" alt="stream" title="<?% msg.c_stream %?>" height="17" align="center" border="0"></a>
+<tmpl_if stream_live_on>
+ <a href="<tmpl_var streamurl>"><img src="bilder/stream.jpg" alt="stream" title="<%! Stream !%>" height="17" align="center" border="0" /></a>
+</tmpl_if>
</p>
</td>
- <td align="right" valign="middle" background="bilder/nav_button_back_mitte.gif"><?% msg.c_channel %?>&nbsp;
+ <td align="right" valign="middle" background="bilder/nav_button_back_mitte.gif"><%! Channel: !%>&nbsp;
<select name="vdr_id" size="1" onchange="window.open('<tmpl_var url>?aktion=prog_list&vdr_id=' + this.options[this.selectedIndex].value,'main')">
<tmpl_loop chanloop>
<option value="<tmpl_var vdr_id>" <tmpl_if current>selected</tmpl_if>><tmpl_var name></option>
</tmpl_loop>
</select>
- <input type="submit" name="submit" value="<?% msg.c_go %?>">
- <a href="javascript:toolbar('<tmpl_var toolbarurl>');" target="toolbar"><img src="bilder/spacer.gif" border="0"></a>
+ <input type="submit" name="submit" value="<%! Go! !%>" />
+ <a href="javascript:toolbar('<tmpl_var toolbarurl>');" target="toolbar"><img src="bilder/spacer.gif" border="0" /></a>
</td>
<td width="15" background="bilder/nav_button_back_end.gif">&nbsp;</td>
</tr>
</table>
- <input type="hidden" name="aktion" value="prog_list">
+ <input type="hidden" name="aktion" value="prog_list" />
</form>
<tmpl_loop loop>
<tmpl_if newd>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr height="30">
- <td valign="top" width="30">
- <p><img src="bilder/uebersicht_oben_links.gif" alt="" height="30" width="30" border="0"></p>
- </td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_oben_links.gif" alt="" height="30" width="30" border="0" /></td>
<td colspan="3" background="bilder/uebersicht_oben.gif">
- <p><b><tmpl_var title></b></p>
+ <b><tmpl_var title></b>
</td>
<td align="right" background="bilder/uebersicht_oben.gif">
- <tmpl_if prev_channel><a href="<tmpl_var prev_channel>"><img src="bilder/pfeile_nachlinks.gif" border="0"></a><tmpl_else><img src="bilder/pfeile_nachlinks_soft.gif" border="0"></tmpl_if><tmpl_if next_channel><a href="<tmpl_var next_channel>"><img src="bilder/pfeile_nachrechts.gif" border="0"></a><tmpl_else><img src="bilder/pfeile_nachrechts_soft.gif" border="0"></tmpl_if>
+ <tmpl_if prev_channel><a href="<tmpl_var prev_channel>"><img src="bilder/pfeile_nachlinks.gif" border="0" /></a><tmpl_else><img src="bilder/pfeile_nachlinks_soft.gif" border="0" /></tmpl_if><tmpl_if next_channel><a href="<tmpl_var next_channel>"><img src="bilder/pfeile_nachrechts.gif" border="0" /></a><tmpl_else><img src="bilder/pfeile_nachrechts_soft.gif" border="0" /></tmpl_if>
</td>
- <td valign="top" width="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" height="30" width="30" border="0"></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" height="30" width="30" border="0" /></td>
</tr>
<tr height="10">
<td valign="top" width="30" height="10" background="bilder/uebersicht_links.gif"></td>
@@ -59,25 +58,25 @@
<tr>
<td valign="top" width="30" background="bilder/uebersicht_links<tmpl_if __ODD__>_dark</tmpl_if>.gif"><a name="<tmpl_var anchor>"></a>&nbsp;</td>
<td valign="top" width="170" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
- <p class="einzug_liste"><tmpl_var emit> - <tmpl_var duration> <?% msg.c_clock %?></p>
+ <p class="einzug_liste"><tmpl_var emit> - <tmpl_var duration> <%! o'clock !%></p>
</td>
<td valign="top" width="652" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
<p class="einzug_liste">
- <b><tmpl_var title></b><br>
- <i><tmpl_var subtitle></i><br>
+ <b><tmpl_var title></b><br />
+ <i><tmpl_var subtitle></i><br />
</p>
</td>
<td align="right" valign="top" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
<p class="einzug_liste">
<tmpl_if infurl>
- <a href="javascript:popup('<tmpl_var infurl>');"><img src="bilder/info_button.gif" border="0" alt="info"></a>
+ <a href="javascript:popup('<tmpl_var infurl>');"><img src="bilder/info_button.gif" border="0" alt="info" /></a>
<tmpl_else>
- <img src="bilder/info_button_disabled.gif" border="0" alt="noinfo">
+ <img src="bilder/info_button_disabled.gif" border="0" alt="noinfo" />
</tmpl_if>
</p>
</td>
<td align="right" valign="top" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
- <p class="einzug_liste"><a class="rec" href="<tmpl_var recurl>"><img src="bilder/rec_button.gif" border="0" alt="record"></a></p>
+ <p class="einzug_liste"><a class="rec" href="<tmpl_var recurl>"><img src="bilder/rec_button.gif" border="0" alt="record" /></a></p>
</td>
<td valign="top" width="30" background="bilder/uebersicht_rechts<tmpl_if __ODD__>_dark</tmpl_if>.gif">&nbsp;</td>
</tr>
@@ -85,12 +84,12 @@
</tmpl_if>
<tmpl_if endd>
<tr>
- <td valign="top" width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" height="30" width="30" border="0"></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" height="30" width="30" border="0" /></td>
<td colspan="4" background="bilder/uebersicht_unten.gif"></td>
- <td valign="top" width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" height="30" width="30" border="0"></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" height="30" width="30" border="0" /></td>
</tr>
</table>
- <br>
+ <br />
</tmpl_if>
</tmpl_loop>
</body>
diff --git a/template/default/prog_list2.html b/template/default/prog_list2.html
index f11768a..9738469 100644
--- a/template/default/prog_list2.html
+++ b/template/default/prog_list2.html
@@ -1,27 +1,19 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
- <title><?% msg.c_progname %?> - <?% msg.pl2_headline %?></title>
- <link href="style.css" rel="stylesheet" media="screen">
- <script language="JavaScript">
+ <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1" />
+ <title>VDRAdmin - <%! Playing Today !%></title>
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css" />
+ <script type="text/javascript" language="JavaScript1.2" src="library.js"></script>
+ <script type="text/javascript" language="JavaScript1.2">
<!--
- function popup(URL) {
- window.open(URL, '_new', 'width=440, height=250');
- }
-
- function toolbar(URL) {
- window.open(URL, '_new', 'width=200, height=50');
- }
-
- function switch_channel(url) {
- image = new Image();
- image.src = url;
- document.switchimage.src = image.src;
- }
- // -->
+ function switch_channel( url ) {
+ image = new Image();
+ image.src = url;
+ document.switchimage.src = image.src;
+ }
+ //-->
</script>
</head>
@@ -30,37 +22,38 @@
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="39">
<tr>
<td valign="middle" width="200" background="bilder/nav_button_back.gif">
- <p class="einzug_ohnetop"><b><?% msg.pl2_headline %?></b></a></p>
+ <p class="einzug_ohnetop"><b><%! Playing Today !%></b></p>
</td>
<td align="right" background="bilder/nav_button_back_mitte.gif">&nbsp;</td>
<!-- TODO: really need this?
- <td align="right" background="bilder/nav_button_back_mitte.gif"><?% msg.c_channel %?>&nbsp;
+ <td align="right" background="bilder/nav_button_back_mitte.gif"><%! Channel: !%>&nbsp;
<select name="vdr_id" size="1" onchange="window.open('<tmpl_var url>?aktion=prog_list&vdr_id=' + this.options[this.selectedIndex].value,'main')">
<tmpl_loop chanloop>
<option value="<tmpl_var vdr_id>" <tmpl_if current>selected</tmpl_if>><tmpl_var name></option>
</tmpl_loop>
- </select>&nbsp;<input type="submit" name="submit" value="<?% msg.c_go %?>">
- <a href="javascript:toolbar('<tmpl_var toolbarurl>');" target="toolbar"><img src="bilder/spacer.gif" border="0"></a>
+ </select>&nbsp;<input type="submit" name="submit" value="<%! Go! !%>" />
+ <a href="javascript:toolbar('<tmpl_var toolbarurl>');" target="toolbar"><img src="bilder/spacer.gif" border="0" /></a>
</td>
-->
<td width="15" background="bilder/nav_button_back_end.gif">&nbsp;</td>
</tr>
</table>
- <input type="hidden" name="aktion" value="prog_list">
+ <input type="hidden" name="aktion" value="prog_list" />
</form>
<tmpl_loop loop>
<tmpl_if newd>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
- <td valign="top" width="30">
- <p><img src="bilder/uebersicht_oben_links.gif" alt="" height="30" width="30" border="0"></p>
- </td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_oben_links.gif" alt="" height="30" width="30" border="0" /></td>
<td colspan="3" background="bilder/uebersicht_oben.gif">
- <p><b><tmpl_var title></b></p>
+ <b><tmpl_var title></b>
+<tmpl_if stream_live_on>
+ &nbsp;<a href="<tmpl_var streamurl>" title="<%! Stream !%>">[S]</a>
+</tmpl_if>
</td>
<td align="right" background="bilder/uebersicht_oben.gif"></td>
- <td valign="top" width="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" height="30" width="30" border="0"></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" height="30" width="30" border="0" /></td>
</tr>
<tr>
<td valign="top" width="30" background="bilder/uebersicht_links.gif">&nbsp;</td>
@@ -75,16 +68,16 @@
<tr>
<td valign="top" width="30" background="bilder/uebersicht_links<tmpl_if __ODD__>_dark</tmpl_if>.gif"><a name="<tmpl_var anchor>"></a>&nbsp;</td>
<td valign="top" width="170" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
- <p class="einzug_liste"><tmpl_var emit> - <tmpl_var duration> <?% msg.c_clock %?></p>
+ <p class="einzug_liste"><tmpl_var emit> - <tmpl_var duration> <%! o'clock !%></p>
</td>
<td valign="top" width="652" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
- <p class="einzug_liste"><b><tmpl_var title></b><br><tmpl_unless subtitle><br></tmpl_unless><i><tmpl_var subtitle></i></p>
+ <p class="einzug_liste"><b><tmpl_var title></b><br /><tmpl_unless subtitle><br /></tmpl_unless><i><tmpl_var subtitle></i></p>
</td>
<td align="right" valign="top" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
- <p class="einzug_liste"><tmpl_if infurl><a href="javascript:popup('<tmpl_var infurl>');"><img src="bilder/info_button.gif" border="0"></a><tmpl_else><img src="bilder/info_button_disabled.gif" border="0"></tmpl_if></p>
+ <p class="einzug_liste"><tmpl_if infurl><a href="javascript:popup('<tmpl_var infurl>');"><img src="bilder/info_button.gif" border="0" /></a><tmpl_else><img src="bilder/info_button_disabled.gif" border="0" /></tmpl_if></p>
</td>
<td align="right" valign="top" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
- <p class="einzug_liste"><b><a class="rec" href="<tmpl_var recurl>"><img src="bilder/rec_button.gif" border="0"></a></b></p>
+ <p class="einzug_liste"><b><a class="rec" href="<tmpl_var recurl>"><img src="bilder/rec_button.gif" border="0" /></a></b></p>
</td>
<td valign="top" width="30" background="bilder/uebersicht_rechts<tmpl_if __ODD__>_dark</tmpl_if>.gif">&nbsp;</td>
</tr>
@@ -92,15 +85,15 @@
</tmpl_if>
<tmpl_if endd>
<tr>
- <td valign="top" width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" height="30" width="30" border="0"></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" height="30" width="30" border="0" /></td>
<td background="bilder/uebersicht_unten.gif">&nbsp;</td>
<td background="bilder/uebersicht_unten.gif">&nbsp;</td>
<td background="bilder/uebersicht_unten.gif">&nbsp;</td>
<td background="bilder/uebersicht_unten.gif">&nbsp;</td>
- <td valign="top" width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" height="30" width="30" border="0"></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" height="30" width="30" border="0" /></td>
</tr>
</table>
- <br>
+ <br />
</tmpl_if>
</tmpl_loop>
</body>
diff --git a/template/default/prog_summary.html b/template/default/prog_summary.html
index 84f5df3..ac38e23 100644
--- a/template/default/prog_summary.html
+++ b/template/default/prog_summary.html
@@ -1,12 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <meta http-equiv="refresh" content="600; URL=vdradmin.pl?aktion=prog_summary">
- <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
- <title><?% msg.c_progname %?> - <?% msg.ps_headline %?></title>
- <link href="style.css" rel="stylesheet" media="screen">
+ <meta http-equiv="refresh" content="600; URL=vdradmin.pl?aktion=prog_summary" />
+ <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1" />
+ <title>VDRAdmin - <%! What's On Now? !%></title>
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css" />
<script language="JavaScript" src="library.js"></script>
</head>
@@ -15,18 +14,18 @@
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="39">
<tr valign="middle">
<td valign="middle" width="100" background="bilder/nav_button_back.gif">
- <p class="einzug_ohnetop"><b><tmpl_var now>&nbsp;<?% msg.c_clock %?></b></p>
+ <p class="einzug_ohnetop"><b><tmpl_var now>&nbsp;<%! o'clock !%></b></p>
</td>
<td align="right" valign="middle" background="bilder/nav_button_back_mitte.gif">
- <?% msg.c_whatson %?>&nbsp;<a href="<tmpl_var nowurl>"><?% msg.c_now %?></a>&nbsp;|<?% msg.c_at %?>&nbsp;
- <input type="text" name="time" size="5" value="<tmpl_var now>">
- &nbsp;<?% msg.c_clock %?>
+ <%! What's on: !%>&nbsp;<a href="<tmpl_var nowurl>"><%! now !%></a>&nbsp;|<%! at: !%>&nbsp;
+ <input type="text" name="time" size="5" value="<tmpl_var now>" />
+ &nbsp;<%! o'clock !%>
</td>
<td width="15" background="bilder/nav_button_back_end.gif">&nbsp;</td>
</tr>
</table>
- <input type="hidden" name="aktion" value="prog_summary">
- <br>
+ <input type="hidden" name="aktion" value="prog_summary" />
+ <br />
<table border="0" cellspacing="0" cellpadding="0">
<tmpl_loop rows>
@@ -40,8 +39,10 @@
<a name="<tmpl_var anchor>"></a>
<p class="einzug">
<a href="<tmpl_var proglink>"><b><tmpl_var progname></b></a>
- &nbsp;<a href="<tmpl_var streamurl>" title="<?% msg.c_stream %?>">[S]</a>
- </p>
+<tmpl_if stream_live_on>
+ &nbsp;<a href="<tmpl_var streamurl>" title="<%! Stream !%>">[S]</a>
+</tmpl_if>
+ </p>
</td>
<td align="right">
<p class="einzug">
@@ -52,15 +53,15 @@
</table>
<div class="einzug_ohnetop">
- <tmpl_var longdate><br>
- <b><tmpl_var title></b><br>
+ <tmpl_var longdate><br />
+ <b><tmpl_var title></b><br />
<tmpl_if subtitle>
- <i><tmpl_var subtitle></i><br>
+ <i><tmpl_var subtitle></i><br />
</tmpl_if>
- <br>
- <tmpl_if summary><tmpl_var summary> &nbsp;<a href="javascript:popup('<tmpl_var infurl>');"><?% msg.ps_more %?></a></tmpl_if>
- <br>
- <br>
+ <br />
+ <tmpl_if summary><tmpl_var summary> &nbsp;<a href="javascript:popup('<tmpl_var infurl>');"><%! more !%></a></tmpl_if>
+ <br />
+ <br />
</div>
</td>
<tmpl_else>
@@ -75,21 +76,21 @@
<table width="272" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
- <a href="javascript:callurl('<tmpl_var switchurl>');"><img src="bilder/auge.jpg" width="71" height="38" border="0" alt="<?% msg.ps_view %?>" onmouseover="window.status='<?% msg.ps_view %?>';return true" title="<?% msg.ps_view %?>"></a>
+ <a href="javascript:callurl('<tmpl_var switchurl>');"><img src="bilder/auge.jpg" width="71" height="38" border="0" alt="<%! TV select !%>" onmouseover="window.status='<%! TV select !%>';return true" title="<%! TV select !%>" /></a>
</td>
<td>
<!-- Sendungs Titel und Subtitel -->
- <a href="vdradmin.pl?search=<tmpl_var title>&aktion=prog_summary&submit=go11)"><img src="bilder/lupe.jpg" width="63" height="38" border="0" alt="<?% msg.ps_search %?>" onmouseover="window.status='<?% msg.ps_search %?>';return true" title="<?% msg.ps_search %?>"></a>
+ <a href="vdradmin.pl?search=<tmpl_var title>&aktion=prog_summary&submit=go11)"><img src="bilder/lupe.jpg" width="63" height="38" border="0" alt="<%! Search for other show times !%>" onmouseover="window.status='<%! Search for other show times !%>';return true" title="<%! Search for other show times !%>" /></a>
</td>
<td>
<tmpl_if summary>
- <a href="javascript:popup('<tmpl_var infurl>');"><img src="bilder/info.jpg" width="64" height="38" border="0" alt="<?% msg.ps_more_info %?>" onmouseover="window.status='<?% msg.ps_more_info %?>';return true" title="<?% msg.ps_more_info %?>"></a>
+ <a href="javascript:popup('<tmpl_var infurl>');"><img src="bilder/info.jpg" width="64" height="38" border="0" alt="<%! More Information !%>" onmouseover="window.status='<%! More Information !%>';return true" title="<%! More Information !%>" /></a>
<tmpl_else>
- <img src="bilder/info_disabled.jpg" width="64" height="38" border="0" alt="noinfo">
+ <img src="bilder/info_disabled.jpg" width="64" height="38" border="0" alt="noinfo" />
</tmpl_if>
</td>
<td>
- <a href="<tmpl_var recurl>"><img src="bilder/rec.jpg" width="74" height="38" border="0" alt="<?% msg.ps_record %?>" onmouseover="window.status='<?% msg.ps_record %?>';return true" title="<?% msg.ps_record %?>"></a>
+ <a href="<tmpl_var recurl>"><img src="bilder/rec.jpg" width="74" height="38" border="0" alt="<%! Record !%>" onmouseover="window.status='<%! Record !%>';return true" title="<%! Record !%>" /></a>
</td>
</tr>
</table>
diff --git a/template/default/prog_timeline.html b/template/default/prog_timeline.html
index d0f3f0e..addd50d 100644
--- a/template/default/prog_timeline.html
+++ b/template/default/prog_timeline.html
@@ -1,10 +1,12 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <meta http-equiv="refresh" content="600; URL=vdradmin.pl?aktion=prog_timeline">
- <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
- <title><?% msg.c_progname %?> - <?%msg.pt_headline %?></title>
+ <meta http-equiv="refresh" content="600; URL=vdradmin.pl?aktion=prog_timeline" />
+ <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1" />
+ <title>VDRAdmin - <%! What's On Now? !%></title>
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css" />
+ <script type="text/javascript" language="JavaScript1.2" src="library.js"></script>
<?%-
breite = 600;
@@ -36,7 +38,6 @@
einheit = ((breite / bis) + 0.5) | format('%i');
-%?>
- <link href="style.css" rel="stylesheet" media="screen">
<style type="text/css">
#prgtable { border-left-width:1px; border-left-color:#c4cdd7; border-left-style:solid; border-bottom-width:1px; border-bottom-color:#c4cdd7; border-bottom-style:solid; padding:2px; }
#timertable { background:red; border-left-width:1px; border-left-color:#ffcdd7; border-left-style:solid; border-bottom-width:1px; border-bottom-color:#ffcdd7; border-bottom-style:solid; padding:2px; }
@@ -48,7 +49,6 @@
#bigtable { position:absolute; top:100px; left: <?% left %?>px; z-index: 1; }
</style>
- <script language="JavaScript" src="library.js"></script>
<script language="JavaScript">
function Go(x) {
if(x =="nothing") {
@@ -65,42 +65,40 @@
<body bgcolor="#c4cdd7" leftmargin="3" marginheight="20" marginwidth="3" topmargin="20">
<form action="<?% nowurl %?>" method="get" name="FormName">
- <table width="<?% breite + seite + 80 %?>" border="0" cellspacing="0" cellpadding="0" height="39" style='position:absolute; left:<?% left %?>; top: 20px'>
+ <table width="<?% breite + seite + 80 %?>" border="0" cellspacing="0" cellpadding="0" height="39" style="position:absolute; left:<?% left %?>; top: 20px">
<tr>
<td valign="middle" background="bilder/nav_button_back.gif">
- <nobr><p class="einzug_ohnetop"><b><?% now %?>&nbsp;<?% msg.c_clock %?></b></p></nobr>
+ <nobr><p class="einzug_ohnetop"><b><?% now %?>&nbsp;<%! o'clock !%></b></p></nobr>
</td>
<td align="right" valign="middle" background="bilder/nav_button_back_mitte.gif">
- <?% msg.c_whatson %?>&nbsp;
- <select size=1 name="Auswahl" onChange="Go(this.form.Auswahl.options[this.form.Auswahl.options.selectedIndex].value)" style="width:100px"; width="100">
- <option value="<?% nowurl %?>"><?% msg.c_now %?></option>
+ <%! What's on: !%>&nbsp;
+ <select size="1" name="Auswahl" onChange="Go(this.form.Auswahl.options[this.form.Auswahl.options.selectedIndex].value)" style="width:100px" width="100">
+ <option value="<?% nowurl %?>"><%! now !%></option>
<?% FOREACH timer = times %?>
<?% timer_o_dopp = timer | replace('\:', '') %?>
<option value="<?% nowurl %?>&time=<?% timer_o_dopp %?>" <?% "selected" IF now == timer %?>><?% timer %?></option>
<?% END %?>
</select>
- &nbsp;|&nbsp;<?% msg.c_at %?>&nbsp;
- <input type="text" name="time" size="5" value="<?% now %?>">
- &nbsp;<?% msg.c_clock %?>
- <input type="hidden" name="aktion" value="prog_timeline">
+ &nbsp;|&nbsp;<%! at: !%>&nbsp;
+ <input type="text" name="time" size="5" value="<?% now %?>" />
+ &nbsp;<%! o'clock !%>
+ <input type="hidden" name="aktion" value="prog_timeline" />
</td>
<td width="15" background="bilder/nav_button_back_end.gif">&nbsp;</td>
</tr>
</table>
- <br>
+ <br />
<!-- Vertikal ansicht TOP -->
- <span id="zeitleiste" class="zeitleiste"><img src="bilder/spacer.gif" width="1" height=1 border=0></span>
+ <span id="zeitleiste" class="zeitleiste"><img src="bilder/spacer.gif" width="1" height="1" border="0" /></span>
<!-- Zeitleiste -->
<table width="<?% breite + seite + 40 %?>" border="0" cellspacing="0" cellpadding="0" name="bigtable" id="bigtable">
<tr>
- <td valign="top" width="30">
- <p><img src="bilder/uebersicht_oben_links.gif" alt="" height="30" width="30" border="0"></p>
- </td>
- <td colspan="3" width='<?% breite + seite %?>' background="bilder/uebersicht_oben.gif"><b><?% msg.pt_timeline %?>&nbsp;<?% date.format(akt_sekunde, '%H:%M') %?>&nbsp;<?% msg.c_clock %?>&nbsp;<?% msg.pt_to %?>&nbsp;<?% date.format(bis_sec, '%H:%M') %?>&nbsp;<?% msg.c_clock %?></b></td>
- <td align="right" background="bilder/uebersicht_oben.gif"><nobr><?% IF akt_stunde <= jetzt_stunde %?><img src="bilder/pfeile_nachlinks_soft.gif" border="0"><?% ELSE %?><a href="<?% nowurl %?>&time=<?% akt_stunde - zeitrahmen | format('%02d') %?><?% akt_minute | format('%02d') %?>"><img src="bilder/pfeile_nachlinks.gif" border="0"></a><?% END %?><a href="<?% nowurl %?>&time=<?% bis_stunde | format('%02d') %?><?% akt_minute | format('%02d') %?>"><img src="bilder/pfeile_nachrechts.gif" border="0"></a></td>
- <td valign="top" width="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" height="30" width="30" border="0"></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_oben_links.gif" alt="" height="30" width="30" border="0" /></td>
+ <td colspan="3" width='<?% breite + seite %?>' background="bilder/uebersicht_oben.gif"><b><%! Timeline: !%>&nbsp;<?% date.format(akt_sekunde, '%H:%M') %?>&nbsp;<%! o'clock !%>&nbsp;<%! to !%>&nbsp;<?% date.format(bis_sec, '%H:%M') %?>&nbsp;<%! o'clock !%></b></td>
+ <td align="right" background="bilder/uebersicht_oben.gif"><nobr><?% IF akt_stunde <= jetzt_stunde %?><img src="bilder/pfeile_nachlinks_soft.gif" border="0" width="28" height="30" /><?% ELSE %?><a href="<?% nowurl %?>&time=<?% akt_stunde - zeitrahmen | format('%02d') %?><?% akt_minute | format('%02d') %?>"><img src="bilder/pfeile_nachlinks.gif" border="0" width="28" height="30" /></a><?% END %?><a href="<?% nowurl %?>&time=<?% bis_stunde | format('%02d') %?><?% akt_minute | format('%02d') %?>"><img src="bilder/pfeile_nachrechts.gif" border="0" width="29" height="30" /></a></nobr></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" height="30" width="30" border="0" /></td>
</tr>
<tr>
<td valign="top" width="30" background="bilder/uebersicht_links.gif">&nbsp;</td>
@@ -113,12 +111,12 @@
<tr>
<td valign="top" width="30" background="bilder/uebersicht_links.gif">&nbsp;</td>
<td colspan="4">
- <table border=0 cellpadding=0 cellspacing=0 width="1">
+ <table border="0" cellpadding="0" cellspacing="0" width="1">
<tr>
- <td bgcolor="#e6eff9"><img src="bilder/spacer.gif" width="<?% seite %?>" height=1 border=0><br></td>
+ <td bgcolor="#e6eff9"><img src="bilder/spacer.gif" width="<?% seite %?>" height="1" border="0" /><br /></td>
<?% WHILE minute < bis %?>
<td colspan="6" bgcolor='<?% minute % 60 ? "#e6eff9" : "#d5dee8" %?>'>
- <img src="bilder/spacer.gif" width="<?% einheit * 30 %?>" height=1 border=0><br>
+ <img src="bilder/spacer.gif" width="<?% einheit * 30 %?>" height="1" border="0" /><br />
<?% zeit = akt_sekunde + (minute * 60) %?>
<b><?% date.format(zeit, '%H:%M') %?></b>
</td>
@@ -127,13 +125,13 @@
</tr>
<?% minute = 0 %?>
<tr>
- <td bgcolor="#e6eff9"><img src="bilder/spacer.gif" width="<?% seite %?>" height=1 border=0><br></td>
+ <td bgcolor="#e6eff9"><img src="bilder/spacer.gif" width="<?% seite %?>" height="1" border="0" /><br /></td>
<?% WHILE minute < bis %?>
- <td width='1%' align=left valign=bottom bgcolor='<?% minute % 10 ? "#e6eff9" : "#d5dee8" %?>'>
+ <td width="1%" align="left" valign="bottom" bgcolor="<?% minute % 10 ? '#e6eff9' : '#d5dee8' %?>">
<?% IF minute % 15 %?>
- <img src="bilder/pixel.gif" width="1" height=5 border=0>
+ <img src="bilder/pixel.gif" width="1" height="5" border="0" />
<?% ELSE %?>
- <img src="bilder/pixel.gif" width="1" height=10 border=0>
+ <img src="bilder/pixel.gif" width="1" height="10" border="0" />
<?% END %?>
</td>
<?% minute = minute + 5 %?>
@@ -141,7 +139,7 @@
</tr>
</table>
- <table border=0 cellpadding=0 cellspacing=0 width="1">
+ <table border="0" cellpadding="0" cellspacing="0" width="1">
<!-- Sendernamen -->
<?% b = 0;
FOREACH name = shows.keys.nsort;
@@ -149,12 +147,12 @@
chars = seite / 10 | format('%i');
b = b + 1 %?>
<tr>
- <td valign='top' bgcolor='<?% b % 2 ? "#d5dee8" : "#e6eff9" %?>'>
- <img src="bilder/spacer.gif" width="<?% seite %?>" height=1 border=0><br>
+ <td valign="top" bgcolor="<?% b % 2 ? '#d5dee8' : '#e6eff9' %?>">
+ <img src="bilder/spacer.gif" width="<?% seite %?>" height="1" border="0" /><br />
<a href="<?% shows.${name}.first.proglink %?>"><b><?% shows.${name}.first.progname | truncate(chars) %?></b></a>
</td>
<!-- Programm -->
- <td colspan="<?% (bis / 5) %?>" bgcolor='<?% b % 2 ? "#d5dee8" : "#e6eff9" %?>'>
+ <td colspan="<?% (bis / 5) %?>" bgcolor="<?% b % 2 ? '#d5dee8' : '#e6eff9' %?>">
<nobr>
<?%
z = 0;
@@ -183,10 +181,10 @@
<?% IF start_minute > akt_minute && ! z %?>
<?% diff = (start_minute - akt_minute) * einheit %?>
- <table border=0 align=left cellpadding=0 cellspacing=0>
+ <table border="0" align="left" cellpadding="0" cellspacing="0">
<tr>
<td width="1">
- <img src='bilder/spacer.gif' width='<?% diff %?>' height='8' border=0 align=left hspace=0>
+ <img src="bilder/spacer.gif" width="<?% diff %?>" height="8" border="0" align="left" hspace="0" />
</td>
</tr>
</table>
@@ -194,21 +192,21 @@
<?% IF old_stop_minute + 1 < start_minute && z %?>
<?% diff = (start_minute - old_stop_minute - 1) * einheit %?>
- <img title="DiffMinute: <?% start_minute - old_stop_minute - 1 %?>" src='bilder/spacer.gif' width='<?% diff %?>' height='8' border=0 align=left hspace=0>
+ <img title="DiffMinute: <?% start_minute - old_stop_minute - 1 %?>" src="bilder/spacer.gif" width="<?% diff %?>" height="8" border="0" align="left" hspace="0" />
<?% END %?>
<?% bg_color = date.now > show.start && date.now < show.stop ? "#f7fffA" : "#e6eee9";
bg_color = show.timer ? "#ffeee9" : bg_color %?>
- <table border=0 align=left cellpadding=0 cellspacing=0 id="<?% show.timer ? "timertable" : "prgtable" %?>">
+ <table border="0" align="left" cellpadding="0" cellspacing="0" id="<?% show.timer ? 'timertable' : 'prgtable' %?>">
<tr>
<td width="1" bgcolor="<?% bg_color %?>">
- <img src="bilder/spacer.gif" width="<?% laenge_pix %?>" height=1 border=0 hspace=0><br>
+ <img src="bilder/spacer.gif" width="<?% laenge_pix %?>" height="1" border="0" hspace="0" /><br />
<nobr>
<?% IF show.summary %?><a href="javascript:popup('./vdradmin.pl?aktion=prog_detail&epg_id=<?% show.anchor %?>&vdr_id=<?% show.vdr_id %?>');"><?% END %?>
- <span title='<?% show.title %?>'>
+ <span title="<?% show.title %?>">
<?% IF laenge_chars > 2 %?>
<?% show.title | truncate( laenge_chars ) %?>
<?% ELSE %?>
- <img src='bilder/spacer.gif' width='<?% laenge_pix %?>' height='8' border=0 hspace=0>
+ <img src="bilder/spacer.gif" width="<?% laenge_pix %?>" height="8" border="0" hspace="0" />
<?% END %?>
</span>
<?% IF show.summary %?></a><?% END %?>
@@ -233,12 +231,12 @@
<td valign="top" width="30" background="bilder/uebersicht_rechts.gif">&nbsp;</td>
</tr>
<tr>
- <td valign="top" width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" height="30" width="30" border="0"></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" height="30" width="30" border="0" /></td>
<td background="bilder/uebersicht_unten.gif">&nbsp;</td>
<td background="bilder/uebersicht_unten.gif">&nbsp;</td>
<td background="bilder/uebersicht_unten.gif">&nbsp;</td>
<td background="bilder/uebersicht_unten.gif">&nbsp;</td>
- <td valign="top" width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" height="30" width="30" border="0"></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" height="30" width="30" border="0" /></td>
</tr>
</table>
</form>
diff --git a/template/default/rc.html b/template/default/rc.html
index fad239a..8c4d327 100644
--- a/template/default/rc.html
+++ b/template/default/rc.html
@@ -1,10 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
- <title><?% msg.c_progname %?> - <?% msg.rc_headline %?> (<tmpl_var host>)</title>
+ <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1" />
+ <title>VDRAdmin - <%! Remote Control !%> (<tmpl_var host>)</title>
<script language="JavaScript">
<!--
function switch_channel(url) {
@@ -19,95 +18,95 @@
<table width="200" border="0" cellspacing="0" cellpadding="0" background="bilder/fern_back.jpg">
<tr>
<td></td>
- <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0"></td>
+ <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0" /></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=power');"><img src="bilder/fern_03.jpg" alt="" height="27" width="68" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=power');"><img src="bilder/fern_03.jpg" alt="" height="27" width="68" border="0" /></a></td>
</tr>
<tr>
<td></td>
- <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0"></td>
+ <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0" /></td>
<td></td>
</tr>
<tr>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=1');"><img src="bilder/fern_05.jpg" alt="" height="28" width="67" border="0"></a></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=2');"><img src="bilder/fern_06.jpg" alt="" height="28" width="66" border="0"></a></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=3');"><img src="bilder/fern_07.jpg" alt="" height="28" width="67" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=1');"><img src="bilder/fern_05.jpg" alt="" height="28" width="67" border="0" /></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=2');"><img src="bilder/fern_06.jpg" alt="" height="28" width="66" border="0" /></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=3');"><img src="bilder/fern_07.jpg" alt="" height="28" width="67" border="0" /></a></td>
</tr>
<tr>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=4');"><img src="bilder/fern_08.jpg" alt="" height="28" width="67" border="0"></a></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=5');"><img src="bilder/fern_09.jpg" alt="" height="28" width="66" border="0"></a></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=6');"><img src="bilder/fern_10.jpg" alt="" height="28" width="67" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=4');"><img src="bilder/fern_08.jpg" alt="" height="28" width="67" border="0" /></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=5');"><img src="bilder/fern_09.jpg" alt="" height="28" width="66" border="0" /></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=6');"><img src="bilder/fern_10.jpg" alt="" height="28" width="67" border="0" /></a></td>
</tr>
<tr>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=7');"><img src="bilder/fern_11.jpg" alt="" height="28" width="67" border="0"></a></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=8');"><img src="bilder/fern_12.jpg" alt="" height="28" width="66" border="0"></a></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=9');"><img src="bilder/fern_13.jpg" alt="" height="28" width="67" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=7');"><img src="bilder/fern_11.jpg" alt="" height="28" width="67" border="0" /></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=8');"><img src="bilder/fern_12.jpg" alt="" height="28" width="66" border="0" /></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=9');"><img src="bilder/fern_13.jpg" alt="" height="28" width="67" border="0" /></a></td>
</tr>
<tr>
<td></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=0');"><img src="bilder/fern_15.jpg" alt="" height="28" width="66" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=0');"><img src="bilder/fern_15.jpg" alt="" height="28" width="66" border="0" /></a></td>
<td></td>
</tr>
<tr>
<td></td>
- <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0"></td>
+ <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0" /></td>
<td></td>
</tr>
<tr>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=menu');"><img src="bilder/fern_18.jpg" alt="" height="27" width="67" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=menu');"><img src="bilder/fern_18.jpg" alt="" height="27" width="67" border="0" /></a></td>
<td></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=back');"><img src="bilder/fern_19.jpg" alt="" height="27" width="67" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=back');"><img src="bilder/fern_19.jpg" alt="" height="27" width="67" border="0" /></a></td>
</tr>
<tr>
- <td colspan="3"><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=red');"><img src="bilder/fern_22.jpg" alt="" height="28" width="50" border="0"></a><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=green');"><img src="bilder/fern_23.jpg" alt="" height="28" width="49" border="0"></a><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=yellow');"><img src="bilder/fern_24.jpg" alt="" height="28" width="51" border="0"></a><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=blue');"><img src="bilder/fern_25.jpg" alt="" height="28" width="50" border="0"></a></td>
+ <td colspan="3"><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=red');"><img src="bilder/fern_22.jpg" alt="" height="28" width="50" border="0" /></a><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=green');"><img src="bilder/fern_23.jpg" alt="" height="28" width="49" border="0" /></a><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=yellow');"><img src="bilder/fern_24.jpg" alt="" height="28" width="51" border="0" /></a><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=blue');"><img src="bilder/fern_25.jpg" alt="" height="28" width="50" border="0" /></a></td>
</tr>
<tr>
<td></td>
- <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0"></td>
+ <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0" /></td>
<td></td>
</tr>
<tr>
<td></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=up');"><img src="bilder/fern_28.jpg" alt="" height="27" width="66" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=up');"><img src="bilder/fern_28.jpg" alt="" height="27" width="66" border="0" /></a></td>
<td></td>
</tr>
<tr>
<td></td>
- <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0"></td>
+ <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0" /></td>
<td></td>
</tr>
<tr>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=left');"><img src="bilder/fern_31.jpg" alt="" height="27" width="67" border="0"></a></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=ok');"><img src="bilder/fern_32.jpg" alt="" height="27" width="66" border="0"></a></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=right');"><img src="bilder/fern_33.jpg" alt="" height="27" width="67" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=left');"><img src="bilder/fern_31.jpg" alt="" height="27" width="67" border="0" /></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=ok');"><img src="bilder/fern_32.jpg" alt="" height="27" width="66" border="0" /></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=right');"><img src="bilder/fern_33.jpg" alt="" height="27" width="67" border="0" /></a></td>
</tr>
<tr>
<td></td>
- <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0"></td>
+ <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0" /></td>
<td></td>
</tr>
<tr>
<td></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=down');"><img src="bilder/fern_36.jpg" alt="" height="27" width="66" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=down');"><img src="bilder/fern_36.jpg" alt="" height="27" width="66" border="0" /></a></td>
<td></td>
</tr>
<tr>
<td></td>
- <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0"></td>
- <td><img src="bilder/spacer.gif" name="switchimage" width="1" height="1"> </td>
+ <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0" /></td>
+ <td><img src="bilder/spacer.gif" name="switchimage" width="1" height="1" /> </td>
</tr>
<tr>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=VolumeMinus');"><img src="bilder/fern_39.jpg" alt="" height="27" width="67" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=VolumeMinus');"><img src="bilder/fern_39.jpg" alt="" height="27" width="67" border="0" /></a></td>
<td></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=VolumePlus');"><img src="bilder/fern_40.jpg" alt="" height="27" width="67" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=VolumePlus');"><img src="bilder/fern_40.jpg" alt="" height="27" width="67" border="0" /></a></td>
</tr>
<tr>
<td></td>
- <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0"></td>
+ <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0" /></td>
<td></td>
</tr>
</table>
diff --git a/template/default/rec_edit.html b/template/default/rec_edit.html
index 1ab7db6..aa2f893 100644
--- a/template/default/rec_edit.html
+++ b/template/default/rec_edit.html
@@ -1,22 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
- <title><?% msg.c_progname %?> - <?% msg.re_headline %?></title>
- <link href="style.css" rel="stylesheet" media="screen">
+ <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
+ <title>VDRAdmin - <%! Rename Recording !%></title>
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css" />
+ <script type="text/javascript" language="JavaScript1.2" src="library.js"></script>
</head>
<body bgcolor="#f0f0f0" leftmargin="3" marginheight="20" marginwidth="3" topmargin="20">
<form action="<tmpl_var url>" method="get" name="form">
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="39">
<tr>
- <td valign="middle" width="200" background="bilder/nav_button_back.gif"><p class="einzug_ohnetop"><b><?% msg.re_headline %?></b></p></td>
+ <td valign="middle" width="200" background="bilder/nav_button_back.gif"><p class="einzug_ohnetop"><b><%! Rename Recording !%></b></p></td>
<td align="right" width="550" background="bilder/nav_button_back_mitte.gif">&nbsp;</td>
<td align="right" width="203" background="bilder/nav_button_back_mitte.gif">&nbsp;</td>
- <td width="15"><img src="bilder/nav_button_back_end.gif" width="15"></td>
+ <td width="15"><img src="bilder/nav_button_back_end.gif" width="15" /></td>
</tr>
</table>
- <br>
+ <br />
<div align="left">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr height="30">
@@ -33,14 +35,14 @@
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif">&nbsp;</td>
- <td width="20%" height="25" background="bilder/uebersicht_mitte.gif"><?% msg.re_old_title %?></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="title" value="<tmpl_var title>" size="55" readonly></td>
+ <td width="20%" height="25" background="bilder/uebersicht_mitte.gif"><%! Original Name of Recording: !%></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="title" value="<tmpl_var title>" size="55" readonly /></td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif">&nbsp;</td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif">&nbsp;</td>
- <td width="20%" height="25" background="bilder/uebersicht_mitte.gif"><?% msg.re_new_title %?></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="nn" value="<tmpl_var title>" size="55"></td>
+ <td width="20%" height="25" background="bilder/uebersicht_mitte.gif"><%! New Name of Recording: !%></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="nn" value="<tmpl_var title>" size="55" /></td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif">&nbsp;</td>
</tr>
<tr height="30">
@@ -51,15 +53,15 @@
</tr>
</table>
</div>
- <br>
+ <br />
<div align="left">
- <input type="hidden" name="aktion" value="rec_rename">
- <input type="hidden" name="id" value="<tmpl_var id>">
+ <input type="hidden" name="aktion" value="rec_rename" />
+ <input type="hidden" name="id" value="<tmpl_var id>" />
<tmpl_if referer>
- <input type="hidden" name="referer" value="<tmpl_var referer>">
+ <input type="hidden" name="referer" value="<tmpl_var referer>" />
</tmpl_if>
- <input type="submit" name="save" value="<?% msg.re_rename %?>">
- <input type="submit" name="exit" value="<?% msg.c_cancel %?>">
+ <input type="submit" name="save" value="<%! Rename !%>" />
+ <input type="submit" name="exit" value="<%! Cancel !%>" />
</div>
</form>
</body>
diff --git a/template/default/rec_list.html b/template/default/rec_list.html
index 4036167..074b016 100644
--- a/template/default/rec_list.html
+++ b/template/default/rec_list.html
@@ -1,11 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
- <title><?% msg.c_progname %?> - <?% msg.rl_headline %?></title>
- <link href="style.css" rel="stylesheet" media="screen">
+ <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1" />
+ <title>VDRAdmin - <%! Recordings !%></title>
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css" />
<script type="text/javascript" language="JavaScript1.2" src="library.js"></script>
</head>
@@ -13,25 +12,25 @@
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="39">
<tr>
<td valign="middle" width="300" background="bilder/nav_button_back.gif">
- <p class="einzug_ohnetop"><b><?% msg.rl_headline %?></b></p>
+ <p class="einzug_ohnetop"><b><%! Recordings !%></b></p>
</td>
<td colspan="2" align="right" background="bilder/nav_button_back_mitte.gif">&nbsp;
<tmpl_if disk_total>
- <?% msg.rl_hd_total %?>&nbsp;<tmpl_var minutes_total><?% msg.c_hours_short %?> &nbsp;(<tmpl_var disk_total>)
- &nbsp;|&nbsp;<?% msg.rl_hd_free %?>&nbsp;<tmpl_var minutes_free><?% msg.c_hours_short %?> &nbsp;(<tmpl_var disk_free>)
+ <%! Total: !%>&nbsp;<tmpl_var minutes_total><%! h !%> &nbsp;(<tmpl_var disk_total>)
+ &nbsp;|&nbsp;<%! Free: !%>&nbsp;<tmpl_var minutes_free><%! h !%> &nbsp;(<tmpl_var disk_free>)
</tmpl_if>
&nbsp;
</td>
<tmpl_if name="help_url">
<td align="right" width="35" background="bilder/nav_button_back_mitte.gif">
- <a href="javascript:open_help('<tmpl_var help_url>');"><img src="bilder/help.gif" border="0" valign="top" alt="help" title="<?% msg.c_help %?>"></a>
+ <a href="javascript:open_help('<tmpl_var help_url>');"><img src="bilder/help.gif" border="0" valign="top" alt="help" title="<%! Help !%>" /></a>
</td>
</tmpl_if>
<td width="15" background="bilder/nav_button_back_end.gif">&nbsp;</td>
</tr>
</table>
- <br>
+ <br />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
@@ -43,51 +42,51 @@
</tr>
</table>
- <br>
+ <br />
<form action="<tmpl_var url>" method="get" name="FormName">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
- <td valign="top" width="30">
- <p><img src="bilder/uebersicht_oben_links.gif" alt="" height="30" width="30" border="0"></p>
- </td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_oben_links.gif" alt="" height="30" width="30" border="0" /></td>
<td colspan="2" background="bilder/uebersicht_oben<tmpl_if sortbydate>_selected</tmpl_if>.gif">
<nobr class="einzug_liste_headlines">
- <a class="sort" href="<tmpl_var sortbydateurl>"><?% msg.c_list_date %?>
+ <a class="sort" href="<tmpl_var sortbydateurl>"><%! Date !%>
<tmpl_if sortbydate>
- <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0" />
<tmpl_else>
- <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0" />
</tmpl_if>
</a>
</nobr>
</td>
<td colspan="2" background="bilder/uebersicht_oben<tmpl_if sortbytime>_selected</tmpl_if>.gif">
<nobr class="einzug_liste_headlines">
- <a class="sort" href="<tmpl_var sortbytimeurl>"><?% msg.c_list_time %?>
+ <a class="sort" href="<tmpl_var sortbytimeurl>"><%! Time !%>
<tmpl_if sortbytime>
- <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0" />
<tmpl_else>
- <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0" />
</tmpl_if>
</a>
</nobr>
</td>
<td background="bilder/uebersicht_oben<tmpl_if sortbyname>_selected</tmpl_if>.gif">
<nobr class="einzug_liste_headlines">
- <a class="sort" href="<tmpl_var sortbynameurl>"><?% msg.c_list_name %?>
+ <a class="sort" href="<tmpl_var sortbynameurl>"><%! Name !%>
<tmpl_if sortbyname>
- <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0" />
<tmpl_else>
- <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0" />
</tmpl_if>
</a>
</nobr>
</td>
<td width="30" background="bilder/uebersicht_oben.gif">&nbsp;</td>
<td width="30" background="bilder/uebersicht_oben.gif">&nbsp;</td>
- <td width="30" align="center" background="bilder/uebersicht_oben.gif"><input type="checkbox" name="SELALL" value="SELALL" onclick="AllMessages(this.form);" title="<?% msg.c_select_allnone %?>"></td>
+ <td width="30" align="center" background="bilder/uebersicht_oben.gif"><input type="checkbox" name="SELALL" value="SELALL" onclick="AllMessages(this.form);" title="<%! Select all/none !%>" /></td>
+<tmpl_if stream_rec_on>
<td width="70" background="bilder/uebersicht_oben.gif">&nbsp;</td>
- <td valign="top" width="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" height="30" width="30" border="0"></td>
+</tmpl_if>
+ <td valign="top" width="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" height="30" width="30" border="0" /></td>
</tr>
<tmpl_loop recloop>
@@ -98,7 +97,7 @@
</td>
<td valign="top" align="left" width="10" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if><tmpl_if sortbydate>_selected</tmpl_if>.gif">
<p class="einzug_liste">
- <tmpl_if isfolder> <?% msg.rl_rec_total %?></tmpl_if>
+ <tmpl_if isfolder> <%! Total !%></tmpl_if>
</p>
</td>
<td valign="top" align="right" width="30" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if><tmpl_if sortbytime>_selected</tmpl_if>.gif">
@@ -107,10 +106,10 @@
<td valign="top" width="10" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if><tmpl_if sortbytime>_selected</tmpl_if>.gif">
<p class="einzug_liste">
<tmpl_if isfolder>
- <?% msg.rl_rec_new %?>
+ <%! New !%>
<tmpl_else>
<tmpl_if new>
- <?% msg.rl_rec_new %?>
+ <%! New !%>
</tmpl_if>
</tmpl_if>
</p>
@@ -118,7 +117,7 @@
<td valign="top" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if><tmpl_if sortbyname>_selected</tmpl_if>.gif">
<p class="einzug_liste">
<tmpl_if isfolder>
- <img align="absmiddle" src="bilder/folder.gif" border="0">&nbsp;
+ <img align="absmiddle" src="bilder/folder.gif" border="0" />&nbsp;
<a href="<tmpl_var infurl>"><b><font color="black"><tmpl_var name></font></b></a>
<tmpl_else>
<a href="javascript:popup('<tmpl_var infurl>');"><b><tmpl_var name></b></a>
@@ -128,55 +127,69 @@
<td align="center" valign="top" width="30" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
<p class="einzug_liste">
<tmpl_unless isfolder>
- <a href="<tmpl_var editurl>"><img src="bilder/edit.gif" alt="rename" title="<?% msg.rl_rename %?>" height="17" width="17" border="0"></a>
+ <a href="<tmpl_var editurl>"><img src="bilder/edit.gif" alt="rename" title="<%! Rename !%>" height="17" width="17" border="0" /></a>
</tmpl_unless>
</p>
</td>
<td align="center" valign="top" width="30" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
<p class="einzug_liste">
<tmpl_unless isfolder>
- <a href="javascript:del('<?% msg.js_del_rec %?>', '<tmpl_var delurl>');"><img src="bilder/delete.gif" alt="delete" title="<?% msg.c_delete %?>" height="17" width="17" border="0"></a>
+ <a href="javascript:del('<%! Delete recording? !%>', '<tmpl_var delurl>');"><img src="bilder/delete.gif" alt="delete" title="<%! Delete !%>" height="17" width="17" border="0" /></a>
</tmpl_unless>
</p>
</td>
<td align="center" valign="top" width="30" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
<p class="einzug_liste">
- <tmpl_unless isfolder><input type="checkbox" name="xxxx_<tmpl_var id>"></tmpl_unless>
+ <tmpl_unless isfolder><input type="checkbox" name="xxxx_<tmpl_var id>" /></tmpl_unless>
</p>
</td>
+<tmpl_if stream_rec_on>
<td align="center" valign="top" width="70" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
<p class="einzug_liste">
<tmpl_unless isfolder>
- <a href="<tmpl_var streamurl>"><img src="bilder/stream.jpg" alt="stream" title="<?% msg.c_stream %?>" height="17" border="0"></a>
+ <a href="<tmpl_var streamurl>"><img src="bilder/stream.jpg" alt="stream" title="<%! Stream !%>" height="17" border="0" /></a>
</tmpl_unless>
</p>
</td>
+</tmpl_if>
<td valign="top" width="30" background="bilder/uebersicht_rechts<tmpl_if __ODD__>_dark</tmpl_if>.gif">&nbsp;</td>
</tr>
</tmpl_loop>
<tr>
- <td valign="top" width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" height="30" width="30" border="0"></td>
- <td colspan="9" background="bilder/uebersicht_unten.gif">&nbsp;</td>
- <td valign="top" width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" height="30" width="30" border="0"></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" height="30" width="30" border="0" /></td>
+ <td colspan="<tmpl_if stream_rec_on>9<tmpl_else>8</tmpl_if>" background="bilder/uebersicht_unten.gif">&nbsp;</td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" height="30" width="30" border="0" /></td>
</tr>
<tr>
- <td colspan="5">&nbsp;</td>
- <td colspan="5" align="right"><br>
+ <td width="30">&nbsp;</td>
+ <td colspan="<tmpl_if stream_rec_on>9<tmpl_else>8</tmpl_if>" align="right"><br />
+<tmpl_if reccmds>
+ <%! Commands: !%>
+ <select name="rec_cmd">
+ <tmpl_loop reccmds>
+ <option value="<tmpl_var id>"><tmpl_var title></option>
+ </tmpl_loop>
+ </select>
+ <input type="submit" name="rec_runcmd" value="<%! Run !%>" onclick="confirm(<%! Really run this command? !%>)" />
+</tmpl_if>
+<!--
<table border="0" cellspacing="0" cellpadding="0">
<tr height="20">
<td width="12" height="20" background="bilder/gbutton_left.gif"></td>
<td align="center" height="20" background="bilder/gbutton_middle.gif">
- <a href="javascript:mdel('<?% msg.js_del_selected_rec %?>');"><div class="gbutton"><?% msg.rl_del_selected %?></div></a>
+ <a href="javascript:mdel('<%! Delete all selected recordings? !%>');"><div class="gbutton"><%! Delete Selected Recordings !%></div></a>
</td>
<td width="12" height="20" background="bilder/gbutton_right.gif"></td>
</tr>
</table>
+-->
+ <input type="submit" name="rec_delete" value="<%! Delete Selected Recordings !%>" onclick="mdel('<%! Delete all selected recordings? !%>');" />
</td>
<td valign="top" width="30">&nbsp;</td>
</tr>
</table>
- <input type="hidden" name="aktion" value="rec_delete">
+ <input type="hidden" name="aktion" value="rec_delete" />
</form>
</body>
</html>
diff --git a/template/default/style.css b/template/default/style.css
index 8d2cabb..08c9ce0 100644
--- a/template/default/style.css
+++ b/template/default/style.css
@@ -26,7 +26,7 @@ a.sort:active { color: black; text-decoration: underline; font-weight: bold }
.rechts { text-align: right}
.einzug { margin: 10px 12px }
.einzug_ohnetop { margin-right: 12px; margin-left: 12px }
-.einzug_liste { margin: 3px 5px 0px 5px }
+.einzug_liste { margin: 3px 5px 0px 5px; white-space: nowrap; }
.einzug_liste_headlines { margin-right: 5px; margin-left: 6px }
.einzugklein { color: #000; font-weight: normal; font-size: 10px; font-family: Verdana, Arial, Geneva, Helvetica, sans-serif; margin-right: 7px; margin-left: 7px }
.gbutton { color: black; font-weight: bold }
diff --git a/template/default/timer_list.html b/template/default/timer_list.html
index 2f21143..3862ba9 100644
--- a/template/default/timer_list.html
+++ b/template/default/timer_list.html
@@ -1,11 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
- <title><?% msg.c_progname %?> - <?% msg.tl_headline %?></title>
- <link href="style.css" rel="stylesheet" media="screen">
+ <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1" />
+ <title>VDRAdmin - <%! Timer !%></title>
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css" />
<script type="text/javascript" language="JavaScript1.2" src="library.js"></script>
<style type="text/css">
#prgtable { border-left-width:1px;border-left-color:#000000;border-left-style:solid; border-right-width:1px;border-right-color:#000000;border-right-style:solid;}
@@ -28,7 +27,7 @@
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="39">
<tr>
<td valign="middle" width="200" background="bilder/nav_button_back.gif">
- <p class="einzug_ohnetop"><b><?% msg.tl_headline %?></b></p>
+ <p class="einzug_ohnetop"><b><%! Timer !%></b></p>
</td>
<td align="right" background="bilder/nav_button_back_mitte.gif">&nbsp;</td>
<td align="right" background="bilder/nav_button_back_mitte.gif">
@@ -36,7 +35,7 @@
<tr height="20">
<td width="12" height="20" background="bilder/gbutton_left.gif"></td>
<td align="center" height="20" background="bilder/gbutton_middle.gif">
- <a href="<tmpl_var nturl>"><div class="gbutton"><?% msg.tl_new_timer %?></div></a>
+ <a href="<tmpl_var nturl>"><div class="gbutton"><%! New Timer !%></div></a>
</td>
<td width="12" height="20" background="bilder/gbutton_right.gif"></td>
</tr>
@@ -44,22 +43,20 @@
</td>
<tmpl_if help_url>
<td align="right" width="35" background="bilder/nav_button_back_mitte.gif">
- <a href="javascript:open_help('<tmpl_var help_url>');"><img src="bilder/help.gif" border="0" alt="help" title="<?% msg.c_help %?>"></a>
+ <a href="javascript:open_help('<tmpl_var help_url>');"><img src="bilder/help.gif" border="0" alt="help" title="<%! Help !%>" /></a>
</td>
</tmpl_if>
<td width="15" background="bilder/nav_button_back_end.gif">&nbsp;</td>
</tr>
</table>
- <br>
+ <br />
<form action="<tmpl_var url>" method="get" name="FormName1">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
- <td valign="top" width="30">
- <p><img src="bilder/uebersicht_oben_links.gif" alt="" height="30" width="30" border="0"></p>
- </td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_oben_links.gif" alt="" height="30" width="30" border="0" /></td>
<td background="bilder/uebersicht_oben.gif">
- <p><b><tmpl_var title></b></p>
+ <b><tmpl_var title></b>
</td>
<td background="bilder/uebersicht_oben.gif" align="right">
<select name="vdr_id" size="1" onchange="window.open('<tmpl_var url>?aktion=timer_list&timer=' + this.options[this.selectedIndex].value,'main')">
@@ -68,15 +65,15 @@
</tmpl_loop>
</select>
</td>
- <td valign="top" width="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" height="30" width="30" border="0"></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" height="30" width="30" border="0" /></td>
</tr>
<tr>
<td valign="top" width="30" background="bilder/uebersicht_links.gif">&nbsp;</td>
<td colspan="2" background="bilder/uebersicht_mitte.gif">
- <br>
- <table cellspacing=0 cellpadding=0 border=0>
+ <br />
+ <table cellspacing="0" cellpadding="0" border="0">
<tr>
- <td bgcolor="<?% farbenix2 %?>" height=20 width=100><img src="bilder/spacer.gif" width="100" height=1 border=0><br>&nbsp;</td>
+ <td bgcolor="<?% farbenix2 %?>" height=20 width=100><img src="bilder/spacer.gif" width="100" height="1" border="0" /><br />&nbsp;</td>
<?%
stunde=0;
pos=0;
@@ -90,7 +87,7 @@
ende=((stunde * 60 / faktor) +0.5 ) | format('%i');
%?>
- <td bgcolor="<?% farbe %?>" align="center"><img src="bilder/spacer.gif" width="<?% ende-pos %?>" height=1 border=0><br><?% stunde - 1 %?></td>
+ <td bgcolor="<?% farbe %?>" align="center"><img src="bilder/spacer.gif" width="<?% ende-pos %?>" height="1" border="0" /><br /><?% stunde - 1 %?></td>
<?%
pos=ende;
END;
@@ -107,15 +104,15 @@
bgfarbe=((programm % 2) == 0) ? farbenix1 : farbenix2;
sender=timer.cdesc;
%?>
- <table cellspacing=0 cellpadding=0 border=0>
+ <table cellspacing="0" cellpadding="0" border="0">
<tr>
- <td bgcolor="#000000" height=1><img src="bilder/spacer.gif" width="<?% tablaenge + 100 %?>" height=1 border=0></td>
+ <td bgcolor="#000000" height="1"><img src="bilder/spacer.gif" width="<?% tablaenge + 100 %?>" height="1" border="0" /></td>
</tr>
</table>
- <table cellspacing=0 cellpadding=0 border=0>
+ <table cellspacing="0" cellpadding="0" border="0">
<tr>
- <td bgcolor="<?% bgfarbe %?>" height=20 width=100><img src="bilder/spacer.gif" width="100" height=1 border=0><br><b><?% sender | truncate(11) %?></b></td>
+ <td bgcolor="<?% bgfarbe %?>" height="20" width="100"><img src="bilder/spacer.gif" width="100" height="1" border="0" /><br /><b><?% sender | truncate(11) %?></b></td>
<?%
pos=0;
@@ -144,19 +141,19 @@
IF start>pos;
%?>
- <td bgcolor="<?% bgfarbe %?>"><img src="bilder/spacer.gif" width="<?% start-pos %?>" height=1 border=0><br></td>
+ <td bgcolor="<?% bgfarbe %?>"><img src="bilder/spacer.gif" width="<?% start-pos %?>" height="1" border="0" /><br /></td>
<?%
pos=start;
END;
IF ende - pos < 2;
%?>
- <td bgcolor="<?% progfarbe %?>"><span title="<?% sendung.title %?>"><img src="bilder/spacer.gif" width="<?% ende - pos %?>" height=20 border=0></span></td>
+ <td bgcolor="<?% progfarbe %?>"><span title="<?% sendung.title %?>"><img src="bilder/spacer.gif" width="<?% ende - pos %?>" height="20" border="0" /></span></td>
<?%
ELSE;
%?>
- <td bgcolor="<?% progfarbe %?>" id="prgtable"><span title="<?% sendung.title %?>"><img src="bilder/spacer.gif" width="<?% ende - pos - 2 %?>" height=20 border=0></span></td>
+ <td bgcolor="<?% progfarbe %?>" id="prgtable"><span title="<?% sendung.title %?>"><img src="bilder/spacer.gif" width="<?% ende - pos - 2 %?>" height="20" border="0" /></span></td>
<?%
END;
@@ -165,7 +162,7 @@
END;
IF pos<tablaenge;
%?>
- <td bgcolor="<?% bgfarbe %?>"><img src="bilder/spacer.gif" width="<?% tablaenge - pos %?>" height=1 border=0><br></td>
+ <td bgcolor="<?% bgfarbe %?>"><img src="bilder/spacer.gif" width="<?% tablaenge - pos %?>" height="1" border="0" /><br /></td>
<?%
END;
@@ -178,100 +175,98 @@
END;
%?>
- <table cellspacing=0 cellpadding=0 border=0>
+ <table cellspacing="0" cellpadding="0" border="0">
<tr>
- <td bgcolor="#000000" height=1><img src="bilder/spacer.gif" width="<?% tablaenge + 100 %?>" height=1 border=0></td>
+ <td bgcolor="#000000" height="1"><img src="bilder/spacer.gif" width="<?% tablaenge + 100 %?>" height="1" border="0" /></td>
</tr>
</table>
</td>
<td valign="top" width="30" background="bilder/uebersicht_rechts.gif">&nbsp;</td>
</tr>
<tr>
- <td valign="top" width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" height="30" width="30" border="0"></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" height="30" width="30" border="0" /></td>
<td colspan="2" background="bilder/uebersicht_unten.gif">&nbsp;</td>
- <td valign="top" width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" height="30" width="30" border="0"></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" height="30" width="30" border="0" /></td>
</tr>
</table>
- <input type="hidden" name="aktion" value="timer_list">
+ <input type="hidden" name="aktion" value="timer_list" />
</form>
- <br>
+ <br />
<form action="<tmpl_var url>" method="get" name="FormName">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
- <td valign="top" width="30">
- <p><img src="bilder/uebersicht_oben_links.gif" alt="" height="30" width="30" border="0"></p>
- </td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_oben_links.gif" alt="" height="30" width="30" border="0" /></td>
<td width="70" background="bilder/uebersicht_oben<tmpl_if sortbyactive>_selected</tmpl_if>.gif">
<nobr class="einzug_liste_headlines">
- <a class="sort" href="<tmpl_var sortbyactiveurl>"><?% msg.c_list_active %?>
+ <a class="sort" href="<tmpl_var sortbyactiveurl>"><%! Active !%>
<tmpl_if sortbyactive>
- <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0" />
<tmpl_else>
- <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0" />
</tmpl_if>
</a>
</nobr>
</td>
<td width="10%" background="bilder/uebersicht_oben<tmpl_if sortbychannel>_selected</tmpl_if>.gif">
<nobr class="einzug_liste_headlines">
- <a class="sort" href="<tmpl_var sortbychannelurl>"><?% msg.c_list_channel %?>
+ <a class="sort" href="<tmpl_var sortbychannelurl>"><%! Channel !%>
<tmpl_if sortbychannel>
- <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0" />
<tmpl_else>
- <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0" />
</tmpl_if>
</a>
</nobr>
</td>
<td width="40" background="bilder/uebersicht_oben<tmpl_if sortbyday>_selected</tmpl_if>.gif">
<nobr class="einzug_liste_headlines">
- <a class="sort" href="<tmpl_var sortbydayurl>"><?% msg.c_list_date %?>
+ <a class="sort" href="<tmpl_var sortbydayurl>"><%! Date !%>
<tmpl_if sortbyday>
- <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0" />
<tmpl_else>
- <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0" />
</tmpl_if>
</a>
</nobr>
</td>
<td width="40" background="bilder/uebersicht_oben<tmpl_if sortbystart>_selected</tmpl_if>.gif">
<nobr class="einzug_liste_headlines">
- <a class="sort" href="<tmpl_var sortbystarturl>"><?% msg.c_list_start %?>
+ <a class="sort" href="<tmpl_var sortbystarturl>"><%! Start !%>
<tmpl_if sortbystart>
- <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0" />
<tmpl_else>
- <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0" />
</tmpl_if>
</a>
</nobr>
</td>
<td width="40" background="bilder/uebersicht_oben<tmpl_if sortbystop>_selected</tmpl_if>.gif">
<nobr class="einzug_liste_headlines">
- <a class="sort" href="<tmpl_var sortbystopurl>"><?% msg.c_list_stop %?>
+ <a class="sort" href="<tmpl_var sortbystopurl>"><%! Stop !%>
<tmpl_if sortbystop>
- <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0" />
<tmpl_else>
- <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0" />
</tmpl_if>
</a>
</nobr>
</td>
<td background="bilder/uebersicht_oben<tmpl_if sortbyname>_selected</tmpl_if>.gif">
<nobr class="einzug_liste_headlines">
- <a class="sort" href="<tmpl_var sortbynameurl>"><?% msg.c_list_name %?>
+ <a class="sort" href="<tmpl_var sortbynameurl>"><%! Name !%>
<tmpl_if sortbyname>
- <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/sortiert_<tmpl_if desc>desc<tmpl_else>asc</tmpl_if>.gif" alt="" width="9" height="11" border="0" />
<tmpl_else>
- <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0">
+ <img src="bilder/spacer.gif" alt="" width="9" height="11" border="0" />
</tmpl_if>
</a>
</nobr>
</td>
<td width="30" background="bilder/uebersicht_oben.gif">&nbsp;</td>
<td width="30" background="bilder/uebersicht_oben.gif">&nbsp;</td>
- <td width="30" align="center" background="bilder/uebersicht_oben.gif"><input type="checkbox" name="SELALL" value="SELALL" onclick="AllMessages(this.form);" title="<?% msg.c_select_allnone %?>"></td>
- <td valign="top" width="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" height="30" width="30" border="0"></td>
+ <td width="30" align="center" background="bilder/uebersicht_oben.gif"><input type="checkbox" name="SELALL" value="SELALL" onclick="AllMessages(this.form);" title="<%! Select all/none !%>" /></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" height="30" width="30" border="0" /></td>
</tr>
<tmpl_loop timer_loop>
@@ -280,33 +275,33 @@
<td valign="top" width="70" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if><tmpl_if sortbyactive>_selected</tmpl_if>.gif">
<p class="einzug_liste">
<tmpl_if expr="(active%32768) == 0">
- <img src="bilder/poempl_grau.gif" alt="inactive" title="<?% msg.tl_inactive %?>" width="19" height="19" align="absmiddle" border="0">
+ <img src="bilder/poempl_grau.gif" alt="inactive" title="<%! This timer is inactive! !%>" width="19" height="19" align="absmiddle" border="0" />
<tmpl_else>
<tmpl_if critical>
- <img src="bilder/poempl_rot.gif" alt="impossible" title="<?% msg.tl_impossible %?>" width="19" height="19" align="absmiddle" border="0">
+ <img src="bilder/poempl_rot.gif" alt="impossible" title="<%! This timer is impossible! !%>" width="19" height="19" align="absmiddle" border="0" />
<tmpl_else>
<tmpl_if collision>
- <img src="bilder/poempl_gelb.gif" alt="nomore" title="<?% msg.tl_nomore %?>" width="19" height="19" align="absmiddle" border="0">
+ <img src="bilder/poempl_gelb.gif" alt="nomore" title="<%! No more timers possible! !%>" width="19" height="19" align="absmiddle" border="0" />
<tmpl_else>
<tmpl_if active>
- <img src="bilder/poempl_gruen.gif" alt="possible" title="<?% msg.tl_possible %?>" width="19" height="19" align="absmiddle" border="0">
+ <img src="bilder/poempl_gruen.gif" alt="possible" title="<%! Timer OK. !%>" width="19" height="19" align="absmiddle" border="0" />
</tmpl_if>
</tmpl_if>
</tmpl_if>
</tmpl_if>
&nbsp;
- <a href="javascript:change('<?% msg.js_change_timer %?>','<tmpl_var toggleurl>&timer=<?% current %?>');">
+ <a href="javascript:change('<%! Edit timer status? !%>','<tmpl_var toggleurl>&timer=<?% current %?>');">
<font color="black">
- <tmpl_if expr="active == 1"><?% msg.c_yes %?></tmpl_if>
- <tmpl_if expr="(active%32768) == 0"><?% msg.c_no %?></tmpl_if>
- <tmpl_if expr="active == 5"><?% msg.tl_vps %?></tmpl_if>
- <tmpl_if expr="active == 32769"><?% msg.tl_auto %?></tmpl_if>
+ <tmpl_if expr="active == 1"><%! Yes !%></tmpl_if>
+ <tmpl_if expr="(active%32768) == 0"><%! No !%></tmpl_if>
+ <tmpl_if expr="active == 5"><%! VPS !%></tmpl_if>
+ <tmpl_if expr="active == 32769"><%! Auto !%></tmpl_if>
</font>
</a>
</p>
</td>
<td valign="top" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if><tmpl_if sortbychannel>_selected</tmpl_if>.gif">
- <p class="einzug_liste"><tmpl_var cdesc></p>
+ <p class="einzug_liste"><a href="<tmpl_var proglink>"><tmpl_var cdesc></a></p>
</td>
<td valign="top" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if><tmpl_if sortbyday>_selected</tmpl_if>.gif">
<p class="einzug_liste"><tmpl_var dor></p>
@@ -318,8 +313,8 @@
<p class="einzug_liste"><tmpl_var stop></p>
</td>
<td valign="top" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if><tmpl_if sortbyname>_selected</tmpl_if>.gif">
- <p class="einzug_liste">
- <tmpl_if recording><img align="absmiddle" src="bilder/rec.gif" border="0">&nbsp;</tmpl_if>
+ <p class="einzug_liste" title="<%! Priority: !%> <tmpl_var prio> / <%! Lifetime: !%> <tmpl_var lft>">
+ <tmpl_if recording><img align="absmiddle" src="bilder/rec.gif" border="0" />&nbsp;</tmpl_if>
<tmpl_if infurl>
<a href="javascript:popup('<tmpl_var infurl>');"><tmpl_var title></a>
<tmpl_else>
@@ -328,31 +323,31 @@
</p>
</td>
<td align="center" valign="top" width="30" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
- <p class="einzug_liste"><a href="<tmpl_var modurl>"><img src="bilder/edit.gif" alt="edit" title="<?% msg.c_edit %?>" height="17" width="17" border="0"></a></p>
+ <p class="einzug_liste"><a href="<tmpl_var modurl>"><img src="bilder/edit.gif" alt="edit" title="<%! Edit !%>" height="17" width="17" border="0" /></a></p>
</td>
<td align="center" valign="top" width="30" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
- <p class="einzug_liste"><a href="javascript:del('<?% msg.js_del_timer %?>','<tmpl_var delurl>');"><img src="bilder/delete.gif" alt="delete" title="<?% msg.c_delete %?>" height="17" width="17" border="0"></a></p>
+ <p class="einzug_liste"><a href="javascript:del('<%! Delete timer? !%>','<tmpl_var delurl>');"><img src="bilder/delete.gif" alt="delete" title="<%! Delete !%>" height="17" width="17" border="0" /></a></p>
</td>
<td align="center" valign="top" width="30" background="bilder/uebersicht_mitte<tmpl_if __ODD__>_dark</tmpl_if>.gif">
- <p class="einzug_liste"><input type="checkbox" name="xxxx_<tmpl_var id>"></p>
+ <p class="einzug_liste"><input type="checkbox" name="xxxx_<tmpl_var id>" /></p>
</td>
<td valign="top" width="30" background="bilder/uebersicht_rechts<tmpl_if __ODD__>_dark</tmpl_if>.gif">&nbsp;</td>
</tr>
</tmpl_loop>
<tr>
- <td valign="top" width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" height="30" width="30" border="0"></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_unten_links.gif" alt="" height="30" width="30" border="0" /></td>
<td colspan="9" background="bilder/uebersicht_unten.gif">&nbsp;</td>
- <td valign="top" width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" height="30" width="30" border="0"></td>
+ <td valign="top" width="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" height="30" width="30" border="0" /></td>
</tr>
<tr>
<td valign="top" colspan="6"></td>
- <td colspan="4" align="right"><br>
+ <td colspan="4" align="right"><br />
<table border="0" cellspacing="0" cellpadding="0">
<tr height="20">
<td width="12" height="20" background="bilder/gbutton_left.gif"></td>
<td align="center" height="20" background="bilder/gbutton_middle.gif">
- <a href="javascript:mdel('<?% msg.js_del_selected_timer %?>');"><div class="gbutton"><?% msg.tl_del_selected %?></div></a>
+ <a href="javascript:mdel('<%! Delete all selected timers? !%>');"><div class="gbutton"><%! Delete Selected Timers !%></div></a>
</td>
<td width="12" height="20" background="bilder/gbutton_right.gif"></td>
</tr>
@@ -361,7 +356,7 @@
<td valign="top" width="30"></td>
</tr>
</table>
- <input type="hidden" name="aktion" value="timer_delete">
+ <input type="hidden" name="aktion" value="timer_delete" />
</form>
</body>
</html>
diff --git a/template/default/timer_new.html b/template/default/timer_new.html
index 4686f44..13fd8a4 100644
--- a/template/default/timer_new.html
+++ b/template/default/timer_new.html
@@ -1,8 +1,10 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
- <title><?% msg.c_progname %?> - <tmpl_if newtimer><?%msg.tn_new_timer %?><tmpl_else><?% msg.tn_edit_timer %?></tmpl_if></title>
+ <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
+ <title>VDRAdmin - <tmpl_if newtimer><%! Create New Timer !%><tmpl_else><%! Edit Timer !%></tmpl_if></title>
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css" />
<script type="text/javascript" language="JavaScript1.2" src="library.js"></script>
<script type="text/javascript" language="JavaScript1.2">
<!--
@@ -10,7 +12,7 @@
var Timer = "";
var dor = document.form.dor.value;
var StartDay = dor.indexOf('@') > 0 ? dor.substring(dor.indexOf('@')) : "";
- Days = new Array("M", "D", "M", "D", "F", "S", "S");
+ Days = new Array("M", "T", "W", "T", "F", "S", "S");
for(var i = 0; i <= 6; i++) {
Status = eval("document.form.D" + i + ".checked");
if(Status == true) {
@@ -33,7 +35,6 @@
}
//-->
</script>
- <link href="style.css" rel="stylesheet" media="screen">
</head>
<body onload='eCheckbox("<tmpl_var dor>")' bgcolor="#f0f0f0" leftmargin="3" marginheight="20" marginwidth="3" topmargin="20">
@@ -41,50 +42,50 @@
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="39">
<tr>
<td valign="middle" width="500" background="bilder/nav_button_back.gif">
- <p class="einzug_ohnetop"><b><tmpl_if newtimer><?% msg.tn_new_timer %?><tmpl_else><?% msg.tn_edit_timer %?></tmpl_if></b></p>
+ <p class="einzug_ohnetop"><b><tmpl_if newtimer><%! Create New Timer !%><tmpl_else><%! Edit Timer !%></tmpl_if></b></p>
</td>
<td background="bilder/nav_button_back_mitte.gif">&nbsp;</td>
<td width="35" background="bilder/nav_button_back_mitte.gif">
<tmpl_if name="help_url"><a href="javascript:open_help('<tmpl_var help_url>');">
- <img src="bilder/help.gif" border="0" align="right" valign="top" alt="help" title="<?% msg.c_help %?>"></a>
+ <img src="bilder/help.gif" border="0" align="right" valign="top" alt="help" title="<%! Help !%>" /></a>
</tmpl_if>
</td>
<td width="15" background="bilder/nav_button_back_end.gif">&nbsp;</td>
</tr>
</table>
- <br>
+ <br />
<div align="left">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr height="30">
- <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_links.gif" alt="" width="30" height="30" border="0" /></td>
<td height="30" background="bilder/uebersicht_oben.gif">&nbsp;</td>
<td height="30" background="bilder/uebersicht_oben.gif">&nbsp;</td>
- <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_oben_rechts.gif" alt="" width="30" height="30" border="0" /></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td width="20%" height="25" background="bilder/uebersicht_mitte.gif"><?% msg.tn_timer_active %?></td>
+ <td width="20%" height="25" background="bilder/uebersicht_mitte.gif"><%! Timer Active: !%></td>
<td height="25" background="bilder/uebersicht_mitte.gif">
- <input type="radio" name="active" value="1" <tmpl_if active>checked</tmpl_if>><?% msg.c_yes %?>
- <input type="radio" name="active" value="0" <tmpl_unless active>checked</tmpl_unless>><?% msg.c_no %?>
+ <input type="radio" name="active" value="1" <tmpl_if active>checked</tmpl_if> /> <%! Yes !%>
+ <input type="radio" name="active" value="0" <tmpl_unless active>checked</tmpl_unless> /> <%! No !%>
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td width="20%" height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.tn_autotimer_checking %?></td>
+ <td width="20%" height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Auto Timer Checking: !%></td>
<td height="25" background="bilder/uebersicht_mitte_dark.gif">
<tmpl_if expr="event_id > 1">
- <input type="radio" name="event_id" value="<tmpl_var event_id>" checked><?% msg.tn_transmission_id %?>
+ <input type="radio" name="event_id" value="<tmpl_var event_id>" checked /> <%! Transmission Identification !%>
</tmpl_if>
- <input type="radio" name="event_id" value="1" <tmpl_if expr="event_id == 1">checked</tmpl_if>><?% msg.c_time %?>
- <input type="radio" name="event_id" value="0" <tmpl_if expr="event_id == 0">checked</tmpl_if>><?% msg.c_off %?>
+ <input type="radio" name="event_id" value="1" <tmpl_if expr="event_id == 1">checked</tmpl_if> /> <%! Time !%>
+ <input type="radio" name="event_id" value="0" <tmpl_if expr="event_id == 0">checked</tmpl_if> /> <%! off !%>
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td width="20%" height="25" background="bilder/uebersicht_mitte.gif"><?% msg.c_channel %?></td>
+ <td width="20%" height="25" background="bilder/uebersicht_mitte.gif"><%! Channel: !%></td>
<td height="25" background="bilder/uebersicht_mitte.gif">
<select name="channel" size="1">
<tmpl_loop name="channels">
@@ -96,84 +97,85 @@
</tr>
<tr height="25">
<td valign="top" width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td valign="top" width="20%" height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.tn_day_of_rec %?></td>
+ <td valign="top" width="20%" height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Day Of Recording: !%></td>
<td height="25" background="bilder/uebersicht_mitte_dark.gif">
- <input type="text" name="dor" value="<tmpl_var dor>" size="20">
- <br>
- <input onclick="cTimer(1)" type="checkbox" name="D0" value="1"><?% msg.c_monday %?>
- <input onclick="cTimer(2)" type="checkbox" name="D1" value="1"><?% msg.c_tuesday %?>
- <input onclick="cTimer(3)" type="checkbox" name="D2" value="radioValue"><?% msg.c_wednesday %?>
- <input onclick="cTimer(4)" type="checkbox" name="D3" value="radioValue"><?% msg.c_thursday %?>
- <input onclick="cTimer(5)" type="checkbox" name="D4" value="radioValue"><?% msg.c_friday %?>
- <input onclick="cTimer(6)" type="checkbox" name="D5" value="radioValue"><?% msg.c_saturday %?>
- <input onclick="cTimer(7)" type="checkbox" name="D6" value="radioValue"><?% msg.c_sunday %?>
+ <input type="text" name="dor" value="<tmpl_var dor>" size="20" />
+ <br />
+ <input onclick="cTimer(1)" type="checkbox" name="D0" value="1" /> <%! Monday !%>
+ <input onclick="cTimer(2)" type="checkbox" name="D1" value="1" /> <%! Tuesday !%>
+ <input onclick="cTimer(3)" type="checkbox" name="D2" value="radioValue" /> <%! Wednesday !%>
+ <input onclick="cTimer(4)" type="checkbox" name="D3" value="radioValue" /> <%! Thursday !%>
+ <input onclick="cTimer(5)" type="checkbox" name="D4" value="radioValue" /> <%! Friday !%>
+ <input onclick="cTimer(6)" type="checkbox" name="D5" value="radioValue" /> <%! Saturday !%>
+ <input onclick="cTimer(7)" type="checkbox" name="D6" value="radioValue" /> <%! Sunday !%>
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td width="20%" height="25" background="bilder/uebersicht_mitte.gif"><?% msg.tn_time_start %?></td>
+ <td width="20%" height="25" background="bilder/uebersicht_mitte.gif"><%! Start Time: !%></td>
<td height="25" background="bilder/uebersicht_mitte.gif">
- <input type="text" name="starth" value="<tmpl_var starth>" size="2" maxlength="2">
+ <input type="text" name="starth" value="<tmpl_var starth>" size="2" maxlength="2" />
<b>&nbsp;:&nbsp;</b>
- <input type="text" name="startm" value="<tmpl_var startm>" size="2" maxlength="2">
- &nbsp;<?% msg.c_clock %?>
+ <input type="text" name="startm" value="<tmpl_var startm>" size="2" maxlength="2" />
+ &nbsp;<%! o'clock !%>
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td width="20%" height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.tn_time_stop %?></td>
+ <td width="20%" height="25" background="bilder/uebersicht_mitte_dark.gif"><%! End Time: !%></td>
<td height="25" background="bilder/uebersicht_mitte_dark.gif">
- <input type="text" name="stoph" value="<tmpl_var stoph>" size="2" maxlength="2">
+ <input type="text" name="stoph" value="<tmpl_var stoph>" size="2" maxlength="2" />
<b>&nbsp;:&nbsp;</b>
- <input type="text" name="stopm" value="<tmpl_var stopm>" size="2" maxlength="2">
- &nbsp;<?% msg.c_clock %?>
+ <input type="text" name="stopm" value="<tmpl_var stopm>" size="2" maxlength="2" />
+ &nbsp;<%! o'clock !%>
</td>
<td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td width="20%" height="25" background="bilder/uebersicht_mitte.gif"><?% msg.c_priority %?></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="prio" value="<tmpl_var prio>" size="2" maxlength="2"></td>
+ <td width="20%" height="25" background="bilder/uebersicht_mitte.gif"><%! Priority: !%></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="prio" value="<tmpl_var prio>" size="2" maxlength="2" /></td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links_dark.gif"></td>
- <td width="20%" height="25" background="bilder/uebersicht_mitte_dark.gif"><?% msg.c_lifetime %?></td>
- <td height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="text" name="lft" value="<tmpl_var lft>" size="2" maxlength="2"></td>
+ <td width="20%" height="25" background="bilder/uebersicht_mitte_dark.gif"><%! Lifetime: !%></td>
+ <td height="25" background="bilder/uebersicht_mitte_dark.gif"><input type="text" name="lft" value="<tmpl_var lft>" size="2" maxlength="2" /></td>
<td width="30" height="25" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
<tr height="25">
<td width="30" height="25" background="bilder/uebersicht_links.gif"></td>
- <td width="20%" height="25" background="bilder/uebersicht_mitte.gif"><?% msg.tn_rec_title %?></td>
- <td height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="title" value="<tmpl_var title>" size="80"></td>
+ <td width="20%" height="25" background="bilder/uebersicht_mitte.gif"><%! Title of Recording: !%></td>
+ <td height="25" background="bilder/uebersicht_mitte.gif"><input type="text" name="title" value="<tmpl_var title>" size="80" /></td>
<td width="30" height="25" background="bilder/uebersicht_rechts.gif"></td>
</tr>
<tr>
<td valign="top" width="30" background="bilder/uebersicht_links_dark.gif"></td>
- <td valign="top" width="20%" background="bilder/uebersicht_mitte_dark.gif"><?% msg.c_summary %?></td>
+ <td valign="top" width="20%" background="bilder/uebersicht_mitte_dark.gif"><%! Summary: !%></td>
<td background="bilder/uebersicht_mitte_dark.gif"><textarea name="summary" rows="6" cols="80"><tmpl_var summary></textarea></td>
<td width="30" background="bilder/uebersicht_rechts_dark.gif"></td>
</tr>
<tr height="30">
- <td width="30" height="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_unten_links.gif" alt="" width="30" height="30" border="0" /></td>
<td colspan="2" height="30" background="bilder/uebersicht_unten.gif"></td>
- <td width="30" height="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0"></td>
+ <td width="30" height="30"><img src="bilder/uebersicht_unten_rechts.gif" alt="" width="30" height="30" border="0" /></td>
</tr>
</table>
</div>
- <br>
+ <br />
<div align="left">
- <input type="submit" name="save" value="<?% msg.c_save %?>">
- <input type="submit" name="exit" value="<?% msg.c_cancel %?>"></div>
- <input type="hidden" name="aktion" value="timer_add">
- <tmpl_if referer>
- <input type="hidden" name="referer" value="<tmpl_var referer>">
- </tmpl_if>
- <tmpl_if timer_id>
- <input type="hidden" name="timer_id" value="<tmpl_var timer_id>">
- </tmpl_if>
+ <input type="submit" name="save" value="<%! Save !%>" />
+ <input type="submit" name="exit" value="<%! Cancel !%>" />
+ </div>
+ <input type="hidden" name="aktion" value="timer_add" />
+ <tmpl_if referer>
+ <input type="hidden" name="referer" value="<tmpl_var referer>" />
+ </tmpl_if>
+ <tmpl_if timer_id>
+ <input type="hidden" name="timer_id" value="<tmpl_var timer_id>" />
+ </tmpl_if>
</form>
</body>
diff --git a/template/default/toolbar.html b/template/default/toolbar.html
index d3ad11d..5385f19 100644
--- a/template/default/toolbar.html
+++ b/template/default/toolbar.html
@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
- <title>Toolbar</title>
+ <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1" />
+ <title>VDRAdmin - Toolbar</title>
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css" />
+ <script type="text/javascript" language="JavaScript1.2" src="library.js"></script>
</head>
<body bgcolor="#ffffff">
@@ -17,21 +18,11 @@
<option value="<tmpl_var vdr_id>" <tmpl_if current>selected</tmpl_if>><tmpl_var name></option>
</tmpl_loop>
</select>
- &nbsp;<input type="submit" name="submit" value="Go!">
- <input type="hidden" name="aktion" value="prog_list">
+ &nbsp;<input type="submit" name="submit" value="Go!" />
+ <input type="hidden" name="aktion" value="prog_list" />
</td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td></td>
</tr>
</table>
- <p></p>
</form>
</body>
diff --git a/template/default/tv.html b/template/default/tv.html
index 21d3ecb..faaf9b9 100644
--- a/template/default/tv.html
+++ b/template/default/tv.html
@@ -1,8 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <title><?% msg.c_progname %?> - <?% msg.tv_headline %?> (<tmpl_var host>)</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>VDRAdmin - <%! TV !%> (<tmpl_var host>)</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css" />
+ <script type="text/javascript" language="JavaScript1.2" src="library.js"></script>
<script language="JavaScript">
<!--
var aktiv;
@@ -70,101 +73,101 @@ select { font-weight: normal; width: 55px; height: 20px; font-size: 9px; font-fa
<form name="liveform">
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
- <td align="center" valign="middle"><img name="Bild" src="<tmpl_var url>" border="1" hspace=2 vspace=2></td>
- <td><img src="bilder/spacer.gif" name="switchimage" width="2" height="1"></td>
+ <td align="center" valign="middle"><img name="Bild" src="<tmpl_var url>" border="1" hspace="2" vspace="2" /></td>
+ <td><img src="bilder/spacer.gif" name="switchimage" width="2" height="1" /></td>
<td valign="top">
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td></td>
- <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0"></td>
+ <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0" /></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=power');"><img src="bilder/fern_03.jpg" alt="" height="27" width="68" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=power');"><img src="bilder/fern_03.jpg" alt="" height="27" width="68" border="0" /></a></td>
</tr>
<tr>
<td></td>
- <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0"></td>
+ <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0" /></td>
<td></td>
</tr>
<tr>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=1');"><img src="bilder/fern_05.jpg" alt="" height="28" width="67" border="0"></a></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=2');"><img src="bilder/fern_06.jpg" alt="" height="28" width="66" border="0"></a></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=3');"><img src="bilder/fern_07.jpg" alt="" height="28" width="67" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=1');"><img src="bilder/fern_05.jpg" alt="" height="28" width="67" border="0" /></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=2');"><img src="bilder/fern_06.jpg" alt="" height="28" width="66" border="0" /></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=3');"><img src="bilder/fern_07.jpg" alt="" height="28" width="67" border="0" /></a></td>
</tr>
<tr>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=4');"><img src="bilder/fern_08.jpg" alt="" height="28" width="67" border="0"></a></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=5');"><img src="bilder/fern_09.jpg" alt="" height="28" width="66" border="0"></a></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=6');"><img src="bilder/fern_10.jpg" alt="" height="28" width="67" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=4');"><img src="bilder/fern_08.jpg" alt="" height="28" width="67" border="0" /></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=5');"><img src="bilder/fern_09.jpg" alt="" height="28" width="66" border="0" /></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=6');"><img src="bilder/fern_10.jpg" alt="" height="28" width="67" border="0" /></a></td>
</tr>
<tr>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=7');"><img src="bilder/fern_11.jpg" alt="" height="28" width="67" border="0"></a></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=8');"><img src="bilder/fern_12.jpg" alt="" height="28" width="66" border="0"></a></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=9');"><img src="bilder/fern_13.jpg" alt="" height="28" width="67" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=7');"><img src="bilder/fern_11.jpg" alt="" height="28" width="67" border="0" /></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=8');"><img src="bilder/fern_12.jpg" alt="" height="28" width="66" border="0" /></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=9');"><img src="bilder/fern_13.jpg" alt="" height="28" width="67" border="0" /></a></td>
</tr>
<tr>
<td></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=0');"><img src="bilder/fern_15.jpg" alt="" height="28" width="66" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=0');"><img src="bilder/fern_15.jpg" alt="" height="28" width="66" border="0" /></a></td>
<td></td>
</tr>
<tr>
<td></td>
- <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0"></td>
+ <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0" /></td>
<td></td>
</tr>
<tr>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=menu');"><img src="bilder/fern_18.jpg" alt="" height="27" width="67" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=menu');"><img src="bilder/fern_18.jpg" alt="" height="27" width="67" border="0" /></a></td>
<td></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=back');"><img src="bilder/fern_19.jpg" alt="" height="27" width="67" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=back');"><img src="bilder/fern_19.jpg" alt="" height="27" width="67" border="0" /></a></td>
</tr>
<tr>
- <td colspan="3"><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=red');"><img src="bilder/fern_22.jpg" alt="" height="28" width="50" border="0"></a><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=green');"><img src="bilder/fern_23.jpg" alt="" height="28" width="49" border="0"></a><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=yellow');"><img src="bilder/fern_24.jpg" alt="" height="28" width="51" border="0"></a><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=blue');"><img src="bilder/fern_25.jpg" alt="" height="28" width="50" border="0"></a></td>
+ <td colspan="3"><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=red');"><img src="bilder/fern_22.jpg" alt="" height="28" width="50" border="0" /></a><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=green');"><img src="bilder/fern_23.jpg" alt="" height="28" width="49" border="0" /></a><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=yellow');"><img src="bilder/fern_24.jpg" alt="" height="28" width="51" border="0" /></a><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=blue');"><img src="bilder/fern_25.jpg" alt="" height="28" width="50" border="0" /></a></td>
</tr>
<tr>
<td></td>
- <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0"></td>
+ <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0" /></td>
<td></td>
</tr>
<tr>
<td></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=up');"><img src="bilder/fern_28.jpg" alt="" height="27" width="66" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=up');"><img src="bilder/fern_28.jpg" alt="" height="27" width="66" border="0" /></a></td>
<td></td>
</tr>
<tr>
<td></td>
- <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0"></td>
+ <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0" /></td>
<td></td>
</tr>
<tr>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=left');"><img src="bilder/fern_31.jpg" alt="" height="27" width="67" border="0"></a></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=ok');"><img src="bilder/fern_32.jpg" alt="" height="27" width="66" border="0"></a></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=right');"><img src="bilder/fern_33.jpg" alt="" height="27" width="67" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=left');"><img src="bilder/fern_31.jpg" alt="" height="27" width="67" border="0" /></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=ok');"><img src="bilder/fern_32.jpg" alt="" height="27" width="66" border="0" /></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=right');"><img src="bilder/fern_33.jpg" alt="" height="27" width="67" border="0" /></a></td>
</tr>
<tr>
<td></td>
- <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0"></td>
+ <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0" /></td>
<td></td>
</tr>
<tr>
<td></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=down');"><img src="bilder/fern_36.jpg" alt="" height="27" width="66" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=down');"><img src="bilder/fern_36.jpg" alt="" height="27" width="66" border="0" /></a></td>
<td></td>
</tr>
<tr>
<td></td>
- <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0"></td>
+ <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0" /></td>
<td></td>
</tr>
<tr>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=VolumeMinus');"><img src="bilder/fern_39.jpg" alt="" height="27" width="67" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=VolumeMinus');"><img src="bilder/fern_39.jpg" alt="" height="27" width="67" border="0" /></a></td>
<td></td>
- <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=VolumePlus');"><img src="bilder/fern_40.jpg" alt="" height="27" width="67" border="0"></a></td>
+ <td><a href="javascript:switch_channel('./vdradmin.pl?aktion=rc_hitk&key=VolumePlus');"><img src="bilder/fern_40.jpg" alt="" height="27" width="67" border="0" /></a></td>
</tr>
<tr>
<td></td>
- <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0"></td>
+ <td><img src="bilder/spacer.gif" alt="" height="20" width="50" border="0" /></td>
<td></td>
</tr>
</table>
@@ -176,25 +179,25 @@ select { font-weight: normal; width: 55px; height: 20px; font-size: 9px; font-fa
<tr valign="middle">
<td valign="middle">
<nobr>
- <b><?% msg.tv_interval %?></b>
+ <b><%! Interval: !%></b>
<select name="Seconds" size="1" onChange="v_changeInterval(this.options[this.selectedIndex].value)">
- <option value="0"><?% msg.c_off %?></option>
- <option value="1"> 1 <?% msg.c_sec %?></option>
- <option value="2"> 2 <?% msg.c_sec %?></option>
- <option value="3"> 3 <?% msg.c_sec %?></option>
- <option value="5" selected> 5 <?% msg.c_sec %?></option>
- <option value="10">10 <?% msg.c_sec %?></option>
- <option value="30">30 <?% msg.c_sec %?></option>
- <option value="60">60 <?% msg.c_sec %?></option>
+ <option value="0"><%! off !%></option>
+ <option value="1"> 1 <%! sec. !%></option>
+ <option value="2"> 2 <%! sec. !%></option>
+ <option value="3"> 3 <%! sec. !%></option>
+ <option value="5" selected> 5 <%! sec. !%></option>
+ <option value="10">10 <%! sec. !%></option>
+ <option value="30">30 <%! sec. !%></option>
+ <option value="60">60 <%! sec. !%></option>
</select>
- <input type="button" name="livebild" value='<?% msg.tv_g %?>' title="<?% msg.tv_grab %?>" onClick="WebcamUpdate()">
- &nbsp;&nbsp;<b><?% msg.tv_size %?></b>
+ <input type="button" name="livebild" value='<%! G !%>' title="<%! Grab the picture! !%>" onClick="WebcamUpdate()" />
+ &nbsp;&nbsp;<b><%! Size: !%></b>
<select name="Size" size="1" onChange="v_changeSize(this.options[this.selectedIndex].value)">
<option value="full">1:1</option>
<option value="half" selected>1:2</option>
<option value="quarter">1:4</option>
</select>
- <input type="button" name="livebild" value='<?% msg.tv_g %?>' title="<?% msg.tv_grab %?>" onClick="WebcamUpdate()">
+ <input type="button" name="livebild" value='<%! G !%>' title="<%! Grab the picture! !%>" onClick="WebcamUpdate()" />
</nobr>
</td>
<td colspan="2">&nbsp;</td>
diff --git a/template/default/tv_flash.html b/template/default/tv_flash.html
index 583c6d7..7144413 100644
--- a/template/default/tv_flash.html
+++ b/template/default/tv_flash.html
@@ -1,7 +1,10 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
- <title><?% msg.c_progname %?> - <?% msg.tv_headline %?> (<tmpl_var host>)</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>VDRAdmin - <%! TV !%> (<tmpl_var host>)</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ <link href="style.css" rel="stylesheet" media="screen" type="text/css" />
+ <script type="text/javascript" language="JavaScript1.2" src="library.js"></script>
</head>
<body>
diff --git a/template/i18n.pl b/template/i18n.pl
new file mode 100644
index 0000000..94a1a87
--- /dev/null
+++ b/template/i18n.pl
@@ -0,0 +1,118 @@
+@I18N_Days = (
+ gettext("Sunday"),
+ gettext("Monday"),
+ gettext("Tuesday"),
+ gettext("Wednesday"),
+ gettext("Thursday"),
+ gettext("Friday"),
+ gettext("Saturday")
+);
+
+@I18N_Month = (
+ gettext("January"),
+ gettext("February"),
+ gettext("March"),
+ gettext("April"),
+ gettext("May"),
+ gettext("June"),
+ gettext("July"),
+ gettext("August"),
+ gettext("September"),
+ gettext("October"),
+ gettext("November"),
+ gettext("December")
+);
+
+@LOGINPAGES_DESCRIPTION = (
+ gettext("What's On Now?"),
+ gettext("Playing Today?"),
+ gettext("Timeline"),
+ gettext("Channels"),
+ gettext("Timers"),
+ gettext("Recordings")
+);
+
+%ERROR_MESSAGE = (
+ not_found => gettext("Not found"),
+ notfound_long => gettext("The requested URL was not found on this server!"),
+ notfound_file => gettext("The URL &quot;%s&quot; was not found on this server!"),
+ forbidden => gettext("Forbidden"),
+ forbidden_long => gettext("You don't have permission to access this function!"),
+ forbidden_file => gettext("Access to file &quot;%s&quot; denied!"),
+ cant_open => gettext("Can't open file &quot;%s&quot;!"),
+ connect_failed => gettext("Can't connect to VDR at %s!"),
+ send_command => gettext("Error while sending command to VDR at %s"),
+);
+
+%MESSAGE = (
+ overview => gettext("Schedule"),
+);
+
+%HELP = (
+ timer_list =>
+gettext("<b>Timer</b>
+<p>VDR timer overview.</p>
+<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>
+<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>
+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.
+</p>"),
+
+ timer_new =>
+gettext("<p>No help available for <b>Add Timer:</b> yet. For adding text please contact mail\@andreas.vdr-developer.org.
+</p>"),
+
+ at_timer_list =>
+gettext("<b>Auto Timer:</b><br>
+<p>An overview of all Auto Timers</p>
+<p>Click <i>Yes</i> or <i>No</i> in the <i>Active</i> column to (de-)activate that Auto Timer.</p>
+<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 Auto Timer. If you want to delete multiple Auto Timers all at once, you have to check the boxes (<input type=\"checkbox\" checked>) on the right and finally click <i>Delete selected Auto Timers</i>.</p>"),
+
+ at_timer_new =>
+gettext("<b>Edit Auto Timer:</b><br>
+<p>Auto Timer is a key feature of VDRAdmin. An Auto Timer consists of one or more search terms and some other settings, that are looked for regularly in the Electronic Program Guide (EPG). On match Auto Timer 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>
+<p>Here you can set an Auto Timer. 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>
+<b>Auto Timer Active:</b><br>
+<p><i>Yes</i> activates and <i>No</i> deactivates this Auto Timer. Please note that VDR timers already added by VDRAdmin are not deleted if you deactivate this Auto Timer.</p>
+<b>Search Items:</b><br>
+<p>Choosing the right search items decides whether only the wanted broadcast or broadcast having similar names or nothing gets recorded.</p>
+<p>Case doesn't matter, &quot;X-Files&quot; matches anything &quot;x-files&quot; will match. You can set multiple search items by separating them with spaces. Only broadcasts will match if they contain all items.</p>
+<p>You'd better only use letters and numbers for search items, as EPGs often miss colons, brackets and other characters.</p>
+<p>Experts can also use regular expressions, but you have get needed information from the VDRAdmin sources (undocumented feature).</p>"),
+
+ rec_list =>
+gettext("<p>No help available for <b>Recordings:</b>. For adding text please contact mail\@andreas.vdr-developer.org.
+</p>"),
+
+ conf_list =>
+gettext("<b>Configuration:</b>
+<p>Here you can change general settings and base settings for timers, auto timers, channel selection and streaming parameters.
+</p>
+<b>General Settings:</b>
+<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, auto timers, the channel selection and streaming parameters can be configured here.
+</p>
+<b>Identification:</b>
+<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 is accessible over the Internet.
+</p>
+<b>Time Line:</b>
+<p>Here you can see a time line of the channels, where you can select the displayed time span.<br>
+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.
+</p>
+<b>Settings for auto timers:</b>
+<p>Clicking on |<input type=\"radio\"> <i>Yes</i> | or |<input type=\"radio\" checked> <i>No</i> | activates or deactivates the auto timer function. You can also specify the interval, the the epg data is checked for updating the auto timers.<br>
+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>
+The Priority indicates, what timer is prefered in case of a conflict.<br>
+<b>Timer settings:</b>
+<p>These are the same settings as for the auto timers, but apply to the manually created timers.
+</p>
+
+<b>Streaming settings:</b>
+<p>Specify port, bandwith and VDR's recording directory here.
+</p>
+
+<b>Channel Selection:</b>
+<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>
+</p>
+"),
+
+ ENOHELPMSG => gettext("No help available yet. For adding or changing text please contact mail\@andreas.vdr-developer.org.")
+);
diff --git a/vdradmind.pl b/vdradmind.pl
index 62bf7db..3c8de6e 100755
--- a/vdradmind.pl
+++ b/vdradmind.pl
@@ -23,7 +23,7 @@
# 08.10.2001
#
#
-# VDRAdmin-AM by Andreas Mair <mail@andreas.vdr-developer.org>
+# VDRAdmin-AM 2005 by Andreas Mair <mail@andreas.vdr-developer.org>
#
my $BASENAME;
@@ -44,17 +44,17 @@ use IO::Socket;
use HTML::Template::Expr();
use Template;
use Time::Local qw(timelocal);
-use POSIX ":sys_wait_h", qw(strftime mktime);
+use POSIX ":sys_wait_h", qw(strftime mktime locale_h);
use MIME::Base64();
-use File::Temp();
+use File::Temp qw(tempfile);
use Shell qw(ps);
+use Locale::gettext;
$SIG{CHLD} = sub { wait };
use strict;
#use warnings;
-#my $SEARCH_FILES_IN_SYSTEM = (-d '/usr/share/vdradmin/lib' ? 1 : 0); # for distribution
my $SEARCH_FILES_IN_SYSTEM = 0;
sub true () { 1 };
@@ -70,64 +70,80 @@ sub LOG_FATALERROR () { 64 };
sub LOG_DEBUG () { 32768 };
my %CONFIG;
+$CONFIG{LOGLEVEL} = 81; # 32799
+$CONFIG{LOGGING} = 0;
+$CONFIG{LOGFILE} = "vdradmind.log";
+$CONFIG{MOD_GZIP} = 0;
+$CONFIG{CACHE_TIMEOUT} = 60;
+$CONFIG{CACHE_LASTUPDATE} = 0;
+#
$CONFIG{VDR_HOST} = "localhost";
$CONFIG{VDR_PORT} = 2001;
+$CONFIG{SERVERHOST} = "0.0.0.0";
+$CONFIG{SERVERPORT} = 8001;
+$CONFIG{LOCAL_NET} = "0.0.0.0/32";
+$CONFIG{VIDEODIR} = "/video";
+$CONFIG{VDRCONFDIR} = "$CONFIG{VIDEODIR}";
+#
+$CONFIG{TEMPLATE} = "default";
+$CONFIG{SKIN} = "bilder";
+$CONFIG{LOGINPAGE} = 0;
+$CONFIG{RECORDINGS} = 1;
+#
$CONFIG{USERNAME} = "linvdr";
$CONFIG{PASSWORD} = "linvdr";
$CONFIG{GUEST_ACCOUNT} = 0;
-$CONFIG{TEMPLATE} = "default";
-$CONFIG{LANGUAGE} = "English";
-$CONFIG{LOGLEVEL} = 81; # 32799
-$CONFIG{CACHE_TIMEOUT} = 60;
-$CONFIG{LOCAL_NET} = "0.0.0.0/32";
-$CONFIG{CACHE_LASTUPDATE} = 0;
+$CONFIG{USERNAME_GUEST} = "guest";
+$CONFIG{PASSWORD_GUEST} = "guest";
+#
+$CONFIG{ZEITRAHMEN} = 1;
+$CONFIG{TIMES} = "18:00, 20:00, 21:00, 22:00";
+#
$CONFIG{AT_FUNC} = 1;
$CONFIG{AT_TIMEOUT} = 120;
$CONFIG{AT_LIFETIME} = 99;
$CONFIG{AT_PRIORITY} = 99;
+$CONFIG{AT_MARGIN_BEGIN} = 10;
+$CONFIG{AT_MARGIN_END} = 10;
+#
$CONFIG{TM_LIFETIME} = 99;
$CONFIG{TM_PRIORITY} = 99;
$CONFIG{TM_MARGIN_BEGIN} = 10;
$CONFIG{TM_MARGIN_END} = 10;
+#
$CONFIG{ST_FUNC} = 1;
+$CONFIG{ST_REC_ON} = 0;
+$CONFIG{ST_LIVE_ON} = 1;
$CONFIG{ST_URL} = "";
-$CONFIG{LOGINPAGE} = 0;
-$CONFIG{LOGGING} = 0;
-$CONFIG{MOD_GZIP} = 0;
+$CONFIG{ST_STREAMDEV_PORT}= 3000;
+$CONFIG{ST_VIDEODIR} = "";
#
-$CONFIG{LOGFILE} = "vdradmind.log";
-$CONFIG{SERVERHOST} = "0.0.0.0";
-$CONFIG{SERVERPORT} = 8001;
-$CONFIG{RECORDINGS} = 1;
-$CONFIG{ZEITRAHMEN} = 1;
-$CONFIG{TIMES} = "18:00, 20:00, 21:00, 22:00";
$CONFIG{EPG_DIRECT} = 0;
-$CONFIG{EPG_FILENAME} = "/video/epg.data";
+$CONFIG{EPG_FILENAME} = "$CONFIG{VIDEODIR}/epg.data";
$CONFIG{EPG_PRUNE} = 0;
-$CONFIG{SKIN} = "bilder";
+#
$CONFIG{AT_SENDMAIL} = 0; # set to 1 and set the all "MAIL_" things if you want email notification on new autotimers.
$CONFIG{MAIL_PROG} = "./sendEmail";
$CONFIG{MAIL_FROMDOMAIN} = "fromaddress.tld";
$CONFIG{MAIL_TO} = "your\@email.address";
$CONFIG{MAIL_SERVER} = "your.email.server";
-my $VERSION = "0.97-am3.1";
+my $VERSION = "0.97-am3.2";
my $SERVERVERSION = "vdradmind/$VERSION";
-my $VIDEODIR = "/video";
+my $LINVDR = isLinVDR();
-my($TEMPLATEDIR, $I18NDIR, $CONFFILE, $LOGFILE, $PIDFILE, $AT_FILENAME, $DONE_FILENAME, $BL_FILENAME);
+my($TEMPLATEDIR, $CONFFILE, $LOGFILE, $PIDFILE, $AT_FILENAME, $DONE_FILENAME, $BL_FILENAME);
if(!$SEARCH_FILES_IN_SYSTEM) {
$TEMPLATEDIR = "${BASENAME}template";
- $I18NDIR = "${BASENAME}i18n";
$CONFFILE = "${BASENAME}vdradmind.conf";
$LOGFILE = "${BASENAME}$CONFIG{LOGFILE}";
$PIDFILE = "${BASENAME}vdradmind.pid";
$AT_FILENAME = "${BASENAME}vdradmind.at";
$DONE_FILENAME = "${BASENAME}vdradmind.done";
$BL_FILENAME = "${BASENAME}vdradmind.bl";
+ bindtextdomain("vdradmin", "${BASENAME}locale");
} else {
$TEMPLATEDIR = "/usr/share/vdradmin/template";
- $I18NDIR = "/usr/share/vdradmin/i18n";
$CONFFILE = "/etc/vdradmin/vdradmind.conf";
$LOGFILE = "/var/log/$CONFIG{LOGFILE}";
$PIDFILE = "/var/run/vdradmind.pid";
@@ -137,6 +153,8 @@ if(!$SEARCH_FILES_IN_SYSTEM) {
}
my $DONE = &DONE_Read || {};
+textdomain("vdradmin");
+
#use Template::Constants qw( :debug );
# IMHO a better Template Modul ;-)
# some useful options (see below for full list)
@@ -181,6 +199,10 @@ $SIG{HUP} = \&HupSignal;
$SIG{PIPE} = 'IGNORE';
#
+my(@I18N_Days, @I18N_Month, %ERROR_MESSAGE, %MESSAGE, @LOGINPAGES_DESCRIPTION, %HELP);
+LoadTranslation();
+
+#
my $DAEMON = 1;
for(my $i = 0; $i < scalar(@ARGV); $i++) {
$_ = $ARGV[$i];
@@ -189,25 +211,27 @@ for(my $i = 0; $i < scalar(@ARGV); $i++) {
print("A perl client for the Linux Video Disk Recorder.\n\n");
print(" -nf --nofork don't fork\n");
print(" -c --config run configuration dialog\n");
- print(" -k --kill kill a forked vdradmind\n");
+ print(" -k --kill kill a forked vdradmind.pl\n");
print(" -h --help this message\n");
print("\nReport bugs to <mail\@andreas.vdr-developer.org>.\n");
exit(0);
}
if(/--nofork|-nf/) { $DAEMON = 0; last; }
if(/--config|-c/) {
- $CONFIG{VDR_HOST} = Question("What's your VDR hostname (e.g video.intra.net)?", $CONFIG{VDR_HOST});
- $CONFIG{VDR_PORT} = Question("On which port does VDR listen to SVDRP queries?", $CONFIG{VDR_PORT});
- $CONFIG{SERVERHOST} = Question("On which address should vdradmin listen (0.0.0.0 for any)?", $CONFIG{SERVERHOST});
- $CONFIG{SERVERPORT} = Question("On which port should vdradmin listen?", $CONFIG{SERVERPORT});
- $CONFIG{USERNAME} = Question("Username?", $CONFIG{USERNAME});
- $CONFIG{PASSWORD} = Question("Password?", $CONFIG{PASSWORD});
- $CONFIG{EPG_FILENAME} = Question("Where is your epg.data?", $CONFIG{EPG_FILENAME});
- $CONFIG{EPG_DIRECT} = ($CONFIG{EPG_FILENAME} and -e $CONFIG{EPG_FILENAME} ? 1 : 0);
+ $CONFIG{VDR_HOST} = Question(gettext("What's your VDR hostname (e.g video.intra.net)?"), $CONFIG{VDR_HOST});
+ $CONFIG{VDR_PORT} = Question(gettext("On which port does VDR listen to SVDRP queries?"), $CONFIG{VDR_PORT});
+ $CONFIG{SERVERHOST} = Question(gettext("On which address should VDRAdmin listen (0.0.0.0 for any)?"), $CONFIG{SERVERHOST});
+ $CONFIG{SERVERPORT} = Question(gettext("On which port should VDRAdmin listen?"), $CONFIG{SERVERPORT});
+ $CONFIG{USERNAME} = Question(gettext("Username?"), $CONFIG{USERNAME});
+ $CONFIG{PASSWORD} = Question(gettext("Password?"), $CONFIG{PASSWORD});
+ $CONFIG{VIDEODIR} = Question(gettext("Where are your recordings stored?"), $CONFIG{VIDEODIR});
+ $CONFIG{VDRCONFDIR} = Question(gettext("Where are your VDR's configuration files located?"), $CONFIG{VDRCONFDIR});
+# $CONFIG{EPG_FILENAME} = Question(gettext("Where is your epg.data?"), $CONFIG{EPG_FILENAME});
+# $CONFIG{EPG_DIRECT} = ($CONFIG{EPG_FILENAME} and -e $CONFIG{EPG_FILENAME} ? 1 : 0);
WriteConfig();
- print("Config file written successfully.\n");
+ print(gettext("Config file written successfully.") . "\n");
exit(0);
}
if(/--kill|-k/) {
@@ -233,10 +257,7 @@ for(my $i = 0; $i < scalar(@ARGV); $i++) {
ReadConfig();
if ($CONFIG{EPG_DIRECT}) {
print("!!! YOU REQUESTED EPG_DIRECT !!!\nBut there seems to be a bug in it, so that timers with certain summaries don't get added.\nIf you have problems and don't want to debug them, please set EPG_DIRECT to 0.\n\n");
-}
-if ($CONFIG{LANGUAGE} eq "Español") {
- # i18n/Español has been renamed to i18n/Spanish
- $CONFIG{LANGUAGE} = "Spanish";
+# $CONFIG{EPG_DIRECT} = 0;
}
if($CONFIG{MOD_GZIP}) {
@@ -246,23 +267,27 @@ if($CONFIG{MOD_GZIP}) {
if(-e "$PIDFILE") {
my $pid = getPID($PIDFILE);
- print "There's already a copy of this program running! (pid: $pid)\n";
+ print("There's already a copy of this program running! (pid: $pid)\n");
$_ = ps("ax");
if (/\n($pid) [!\n]*( |\/)$EXENAME/) {
- print "If you feel this is an error, remove $PIDFILE!\n";
+ print("If you feel this is an error, remove $PIDFILE!\n");
exit(1);
}
- print "The pid $pid is not a running $EXENAME process, so I'll start anyway.\n"
+ print("The pid $pid is not a running $EXENAME process, so I'll start anyway.\n");
}
if($DAEMON) {
my($pid) = fork;
if($pid != 0) {
- print("vdradmind.pl $VERSION started with pid $pid.\n");
+ printf(gettext("vdradmind.pl %s started with pid %d.") . "\n", $VERSION, $pid);
writePID($pid);
exit(0);
}
}
+$SIG{__DIE__} = \&Shutdown;
+
+my @reccmds;
+loadRecCmds();
my($Socket) = IO::Socket::INET->new(
Proto => 'tcp',
@@ -275,10 +300,6 @@ die("can't start server: $!\n") if (!$Socket);
$Socket->timeout($CONFIG{AT_TIMEOUT} * 60) if($CONFIG{AT_FUNC});
$CONFIG{CACHE_LASTUPDATE} = 0;
-#
-my(@I18N_Days, @I18N_Month, %ERRORMESSAGE, %COMMONMESSAGE, @LOGINPAGES_DESCRIPTION, %HELP, %MESSAGES);
-LoadTranslation();
-
##
# Mainloop
##
@@ -312,7 +333,7 @@ while(true) {
if($raw_request =~ /^GET (\/[\w\.\/-\:]*)([\?[\w=&\.\+\%-\:\!]*]*)[\#\d ]+HTTP\/1.\d$/) {
($Request, $Query) = ($1, $2 ? substr($2, 1, length($2)) : undef);
} else {
- Error("404", $MESSAGES{err_notfound}, $MESSAGES{err_notfound_long});
+ Error("404", $ERROR_MESSAGE{notfound}, $ERROR_MESSAGE{notfound_long});
close($Client);
next;
}
@@ -320,6 +341,7 @@ while(true) {
# parse header
my($username, $password, $http_useragent);
for my $line (@Request) {
+# print(">" . $line . "\n");
if($line =~ /Referer: (.*)/) {
$Referer = $1;
}
@@ -369,7 +391,7 @@ while(true) {
eval("(\$http_status, \$bytes_transfered) = $aktion();");
} else {
# XXX redirect to no access template
- Error("403", $MESSAGES{err_forbidden}, $MESSAGES{err_forbidden_long});
+ Error("403", $ERROR_MESSAGE{forbidden}, $ERROR_MESSAGE{forbidden_long});
next;
}
} elsif($Request eq "/") {
@@ -419,7 +441,7 @@ sub ReadFile {
my $file = shift;
return if(!$file);
- open(I18N, $file) || HTMLError(sprintf($MESSAGES{err_cant_open}, $file));
+ open(I18N, $file) || HTMLError(sprintf($ERROR_MESSAGE{cant_open}, $file));
my $buf = join("", <I18N>);
close(I18N);
return($buf);
@@ -452,7 +474,6 @@ sub HTMLError {
my $error = join("", @_);
my $template = HTML::Template->new(filename => "$TEMPLATEDIR/$CONFIG{TEMPLATE}/error.html");
$template->param(
- title => $MESSAGES{err_error},
error => $error
);
$CONFIG{CACHE_LASTUPDATE} = 0;
@@ -837,10 +858,7 @@ sub headerForward {
sub headerNoAuth {
my $template = TemplateNew("noauth.html");
- my $vars = {
- msg => \%MESSAGES
- };
- $template->param($vars);
+ my $vars;
my $data;
my $out = $template->output;
$Xtemplate->process(\$out, $vars, \$data);
@@ -890,10 +908,10 @@ sub SendFile {
if(!$mimehash{$2}) { die("can't find mime-type \'$2\'\n"); }
return(header("200", $mimehash{$2}, $buf, 1));
} else {
- Error("403", $MESSAGES{err_forbidden}, sprintf($MESSAGES{err_forbidden_file}, $File));
+ Error("403", $ERROR_MESSAGE{forbidden}, sprintf($ERROR_MESSAGE{forbidden_file}, $File));
}
} else {
- Error("404", $MESSAGES{err_notfound}, sprintf($MESSAGES{err_notfound_file}, $File));
+ Error("404", $ERROR_MESSAGE{notfound}, sprintf($ERROR_MESSAGE{notfound_file}, $File));
}
}
@@ -904,11 +922,13 @@ sub AT_Read {
my(@at);
if(-e $AT_FILENAME) {
open(AT_FILE, $AT_FILENAME) ||
- HTMLError(sprintf($MESSAGES{err_cant_open}, $AT_FILENAME));
+ HTMLError(sprintf($ERROR_MESSAGE{cant_open}, $AT_FILENAME));
while(<AT_FILE>) {
chomp;
next if($_ eq "");
- my($active, $pattern, $section, $start, $stop, $episode, $prio, $lft, $channel, $directory, $done) = split(/\:/, $_);
+ my($active, $pattern, $section, $start, $stop, $episode, $prio, $lft, $channel, $directory, $done, $weekday) = split(/\:/, $_);
+ $pattern =~ s/\|/\:/g;
+ $directory =~ s/\|/\:/g;
my($usechannel) = ($channel =~ /^\d+$/) ? $channel : get_vdrid_from_channelid($channel);
push(@at, {
active => $active,
@@ -921,7 +941,14 @@ sub AT_Read {
lft => $lft,
channel => $usechannel,
directory => $directory,
- done => $done
+ done => $done,
+ # Be compatible with older formats, so search on weekdays default to yes
+ (weekdays =>
+ {map {$_->[0] => defined $weekday ? substr($weekday,$_->[1],1) : 1}
+ (['wday_mon',0],['wday_tue',1],['wday_wed',2],['wday_thu',3], ['wday_fri',4],['wday_sat',5],['wday_sun',6])
+ }
+ )
+
});
}
close(AT_FILE);
@@ -932,12 +959,12 @@ sub AT_Read {
sub AT_Write {
my @at = @_;
open(AT_FILE, ">" . $AT_FILENAME) ||
- HTMLError(sprintf($MESSAGES{err_cant_open}, $AT_FILENAME));
- for(@at) {
+ HTMLError(sprintf($ERROR_MESSAGE{cant_open}, $AT_FILENAME));
+ foreach my $auto_timer (@at) {
my $temp;
for my $item (qw(active pattern section start stop episode prio lft channel directory done)) {
- $_->{$item} =~ s/\:/_/g;
- my $tempitem = $_->{$item};
+ $auto_timer->{$item} =~ s/\:/\|/g;
+ my $tempitem = $auto_timer->{$item};
if ($item eq 'channel') {
my $channelnumber = get_channelid_from_vdrid($tempitem);
if ($channelnumber) {
@@ -950,6 +977,12 @@ sub AT_Write {
$temp .= ":" . $tempitem;
}
}
+ # Create weekday string, starting with monday, 1=yes=search this day, e.g. 0011001
+ my $search_weekday='';
+ map {$search_weekday.=$auto_timer->{weekdays}->{$_}} (qw (wday_mon wday_tue wday_wed wday_thu wday_fri wday_sat wday_sun));
+ $temp.=":$search_weekday";
+
+ # Finally write the auto timer entry
print AT_FILE $temp, "\n";
}
close(AT_FILE);
@@ -957,7 +990,7 @@ sub AT_Write {
sub DONE_Write {
my $done = shift || return;
- open(DONE_FILE, ">" . $DONE_FILENAME) || HTMLError(sprintf($MESSAGES{err_cant_open}, $DONE_FILENAME));
+ open(DONE_FILE, ">" . $DONE_FILENAME) || HTMLError(sprintf($ERROR_MESSAGE{cant_open}, $DONE_FILENAME));
foreach my $n (sort keys %$done) {
printf DONE_FILE "%s::%d::%s\n", $n, $done->{$n}, scalar localtime($done->{$n});
};
@@ -967,7 +1000,7 @@ sub DONE_Write {
sub DONE_Read {
my $done;
if(-e $DONE_FILENAME) {
- open(DONE_FILE, $DONE_FILENAME) || HTMLError(sprintf($MESSAGES{err_cant_open}, $AT_FILENAME));
+ open(DONE_FILE, $DONE_FILENAME) || HTMLError(sprintf($ERROR_MESSAGE{cant_open}, $AT_FILENAME));
while(<DONE_FILE>) {
chomp;
next if($_ eq "");
@@ -982,7 +1015,7 @@ sub DONE_Read {
sub BlackList_Read {
my %blacklist;
if(-e $BL_FILENAME) {
- open(BL_FILE, $BL_FILENAME) || HTMLError(sprintf($MESSAGES{err_cant_open}, $BL_FILENAME));
+ open(BL_FILE, $BL_FILENAME) || HTMLError(sprintf($ERROR_MESSAGE{cant_open}, $BL_FILENAME));
while(<BL_FILE>) {
chomp;
next if($_ eq "");
@@ -1141,7 +1174,7 @@ sub AutoTimer {
}
} else {
# Normal event not spreading over Midnight
- Log(LOG_DEBUG, "937: Event does not includes Midnight");
+ Log(LOG_DEBUG, "937: Event does not include Midnight");
if(my_strftime("%H%M", $event->{start}) < $at->{start}) {
if(my_strftime("%H%M", $event->{start}) > $at->{stop}) {
# The event starts before AT start and after AT stop
@@ -1190,6 +1223,14 @@ sub AutoTimer {
}
}
+ # Check if we should schedule any timers on this weekday
+ my %weekdays_map = (1=>'wday_mon', 2=>'wday_tue', 3=>'wday_wed', 4=>'wday_thu',
+ 5=>'wday_fri', 6=>'wday_sat', 7=>'wday_sun');
+ unless ($at->{weekdays}->{$weekdays_map{my_strftime ("%u",$event->{start})}}) {
+ Log(LOG_DEBUG, "Event not valid for this weekday");
+ next;
+ }
+
Log(LOG_AT, sprintf("Auto Timer: Found \"%s\"", $at->{pattern}));
#########################################################################################
@@ -1297,7 +1338,7 @@ sub AutoTimer {
sub AT_ProgTimer {
my($active, $event_id, $channel, $start, $stop, $title, $summary, $prio, $lft) = @_;
- $title =~ s/\:/ /g;
+ $title =~ s/\|/\:/g;
$start -= ($CONFIG{TM_MARGIN_BEGIN} * 60);
$stop += ($CONFIG{TM_MARGIN_END} * 60);
@@ -1511,7 +1552,7 @@ sub ParseTimer {
$event_id = UnpackEvent_id($tmstatus);
# direct recording (menu, red)
- $active = 1 if($active == 3);
+ $active = 1 if($active == 3 || $active == 8);
# replace "|" by ":" in timer's title (man vdr.5)
$title =~ s/\|/\:/g;
@@ -1586,7 +1627,8 @@ sub ParseTimer {
summary => $summary,
collision => 0,
critical => 0,
- first => $first
+ first => $first,
+ proglink => sprintf("%s?aktion=prog_list&vdr_id=%s", $MyURL, $vdr_id)
});
$first = 0;
}
@@ -1610,7 +1652,8 @@ sub ParseTimer {
summary => $summary,
collision => 0,
critical => 0,
- first => -1
+ first => -1,
+ proglink => sprintf("%s?aktion=prog_list&vdr_id=%s", $MyURL, $vdr_id)
});
}
@@ -1638,12 +1681,13 @@ sub DisplayMessage {
sub LoadTranslation {
undef @I18N_Days;
undef @I18N_Month;
- undef %MESSAGES;
- undef %ERRORMESSAGE;
- undef %COMMONMESSAGE;
+ undef %ERROR_MESSAGE;
+ undef %MESSAGE;
undef %HELP;
undef @LOGINPAGES_DESCRIPTION;
- include("$I18NDIR/$CONFIG{LANGUAGE}/$I18NFILE");
+
+ setlocale(LC_MESSAGES, "");
+ include("$TEMPLATEDIR/$I18NFILE");
}
sub HelpURL {
@@ -1774,6 +1818,12 @@ sub Log {
sub TemplateNew {
my $file = shift;
+
+ my $translation_filter = sub {
+ my $text_ref = shift;
+ $$text_ref =~ s/<%! (.*?) !%>/gettext($1)/ge;
+ };
+
$CONFIG{TEMPLATE} = "default" if(!$CONFIG{TEMPLATE});
$file = "$TEMPLATEDIR/$CONFIG{TEMPLATE}/$file";
if(!-e $file) {
@@ -1783,6 +1833,7 @@ sub TemplateNew {
die_on_bad_params => 0,
loop_context_vars => 1,
#DEBUG => DEBUG_ALL,
+ filter => $translation_filter,
filename => $file
);
return $template;
@@ -1971,8 +2022,7 @@ sub show_index {
my $vars = {
loginpage => "$MyURL?aktion=$page",
version => $VERSION,
- host => $CONFIG{VDR_HOST},
- msg => \%MESSAGES
+ host => $CONFIG{VDR_HOST}
};
$template->param($vars);
my $output;
@@ -1984,7 +2034,7 @@ sub show_index {
sub show_navi {
my $template = TemplateNew("left.html");
my $vars = {
- msg => \%MESSAGES
+ linvdr => $LINVDR
};
$template->param($vars);
my $output;
@@ -2086,8 +2136,7 @@ sub prog_detail {
start => $start,
stop => $stop,
text => $displaytext ? $displaytext : undef,
- date => $date,
- msg => \%MESSAGES
+ date => $date
};
$template->param($vars);
my $output;
@@ -2148,9 +2197,10 @@ sub prog_list {
# new day
push(@show, { endd => 1 }) if(scalar(@show) > 0);
push(@show, {
- title => $event->{channel_name} . " | " .
- FullDay(my_strftime("%w", $event->{start})) . ", " .
- my_strftime("%d.%m.%Y", $event->{start}),
+ title => $event->{channel_name} . " | " . my_strftime("%A, %x", $event->{start}),
+# title => $event->{channel_name} . " | " .
+# FullDay(my_strftime("%w", $event->{start})) . ", " .
+# my_strftime("%d.%m.%Y", $event->{start}),
newd => 1,
next_channel => $next_channel ? "$MyURL?aktion=prog_list&vdr_id=$next_channel" : undef,
prev_channel => $prev_channel ? "$MyURL?aktion=prog_list&vdr_id=$prev_channel" : undef,
@@ -2179,14 +2229,14 @@ sub prog_list {
#
my($template) = TemplateNew("prog_list.html");
my $vars = {
- url => $MyURL,
- loop => \@show,
- chanloop => \@channel,
- progname => GetChannelDescByNumber($vdr_id),
- switchurl => "$MyURL?aktion=prog_switch&channel=" . $vdr_id,
- streamurl => "$MyURL?aktion=live_stream&channel=" . $vdr_id,
- toolbarurl => "$MyURL?aktion=toolbar",
- msg => \%MESSAGES
+ url => $MyURL,
+ loop => \@show,
+ chanloop => \@channel,
+ progname => GetChannelDescByNumber($vdr_id),
+ switchurl => "$MyURL?aktion=prog_switch&channel=" . $vdr_id,
+ streamurl => "$MyURL?aktion=live_stream&channel=" . $vdr_id,
+ stream_live_on => $CONFIG{ST_FUNC} && $CONFIG{ST_LIVE_ON},
+ toolbarurl => "$MyURL?aktion=toolbar"
};
$template->param($vars);
my $output;
@@ -2258,10 +2308,12 @@ sub prog_list2 {
if($dayflag == 1) {
push(@show, {
- title => $event->{channel_name} . " | " .
- FullDay(my_strftime("%w", $event->{start})) . ", " .
- my_strftime("%d.%m.%Y", $event->{start}),
- newd => 1,
+ title => $event->{channel_name} . " | " . my_strftime("%A, %x", $event->{start}),
+# title => $event->{channel_name} . " | " .
+# FullDay(my_strftime("%w", $event->{start})) . ", " .
+# my_strftime("%d.%m.%Y", $event->{start}),
+ newd => 1,
+ streamurl => "$MyURL?aktion=live_stream&channel=" . $event->{vdr_id},
undef,
undef,
});
@@ -2292,13 +2344,13 @@ sub prog_list2 {
#
my($template) = TemplateNew("prog_list2.html");
my $vars = {
- url => $MyURL,
- loop => \@show,
- chanloop => \@channel,
- progname => GetChannelDescByNumber($vdr_id),
- switchurl => "$MyURL?aktion=prog_switch&channel=" . $vdr_id,
- toolbarurl => "$MyURL?aktion=toolbar",
- msg => \%MESSAGES
+ url => $MyURL,
+ loop => \@show,
+ chanloop => \@channel,
+ progname => GetChannelDescByNumber($vdr_id),
+ switchurl => "$MyURL?aktion=prog_switch&channel=" . $vdr_id,
+ stream_live_on => $CONFIG{ST_FUNC} && $CONFIG{ST_LIVE_ON},
+ toolbarurl => "$MyURL?aktion=toolbar"
};
$template->param($vars);
my $output;
@@ -2344,7 +2396,7 @@ sub timer_list {
$timer->{delurl} = $MyURL . "?aktion=timer_delete&timer_id=" . $timer->{id},
$timer->{modurl} = $MyURL . "?aktion=timer_new_form&timer_id=" . $timer->{id},
$timer->{toggleurl} = sprintf("%s?aktion=timer_toggle&active=%s&id=%s", $MyURL, ($timer->{active} & 1) ? 0 : 1, $timer->{id}),
- $timer->{dor} = my_strftime("%d.%m", $timer->{startsse});
+ $timer->{dor} = my_strftime("%a %d.%m", $timer->{startsse});
$TagAnfang=my_mktime(0,0,my_strftime("%d", $timer->{start}),my_strftime("%m", $timer->{start}),my_strftime("%Y", $timer->{start}));
$TagEnde=my_mktime(0,0,my_strftime("%d", $timer->{stop}),my_strftime("%m", $timer->{stop}),my_strftime("%Y", $timer->{stop}));
@@ -2568,8 +2620,7 @@ sub timer_list {
url => $MyURL,
help_url => HelpURL("timer_list"),
current => $current,
- title => $title,
- msg => \%MESSAGES
+ title => $title
};
$template->param($vars);
@@ -2665,8 +2716,7 @@ sub timer_new_form {
channels => \@channels,
newtimer => $timer_id ? 0 : 1,
referer => Encode_Referer($ref),
- help_url => HelpURL("timer_new"),
- msg => \%MESSAGES,
+ help_url => HelpURL("timer_new")
};
my $template = TemplateNew("timer_new.html");
@@ -2845,9 +2895,9 @@ sub rec_stream {
}
$title=$newtitle;
$title =~ s/~/\//g;
- @files= `find $VIDEODIR/ -regex "$VIDEODIR/$title\_*/....-$month-$day\\.$hour.$minute\\...\\...\\.rec/...\\.vdr" | sort -r`;
+ @files= `find $CONFIG{VIDEODIR}/ -regex "$CONFIG{VIDEODIR}/$title\_*/....-$month-$day\\.$hour.$minute\\...\\...\\.rec/...\\.vdr" | sort -r`;
foreach (@files) {
- $_ =~ s/$VIDEODIR//;
+ $_ =~ s/$CONFIG{VIDEODIR}/$CONFIG{ST_VIDEODIR}/;
$data= $CONFIG{ST_URL}."$_\n$data";
}
}
@@ -2905,6 +2955,7 @@ sub at_timer_list {
$_->{prio} = $_->{prio} ? $_->{prio} : $CONFIG{AT_PRIORITY};
$_->{lft} = $_->{lft} ? $_->{lft} : $CONFIG{AT_LIFETIME};
$_->{id} = $id;
+ $_->{proglink} = sprintf("%s?aktion=prog_list&vdr_id=%s", $MyURL, $_->{channel});
$_->{channel} = GetChannelDescByNumber($_->{channel});
$_->{sortbyactive} = 1 if($sortby eq "active");
$_->{sortbychannel} = 1 if($sortby eq "channel");
@@ -2968,8 +3019,7 @@ sub at_timer_list {
#naturl => $MyURL . "?aktion=at_timer_new&active=1",
url => $MyURL,
force_update_url => "$MyURL?aktion=force_update",
- help_url => HelpURL("at_timer_list"),
- msg => \%MESSAGES
+ help_url => HelpURL("at_timer_list")
};
$template->param($vars);
my $output;
@@ -3032,8 +3082,8 @@ sub at_timer_edit {
description => ($at[$id-1]->{section} & 4) ? 1 : 0,
directory => $at[$id-1]->{directory},
newtimer => 0,
- help_url => HelpURL("at_timer_new"),
- msg => \%MESSAGES
+ (map {$_=>$at[$id-1]->{weekdays}->{$_}} qw (wday_mon wday_tue wday_wed wday_thu wday_fri wday_sat wday_sun)),
+ help_url => HelpURL("at_timer_new")
};
$template->param($vars);
@@ -3050,12 +3100,12 @@ sub at_timer_new {
active => $q->param("active"),
done => $q->param("done"),
title => 1,
+ wday_mon => 1, wday_tue=>1, wday_wed=>1, wday_thu=>1, wday_fri=>1, wday_sat=>1, wday_sun=>1,
channels => \@CHAN,
prio => $CONFIG{AT_PRIORITY},
lft => $CONFIG{AT_LIFETIME},
newtimer => 1,
- help_url => HelpURL("at_timer_new"),
- msg => \%MESSAGES
+ help_url => HelpURL("at_timer_new")
};
$template->param($vars);
my $output;
@@ -3067,6 +3117,15 @@ sub at_timer_new {
sub at_timer_save {
my $id = $q->param("id");
+ my $start;
+ my $stop;
+ if (length($q->param("starth")) > 0 || length($q->param("startm")) > 0) {
+ $start = sprintf("%02s%02s", $q->param("starth"), $q->param("startm"));
+ }
+ if (length($q->param("stoph")) > 0 || length($q->param("stopm")) > 0) {
+ $stop = sprintf("%02s%02s", $q->param("stoph"), $q->param("stopm"));
+ }
+
if($q->param("save")) {
if(!$id) {
my @at = AT_Read();
@@ -3080,12 +3139,13 @@ sub at_timer_save {
done => $q->param("done"),
pattern => $q->param("pattern"),
section => $section,
- start => $q->param("starth") . $q->param("startm"),
- stop => $q->param("stoph") . $q->param("stopm"),
+ start => $start,
+ stop => $stop,
prio => $q->param("prio"),
lft => $q->param("lft"),
channel => $q->param("channel"),
- directory => $q->param("directory")
+ directory => $q->param("directory"),
+ weekdays => {map {$_=>$q->param($_)?$q->param($_):0} (qw (wday_mon wday_tue wday_wed wday_thu wday_fri wday_sat wday_sun))}
});
AT_Write(@at);
} else {
@@ -3106,12 +3166,13 @@ sub at_timer_save {
done => $q->param("done"),
pattern => $q->param("pattern"),
section => $section,
- start => $q->param("starth") . $q->param("startm"),
- stop => $q->param("stoph") . $q->param("stopm"),
+ start => $start,
+ stop => $stop,
prio => $q->param("prio"),
lft => $q->param("lft"),
channel => $q->param("channel"),
- directory => $q->param("directory")
+ directory => $q->param("directory"),
+ weekdays => {map {$_=>$q->param($_)?$q->param($_):0} (qw (wday_mon wday_tue wday_wed wday_thu wday_fri wday_sat wday_sun))}
});
}
}
@@ -3218,12 +3279,27 @@ sub prog_timeline {
my(@show, @shows, @temp);
my $shows;
- my @epgChannels = split(/\,/, $CONFIG{CHANNELS_WANTED});
+ my @epgChannels;
+ for my $channel (@CHAN) {
+ # if its wished, display only wanted channels
+ if($CONFIG{CHANNELS_WANTED_TIMELINE}) {
+ my $found = 0;
+ for my $n (split(",", $CONFIG{CHANNELS_WANTED})) {
+ ($found = 1) if($n eq $channel->{vdr_id});
+ }
+ next if(!$found);
+ }
+
+ # skip channels without EPG data
+ if(ChannelHasEPG($channel->{vdr_id})) {
+ push(@epgChannels, $channel->{vdr_id});
+ }
+ }
+
@epgChannels = keys(%EPG)
unless scalar @epgChannels;
foreach(@epgChannels) { # Sender durchgehen
- next unless(ChannelHasEPG($_));
foreach my $event (sort {$a->{start} <=> $b->{start} } @{$EPG{$_}}) { # Events durchgehen
next if($event->{stop} < $event_time or $event->{start} > $event_time_to );
@@ -3267,8 +3343,7 @@ sub prog_timeline {
my_strftime("%Y", time)),
nowurl => $MyURL . "?aktion=prog_timeline",
url => $MyURL,
- config => \%CONFIG,
- msg => \%MESSAGES
+ config => \%CONFIG
};
my $template = TemplateNew("prog_timeline.html");
@@ -3365,25 +3440,28 @@ sub prog_summary {
$displaysubtitle =~ s/\|/<br>\n/g;
push(@show, {
- date => my_strftime("%d.%m.%y", $event->{start}),
- longdate => sprintf("%s., %s. %s %s",
- substr(FullDay(my_strftime("%w", $event->{start}), $event->{start}), 0, 2),
- my_strftime("%d", $event->{start}),
- FullMonth(my_strftime("%m", $event->{start})),
- my_strftime("%Y", $event->{start})),
- start => my_strftime("%H:%M", $event->{start}),
- stop => my_strftime("%H:%M", $event->{stop}),
- title => $displaytitle,
- subtitle => length($displaysubtitle) > 30 ? substr($displaysubtitle, 0, 30) . "..." : $displaysubtitle,
- progname => $event->{channel_name},
- summary => length($displaytext) > 120 ? substr($displaytext, 0, 120) . "..." : $displaytext,
- vdr_id => $event->{vdr_id},
- proglink => sprintf("%s?aktion=prog_list&vdr_id=%s", $MyURL, $event->{vdr_id}),
- switchurl=> sprintf("%s?aktion=prog_switch&channel=%s", $MyURL, $event->{vdr_id}),
- streamurl=> sprintf("%s?aktion=live_stream&channel=%s", $MyURL, $event->{vdr_id}),
- infurl => $event->{summary} ? sprintf("%s?aktion=prog_detail&epg_id=%s&vdr_id=%s", $MyURL, $event->{event_id}, $event->{vdr_id}) : undef,
- recurl => sprintf("%s?aktion=timer_new_form&epg_id=%s&vdr_id=%s", $MyURL, $event->{event_id}, $event->{vdr_id}),
- anchor => $event->{event_id}
+# date => my_strftime("%x", $event->{start}),
+# longdate => my_strftime("%a, %x", $event->{start}),
+ date => my_strftime("%d.%m.%y", $event->{start}),
+ longdate => sprintf("%s., %s. %s %s",
+ substr(FullDay(my_strftime("%w", $event->{start}), $event->{start}), 0, 2),
+ my_strftime("%d", $event->{start}),
+ FullMonth(my_strftime("%m", $event->{start})),
+ my_strftime("%Y", $event->{start})),
+ start => my_strftime("%H:%M", $event->{start}),
+ stop => my_strftime("%H:%M", $event->{stop}),
+ title => $displaytitle,
+ subtitle => length($displaysubtitle) > 30 ? substr($displaysubtitle, 0, 30) . "..." : $displaysubtitle,
+ progname => $event->{channel_name},
+ summary => length($displaytext) > 120 ? substr($displaytext, 0, 120) . "..." : $displaytext,
+ vdr_id => $event->{vdr_id},
+ proglink => sprintf("%s?aktion=prog_list&vdr_id=%s", $MyURL, $event->{vdr_id}),
+ switchurl => sprintf("%s?aktion=prog_switch&channel=%s", $MyURL, $event->{vdr_id}),
+ streamurl => sprintf("%s?aktion=live_stream&channel=%s", $MyURL, $event->{vdr_id}),
+ stream_live_on => $CONFIG{ST_FUNC} && $CONFIG{ST_LIVE_ON},
+ infurl => $event->{summary} ? sprintf("%s?aktion=prog_detail&epg_id=%s&vdr_id=%s", $MyURL, $event->{event_id}, $event->{vdr_id}) : undef,
+ recurl => sprintf("%s?aktion=timer_new_form&epg_id=%s&vdr_id=%s", $MyURL, $event->{event_id}, $event->{vdr_id}),
+ anchor => $event->{event_id}
});
last if(!$search);
}
@@ -3412,8 +3490,7 @@ sub prog_summary {
rows => \@shows,
now => strftime("%H:%M", localtime($event_time)),
nowurl => $MyURL . "?aktion=prog_summary",
- url => $MyURL,
- msg => \%MESSAGES
+ url => $MyURL
};
$template->param($vars);
my $output;
@@ -3430,7 +3507,7 @@ sub rec_list {
my(@all_recordings, @recordings);
#
- my $ffserver = `ps -ef | grep ffserver | wc -l`;
+ #my $ffserver = `ps -ef | grep ffserver | wc -l`;
my $desc;
if(!defined($q->param("desc"))) {
$desc = 1;
@@ -3534,7 +3611,8 @@ sub rec_list {
delurl => $MyURL . "?aktion=rec_delete&id=$id",
editurl => $MyURL . "?aktion=rec_edit&id=$id",
infurl => $MyURL . "?aktion=rec_detail&id=$id",
- streamurl => $MyURL . "?aktion=rec_stream&id=$id"
+ streamurl => $MyURL . "?aktion=rec_stream&id=$id",
+ stream_rec_on => $CONFIG{ST_FUNC} && $CONFIG{ST_REC_ON}
});
}
@@ -3569,7 +3647,7 @@ sub rec_list {
last if($fuse > 100);
}
push(@path, {
- name => $COMMONMESSAGE{OVERVIEW},
+ name => $MESSAGE{overview},
url => ($parent ne 0) ?
sprintf("%s?aktion=rec_list&parent=%s", $MyURL, 0) : "" });
@path = reverse(@path);
@@ -3630,7 +3708,8 @@ sub rec_list {
path => \@path,
url => $MyURL,
help_url => HelpURL("rec_list"),
- msg => \%MESSAGES
+ reccmds => \@reccmds,
+ stream_rec_on => $CONFIG{ST_FUNC} && $CONFIG{ST_REC_ON}
};
$template->param($vars);
my $output;
@@ -3675,8 +3754,7 @@ sub rec_detail {
my $template = TemplateNew("prog_detail.html");
my $vars = {
text => $text ? $text : "",
- title => $title,
- msg => \%MESSAGES
+ title => $title
};
$template->param($vars);
my $output;
@@ -3686,18 +3764,68 @@ sub rec_detail {
}
sub rec_delete {
- my($id) = $q->param('id');
- if($id) {
- SendCMD("delr $id");
- } else {
- for($q->param) {
- if(/xxxx_(.*)/) {
- SendCMD("delr $1");
- }
- }
- }
- CloseSocket();
- return(headerForward(RedirectToReferer("$MyURL?aktion=rec_list")));
+ my($id) = $q->param('id');
+
+ if ($q->param("rec_delete")) {
+ if ($id) {
+ SendCMD("delr $id");
+ } else {
+ for ($q->param) {
+ if (/xxxx_(.*)/) {
+ SendCMD("delr $1");
+ }
+ }
+ }
+ CloseSocket();
+ } elsif ($q->param("rec_runcmd")) {
+ if ($id) {
+ recRunCmd($q->param("rec_cmd"), $id);
+ } else {
+ for ($q->param) {
+ if (/xxxx_(.*)/) {
+ recRunCmd($q->param("rec_cmd"), $1);
+ }
+ }
+ }
+ }
+ return(headerForward(RedirectToReferer("$MyURL?aktion=rec_list")));
+}
+
+sub recRunCmd {
+ my ($cmdID, $id) = @_;
+ my $cmd = ${reccmds}[$cmdID]{cmd};
+ my ($rec_id, $date, $time, $title);
+ my ($day, $month, $hour, $minute, $newtitle, $c, $folder);
+
+ for(SendCMD("lstr")) {
+ ($rec_id, $date, $time, $title) = split(/ +/, $_, 4);
+ last if($rec_id == $id);
+ }
+
+ $time = substr($time, 0, 5); # needed for wareagel-patch
+ if ($rec_id == $id) {
+ chomp($title);
+ ($day, $month)= split( /\./, $date);
+ ($hour, $minute)= split( /:/, $time);
+ # escape characters
+ $title =~ s/~/\//g;
+ $title =~ s/\ /\_/g;
+ for ( my $i=0 ; $i < length($title); $i++) {
+ $c = substr($title,$i,1);
+ unless ($c =~ /[öäüßÖÄÜA-Za-z0123456789_!@\$%&\(\)\+,.\-;=~]/) {
+ $newtitle.= sprintf( "#%02X", ord( $c ));
+ } else {
+ $newtitle.= $c;
+ }
+ }
+ $title=$newtitle;
+ $title =~ s/~/\//g;
+ $folder = `find $CONFIG{VIDEODIR}/$title -regex "$CONFIG{VIDEODIR}/$title/....-$month-$day\\.$hour.$minute\\...\\...\\.rec"`;
+
+ if ($folder) {
+ `$cmd $folder`;
+ }
+ }
}
sub rec_edit {
@@ -3715,8 +3843,7 @@ sub rec_edit {
my $vars = {
url => $MyURL,
title => $title,
- id => $id,
- msg => \%MESSAGES
+ id => $id
};
$template->param($vars);
my $output;
@@ -3753,8 +3880,6 @@ sub conf_list {
$CONFIG{$_} = $q->param($_);
}
}
- #
- LoadTranslation();
}
sub WriteConfig {
@@ -3807,20 +3932,6 @@ sub conf_list {
});
}
}
- #
- my @lang;
- for my $dir (<$I18NDIR/*>) {
- next if(!-d $dir);
- $dir =~ s/.*\///g;
- my $found = 0;
- for(@lang) { ($found = 1) if($1 && ($_->{name} eq $1)); }
- if(!$found) {
- push(@lang, {
- name => $dir,
- aklang => ($CONFIG{LANGUAGE} eq $dir) ? 1 : 0,
- });
- }
- }
#
my (@all_channels, @selected_channels);
@@ -3857,15 +3968,13 @@ sub conf_list {
my $template = TemplateNew("config.html");
my $vars = {
%CONFIG,
- LANGLIST => \@lang,
TEMPLATELIST => \@template,
ALL_CHANNELS => \@all_channels,
SELECTED_CHANNELS => \@selected_channels,
LOGINPAGES => \@loginpages,
SKINLIST => \@skinlist,
url => $MyURL,
- help_url => HelpURL("conf_list"),
- msg => \%MESSAGES
+ help_url => HelpURL("conf_list")
};
$template->param($vars);
my $output;
@@ -3881,8 +3990,7 @@ sub rc_show {
my $template = TemplateNew("rc.html");
my $vars = {
url => sprintf("%s?aktion=grab_picture", $MyURL),
- host => $CONFIG{VDR_HOST},
- msg => \%MESSAGES
+ host => $CONFIG{VDR_HOST}
};
$template->param($vars);
my $output;
@@ -3908,8 +4016,7 @@ sub tv_show {
my $template = TemplateNew("tv.html");
my $vars = {
url => sprintf("%s?aktion=grab_picture", $MyURL),
- host => $CONFIG{VDR_HOST},
- msg => \%MESSAGES
+ host => $CONFIG{VDR_HOST}
};
$template->param($vars);
my $output;
@@ -3928,8 +4035,7 @@ sub show_help {
}
my $template = TemplateNew("prog_detail.html"); # XXX eigenes Template?
my $vars = {
- text => $text,
- msg => \%MESSAGES
+ text => $text
};
$template->param($vars);
my $output;
@@ -3977,6 +4083,35 @@ sub force_update {
RedirectToReferer("$MyURL?aktion=prog_summary");
}
+sub isLinVDR {
+ my $file = "/etc/linvdr-release";
+ my $content;
+ if(-e $file) {
+ open(FILE, $file);
+ $content = <FILE>;
+ close(FILE);
+ }
+ chomp($content);
+ return($content);
+}
+
+sub loadRecCmds {
+ my $id = 0;
+ if(-e "$CONFIG{VDRCONFDIR}/reccmds.conf" and my $text = open(FH, "$CONFIG{VDRCONFDIR}/reccmds.conf")) {
+ while(<FH>) {
+ chomp;
+ s/#.*//;
+ s/^\s+//;
+ s/\s+$//;
+ next unless length;
+ my ($title, $cmd) = split(":", $_);
+ push(@reccmds, {title => $title, cmd => $cmd, id => $id});
+ $id = $id + 1;
+ }
+ close(FH);
+ }
+}
+
#############################################################################
# Authentication
#############################################################################
@@ -4035,7 +4170,7 @@ sub myconnect {
my $this = shift;
if ($epg && $CONFIG{EPG_DIRECT}) {
main::Log(LOG_VDRCOM, "LOG_VDRCOM: open EPG $CONFIG{EPG_FILENAME}");
- open($EPGSOCKET,$CONFIG{EPG_FILENAME}) || main::HTMLError(sprintf($MESSAGES{err_cant_open}, $CONFIG{EPG_FILENAME}));
+ open($EPGSOCKET,$CONFIG{EPG_FILENAME}) || main::HTMLError(sprintf($ERROR_MESSAGE{cant_open}, $CONFIG{EPG_FILENAME}));
return;
}
main::Log(LOG_VDRCOM, "LOG_VDRCOM: connect to $CONFIG{VDR_HOST}:$CONFIG{VDR_PORT}");
@@ -4044,7 +4179,7 @@ sub myconnect {
PeerAddr => $CONFIG{VDR_HOST},
PeerPort => $CONFIG{VDR_PORT},
Proto => 'tcp'
- ) || main::HTMLError(sprintf($ERRORMESSAGE{CONNECT_FAILED}, $CONFIG{VDR_HOST}));
+ ) || main::HTMLError(sprintf($ERROR_MESSAGE{connect_failed}, $CONFIG{VDR_HOST}));
my $line;
$line = <$SOCKET>;
@@ -4091,7 +4226,7 @@ sub command {
if($SOCKET) {
my $result = send($SOCKET, $cmd, 0);
if($result != length($cmd)) {
- main::HTMLError($ERRORMESSAGE{SEND_COMMAND}, $CONFIG{VDR_HOST});
+ main::HTMLError($ERROR_MESSAGE{send_command}, $CONFIG{VDR_HOST});
} else {
$query = true;
}