diff -ruN vdr-1.5.10/CONTRIBUTORS vdr-1.5.11/CONTRIBUTORS
--- vdr-1.5.10/CONTRIBUTORS	2007-10-14 15:11:23.000000000 +0200
+++ vdr-1.5.11/CONTRIBUTORS	2007-11-04 12:24:07.000000000 +0100
@@ -222,6 +222,7 @@
  for reporting a double fdopen() in cPipe::Open()
  for suggesting to increase the APIVERSION to allow plugins that relied on the
  cStatus::MsgSetVolume() bug to react properly
+ for improving the 'i18n' target in the Makefile to avoid unnecessary work
 
 Ulrich Röder <roeder@efr-net.de>
  for pointing out that there are channels that have a symbol rate higher than 27500
@@ -587,6 +588,8 @@
  is a recording going on or about to start, and the user insists in shutting down now
  for suggesting to make the channel entry timeout configurable
  for a patch that was used to implement the SVDRP command REMO
+ for reporting a possible crash in decoding filename characters in case there are
+ not two hex digits after the '#'
 
 Jeremy Hall <jhall@UU.NET>
  for fixing an incomplete initialization of the filter parameters in eit.c
@@ -743,6 +746,7 @@
 Clemens Kirchgatterer <clemens@thf.ath.cx>
  for suggesting to change source directory name for plugins from 'SRC' to 'src'
  for reporting a problem with user defined CFLAGS in libdtv/libvdr/Makefile
+ for suggesting an error log message if no fonts are found
 
 Emil Naepflein <Emil.Naepflein@philosys.de>
  for suggesting to take an active SVDRP connection into account when doing shutdown or
@@ -889,6 +893,7 @@
  for a patch that was used for implementing setting the user id
  for pointing out that the canonical spelling of codesets is with '-'
  for a hint on using _nl_msg_cat_cntr
+ for adding some missing 'const' keywords
 
 Thomas Koch <tom@harhar.net>
  for his support in keeping the Premiere World channels up to date in 'channels.conf'
@@ -1028,6 +1033,7 @@
  the subtitles plugin
  for implementing cDevice::CloseFilter()
  for some fixes to PLUGINS.html
+ for fixing handling CONFDIR
 
 Ralf Klueber <ralf.klueber@vodafone.com>
  for reporting a bug in cutting a recording if there is only a single editing mark
@@ -1430,6 +1436,7 @@
  for implementing handling DVB subtitles
  for fixing the description of DeviceSetAvailableTrack() and cReceiver(), and adding
  an example ~cMyReceiver() in PLUGINS.html (thanks to Marco Schlüßler).
+ for fixing checking compatibility mode for old subtitles plugin
 
 Jürgen Schmitz <j.schmitz@web.de>
  for reporting a bug in displaying the current channel when switching via the SVDRP
@@ -1535,6 +1542,8 @@
  for adding a missing error report to cCuttingThread::Action()
  for reporting a problem in handling reallocated memory in cCharSetConv::Convert()
  for fixing a new[]/delete mismatch in cMenuEditStrItem::LeaveEditMode()
+ for improving shutdown handling
+ for making housekeeping wait for a while after a replay has ended
 
 Sven Kreiensen <svenk@kammer.uni-hannover.de>
  for his help in keeping 'channels.conf.terr' up to date
@@ -1709,6 +1718,8 @@
  for suggesting to add the "...or (at your option) any later version" phrase to the
  license information of all plugins, and also the 'newplugin' script
  for fixing the link to the GPL2 at http://www.gnu.org in vdr.c
+ for making the "Play" key start replay of the selected recording in the Recordings
+ menu
 
 Steffen Beyer <cpunk@reactor.de>
  for fixing setting the colored button help after deleting a recording in case the next
@@ -1788,6 +1799,10 @@
  for removing a duplicate ',' from the ca_ES.po file
  for suggesting to add the 'ß' character to the "allowed characters" in the
  de_DE.po file
+ for adding more special characters to the list of allowed characters when entering
+ strings
+ for suggesting to make the 'Allowed' parameter in cMenuEditStrItem() NULL by default,
+ which results in using tr(FileNameChars)
 
 David Woodhouse <dwmw2@infradead.org>
  for his help in replacing the get/put_unaligned() macros from asm/unaligned.h with
@@ -2210,3 +2225,15 @@
 Torsten Kunkel <vdrml@tkunkel.de>
  for pointing out that it was not obvious how to initiate internationalization
  support for a plugin
+
+Michael Nival <mnival@club-internet.fr>
+ for translating OSD texts to the French language
+
+Yarema Aka Knedlyk <yupadmin@gmail.com>
+ for translating OSD texts to the Ukrainian language
+
+Lauri Nurmi <lanurmi@iki.fi>
+ for adding a missing '.' to the date returned by DayDateTime()
+
+Mario Ivankovits <mario@ops.co.at>
+ for fixing a crash if no fonts are found
diff -ruN vdr-1.5.10/HISTORY vdr-1.5.11/HISTORY
--- vdr-1.5.10/HISTORY	2007-10-14 15:11:00.000000000 +0200
+++ vdr-1.5.11/HISTORY	2007-11-04 12:22:45.000000000 +0100
@@ -5487,3 +5487,34 @@
 - Added cDevice::CloseFilter() to allow a device to have complete control over
   both opening and closing section filters (thanks to Rolf Ahrenberg).
 - Some fixes to PLUGINS.html (thanks to Rolf Ahrenberg).
+
+2007-11-04: Version 1.5.11
+
+- Fixed checking compatibility mode for old subtitles plugin (thanks to Marco
+  Schlüßler).
+- Updated the French OSD texts (thanks to Michael Nival).
+- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
+- Updated the Italian OSD texts (thanks to Diego Pierotto).
+- The "Play" key now starts replay of the selected recording in the Recordings
+  menu (thanks to Ville Skyttä);
+- Improved shutdown handling (thanks to Udo Richter).
+- Housekeeping now waits for a while after a replay has ended (thanks to Udo Richter).
+- Added more special characters to the list of allowed characters when entering
+  strings (thanks to Thomas Günther).
+- Added Ukrainian language texts (thanks to Yarema Aka Knedlyk).
+- Added a workaround for recovering from wrongfully interpreted "pre 1.3.19 PS1 packets".
+- Fixed a possible blocking in replay when subtitles are active.
+- Fixed displaying subtitles in live mode.
+- Fixed handling CONFDIR (thanks to Rolf Ahrenberg).
+- Added some missing 'const' keywords (thanks to Sascha Volkenandt).
+- The 'Allowed' parameter in cMenuEditStrItem() is now NULL by default, which results
+  in using tr(FileNameChars) (suggested by Thomas Günther).
+- Added a missing '.' to the date returned by DayDateTime() (thanks to Lauri Nurmi).
+- Improved the 'i18n' target in the Makefile to avoid unnecessary work (thanks to
+  Stefan Huelswitt). The 'newplugin' and 'i18n-to-gettext.pl' scripts have been
+  changed accordingly. Plugin authors may want to adjust the 'i18n' target
+  of their Makefiles.
+- Fixed a crash if no fonts are found (thanks to Mario Ivankovits and Clemens
+  Kirchgatterer).
+- Fixed decoding filename characters in case there are not two hex digits after
+  the '#' (reported by Helmut Auer).
diff -ruN vdr-1.5.10/Makefile vdr-1.5.11/Makefile
--- vdr-1.5.10/Makefile	2007-10-13 11:26:40.000000000 +0200
+++ vdr-1.5.11/Makefile	2007-11-04 11:15:59.000000000 +0100
@@ -4,7 +4,7 @@
 # See the main source file 'vdr.c' for copyright information and
 # how to reach the author.
 #
-# $Id: Makefile 1.108 2007/10/13 09:26:40 kls Exp $
+# $Id: Makefile 1.110 2007/11/04 10:15:59 kls Exp $
 
 .DELETE_ON_ERROR:
 
@@ -27,7 +27,7 @@
 PLUGINLIBDIR= $(PLUGINDIR)/lib
 
 VIDEODIR = /video
-CONFDIR ?= $(VIDEODIR)
+CONFDIR  = $(VIDEODIR)
 
 DOXYGEN  = /usr/bin/doxygen
 DOXYFILE = Doxyfile
@@ -106,25 +106,25 @@
 PODIR     = po
 LOCALEDIR = locale
 I18Npo    = $(wildcard $(PODIR)/*.po)
-I18Nmo    = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
-I18Ndirs  = $(notdir $(foreach file, $(I18Npo), $(basename $(file))))
+I18Nmsgs  = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr.mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
 I18Npot   = $(PODIR)/vdr.pot
 
 %.mo: %.po
 	msgfmt -c -o $@ $<
 
 $(I18Npot): $(wildcard *.c)
-	xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='<vdr-bugs@cadsoft.de>' -o $@ $(wildcard *.c)
+	xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='<vdr-bugs@cadsoft.de>' -o $@ $^
 
-$(I18Npo): $(I18Npot)
+%.po: $(I18Npot)
 	msgmerge -U --no-wrap --no-location --backup=none -q $@ $<
+	@touch $@
 
-i18n: $(I18Nmo)
-	@mkdir -p $(LOCALEDIR)
-	for i in $(I18Ndirs); do\
-	    mkdir -p $(LOCALEDIR)/$$i/LC_MESSAGES;\
-	    cp $(PODIR)/$$i.mo $(LOCALEDIR)/$$i/LC_MESSAGES/vdr.mo;\
-	    done
+$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr.mo: $(PODIR)/%.mo
+	@mkdir -p $(dir $@)
+	cp $< $@
+
+.PHONY: i18n
+i18n: $(I18Nmsgs)
 
 install-i18n:
 	@mkdir -p $(DESTDIR)$(LOCDIR)
diff -ruN vdr-1.5.10/PLUGINS/src/hello/Makefile vdr-1.5.11/PLUGINS/src/hello/Makefile
--- vdr-1.5.10/PLUGINS/src/hello/Makefile	2007-10-14 11:23:04.000000000 +0200
+++ vdr-1.5.11/PLUGINS/src/hello/Makefile	2007-11-04 11:52:15.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # Makefile for a Video Disk Recorder plugin
 #
-# $Id: Makefile 1.20 2007/10/14 09:23:04 kls Exp $
+# $Id: Makefile 1.21 2007/11/04 10:52:15 kls Exp $
 
 # The official name of this plugin.
 # This name will be used in the '-P...' option of VDR to load the plugin.
@@ -72,25 +72,25 @@
 PODIR     = po
 LOCALEDIR = $(VDRDIR)/locale
 I18Npo    = $(wildcard $(PODIR)/*.po)
-I18Nmo    = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
-I18Ndirs  = $(notdir $(foreach file, $(I18Npo), $(basename $(file))))
+I18Nmsgs  = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
 I18Npot   = $(PODIR)/$(PLUGIN).pot
 
 %.mo: %.po
 	msgfmt -c -o $@ $<
 
 $(I18Npot): $(wildcard *.c)
-	xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='<vdr-bugs@cadsoft.de>' -o $@ $(wildcard *.c)
+	xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='<vdr-bugs@cadsoft.de>' -o $@ $^
 
-$(I18Npo): $(I18Npot)
+%.po: $(I18Npot)
 	msgmerge -U --no-wrap --no-location --backup=none -q $@ $<
+	@touch $@
 
-i18n: $(I18Npot) $(I18Nmo)
-	@mkdir -p $(LOCALEDIR)
-	for i in $(I18Ndirs); do\
-	    mkdir -p $(LOCALEDIR)/$$i/LC_MESSAGES;\
-	    cp $(PODIR)/$$i.mo $(LOCALEDIR)/$$i/LC_MESSAGES/vdr-$(PLUGIN).mo;\
-	    done
+$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
+	@mkdir -p $(dir $@)
+	cp $< $@
+
+.PHONY: i18n
+i18n: $(I18Nmsgs)
 
 ### Targets:
 
diff -ruN vdr-1.5.10/PLUGINS/src/skincurses/Makefile vdr-1.5.11/PLUGINS/src/skincurses/Makefile
--- vdr-1.5.10/PLUGINS/src/skincurses/Makefile	2007-10-14 11:23:25.000000000 +0200
+++ vdr-1.5.11/PLUGINS/src/skincurses/Makefile	2007-11-04 11:52:13.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # Makefile for a Video Disk Recorder plugin
 #
-# $Id: Makefile 1.13 2007/10/14 09:23:25 kls Exp $
+# $Id: Makefile 1.14 2007/11/04 10:52:13 kls Exp $
 
 # The official name of this plugin.
 # This name will be used in the '-P...' option of VDR to load the plugin.
@@ -70,25 +70,25 @@
 PODIR     = po
 LOCALEDIR = $(VDRDIR)/locale
 I18Npo    = $(wildcard $(PODIR)/*.po)
-I18Nmo    = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
-I18Ndirs  = $(notdir $(foreach file, $(I18Npo), $(basename $(file))))
+I18Nmsgs  = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
 I18Npot   = $(PODIR)/$(PLUGIN).pot
 
 %.mo: %.po
 	msgfmt -c -o $@ $<
 
 $(I18Npot): $(wildcard *.c)
-	xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='<vdr-bugs@cadsoft.de>' -o $@ $(wildcard *.c)
+	xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='<vdr-bugs@cadsoft.de>' -o $@ $^
 
-$(I18Npo): $(I18Npot)
+%.po: $(I18Npot)
 	msgmerge -U --no-wrap --no-location --backup=none -q $@ $<
+	@touch $@
 
-i18n: $(I18Npot) $(I18Nmo)
-	@mkdir -p $(LOCALEDIR)
-	for i in $(I18Ndirs); do\
-	    mkdir -p $(LOCALEDIR)/$$i/LC_MESSAGES;\
-	    cp $(PODIR)/$$i.mo $(LOCALEDIR)/$$i/LC_MESSAGES/vdr-$(PLUGIN).mo;\
-	    done
+$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
+	@mkdir -p $(dir $@)
+	cp $< $@
+
+.PHONY: i18n
+i18n: $(I18Nmsgs)
 
 ### Targets:
 
diff -ruN vdr-1.5.10/config.h vdr-1.5.11/config.h
--- vdr-1.5.10/config.h	2007-10-06 16:27:18.000000000 +0200
+++ vdr-1.5.11/config.h	2007-10-17 20:34:17.000000000 +0200
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: config.h 1.299 2007/10/06 14:27:18 kls Exp $
+ * $Id: config.h 1.300 2007/10/17 18:34:17 kls Exp $
  */
 
 #ifndef __CONFIG_H
@@ -22,13 +22,13 @@
 
 // VDR's own version number:
 
-#define VDRVERSION  "1.5.10"
-#define VDRVERSNUM   10510  // Version * 10000 + Major * 100 + Minor
+#define VDRVERSION  "1.5.11"
+#define VDRVERSNUM   10511  // Version * 10000 + Major * 100 + Minor
 
 // The plugin API's version number:
 
-#define APIVERSION  "1.5.10"
-#define APIVERSNUM   10510  // Version * 10000 + Major * 100 + Minor
+#define APIVERSION  "1.5.11"
+#define APIVERSNUM   10511  // Version * 10000 + Major * 100 + Minor
 
 // When loading plugins, VDR searches them by their APIVERSION, which
 // may be smaller than VDRVERSION in case there have been no changes to
diff -ruN vdr-1.5.10/device.c vdr-1.5.11/device.c
--- vdr-1.5.10/device.c	2007-10-14 15:09:19.000000000 +0200
+++ vdr-1.5.11/device.c	2007-11-03 14:30:09.000000000 +0100
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: device.c 1.145 2007/10/14 13:09:19 kls Exp $
+ * $Id: device.c 1.147 2007/11/03 13:30:09 kls Exp $
  */
 
 #include "device.h"
@@ -209,6 +209,9 @@
 // The default priority for non-primary devices:
 #define DEFAULTPRIORITY  -1
 
+// The minimum number of unknown PS1 packets to consider this a "pre 1.3.19 private stream":
+#define MIN_PRE_1_3_19_PRIVATESTREAM 10
+
 int cDevice::numDevices = 0;
 int cDevice::useDevice = 0;
 int cDevice::nextCardIndex = 0;
@@ -931,7 +934,7 @@
         }
      else
         memset(availableTracks, 0, sizeof(availableTracks));
-     pre_1_3_19_PrivateStream = false;
+     pre_1_3_19_PrivateStream = 0;
      SetAudioChannel(0); // fall back to stereo
      currentAudioTrackMissingCount = 0;
      currentAudioTrack = ttNone;
@@ -1236,7 +1239,7 @@
                int PayloadOffset = Data[8] + 9;
 
                // Compatibility mode for old subtitles plugin:
-               if ((Data[PayloadOffset - 3] & 0x81) == 1 && Data[PayloadOffset - 2] == 0x81)
+               if ((Data[7] & 0x01) && (Data[PayloadOffset - 3] & 0x81) == 0x01 && Data[PayloadOffset - 2] == 0x81)
                   PayloadOffset--;
 
                uchar SubStreamId = Data[PayloadOffset];
@@ -1245,11 +1248,13 @@
 
                // Compatibility mode for old VDR recordings, where 0xBD was only AC3:
 pre_1_3_19_PrivateStreamDeteced:
-               if (pre_1_3_19_PrivateStream) {
+               if (pre_1_3_19_PrivateStream > MIN_PRE_1_3_19_PRIVATESTREAM) {
                   SubStreamId = c;
                   SubStreamType = 0x80;
                   SubStreamIndex = 0;
                   }
+               else if (pre_1_3_19_PrivateStream)
+                  pre_1_3_19_PrivateStream--; // every known PS1 packet counts down towards 0 to recover from glitches...
                switch (SubStreamType) {
                  case 0x20: // SPU
                  case 0x30: // SPU
@@ -1277,11 +1282,14 @@
                       break;
                  default:
                       // Compatibility mode for old VDR recordings, where 0xBD was only AC3:
-                      if (!pre_1_3_19_PrivateStream) {
-                         dsyslog("switching to pre 1.3.19 Dolby Digital compatibility mode");
-                         ClrAvailableTracks();
-                         pre_1_3_19_PrivateStream = true;
-                         goto pre_1_3_19_PrivateStreamDeteced;
+                      if (pre_1_3_19_PrivateStream <= MIN_PRE_1_3_19_PRIVATESTREAM) {
+                         dsyslog("unknown PS1 packet, substream id = %02X (counter is at %d)", SubStreamId, pre_1_3_19_PrivateStream);
+                         pre_1_3_19_PrivateStream += 2; // ...and every unknown PS1 packet counts up (the very first one counts twice, but that's ok)
+                         if (pre_1_3_19_PrivateStream > MIN_PRE_1_3_19_PRIVATESTREAM) {
+                            dsyslog("switching to pre 1.3.19 Dolby Digital compatibility mode - substream id = %02X", SubStreamId);
+                            ClrAvailableTracks();
+                            goto pre_1_3_19_PrivateStreamDeteced;
+                            }
                          }
                  }
                }
diff -ruN vdr-1.5.10/device.h vdr-1.5.11/device.h
--- vdr-1.5.10/device.h	2007-10-14 15:09:12.000000000 +0200
+++ vdr-1.5.11/device.h	2007-10-21 11:21:52.000000000 +0200
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: device.h 1.85 2007/10/14 13:09:12 kls Exp $
+ * $Id: device.h 1.86 2007/10/21 09:21:52 kls Exp $
  */
 
 #ifndef __DEVICE_H
@@ -377,7 +377,7 @@
   cMutex mutexCurrentSubtitleTrack;
   int currentAudioTrackMissingCount;
   bool autoSelectPreferredSubtitleLanguage;
-  bool pre_1_3_19_PrivateStream;
+  int pre_1_3_19_PrivateStream;
 protected:
   virtual void SetAudioTrackDevice(eTrackType Type);
        ///< Sets the current audio track to the given value.
diff -ruN vdr-1.5.10/dvbsubtitle.c vdr-1.5.11/dvbsubtitle.c
--- vdr-1.5.10/dvbsubtitle.c	2007-10-14 16:02:35.000000000 +0200
+++ vdr-1.5.11/dvbsubtitle.c	2007-11-03 15:36:07.000000000 +0100
@@ -7,7 +7,7 @@
  * Original author: Marco Schlüßler <marco@lordzodiac.de>
  * With some input from the "subtitle plugin" by Pekka Virtanen <pekka.virtanen@sci.fi>
  *
- * $Id: dvbsubtitle.c 1.1 2007/10/14 14:02:35 kls Exp $
+ * $Id: dvbsubtitle.c 1.2 2007/11/03 14:36:07 kls Exp $
  */
 
 #include "dvbsubtitle.h"
@@ -692,7 +692,7 @@
      bool ResetSubtitleAssembler = Data[PayloadOffset + 3] == 0x00;
 
      // Compatibility mode for old subtitles plugin:
-     if ((Data[PayloadOffset - 3] & 0x81) == 1 && Data[PayloadOffset - 2] == 0x81) {
+     if ((Data[7] & 0x01) && (Data[PayloadOffset - 3] & 0x81) == 0x01 && Data[PayloadOffset - 2] == 0x81) {
         PayloadOffset--;
         SubstreamHeaderLength = 1;
         ResetSubtitleAssembler = Data[8] >= 5;
@@ -730,8 +730,8 @@
                     break;
                  }
            }
-        return Length;
         }
+     return Length;
      }
   return 0;
 }
@@ -767,7 +767,7 @@
               //TODO sync on PTS? are there actually devices that don't deliver an STC?
               }
            Delta /= 90; // STC and PTS are in 1/90000s
-           if (abs(Delta) <= MAXDELTA) {
+           if (Delta <= MAXDELTA) {
               if (Delta <= 0) {
                  dbgconverter("Got %d bitmaps, showing #%d\n", bitmaps->Count(), sb->Index() + 1);
                  if (AssertOsd()) {
@@ -777,8 +777,8 @@
                     }
                  bitmaps->Del(sb);
                  }
-              else
-                 WaitMs = min(max(Delta, int64_t(0)), int64_t(1000));
+              else if (Delta < WaitMs)
+                 WaitMs = Delta;
               }
            else
               bitmaps->Del(sb);
@@ -830,6 +830,8 @@
         pages->Add(page);
         dbgpages("Create SubtitlePage %d  (total pages = %d)\n", pageId, pages->Count());
         }
+     if (Pts)
+        page->SetPts(Pts);
      switch (segmentType) {
        case PAGE_COMPOSITION_SEGMENT: {
             dbgsegments("PAGE_COMPOSITION_SEGMENT\n");
@@ -837,8 +839,6 @@
             if (pageVersion == page->Version())
                break; // no update
             page->SetVersion(pageVersion);
-            if (Pts)
-               page->SetPts(Pts);
             page->SetTimeout(Data[6]);
             page->SetState((Data[6 + 1] & 0x0C) >> 2);
             page->regions.Clear();
@@ -968,6 +968,7 @@
             dbgsegments("END_OF_DISPLAY_SET_SEGMENT\n");
             FinishPage(page);
             }
+            break;
        default:
             dbgsegments("*** unknown segment type: %02X\n", segmentType);
        }
diff -ruN vdr-1.5.10/font.c vdr-1.5.11/font.c
--- vdr-1.5.10/font.c	2007-06-23 13:25:42.000000000 +0200
+++ vdr-1.5.11/font.c	2007-11-04 12:08:12.000000000 +0100
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: font.c 1.21 2007/06/23 11:25:42 kls Exp $
+ * $Id: font.c 1.22 2007/11/04 11:08:12 kls Exp $
  */
 
 #include "font.h"
@@ -395,17 +395,21 @@
      FcConfigSubstitute(NULL, pat, FcMatchPattern);
      FcDefaultSubstitute(pat);
      FcFontSet *fontset = FcFontSort(NULL, pat, FcFalse, NULL, NULL);
-     for (int i = 0; i < fontset->nfont; i++) {
-         FcBool scalable;
-         FcPatternGetBool(fontset->fonts[i], FC_SCALABLE, 0, &scalable);
-         if (scalable) {
-            FcChar8 *s = NULL;
-            FcPatternGetString(fontset->fonts[i], FC_FILE, 0, &s);
-            FontFileName = (char *)s;
-            break;
+     if (fontset) {
+        for (int i = 0; i < fontset->nfont; i++) {
+            FcBool scalable;
+            FcPatternGetBool(fontset->fonts[i], FC_SCALABLE, 0, &scalable);
+            if (scalable) {
+               FcChar8 *s = NULL;
+               FcPatternGetString(fontset->fonts[i], FC_FILE, 0, &s);
+               FontFileName = (char *)s;
+               break;
+               }
             }
-         }
-     FcFontSetDestroy(fontset);
+        FcFontSetDestroy(fontset);
+        }
+     else
+        esyslog("ERROR: no usable font found for '%s'", FontName);
      FcPatternDestroy(pat);
      free(fn);
      FcFini();
diff -ruN vdr-1.5.10/i18n-to-gettext.pl vdr-1.5.11/i18n-to-gettext.pl
--- vdr-1.5.10/i18n-to-gettext.pl	2007-10-14 16:14:22.000000000 +0200
+++ vdr-1.5.11/i18n-to-gettext.pl	2007-11-04 11:57:36.000000000 +0100
@@ -10,7 +10,7 @@
 # See the main source file 'vdr.c' for copyright information and
 # how to reach the author.
 #
-# $Id: i18n-to-gettext.pl 1.5 2007/10/14 14:14:22 kls Exp $
+# $Id: i18n-to-gettext.pl 1.6 2007/11/04 10:57:36 kls Exp $
 
 # How to convert an actual plugin:
 #
@@ -306,25 +306,25 @@
 PODIR     = po
 LOCALEDIR = $(VDRDIR)/locale
 I18Npo    = $(wildcard $(PODIR)/*.po)
-I18Nmo    = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
-I18Ndirs  = $(notdir $(foreach file, $(I18Npo), $(basename $(file))))
+I18Nmsgs  = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
 I18Npot   = $(PODIR)/$(PLUGIN).pot
 
 %.mo: %.po
 	msgfmt -c -o $@ $<
 
 $(I18Npot): $(wildcard *.c)
-	xgettext -C -cTRANSLATORS --no-wrap -F -k -ktr -ktrNOOP --msgid-bugs-address='<} . $MSGIDBUGS . q{>' -o $@ $(wildcard *.c)
+	xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='<} . $MSGIDBUGS . q{>' -o $@ $^
 
-$(I18Npo): $(I18Npot)
-	msgmerge -U --no-wrap -F --backup=none -q $@ $<
+%.po: $(I18Npot)
+	msgmerge -U --no-wrap --no-location --backup=none -q $@ $<
+	@touch $@
+
+$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
+	@mkdir -p $(dir $@)
+	cp $< $@
 
-i18n: $(I18Npot) $(I18Nmo)
-	@mkdir -p $(LOCALEDIR)
-	for i in $(I18Ndirs); do\
-	    mkdir -p $(LOCALEDIR)/$$i/LC_MESSAGES;\
-	    cp $(PODIR)/$$i.mo $(LOCALEDIR)/$$i/LC_MESSAGES/vdr-$(PLUGIN).mo;\
-	    done
+.PHONY: i18n
+i18n: $(I18Nmsgs)
 
 };
 
diff -ruN vdr-1.5.10/i18n.c vdr-1.5.11/i18n.c
--- vdr-1.5.10/i18n.c	2007-08-24 16:03:47.000000000 +0200
+++ vdr-1.5.11/i18n.c	2007-11-01 11:38:27.000000000 +0100
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: i18n.c 1.317 2007/08/24 14:03:47 kls Exp $
+ * $Id: i18n.c 1.318 2007/11/01 10:38:27 kls Exp $
  *
  *
  */
@@ -59,6 +59,7 @@
   "dan",
   "cze,ces",
   "tur",
+  "ukr",
   NULL
   };
 
diff -ruN vdr-1.5.10/menu.c vdr-1.5.11/menu.c
--- vdr-1.5.10/menu.c	2007-10-13 12:10:20.000000000 +0200
+++ vdr-1.5.11/menu.c	2007-11-03 16:02:00.000000000 +0100
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: menu.c 1.463 2007/10/13 10:10:20 kls Exp $
+ * $Id: menu.c 1.465 2007/11/03 15:02:00 kls Exp $
  */
 
 #include "menu.h"
@@ -251,7 +251,7 @@
 
   // Parameters for all types of sources:
   strn0cpy(name, data.name, sizeof(name));
-  Add(new cMenuEditStrItem( tr("Name"),          name, sizeof(name), tr(FileNameChars)));
+  Add(new cMenuEditStrItem( tr("Name"),          name, sizeof(name)));
   Add(new cMenuEditSrcItem( tr("Source"),       &data.source));
   Add(new cMenuEditIntItem( tr("Frequency"),    &data.frequency));
   Add(new cMenuEditIntItem( tr("Vpid"),         &data.vpid,  0, 0x1FFF));
@@ -671,7 +671,7 @@
      Add(new cMenuEditBitItem( tr("VPS"),          &data.flags, tfVps));
      Add(new cMenuEditIntItem( tr("Priority"),     &data.priority, 0, MAXPRIORITY));
      Add(new cMenuEditIntItem( tr("Lifetime"),     &data.lifetime, 0, MAXLIFETIME));
-     Add(new cMenuEditStrItem( tr("File"),          data.file, sizeof(data.file), tr(FileNameChars)));
+     Add(new cMenuEditStrItem( tr("File"),          data.file, sizeof(data.file)));
      SetFirstDayItem();
      }
   Timers.IncBeingEdited();
@@ -2107,6 +2107,7 @@
 
   if (state == osUnknown) {
      switch (Key) {
+       case kPlay:
        case kOk:     return Play();
        case kRed:    return (helpKeys > 1 && RecordingCommands.Count()) ? Commands() : Play();
        case kGreen:  return Rewind();
@@ -2712,7 +2713,7 @@
   Add(new cMenuEditBoolItem(tr("Setup.Recording$Use VPS"),                   &data.UseVps));
   Add(new cMenuEditIntItem( tr("Setup.Recording$VPS margin (s)"),            &data.VpsMargin, 0));
   Add(new cMenuEditBoolItem(tr("Setup.Recording$Mark instant recording"),    &data.MarkInstantRecord));
-  Add(new cMenuEditStrItem( tr("Setup.Recording$Name instant recording"),     data.NameInstantRecord, sizeof(data.NameInstantRecord), tr(FileNameChars)));
+  Add(new cMenuEditStrItem( tr("Setup.Recording$Name instant recording"),     data.NameInstantRecord, sizeof(data.NameInstantRecord)));
   Add(new cMenuEditIntItem( tr("Setup.Recording$Instant rec. time (min)"),   &data.InstantRecordTime, 1, MAXINSTANTRECTIME));
   Add(new cMenuEditIntItem( tr("Setup.Recording$Max. video file size (MB)"), &data.MaxVideoFileSize, MINVIDEOFILESIZE, MAXVIDEOFILESIZE));
   Add(new cMenuEditBoolItem(tr("Setup.Recording$Split edited files"),        &data.SplitEditedFiles));
diff -ruN vdr-1.5.10/menuitems.c vdr-1.5.11/menuitems.c
--- vdr-1.5.10/menuitems.c	2007-10-13 14:05:37.000000000 +0200
+++ vdr-1.5.11/menuitems.c	2007-11-03 16:01:01.000000000 +0100
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: menuitems.c 1.53 2007/10/13 12:05:37 kls Exp $
+ * $Id: menuitems.c 1.55 2007/11/03 15:01:01 kls Exp $
  */
 
 #include "menuitems.h"
@@ -18,7 +18,7 @@
 
 #define AUTO_ADVANCE_TIMEOUT  1500 // ms before auto advance when entering characters via numeric keys
 
-const char *FileNameChars = trNOOP(" abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@");
+const char *FileNameChars = trNOOP("FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&");
 
 // --- cMenuEditItem ---------------------------------------------------------
 
@@ -256,7 +256,7 @@
 {
   value = Value;
   length = Length;
-  allowed = Allowed;
+  allowed = Allowed ? Allowed : tr(FileNameChars);
   pos = -1;
   offset = 0;
   insert = uppercase = false;
@@ -285,7 +285,7 @@
      int l = strlen(allowed) + 1;
      allowedUtf8 = new uint[l];
      Utf8ToArray(allowed, allowedUtf8, l);
-     const char *charMap = tr(" 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9");
+     const char *charMap = tr("CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9");
      l = strlen(charMap) + 1;
      charMapUtf8 = new uint[l];
      Utf8ToArray(charMap, charMapUtf8, l);
diff -ruN vdr-1.5.10/menuitems.h vdr-1.5.11/menuitems.h
--- vdr-1.5.10/menuitems.h	2007-06-08 13:53:37.000000000 +0200
+++ vdr-1.5.11/menuitems.h	2007-11-03 15:59:47.000000000 +0100
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: menuitems.h 1.21 2007/06/08 11:53:37 kls Exp $
+ * $Id: menuitems.h 1.22 2007/11/03 14:59:47 kls Exp $
  */
 
 #ifndef __MENUITEMS_H
@@ -101,7 +101,7 @@
   void LeaveEditMode(bool SaveValue = false);
   bool InEditMode(void) { return valueUtf8 != NULL; }
 public:
-  cMenuEditStrItem(const char *Name, char *Value, int Length, const char *Allowed);
+  cMenuEditStrItem(const char *Name, char *Value, int Length, const char *Allowed = NULL);
   ~cMenuEditStrItem();
   virtual eOSState ProcessKey(eKeys Key);
   };
diff -ruN vdr-1.5.10/newplugin vdr-1.5.11/newplugin
--- vdr-1.5.10/newplugin	2007-10-14 11:13:17.000000000 +0200
+++ vdr-1.5.11/newplugin	2007-11-04 11:42:52.000000000 +0100
@@ -12,7 +12,7 @@
 # See the main source file 'vdr.c' for copyright information and
 # how to reach the author.
 #
-# $Id: newplugin 1.38 2007/10/14 09:13:17 kls Exp $
+# $Id: newplugin 1.39 2007/11/04 10:42:52 kls Exp $
 
 $PLUGIN_NAME = $ARGV[0] || die "Usage: newplugin <name>\n";
 
@@ -131,25 +131,25 @@
 PODIR     = po
 LOCALEDIR = \$(VDRDIR)/locale
 I18Npo    = \$(wildcard \$(PODIR)/*.po)
-I18Nmo    = \$(addsuffix .mo, \$(foreach file, \$(I18Npo), \$(basename \$(file))))
-I18Ndirs  = \$(notdir \$(foreach file, \$(I18Npo), \$(basename \$(file))))
+I18Nmsgs  = \$(addprefix \$(LOCALEDIR)/, \$(addsuffix /LC_MESSAGES/vdr-\$(PLUGIN).mo, \$(notdir \$(foreach file, \$(I18Npo), \$(basename \$(file))))))
 I18Npot   = \$(PODIR)/\$(PLUGIN).pot
 
 %.mo: %.po
 	msgfmt -c -o \$\@ \$<
 
 \$(I18Npot): \$(wildcard *.c)
-	xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='<see README>' -o \$\@ \$(wildcard *.c)
+	xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='<see README>' -o \$\@ \$^
 
-\$(I18Npo): \$(I18Npot)
+%.po: \$(I18Npot)
 	msgmerge -U --no-wrap --no-location --backup=none -q \$\@ \$<
+	\@touch \$\@
 
-i18n: \$(I18Npot) \$(I18Nmo)
-	\@mkdir -p \$(LOCALEDIR)
-	for i in \$(I18Ndirs); do\\
-	    mkdir -p \$(LOCALEDIR)/\$\$i/LC_MESSAGES;\\
-	    cp \$(PODIR)/\$\$i.mo \$(LOCALEDIR)/\$\$i/LC_MESSAGES/vdr-\$(PLUGIN).mo;\\
-	    done
+\$(I18Nmsgs): \$(LOCALEDIR)/%/LC_MESSAGES/vdr-\$(PLUGIN).mo: \$(PODIR)/%.mo
+	\@mkdir -p \$(dir \$@)
+	cp \$< \$\@
+
+.PHONY: i18n
+i18n: \$(I18Nmsgs)
 
 ### Targets:
 
diff -ruN vdr-1.5.10/osdbase.h vdr-1.5.11/osdbase.h
--- vdr-1.5.10/osdbase.h	2007-06-09 13:49:00.000000000 +0200
+++ vdr-1.5.11/osdbase.h	2007-11-03 15:50:52.000000000 +0100
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: osdbase.h 1.16 2007/06/09 11:49:00 kls Exp $
+ * $Id: osdbase.h 1.17 2007/11/03 14:50:52 kls Exp $
  */
 
 #ifndef __OSDBASE_H
@@ -57,11 +57,11 @@
   cOsdItem(eOSState State = osUnknown);
   cOsdItem(const char *Text, eOSState State = osUnknown, bool Selectable = true);
   virtual ~cOsdItem();
-  bool Selectable(void) { return selectable; }
+  bool Selectable(void) const { return selectable; }
   void SetText(const char *Text, bool Copy = true);
   void SetSelectable(bool Selectable);
   void SetFresh(bool Fresh);
-  const char *Text(void) { return text; }
+  const char *Text(void) const { return text; }
   virtual void Set(void) {}
   virtual eOSState ProcessKey(eKeys Key);
   };
@@ -77,7 +77,7 @@
   cOsdObject(bool FastResponse = false) { isMenu = false; needsFastResponse = FastResponse; }
   virtual ~cOsdObject() {}
   virtual bool NeedsFastResponse(void) { return needsFastResponse; }
-  bool IsMenu(void) { return isMenu; }
+  bool IsMenu(void) const { return isMenu; }
   virtual void Show(void);
   virtual eOSState ProcessKey(eKeys Key) { return osUnknown; }
   };
@@ -124,7 +124,7 @@
   cOsdMenu(const char *Title, int c0 = 0, int c1 = 0, int c2 = 0, int c3 = 0, int c4 = 0);
   virtual ~cOsdMenu();
   virtual bool NeedsFastResponse(void) { return subMenu ? subMenu->NeedsFastResponse() : cOsdObject::NeedsFastResponse(); }
-  int Current(void) { return current; }
+  int Current(void) const { return current; }
   void Add(cOsdItem *Item, bool Current = false, cOsdItem *After = NULL);
   void Ins(cOsdItem *Item, bool Current = false, cOsdItem *Before = NULL);
   virtual void Display(void);
diff -ruN vdr-1.5.10/po/ca_ES.po vdr-1.5.11/po/ca_ES.po
--- vdr-1.5.10/po/ca_ES.po	2007-10-14 11:31:44.000000000 +0200
+++ vdr-1.5.11/po/ca_ES.po	2007-11-04 11:52:41.000000000 +0100
@@ -872,13 +872,13 @@
 msgid "Editing process already active!"
 msgstr "Procés d'edició iniciat anteriorment!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " aàbcçdeéèfghiíjklmnoòpqrstuúvwxyz0123456789-.#~,/_@·"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " aàbcçdeéèfghiíjklmnoòpqrstuúvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&·"
 
 msgid "yes"
 msgstr "sí"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
 msgstr ""
 
 msgid "Button$ABC/abc"
diff -ruN vdr-1.5.10/po/cs_CZ.po vdr-1.5.11/po/cs_CZ.po
--- vdr-1.5.10/po/cs_CZ.po	2007-10-13 11:34:56.000000000 +0200
+++ vdr-1.5.11/po/cs_CZ.po	2007-11-04 11:52:41.000000000 +0100
@@ -870,14 +870,14 @@
 msgid "Editing process already active!"
 msgstr "Editaèní proces je ji¾ aktivní!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " aábcèdïeéìfghiíjklmnòoópqrøs¹t»uúùvwxyýz¾0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " aábcèdïeéìfghiíjklmnòoópqrøs¹t»uúùvwxyýz¾0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 
 msgid "yes"
 msgstr "ano"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
-msgstr " 0\t-.#~,/_@1\tabcáè2\tdefïéì3\tghií4\tjkl5\tmnoòó6\tpqrsø¹7\ttuv»úù8\twxyzý¾9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgstr " 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabcáè2\tdefïéì3\tghií4\tjkl5\tmnoòó6\tpqrsø¹7\ttuv»úù8\twxyzý¾9"
 
 msgid "Button$ABC/abc"
 msgstr "ABC/abc"
diff -ruN vdr-1.5.10/po/da_DK.po vdr-1.5.11/po/da_DK.po
--- vdr-1.5.10/po/da_DK.po	2007-10-13 11:36:19.000000000 +0200
+++ vdr-1.5.11/po/da_DK.po	2007-11-04 11:52:41.000000000 +0100
@@ -870,14 +870,14 @@
 msgid "Editing process already active!"
 msgstr "Redigeringsproces er allerede aktiv!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " abcdefghijklmnopqrstuvwxyzæøå0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " abcdefghijklmnopqrstuvwxyzæøå0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 
 msgid "yes"
 msgstr "ja"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
-msgstr " 0\t-.#~,/_@1\tabcæå2\tdef3\tghi4\tjkl5\tmnoø6\tpqrs7\ttuv8\twxyz9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgstr " 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabcæå2\tdef3\tghi4\tjkl5\tmnoø6\tpqrs7\ttuv8\twxyz9"
 
 msgid "Button$ABC/abc"
 msgstr "ABC/abc"
diff -ruN vdr-1.5.10/po/de_DE.po vdr-1.5.11/po/de_DE.po
--- vdr-1.5.10/po/de_DE.po	2007-10-14 11:34:26.000000000 +0200
+++ vdr-1.5.11/po/de_DE.po	2007-11-04 11:52:41.000000000 +0100
@@ -870,14 +870,14 @@
 msgid "Editing process already active!"
 msgstr "Schnitt bereits aktiv!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " aäbcdefghijklmnoöpqrsßtuüvwxyz0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " aäbcdefghijklmnoöpqrsßtuüvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 
 msgid "yes"
 msgstr "ja"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
-msgstr " 0\t-.#~,/_@1\tabcä2\tdef3\tghi4\tjkl5\tmnoö6\tpqrs7\ttuvü8\twxyz9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgstr " 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabcä2\tdef3\tghi4\tjkl5\tmnoö6\tpqrsß7\ttuvü8\twxyz9"
 
 msgid "Button$ABC/abc"
 msgstr "ABC/abc"
diff -ruN vdr-1.5.10/po/el_GR.po vdr-1.5.11/po/el_GR.po
--- vdr-1.5.10/po/el_GR.po	2007-10-13 11:36:42.000000000 +0200
+++ vdr-1.5.11/po/el_GR.po	2007-11-04 11:52:41.000000000 +0100
@@ -870,13 +870,13 @@
 msgid "Editing process already active!"
 msgstr "Åðåîåñãáóßá âñßóêåôáé óÝ åîÝëéîç!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " áÜâãäåÝæçÞèéßêëìíîïüðñóòôõýö÷øùþ0123456789-.#~,/_@abcdefghijklmnopqrstuvwxyz"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " áÜâãäåÝæçÞèéßêëìíîïüðñóòôõýö÷øùþ0123456789-.,#~\\^$[]|()*+?{}/:%@&abcdefghijklmnopqrstuvwxyz"
 
 msgid "yes"
 msgstr "íáß"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
 msgstr ""
 
 msgid "Button$ABC/abc"
diff -ruN vdr-1.5.10/po/es_ES.po vdr-1.5.11/po/es_ES.po
--- vdr-1.5.10/po/es_ES.po	2007-10-13 11:36:50.000000000 +0200
+++ vdr-1.5.11/po/es_ES.po	2007-11-04 11:52:41.000000000 +0100
@@ -870,14 +870,14 @@
 msgid "Editing process already active!"
 msgstr "¡El proceso de edición ya está activo!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " aábcçdeéfghiíjklmnñoópqrstuúvwxyz0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " aábcçdeéfghiíjklmnñoópqrstuúvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 
 msgid "yes"
 msgstr "sí"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
-msgstr " 0\t-.#~,/_@1\tabcáç2\tdefé3\tghií4\tjkl5\tmnoñó6\tpqrs7\ttuvú8\twxyz9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgstr " 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabcáç2\tdefé3\tghií4\tjkl5\tmnoñó6\tpqrs7\ttuvú8\twxyz9"
 
 msgid "Button$ABC/abc"
 msgstr "ABC/abc"
diff -ruN vdr-1.5.10/po/et_EE.po vdr-1.5.11/po/et_EE.po
--- vdr-1.5.10/po/et_EE.po	2007-10-13 11:36:58.000000000 +0200
+++ vdr-1.5.11/po/et_EE.po	2007-11-04 11:52:41.000000000 +0100
@@ -166,7 +166,7 @@
 msgstr "Audio"
 
 msgid "Key$Subtitles"
-msgstr ""
+msgstr "Subtiitrid"
 
 msgid "Key$Schedule"
 msgstr "Kava"
@@ -187,31 +187,31 @@
 msgstr "Käsud"
 
 msgid "Key$User1"
-msgstr ""
+msgstr "Lisaklahv1"
 
 msgid "Key$User2"
-msgstr ""
+msgstr "Lisaklahv2"
 
 msgid "Key$User3"
-msgstr ""
+msgstr "Lisaklahv3"
 
 msgid "Key$User4"
-msgstr ""
+msgstr "Lisaklahv4"
 
 msgid "Key$User5"
-msgstr ""
+msgstr "Lisaklahv5"
 
 msgid "Key$User6"
-msgstr ""
+msgstr "Lisaklahv6"
 
 msgid "Key$User7"
-msgstr ""
+msgstr "Lisaklahv7"
 
 msgid "Key$User8"
-msgstr ""
+msgstr "Lisaklahv8"
 
 msgid "Key$User9"
-msgstr ""
+msgstr "Lisaklahv9"
 
 msgid "Free To Air"
 msgstr "FTA"
@@ -253,10 +253,10 @@
 msgstr "Dpid2"
 
 msgid "Spid1"
-msgstr ""
+msgstr "Spid1"
 
 msgid "Spid2"
-msgstr ""
+msgstr "Spid2"
 
 msgid "Tpid"
 msgstr "Tpid"
@@ -283,7 +283,7 @@
 msgstr "CoderateH"
 
 msgid "none"
-msgstr "tühi"
+msgstr "puudu"
 
 msgid "CoderateL"
 msgstr "CoderateL"
@@ -397,7 +397,7 @@
 msgstr "Tulekul"
 
 msgid "Button$Now"
-msgstr "Nüüd"
+msgstr "Hetkel"
 
 msgid "Button$Schedule"
 msgstr "Ajakava"
@@ -457,7 +457,7 @@
 msgstr "Salvestuse käsud"
 
 msgid "never"
-msgstr "mitte kunagi"
+msgstr "ei"
 
 msgid "skin dependent"
 msgstr "kestast sõltuv"
@@ -529,10 +529,10 @@
 msgstr "Kanaliinfo esitusaeg (s)"
 
 msgid "Setup.OSD$Info on channel switch"
-msgstr "Kanaliinfo näitamine"
+msgstr "Kanaliinfo kuvamine"
 
 msgid "Setup.OSD$Timeout requested channel info"
-msgstr "Kanaliinfo kuvamise ajapiirang"
+msgstr "Kanaliinfo ajapiirang"
 
 msgid "Setup.OSD$Scroll pages"
 msgstr "Lehekülje kerimine"
@@ -556,7 +556,7 @@
 msgstr "EPG skaneerimise viide (h)"
 
 msgid "Setup.EPG$EPG bugfix level"
-msgstr "EPG veaparanduse tase"
+msgstr "EPG veaparandustase"
 
 msgid "Setup.EPG$EPG linger time (min)"
 msgstr "Vana EPG viide (min)"
@@ -565,7 +565,7 @@
 msgstr "Kella sünkroniseerimine"
 
 msgid "Setup.EPG$Use time from transponder"
-msgstr "Kella sünkroniseerimise transponder"
+msgstr "Sünkroniseerimise transponder"
 
 #. TRANSLATORS: note the plural!
 msgid "Setup.EPG$Preferred languages"
@@ -588,19 +588,19 @@
 msgstr "ei"
 
 msgid "names only"
-msgstr "ainult nimed"
+msgstr "nimed"
 
 msgid "PIDs only"
-msgstr "ainult PID-id"
+msgstr "PID-id"
 
 msgid "names and PIDs"
-msgstr "nimi ja PID-id"
+msgstr "nimed ja PID-id"
 
 msgid "add new channels"
-msgstr "uute kanalite lisamine"
+msgstr "kanalite lisamine"
 
 msgid "add new transponders"
-msgstr "uute transponderite lisamine"
+msgstr "transponderite lisamine"
 
 msgid "DVB"
 msgstr "DVB"
@@ -627,22 +627,22 @@
 msgstr "Audio keel"
 
 msgid "Setup.DVB$Display subtitles"
-msgstr ""
+msgstr "Subtiitrite kuvamine"
 
 msgid "Setup.DVB$Subtitle languages"
-msgstr ""
+msgstr "Subtiitrite keeli"
 
 msgid "Setup.DVB$Subtitle language"
-msgstr ""
+msgstr "Subtiitri keel"
 
 msgid "Setup.DVB$Subtitle offset"
-msgstr ""
+msgstr "Subtiitrite nihe"
 
 msgid "Setup.DVB$Subtitle foreground transparency"
-msgstr ""
+msgstr "Subtiitri läbipaistvus"
 
 msgid "Setup.DVB$Subtitle background transparency"
-msgstr ""
+msgstr "Subtiitri tausta läbipaistvus"
 
 msgid "LNB"
 msgstr "LNB"
@@ -837,13 +837,13 @@
 msgstr "Audio kättesaamatu!"
 
 msgid "No subtitles"
-msgstr ""
+msgstr "Subtiitrid väljas"
 
 msgid "Button$Subtitles"
-msgstr ""
+msgstr "Subtiitrid"
 
 msgid "No subtitles available!"
-msgstr ""
+msgstr "Subtiitrid puuduvad"
 
 msgid "Not enough disk space to start recording!"
 msgstr "Ebapiisavalt kettaruumi salvestamise alustamiseks!"
@@ -870,14 +870,14 @@
 msgid "Editing process already active!"
 msgstr "Redigeerimine juba aktiivne!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " abcdefghijklmnopqrsðzþtuvwõäöüxy0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " abcdefghijklmnopqrsðzþtuvwõäöüxy0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 
 msgid "yes"
 msgstr "jah"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
-msgstr " 0\t-.#~,/_@1\tabcä2\tdef3\tghi4\tjkl5\tmnoõö6\tpqrsð7\ttuvü8\twxyzþ9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgstr " 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabcä2\tdef3\tghi4\tjkl5\tmnoõö6\tpqrsð7\ttuvü8\twxyzþ9"
 
 msgid "Button$ABC/abc"
 msgstr "ABC/abc"
@@ -904,7 +904,7 @@
 msgstr "Väljalülitamine ebaõnnestus - '-s' parameeter puudub!"
 
 msgid "Editing - shut down anyway?"
-msgstr "Redigeerimine aktiive - lülitan välja?"
+msgstr "Redigeerimine aktiive - lülitada välja?"
 
 msgid "Recording - shut down anyway?"
 msgstr "Salvestamine aktiivne - lülitada välja?"
@@ -921,7 +921,7 @@
 msgstr "Laiendusmoodul %s ärkab %ld minuti pärast, jätkata?"
 
 msgid "Editing - restart anyway?"
-msgstr "Redigeerimine aktiivne - taaskäivitada?"
+msgstr "Redigeerimine aktiivne - restart?"
 
 msgid "Recording - restart anyway?"
 msgstr "Salvestamine aktiivne - restart?"
diff -ruN vdr-1.5.10/po/fi_FI.po vdr-1.5.11/po/fi_FI.po
--- vdr-1.5.10/po/fi_FI.po	2007-10-13 11:47:49.000000000 +0200
+++ vdr-1.5.11/po/fi_FI.po	2007-11-04 11:52:41.000000000 +0100
@@ -873,14 +873,14 @@
 msgid "Editing process already active!"
 msgstr "Muokkaus on jo käynnissä!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " abcdefghijklmnopqrstuvwxyzåäö0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " abcdefghijklmnopqrstuvwxyzåäö0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 
 msgid "yes"
 msgstr "kyllä"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
-msgstr " 0\t-.#~,/_@1\tabcäå2\tdef3\tghi4\tjkl5\tmnoö6\tpqrs7\ttuv8\twxyz9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgstr " 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabcäå2\tdef3\tghi4\tjkl5\tmnoö6\tpqrs7\ttuv8\twxyz9"
 
 msgid "Button$ABC/abc"
 msgstr "ABC/abc"
diff -ruN vdr-1.5.10/po/fr_FR.po vdr-1.5.11/po/fr_FR.po
--- vdr-1.5.10/po/fr_FR.po	2007-10-13 11:37:12.000000000 +0200
+++ vdr-1.5.11/po/fr_FR.po	2007-11-04 11:52:41.000000000 +0100
@@ -7,15 +7,16 @@
 # Nicolas Huillard <nhuillard@e-dition.fr>, 2005
 # Pierre Briec <pbriec@free.fr>, 2006
 # Bruno Roussel <bruno.roussel@free.fr>, 2007
+# Michael Nival <mnival@club-internet.fr>, 2007
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: VDR 1.5.7\n"
 "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
 "POT-Creation-Date: 2007-10-13 11:29+0200\n"
-"PO-Revision-Date: 2007-08-17 13:45+0200\n"
-"Last-Translator: Bruno Roussel <bruno.roussel@free.fr>\n"
-"Language-Team: <vdr@linuxtv.org>\n"
+"PO-Revision-Date: 2007-10-18 16:12+0100\n"
+"Last-Translator: Michael Nival <mnival@club-internet.fr>\n"
+"Language-Team:  <vdr@linuxtv.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -171,7 +172,7 @@
 msgstr "Audio"
 
 msgid "Key$Subtitles"
-msgstr ""
+msgstr "Sous-Titres"
 
 msgid "Key$Schedule"
 msgstr "Programmes"
@@ -258,10 +259,10 @@
 msgstr "PID AC3 (2)"
 
 msgid "Spid1"
-msgstr ""
+msgstr "Sous-Titre (1)"
 
 msgid "Spid2"
-msgstr ""
+msgstr "Sous-Titre (2)"
 
 msgid "Tpid"
 msgstr "PID Télétexte"
@@ -632,22 +633,22 @@
 msgstr "Langue audio"
 
 msgid "Setup.DVB$Display subtitles"
-msgstr ""
+msgstr "Afficher les Sous-Titres"
 
 msgid "Setup.DVB$Subtitle languages"
-msgstr ""
+msgstr "Langues des Sous-Titres"
 
 msgid "Setup.DVB$Subtitle language"
-msgstr ""
+msgstr "Langue de Sous-Titre"
 
 msgid "Setup.DVB$Subtitle offset"
-msgstr ""
+msgstr "Offset du Sous-Titre"
 
 msgid "Setup.DVB$Subtitle foreground transparency"
-msgstr ""
+msgstr "Transparence de l'avant-plan"
 
 msgid "Setup.DVB$Subtitle background transparency"
-msgstr ""
+msgstr "Transparence du fond"
 
 msgid "LNB"
 msgstr "LNB"
@@ -842,13 +843,13 @@
 msgstr "Pas d'audio disponible !"
 
 msgid "No subtitles"
-msgstr ""
+msgstr "Pas de Sous-Titres"
 
 msgid "Button$Subtitles"
-msgstr ""
+msgstr "Sous-Titres"
 
 msgid "No subtitles available!"
-msgstr ""
+msgstr "Pas de Sous-Titres disponible !"
 
 msgid "Not enough disk space to start recording!"
 msgstr "Espace disque insuffisant pour démarrer l'enregistrement !"
@@ -875,14 +876,14 @@
 msgid "Editing process already active!"
 msgstr "Montage déjà en cours !"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " aàbcçdeéèêfghiîjklmnoôpqrstuùûvwxyz0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " aàbcçdeéèêfghiîjklmnoôpqrstuùûvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 
 msgid "yes"
 msgstr "oui"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
-msgstr " 0\t-.#~,/_@1\tabcàâç2\tdeféèê3\tghiîï4\tjkl5\tmnoô6\tpqrs7\ttuvù8\twxyz9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgstr " 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabcàâç2\tdeféèê3\tghiîï4\tjkl5\tmnoô6\tpqrs7\ttuvù8\twxyz9"
 
 msgid "Button$ABC/abc"
 msgstr "ABC/abc"
diff -ruN vdr-1.5.10/po/hr_HR.po vdr-1.5.11/po/hr_HR.po
--- vdr-1.5.10/po/hr_HR.po	2007-10-13 11:37:19.000000000 +0200
+++ vdr-1.5.11/po/hr_HR.po	2007-11-04 11:52:41.000000000 +0100
@@ -871,13 +871,13 @@
 msgid "Editing process already active!"
 msgstr "Ureðivanje je veæ aktivirano!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " abcèædðefghijklmnopqrs¹tuvwxyz¾0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " abcèædðefghijklmnopqrs¹tuvwxyz¾0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 
 msgid "yes"
 msgstr "da"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
 msgstr ""
 
 msgid "Button$ABC/abc"
diff -ruN vdr-1.5.10/po/hu_HU.po vdr-1.5.11/po/hu_HU.po
--- vdr-1.5.10/po/hu_HU.po	2007-10-13 14:42:34.000000000 +0200
+++ vdr-1.5.11/po/hu_HU.po	2007-11-04 11:52:41.000000000 +0100
@@ -872,14 +872,14 @@
 msgid "Editing process already active!"
 msgstr "A vágás már aktivált!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " aábcdeéfghiíjklmnoóöõpqrstuúüûvwxyz0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " aábcdeéfghiíjklmnoóöõpqrstuúüûvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 
 msgid "yes"
 msgstr "igen"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
-msgstr " 0\t-.#~,/_@1\taábc2\tdeéf3\tghií4\tjkl5\tmnoóöõ6\tpqrs7\ttuúüûv8\twxyz9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgstr " 0\t-.,1#~\\^$[]|()*+?{}/:%@&\taábc2\tdeéf3\tghií4\tjkl5\tmnoóöõ6\tpqrs7\ttuúüûv8\twxyz9"
 
 msgid "Button$ABC/abc"
 msgstr "ABC/abc"
diff -ruN vdr-1.5.10/po/it_IT.po vdr-1.5.11/po/it_IT.po
--- vdr-1.5.10/po/it_IT.po	2007-10-13 13:49:30.000000000 +0200
+++ vdr-1.5.11/po/it_IT.po	2007-11-04 11:52:41.000000000 +0100
@@ -11,9 +11,9 @@
 "Project-Id-Version: VDR 1.5.7\n"
 "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
 "POT-Creation-Date: 2007-10-13 11:29+0200\n"
-"PO-Revision-Date: 2007-08-12 14:17+0200\n"
-"Last-Translator: Sean Carlos <seanc@libero.it>\n"
-"Language-Team: <vdr@linuxtv.org>\n"
+"PO-Revision-Date: 2007-10-16 02:15+0100\n"
+"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
+"Language-Team:  <vdr@linuxtv.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-15\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -169,7 +169,7 @@
 msgstr "Audio"
 
 msgid "Key$Subtitles"
-msgstr ""
+msgstr "Key$Sottotitoli"
 
 msgid "Key$Schedule"
 msgstr "Programmi"
@@ -256,10 +256,10 @@
 msgstr "PID AC3 (2)"
 
 msgid "Spid1"
-msgstr ""
+msgstr "Spid1"
 
 msgid "Spid2"
-msgstr ""
+msgstr "Spid2"
 
 msgid "Tpid"
 msgstr "PID Teletext"
@@ -630,22 +630,22 @@
 msgstr "Lingua per l'audio"
 
 msgid "Setup.DVB$Display subtitles"
-msgstr ""
+msgstr "Setup.DVB$Mostra sottotitoli"
 
 msgid "Setup.DVB$Subtitle languages"
-msgstr ""
+msgstr "Setup.DVB$Lingue sottotitoli"
 
 msgid "Setup.DVB$Subtitle language"
-msgstr ""
+msgstr "Setup.DVB$Lingua sottotitoli"
 
 msgid "Setup.DVB$Subtitle offset"
-msgstr ""
+msgstr "Setup.DVB$Posizione sottotitolo"
 
 msgid "Setup.DVB$Subtitle foreground transparency"
-msgstr ""
+msgstr "Setup.DVB$Trasparenza primo piano sottotitoli"
 
 msgid "Setup.DVB$Subtitle background transparency"
-msgstr ""
+msgstr "Setup.DVB$Trasparenza sfondo sottotitoli"
 
 msgid "LNB"
 msgstr "LNB"
@@ -840,13 +840,13 @@
 msgstr "Nessun audio disponibile!"
 
 msgid "No subtitles"
-msgstr ""
+msgstr "Nessun sottotitolo"
 
 msgid "Button$Subtitles"
-msgstr ""
+msgstr "Button$Sottotitoli"
 
 msgid "No subtitles available!"
-msgstr ""
+msgstr "Nessun sottotitolo disponibile!"
 
 msgid "Not enough disk space to start recording!"
 msgstr "Spazio su disco insufficiente per registrare!"
@@ -873,14 +873,14 @@
 msgid "Editing process already active!"
 msgstr "Processo di modifica già attivo!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " aáàbcdeéèfghiìîjklmnoòpqrstuùvwxyz0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " aáàbcdeéèfghiìîjklmnoòpqrstuùvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 
 msgid "yes"
 msgstr "sì"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
-msgstr " 0\t-.#~,/_@1\taàbc2\tdeèf3\tghiì4\tjkl5\tmnoò6\tpqrs7\ttuùv8\twxyz9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgstr " 0\t-.,1#~\\^$[]|()*+?{}/:%@&\taàbc2\tdeèf3\tghiì4\tjkl5\tmnoò6\tpqrs7\ttuùv8\twxyz9"
 
 msgid "Button$ABC/abc"
 msgstr "ABC/abc"
diff -ruN vdr-1.5.10/po/nl_NL.po vdr-1.5.11/po/nl_NL.po
--- vdr-1.5.10/po/nl_NL.po	2007-10-13 11:37:41.000000000 +0200
+++ vdr-1.5.11/po/nl_NL.po	2007-11-04 11:52:41.000000000 +0100
@@ -872,13 +872,13 @@
 msgid "Editing process already active!"
 msgstr "Bewerken is al actief!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@áäàïóöòúüù"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&áäàïóöòúüù"
 
 msgid "yes"
 msgstr "ja"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
 msgstr ""
 
 msgid "Button$ABC/abc"
diff -ruN vdr-1.5.10/po/nn_NO.po vdr-1.5.11/po/nn_NO.po
--- vdr-1.5.10/po/nn_NO.po	2007-10-13 11:37:46.000000000 +0200
+++ vdr-1.5.11/po/nn_NO.po	2007-11-04 11:52:41.000000000 +0100
@@ -871,13 +871,13 @@
 msgid "Editing process already active!"
 msgstr "Redigeringsprosessen er allerede aktiv!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 msgstr ""
 
 msgid "yes"
 msgstr "ja"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
 msgstr ""
 
 msgid "Button$ABC/abc"
diff -ruN vdr-1.5.10/po/pl_PL.po vdr-1.5.11/po/pl_PL.po
--- vdr-1.5.10/po/pl_PL.po	2007-10-13 11:37:53.000000000 +0200
+++ vdr-1.5.11/po/pl_PL.po	2007-11-04 11:52:41.000000000 +0100
@@ -870,14 +870,14 @@
 msgid "Editing process already active!"
 msgstr "Proces edycji jest ju¿ aktywny!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " a±bcædeêfghijkl³mnñoópqrs¶tuvwxyz¼¿0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " a±bcædeêfghijkl³mnñoópqrs¶tuvwxyz¼¿0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 
 msgid "yes"
 msgstr "tak"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
-msgstr " 0\t-.#~,/_@1\tabc2±æ\tdef3ê\tghi4\tjkl5³\tmno6ñó\tpqrs7¶\ttuv8\twxyz9¼¿"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgstr " 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2±æ\tdef3ê\tghi4\tjkl5³\tmno6ñó\tpqrs7¶\ttuv8\twxyz9¼¿"
 
 msgid "Button$ABC/abc"
 msgstr "ABC/abc"
diff -ruN vdr-1.5.10/po/pt_PT.po vdr-1.5.11/po/pt_PT.po
--- vdr-1.5.10/po/pt_PT.po	2007-10-13 11:37:58.000000000 +0200
+++ vdr-1.5.11/po/pt_PT.po	2007-11-04 11:52:41.000000000 +0100
@@ -870,13 +870,13 @@
 msgid "Editing process already active!"
 msgstr "Processo de modificação já activo!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 msgstr ""
 
 msgid "yes"
 msgstr "sim"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
 msgstr ""
 
 msgid "Button$ABC/abc"
diff -ruN vdr-1.5.10/po/ro_RO.po vdr-1.5.11/po/ro_RO.po
--- vdr-1.5.10/po/ro_RO.po	2007-10-13 11:38:04.000000000 +0200
+++ vdr-1.5.11/po/ro_RO.po	2007-11-04 11:52:41.000000000 +0100
@@ -871,14 +871,14 @@
 msgid "Editing process already active!"
 msgstr "Montajul înregistrãrii este deja activ!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " aãâbcdefghiîjklmnopqrsºtþuvwxyz0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " aãâbcdefghiîjklmnopqrsºtþuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 
 msgid "yes"
 msgstr "da"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
-msgstr " 0\t-.#~,/_@1\taãâbc2\tdef3\tghiî4\tjkl5\tmno6\tpqrsº7\ttþuv8\twxyz9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgstr " 0\t-.,1#~\\^$[]|()*+?{}/:%@&\taãâbc2\tdef3\tghiî4\tjkl5\tmno6\tpqrsº7\ttþuv8\twxyz9"
 
 msgid "Button$ABC/abc"
 msgstr "ABC/abc"
diff -ruN vdr-1.5.10/po/ru_RU.po vdr-1.5.11/po/ru_RU.po
--- vdr-1.5.10/po/ru_RU.po	2007-10-13 11:38:11.000000000 +0200
+++ vdr-1.5.11/po/ru_RU.po	2007-11-04 11:52:41.000000000 +0100
@@ -870,14 +870,14 @@
 msgid "Editing process already active!"
 msgstr "¿àÞæÕáá ÒØÔÕÞÜÞÝâÐÖÐ ãÖÕ ×ÐßãéÕÝ!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " abcdefghijklmnopqrstuvwxyzÐÑÒÓÔÕñÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìîï0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " abcdefghijklmnopqrstuvwxyzÐÑÒÓÔÕñÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìîï0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 
 msgid "yes"
 msgstr "ÔÐ"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
-msgstr " 0\t-.#~,/_@1\tabcÐÑÒÓ2\tdefÔÕñÖ×3\tghiØÙÚÛ4\tjklÜÝÞ5\tmnoßàá6\tpqrsâãäå7\ttuvæçèéê8\twxyzëìíîï9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgstr " 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabcÐÑÒÓ2\tdefÔÕñÖ×3\tghiØÙÚÛ4\tjklÜÝÞ5\tmnoßàá6\tpqrsâãäå7\ttuvæçèéê8\twxyzëìíîï9"
 
 msgid "Button$ABC/abc"
 msgstr "°±²/ÐÑÒ"
diff -ruN vdr-1.5.10/po/sl_SI.po vdr-1.5.11/po/sl_SI.po
--- vdr-1.5.10/po/sl_SI.po	2007-10-13 11:38:18.000000000 +0200
+++ vdr-1.5.11/po/sl_SI.po	2007-11-04 11:52:42.000000000 +0100
@@ -871,14 +871,14 @@
 msgid "Editing process already active!"
 msgstr "Urejanje je ¾e aktivno!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " abcèdefghijklmnopqrs¹tuvwxyz¾0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " abcèdefghijklmnopqrs¹tuvwxyz¾0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 
 msgid "yes"
 msgstr "da"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
-msgstr " 0\t-.#~,/_@1\tabcè2\tdef3\tghi4\tjkl5\tmno6\tpqrs¹7\ttuv8\twxyz¾9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgstr " 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabcè2\tdef3\tghi4\tjkl5\tmno6\tpqrs¹7\ttuv8\twxyz¾9"
 
 msgid "Button$ABC/abc"
 msgstr "ABC/abc"
diff -ruN vdr-1.5.10/po/sv_SE.po vdr-1.5.11/po/sv_SE.po
--- vdr-1.5.10/po/sv_SE.po	2007-10-13 11:38:24.000000000 +0200
+++ vdr-1.5.11/po/sv_SE.po	2007-11-04 11:52:42.000000000 +0100
@@ -871,14 +871,14 @@
 msgid "Editing process already active!"
 msgstr "Redigeringen är redan aktiv!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " abcdefghijklmnopqrstuvwxyzåäö0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " abcdefghijklmnopqrstuvwxyzåäö0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 
 msgid "yes"
 msgstr "ja"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
-msgstr " 0\t-.#~,/_@1\tabcåä2\tdef3\tghi4\tjkl5\tmnoö6\tpqrs7\ttuv8\twxyz"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgstr " 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabcåä2\tdef3\tghi4\tjkl5\tmnoö6\tpqrs7\ttuv8\twxyz"
 
 msgid "Button$ABC/abc"
 msgstr "ABC/abc"
diff -ruN vdr-1.5.10/po/tr_TR.po vdr-1.5.11/po/tr_TR.po
--- vdr-1.5.10/po/tr_TR.po	2007-10-13 11:38:29.000000000 +0200
+++ vdr-1.5.11/po/tr_TR.po	2007-11-04 11:52:42.000000000 +0100
@@ -870,14 +870,14 @@
 msgid "Editing process already active!"
 msgstr "Kesim henüz aktif!"
 
-msgid " abcdefghijklmnopqrstuvwxyz0123456789-.#~,/_@"
-msgstr " abcçdefgðhýijklmnoöprsþtuüvyz0123456789-.#~,/_@"
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " abcçdefgðhýijklmnoöprsþtuüvyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
 
 msgid "yes"
 msgstr "evet"
 
-msgid " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
-msgstr " 0\t-.#~,/_@1\tabcç2\tdef3\tgðhýi4\tjkl5\tmnoö6\tprsþ7\ttuüv8\tyz9"
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgstr " 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabcç2\tdef3\tgðhýi4\tjkl5\tmnoö6\tprsþ7\ttuüv8\tyz9"
 
 msgid "Button$ABC/abc"
 msgstr "ABC/abc"
diff -ruN vdr-1.5.10/po/uk_UA.po vdr-1.5.11/po/uk_UA.po
--- vdr-1.5.10/po/uk_UA.po	1970-01-01 01:00:00.000000000 +0100
+++ vdr-1.5.11/po/uk_UA.po	2007-11-04 11:52:42.000000000 +0100
@@ -0,0 +1,999 @@
+# VDR language source file.
+# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
+# This file is distributed under the same license as the VDR package.
+# Yarema Aka Knedlyk <yupadmin@gmail.com>, 2007
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: VDR 1.5.10\n"
+"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
+"POT-Creation-Date: 2007-11-01 11:36+0100\n"
+"PO-Revision-Date: 2007-08-12 14:17+0200\n"
+"Last-Translator: Yarema Aka Knedlyk <yupadmin@gmail.com>\n"
+"Language-Team: <vdr@linuxtv.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-5\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "*** Invalid Channel ***"
+msgstr "*** ½ÕßàÐÒØÛìÝØÙ ÚÐÝÐÛ ***"
+
+msgid "Channel not available!"
+msgstr "ºÐÝÐÛ ÝÕÔÞáâãßÝØÙ!"
+
+msgid "Can't start Transfer Mode!"
+msgstr "½ÕÜÞÖÛØÒÞ ÒÚÛîçØâØ àÕÖØÜ ßàÞßãáÚã!"
+
+msgid "Starting EPG scan"
+msgstr "¿ÞçØÝÐî EPG-áÚÐÝãÒÐÝÝï"
+
+msgid "No title"
+msgstr "±Õ× ÝÐ×ÒØ"
+
+#. TRANSLATORS: The name of the language, as written natively
+msgid "LanguageName$English"
+msgstr "ÃÚàÐ÷ÝáìÚÐ"
+
+#. TRANSLATORS: The 3-letter code of the language
+msgid "LanguageCode$eng"
+msgstr "ukr"
+
+msgid "Phase 1: Detecting RC code type"
+msgstr "ºàÞÚ 1: ²Ø×ÝÐçÕÝÝï âØßã ÚÞÔã ßãÛìâÐ"
+
+msgid "Press any key on the RC unit"
+msgstr "½ÐâØáÝöâì ÑãÔì-ïÚã ÚÝÞßÚã ÝÐ ßãÛìâö"
+
+msgid "RC code detected!"
+msgstr "²Ø×ÝÐçÕÝÞ ÚÞÔ ßãÛìâÐ!"
+
+msgid "Do not press any key..."
+msgstr "½Õ ÝÐâØáÚÐÙâÕ ÚÝÞßÚØ..."
+
+msgid "Phase 2: Learning specific key codes"
+msgstr "ºàÞÚ 2: ¿àØßØáãÒÐÝÝï ÚÞÔöÒ ÔÛï ÒöÔßÞÒöÔÝØå ÚÝÞßÞÚ"
+
+#, c-format
+msgid "Press key for '%s'"
+msgstr "½ÐâØáÝöâì ÚÝÞßÚã '%s'"
+
+msgid "Press 'Up' to confirm"
+msgstr "½ÐâØáÝöâì '²ÒÕàå' ÔÛï ßöÔâÒÕàÔÖÕÝÝï"
+
+msgid "Press 'Down' to continue"
+msgstr "½ÐâØáÝöâì '²ÝØ×' ÔÛï ßàÞÔÞÒÖÕÝÝï"
+
+msgid "(press 'Up' to go back)"
+msgstr "(½ÐâØáÝöâì '²ÒÕàå' ÔÛï ßÞÒÕàÝÕÝÝï)"
+
+msgid "(press 'Down' to end key definition)"
+msgstr "(½ÐâØáÝöâì '²ÝØ×' ÔÛï ×ÐÚöÝçÕÝÝï ÝÐáâàÞÙÚØ ßãÛìâÐ)"
+
+msgid "(press 'Menu' to skip this key)"
+msgstr "(½ÐâØáÝöâì '¼ÕÝî' éÞÑ ßàÞßãáâØâØ ÚÝÞßÚã)"
+
+msgid "Learning Remote Control Keys"
+msgstr "½ÐÒçÐÝÝï ßãÛìâÐ"
+
+msgid "Phase 3: Saving key codes"
+msgstr "ºàÞÚ 3: ·ÐßÐÜ'ïâÞÒãÒÐÝÝï ÚÞÔöÒ ÚÝÞßÞÚ"
+
+msgid "Press 'Up' to save, 'Down' to cancel"
+msgstr "½ÐâØáÝöâì '²ÒÕàå' ÔÛï ×ÐÚöÝçÕÝÝï, '²ÝØ×' ÔÛï ÒöÔÜÞÒØ"
+
+msgid "Key$Up"
+msgstr "²ÒÕàå"
+
+msgid "Key$Down"
+msgstr "²ÝØ×"
+
+msgid "Key$Menu"
+msgstr "¼ÕÝî"
+
+msgid "Key$Ok"
+msgstr "Ok"
+
+msgid "Key$Back"
+msgstr "½Ð×ÐÔ"
+
+msgid "Key$Left"
+msgstr "½ÐÛöÒÞ"
+
+msgid "Key$Right"
+msgstr "½ÐßàÐÒÞ"
+
+msgid "Key$Red"
+msgstr "ÇÕàÒÞÝÐ"
+
+msgid "Key$Green"
+msgstr "·ÕÛÕÝÐ"
+
+msgid "Key$Yellow"
+msgstr "¶ÞÒâÐ"
+
+msgid "Key$Blue"
+msgstr "ÁØÝï"
+
+msgid "Key$Info"
+msgstr "¦ÝäÞ"
+
+msgid "Key$Play"
+msgstr "¿àÞÓàÐÒÐÝÝï"
+
+msgid "Key$Pause"
+msgstr "¿Ðã×Ð"
+
+msgid "Key$Stop"
+msgstr "ÁâÞß"
+
+msgid "Key$Record"
+msgstr "·ÐßØá"
+
+msgid "Key$FastFwd"
+msgstr "¿àÞÚàãâÚÐ ÒßÕàÕÔ"
+
+msgid "Key$FastRew"
+msgstr "¿àÞÚàãâÚÐ ÝÐ×ÐÔ"
+
+msgid "Key$Next"
+msgstr "²ßÕàÕÔ"
+
+msgid "Key$Prev"
+msgstr "½Ð×ÐÔ"
+
+msgid "Key$Power"
+msgstr "²ØÚÛîçØâØ"
+
+msgid "Key$Channel+"
+msgstr "ºÐÝÐÛ +"
+
+msgid "Key$Channel-"
+msgstr "ºÐÝÐÛ -"
+
+msgid "Key$PrevChannel"
+msgstr "¿ÞßÕàÕÔÝöÙ ÚÐÝÐÛ"
+
+msgid "Key$Volume+"
+msgstr "³ãçÝöáâì +"
+
+msgid "Key$Volume-"
+msgstr "³ãçÝöáâì -"
+
+msgid "Key$Mute"
+msgstr "²ØÚÛîçØâØ ×ÒãÚ"
+
+msgid "Key$Audio"
+msgstr "¼ÞÒÐ"
+
+msgid "Key$Subtitles"
+msgstr "ÁãÑâØâàØ"
+
+msgid "Key$Schedule"
+msgstr "ÂÕÛÕÓöÔ"
+
+msgid "Key$Channels"
+msgstr "ºÐÝÐÛØ"
+
+msgid "Key$Timers"
+msgstr "ÂÐÙÜÕàØ"
+
+msgid "Key$Recordings"
+msgstr "·ÐßØáØ"
+
+msgid "Key$Setup"
+msgstr "½ÐÛÐèâãÒÐÝÝï"
+
+msgid "Key$Commands"
+msgstr "ºÞÜÐÝÔØ"
+
+msgid "Key$User1"
+msgstr ""
+
+msgid "Key$User2"
+msgstr ""
+
+msgid "Key$User3"
+msgstr ""
+
+msgid "Key$User4"
+msgstr ""
+
+msgid "Key$User5"
+msgstr ""
+
+msgid "Key$User6"
+msgstr ""
+
+msgid "Key$User7"
+msgstr ""
+
+msgid "Key$User8"
+msgstr ""
+
+msgid "Key$User9"
+msgstr ""
+
+msgid "Free To Air"
+msgstr "FTA (ÝÕ×ÐÚÞÔÞÒÐÝÞ)"
+
+msgid "encrypted"
+msgstr "×ÐÚÞÔÞÒÐÝÞ"
+
+msgid "auto"
+msgstr "ÐÒâÞ"
+
+msgid "Edit channel"
+msgstr "ÀÕÔÐÚâãÒÐÝÝï ÚÐÝÐÛã"
+
+msgid "Name"
+msgstr "½Ð×ÒÐ"
+
+msgid "Source"
+msgstr "´ÖÕàÕÛÞ"
+
+msgid "Frequency"
+msgstr "ÇÐáâÞâÐ"
+
+msgid "Vpid"
+msgstr "Vpid (ÒöÔÕÞ)"
+
+msgid "Ppid"
+msgstr "Ppid"
+
+msgid "Apid1"
+msgstr "Apid1 (ÐãÔöÞ 1)"
+
+msgid "Apid2"
+msgstr "Apid2 (ÐãÔöÞ 2)"
+
+msgid "Dpid1"
+msgstr "Dpid1 (AC3 1)"
+
+msgid "Dpid2"
+msgstr "Dpid2 (AC3 2)"
+
+msgid "Spid1"
+msgstr ""
+
+msgid "Spid2"
+msgstr ""
+
+msgid "Tpid"
+msgstr "Tpid (âÕÛÕâÕÚáâ)"
+
+msgid "CA"
+msgstr "CA (ÔÕÚÞÔÕà)"
+
+msgid "Sid"
+msgstr "Sid"
+
+msgid "Polarization"
+msgstr "¿ÞÛïàØ×Ðæöï"
+
+msgid "Srate"
+msgstr "ÁØÜÒ. èÒØÔÚöáâì"
+
+msgid "Inversion"
+msgstr "¦ÝÒÕàáöï"
+
+msgid "off"
+msgstr "ÒØÚÛ"
+
+msgid "CoderateH"
+msgstr "CoderateH"
+
+msgid "none"
+msgstr "ÝöçÞÓÞ"
+
+msgid "CoderateL"
+msgstr "CoderateL"
+
+msgid "Modulation"
+msgstr "¼ÞÔãÛïæöï"
+
+msgid "Bandwidth"
+msgstr "´öÐßÐ×ÞÝ"
+
+msgid "Transmission"
+msgstr "¿ÕàÕÔÐçÐ"
+
+msgid "Guard"
+msgstr "·ÐåØáâ"
+
+msgid "Hierarchy"
+msgstr "¦ôàÐàåöï"
+
+msgid "Channel settings are not unique!"
+msgstr "½ÐáâàÞÙÚØ ÚÐÝÐÛã ÝÕ ôÔØÝö!"
+
+msgid "Channels"
+msgstr "ºÐÝÐÛØ"
+
+msgid "Button$Edit"
+msgstr "ÀÕÔÐÚâãÒÐâØ"
+
+msgid "Button$New"
+msgstr "´ÞÔÐâØ"
+
+msgid "Button$Delete"
+msgstr "²ØÔÐÛØâØ"
+
+msgid "Button$Mark"
+msgstr "¿ÕàÕÜöáâØâØ"
+
+msgid "Channel is being used by a timer!"
+msgstr "ºÐÝÐÛ ×ÐÝïâØÙ âÐÙÜÕàÞÜ!"
+
+msgid "Delete channel?"
+msgstr "²ØÔÐÛØâØ ÚÐÝÐÛ?"
+
+msgid "Edit timer"
+msgstr "½ÐÛÐèâãÒÐÝÝï âÐÙÜÕàÐ"
+
+msgid "Active"
+msgstr "°ÚâØÒÞÒÐÝÞ"
+
+msgid "Channel"
+msgstr "ºÐÝÐÛ"
+
+msgid "Day"
+msgstr "´ÕÝì"
+
+msgid "Start"
+msgstr "¿ÞçÐâÞÚ"
+
+msgid "Stop"
+msgstr "ºöÝÕæì"
+
+msgid "VPS"
+msgstr "VPS ßÞßàÐÒÚÐ"
+
+msgid "Priority"
+msgstr "¿àöÞàØâÕâ"
+
+msgid "Lifetime"
+msgstr "ÁâàÞÚ ×ÑÕàöÓÐÝÝï"
+
+msgid "File"
+msgstr "ÄÐÙÛ"
+
+msgid "First day"
+msgstr "¿ÕàèØÙ ÔÕÝì"
+
+msgid "Timers"
+msgstr "ÂÐÙÜÕàØ"
+
+msgid "Button$On/Off"
+msgstr "²ÚÛ/²ØÚÛ"
+
+msgid "Button$Info"
+msgstr "¦ÝäÞ"
+
+msgid "Delete timer?"
+msgstr "²ØÔÐÛØâØ âÐÙÜÕà?"
+
+msgid "Timer still recording - really delete?"
+msgstr "¹ÔÕ ×ÐßØá ßÞ âÐÙÜÕàã - ÔöÙáÝÞ ÒØÔÐÛØâØ?"
+
+msgid "Event"
+msgstr "¿ÕàÕÔÐçÐ"
+
+msgid "Button$Timer"
+msgstr "ÂÐÙÜÕà"
+
+msgid "Button$Record"
+msgstr "·ÐßØá"
+
+msgid "Button$Switch"
+msgstr "¿ÕàÕÚÛîçØâØ"
+
+msgid "What's on now?"
+msgstr "·ÐàÐ× Ò Õäöàö:"
+
+msgid "What's on next?"
+msgstr "´ÐÛö Ò ßàÞÓàÐÜö:"
+
+msgid "Button$Next"
+msgstr "´ÐÛö"
+
+msgid "Button$Now"
+msgstr "·ÐàÐ×"
+
+msgid "Button$Schedule"
+msgstr "¿àÞÓàÐÜÐ"
+
+msgid "Can't switch channel!"
+msgstr "½ÕÜÞÖÛØÒÞ ßÕàÕÚÛîçØâØ ÚÐÝÐÛ!"
+
+#, c-format
+msgid "Schedule - %s"
+msgstr "¿àÞÓàÐÜÐ - %s"
+
+#, c-format
+msgid "This event - %s"
+msgstr "Æï ßÕàÕÔÐçÐ - %s"
+
+msgid "This event - all channels"
+msgstr "Æï ßÕàÕÔÐçÐ - Òáö ÚÐÝÐÛØ"
+
+msgid "All events - all channels"
+msgstr "²áö ßÕàÕÔÐçö - Òáö ÚÐÝÐÛØ"
+
+#, c-format
+msgid "Please enter %d digits!"
+msgstr "½ÐâØáÝöâì %d æØäàØ"
+
+msgid "CAM not responding!"
+msgstr "CAM ÝÕ ÒöÔßÞÒöÔÐô"
+
+msgid "Recording info"
+msgstr "¿àÞ ×ÐßØá"
+
+msgid "Button$Play"
+msgstr "¿àÞÓàÐÒÐâØ"
+
+msgid "Button$Rewind"
+msgstr "½Ð×ÐÔ"
+
+msgid "Recordings"
+msgstr "·ÐßØáØ"
+
+msgid "Button$Open"
+msgstr "²öÔÚàØâØ"
+
+msgid "Commands"
+msgstr "ºÞÜÐÝÔØ"
+
+msgid "Error while accessing recording!"
+msgstr "¿ÞÜØÛÚÐ ÔÞáâãßã ÔÞ ×ÐßØáã!"
+
+msgid "Delete recording?"
+msgstr "²ØâÕàâØ ×ÐßØá?"
+
+msgid "Error while deleting recording!"
+msgstr "¿ÞÜØÛÚÐ ÒØÔÐÛÕÝÝï ×ÐßØáã!"
+
+msgid "Recording commands"
+msgstr "ºÞÜÐÝÔØ ×ÐßØáã"
+
+msgid "never"
+msgstr "ÝöÚÞÛØ"
+
+msgid "skin dependent"
+msgstr "×ÓöÔÝÞ × áâØÛÕÜ"
+
+msgid "always"
+msgstr "×ÐÒÖÔØ"
+
+msgid "OSD"
+msgstr "¼ÕÝî"
+
+msgid "Setup.OSD$Language"
+msgstr "¼ÞÒÐ"
+
+msgid "Setup.OSD$Skin"
+msgstr "ÁâØÛì"
+
+msgid "Setup.OSD$Theme"
+msgstr "ÂÕÜÐ"
+
+msgid "Setup.OSD$Left"
+msgstr "²öÔáâãß ×ÛöÒÐ"
+
+msgid "Setup.OSD$Top"
+msgstr "²öÔáâãß ×ÒÕàåã"
+
+msgid "Setup.OSD$Width"
+msgstr "ÈØàØÝÐ"
+
+msgid "Setup.OSD$Height"
+msgstr "²ØáÞâÐ"
+
+msgid "Setup.OSD$Message time (s)"
+msgstr "ÂàØÒÐÛöáâì ßÞÚÐ×ã ßÞÒöÔÞÜÛÕÝì (áÕÚ)"
+
+msgid "Setup.OSD$Use small font"
+msgstr "²ØÚÞàØáâÞÒãÒÐâØ ÜÐÛØÙ èàØäâ"
+
+msgid "Setup.OSD$Anti-alias"
+msgstr "·ÓÛÐÔÖØÒÐÝÝï èàØäâöÒ"
+
+msgid "Setup.OSD$Default font"
+msgstr "ÁâÐÝÔÐàâÝØÙ äÞÝâ"
+
+msgid "Setup.OSD$Small font"
+msgstr "¼ÐÛØÙ äÞÝâ"
+
+msgid "Setup.OSD$Fixed font"
+msgstr "ÄöÚáÞÒÐÝØÙ äÞÝâ"
+
+msgid "Setup.OSD$Default font size (pixel)"
+msgstr "ÀÐ×Üöà äÞÝâÐ ÔÛï ÜÕÝî (pixel)"
+
+msgid "Setup.OSD$Small font size (pixel)"
+msgstr "ÀÐ×Üöà ÜÐÛÞÓÞ äÞÝâÐ (pixel)"
+
+msgid "Setup.OSD$Fixed font size (pixel)"
+msgstr "ÀÐ×Üöà äöÚáÞÒÐÝÞÓÞ äÞÝâÐ (pixel)"
+
+msgid "Setup.OSD$Channel info position"
+msgstr "¿ÞÛÞÖÕÝÝï ÒöÚÝÐ öÝäÞàÜÐæö÷ ßàÞ ÚÐÝÐÛ"
+
+msgid "bottom"
+msgstr "ÒÝØ×ã"
+
+msgid "top"
+msgstr "ÒÒÕàåã"
+
+msgid "Setup.OSD$Channel info time (s)"
+msgstr "¿ÞÚÐ× öÝäÞàÜÐæö÷ ßàÞ ÚÐÝÐÛ (áÕÚ)"
+
+msgid "Setup.OSD$Info on channel switch"
+msgstr "¿ÞÚÐ×ãÒÐâØ öÝäÞàÜÐæöî ßàÞ ÚÐÝÐÛ"
+
+msgid "Setup.OSD$Timeout requested channel info"
+msgstr "¦ÝäÞàÜÐæöî ßàÞ ÚÐÝÐÛ ×ÐÚàØâØ"
+
+msgid "Setup.OSD$Scroll pages"
+msgstr "¿àÞÚàãâÚÐ áâÞàöÝÞÚ ÜÕÝî"
+
+msgid "Setup.OSD$Scroll wraps"
+msgstr "ÆØÚÛöçÝÐ ßàÞÚàãâÚÐ"
+
+msgid "Setup.OSD$Menu key closes"
+msgstr "ºÝÞßÚã ¼ÕÝî ×ÐÚàØâØ"
+
+msgid "Setup.OSD$Recording directories"
+msgstr "ºÐâÐÛÞÓØ ×ÑÕàöÓÐÝÝï ×ÐßØáöÒ"
+
+msgid "EPG"
+msgstr "ÂÕÛÕÓöÔ"
+
+msgid "Button$Scan"
+msgstr "ÁÚÐÝãàÞÒÐâØ"
+
+msgid "Setup.EPG$EPG scan timeout (h)"
+msgstr "·ÐâàØÜÚÐ áÚÐÝãÒÐÝÝï âÕÛÕÓöÔÐ (ç)"
+
+msgid "Setup.EPG$EPG bugfix level"
+msgstr "ÀöÒÕÝì ÚÞàÕÚæö÷ ßÞÜØÛÞÚ"
+
+msgid "Setup.EPG$EPG linger time (min)"
+msgstr "·ÑÕàöÓÐÝÝï ×ÐáâÐàöÛØå ÔÐÝØå (åÒ)"
+
+msgid "Setup.EPG$Set system time"
+msgstr "²âÐÝÞÒØâØ áØáâÕÜØÙ çÐá"
+
+msgid "Setup.EPG$Use time from transponder"
+msgstr "²ØÚÞàØáâÐâØ çÐá âàÐÝáßÞÝÔÕàÐ"
+
+#. TRANSLATORS: note the plural!
+msgid "Setup.EPG$Preferred languages"
+msgstr "±ÐÖÐÝö ÜÞÒØ (âÕÛÕÓöÔ)"
+
+#. TRANSLATORS: note the singular!
+msgid "Setup.EPG$Preferred language"
+msgstr "²ØÑàÐÝÞ"
+
+msgid "pan&scan"
+msgstr "ßÐÝÞàÐÜãÒÐâØ"
+
+msgid "letterbox"
+msgstr "×ÜÕÝèãÒÐâØ"
+
+msgid "center cut out"
+msgstr "ÞÑàö×ÐâØ ×ÑÞÚã"
+
+msgid "no"
+msgstr "Ýö"
+
+msgid "names only"
+msgstr "âöÛìÚØ ÝÐ×ÒØ"
+
+msgid "PIDs only"
+msgstr "ÂöÛìÚØ PIDØ"
+
+msgid "names and PIDs"
+msgstr "ÝÐ×ÒØ ö PIDØ"
+
+msgid "add new channels"
+msgstr "ÔÞÔÐâØ ÝÞÒö ÚÐÝÐÛØ"
+
+msgid "add new transponders"
+msgstr "ÔÞÔÐâØ ÝÞÒö âàÐÝáßÞÝÔÕàØ"
+
+msgid "DVB"
+msgstr "DVB"
+
+msgid "Setup.DVB$Primary DVB interface"
+msgstr "¾áÝÞÒÝØÙ DVB-ßàØáâàöÙ"
+
+msgid "Setup.DVB$Video format"
+msgstr "ÄÞàÜÐâ ÒöÔÕÞ"
+
+msgid "Setup.DVB$Video display format"
+msgstr "ÈØàÞÚÞÕÚàÐÝÕ ×ÞÑàÐÖÕÝÝï"
+
+msgid "Setup.DVB$Use Dolby Digital"
+msgstr "²ÚÛîçØâØ Dolby Digital"
+
+msgid "Setup.DVB$Update channels"
+msgstr "¾ÝÞÒÛîÒÐâØ ÝÐáâàÞÙÚØ ÚÐÝÐÛöÒ"
+
+msgid "Setup.DVB$Audio languages"
+msgstr "±ÐÖÐÝö ÜÞÒØ (×ÒãÚ)"
+
+msgid "Setup.DVB$Audio language"
+msgstr "²ØÑàÐÝÞ"
+
+msgid "Setup.DVB$Display subtitles"
+msgstr "¿ÞÚÐ×ãÒÐâØ áãÑâØâàØ"
+
+msgid "Setup.DVB$Subtitle languages"
+msgstr "¼ÞÒØ áãÑâØâàöÒ"
+
+msgid "Setup.DVB$Subtitle language"
+msgstr "¼ÞÒÐ áãÑâØâàöÒ"
+
+msgid "Setup.DVB$Subtitle offset"
+msgstr "²öÔáâãß áãÑâØâàöÒ"
+
+msgid "Setup.DVB$Subtitle foreground transparency"
+msgstr ""
+
+msgid "Setup.DVB$Subtitle background transparency"
+msgstr ""
+
+msgid "LNB"
+msgstr "ºÞÝÒÕàâÕà"
+
+msgid "Setup.LNB$Use DiSEqC"
+msgstr "²ØÚÞàØáâÞÒãÒÐâØ DiSEqC"
+
+msgid "Setup.LNB$SLOF (MHz)"
+msgstr "ÇÐáâÞâÐ ßÕàÕÚÛîçÐÝÝï (SLOF) (¼³æ)"
+
+msgid "Setup.LNB$Low LNB frequency (MHz)"
+msgstr "½ØÖÝï çÐáâÞâÐ ÚÞÝÒÕàâÕàÐ (¼³æ)"
+
+msgid "Setup.LNB$High LNB frequency (MHz)"
+msgstr "²ÕàåÝï çÐáâÞâÐ ÚÞÝÒÕàâÕàÐ (¼³æ)"
+
+msgid "CAM reset"
+msgstr "¿ÕàÕ×ÐÒÐÝâÐÖÕÝÝï CAM"
+
+msgid "CAM present"
+msgstr "CAM ßàØáãâÝöÙ"
+
+msgid "CAM ready"
+msgstr "CAM ÓÞâÞÒØÙ"
+
+msgid "CAM"
+msgstr "ÃÜÞÒÝØÙ ÔÞáâãß"
+
+msgid "Button$Menu"
+msgstr "¼ÕÝî"
+
+msgid "Button$Reset"
+msgstr "ÁÚØÝãâØ"
+
+msgid "Opening CAM menu..."
+msgstr "²öÔÚàØÒÐî ÜÕÝî ÜÞÔãÛï ãÜÞÒÝÞÓÞ ÔÞáâãßã (CAM)"
+
+msgid "Can't open CAM menu!"
+msgstr "¼ÕÝî CAM-ÜÞÔãÛï ÝÕÔÞáâãßÝÕ!"
+
+msgid "CAM is in use - really reset?"
+msgstr "CAM ÒØÚÞàØáâÞÒãôâìáï - ÔöÙáÝÞ ßÕàÕ×ÐÒÐÝâÐÖØâØ?"
+
+msgid "Can't reset CAM!"
+msgstr "¿ÞÜØÛÚÐ ßÕàÕ×ÐßãáÚã CAM-ÜÞÔãÛï!"
+
+msgid "Recording"
+msgstr "·ÐßØá"
+
+msgid "Setup.Recording$Margin at start (min)"
+msgstr "²ØßÕàÕÔÖÕÝÝï ßÞçÐâÚã ×ÐßØáã (åÒ)"
+
+msgid "Setup.Recording$Margin at stop (min)"
+msgstr "·Ðßö×ÝÕÝÝï ×ãßØÝÚØ ×ÐßØáã (åÒ)"
+
+msgid "Setup.Recording$Primary limit"
+msgstr "¼öÝ. ßàöÞàØâÕâ ×ÐåÞßÛÕÝÝï ÞáÝ. ßàØáâàÞî"
+
+msgid "Setup.Recording$Default priority"
+msgstr "¿àöÞàØâÕâ âÐÙÜÕàÐ ßÞ ×ÐÜÞÒçãÒÐÝÝî"
+
+msgid "Setup.Recording$Default lifetime (d)"
+msgstr "ÁâàÞÚ ×ÑÕàöÓÐÝÝï ×ÐßØáã ßÞ ×ÐÜÞÒçãÒÐÝÝî (Ô)"
+
+msgid "Setup.Recording$Pause priority"
+msgstr "¿àöÞàØâÕâ ÒöÔÚÛÐÔÕÝÞÓÞ ßÕàÕÓÛïÔã"
+
+msgid "Setup.Recording$Pause lifetime (d)"
+msgstr "·ÑÕàöÓÐÝÝï ÒöÔÚÛÐÔÕÝÞÓÞ ßÕàÕÓÛïÔã (Ô)"
+
+msgid "Setup.Recording$Use episode name"
+msgstr "³àãßãÒÐâØ äÐÙÛØ ßÞ Õßö×ÞÔÐå"
+
+msgid "Setup.Recording$Use VPS"
+msgstr "²ØÚÞàØáâÞÒãÒÐâØ áØÓÝÐÛØ VPS"
+
+msgid "Setup.Recording$VPS margin (s)"
+msgstr "±ãäÕàÝØÙ çÐá VPS (áÕÚ)"
+
+msgid "Setup.Recording$Mark instant recording"
+msgstr "²öÔÜöçÐâØ ×àÞÑÛÕÝö ÒàãçÝã ×ÐßØáØ"
+
+msgid "Setup.Recording$Name instant recording"
+msgstr "ÁåÕÜÐ ÝÐÙÜÕÝãÒÐÝì àãçÝØå ×ÐßØáöÒ"
+
+msgid "Setup.Recording$Instant rec. time (min)"
+msgstr "¿àÞâïÖÝöáâì àãçÝÞÓÞ ×ÐßØáã (åÒ)"
+
+msgid "Setup.Recording$Max. video file size (MB)"
+msgstr "¼ÐÚá. àÐ×Üöà ÒöÔÕÞäÐÙÛã (¼Ñ)"
+
+msgid "Setup.Recording$Split edited files"
+msgstr "´öÛØâØ ÒöÔàÕÔÐÚâÞÒÐÝö äÐÙÛØ"
+
+msgid "Replay"
+msgstr "¿ÕàÕÓÛïÔ"
+
+msgid "Setup.Replay$Multi speed mode"
+msgstr "±ÐÓÐâÞèÒØÔÚöáÝØÙ àÕÖØÜ"
+
+msgid "Setup.Replay$Show replay mode"
+msgstr "²öÞÑàÐÖÐâØ àÕÖØÜ ßÕàÕÓÛïÔã"
+
+msgid "Setup.Replay$Resume ID"
+msgstr "ID ßÕàÕÓÛïÔã"
+
+msgid "Miscellaneous"
+msgstr "Àö×ÝÕ"
+
+msgid "Setup.Miscellaneous$Min. event timeout (min)"
+msgstr "¼öÝ. çÐá ÞçöÚãÒÐÝÝï ßÞÔö÷ (åÒ)"
+
+msgid "Setup.Miscellaneous$Min. user inactivity (min)"
+msgstr "¼öÝ. çÐá ÞçöÚãÒÐÝÝï ÒÒÞÔã (åÒ)"
+
+msgid "Setup.Miscellaneous$SVDRP timeout (s)"
+msgstr "·ÐâàØÜÚÚÐ ÞÑàØÒã ×'ôÔÝÐÝÝï SVDRP (áÕÚ)"
+
+msgid "Setup.Miscellaneous$Zap timeout (s)"
+msgstr "·ÐâàØÜÚÐ ßÕàÕÚÛîçÐÝÝï ÚÐÝÐÛã (áÕÚ)"
+
+msgid "Setup.Miscellaneous$Channel entry timeout (ms)"
+msgstr "·ÐâàØÜÚÐ çÐáã ÔÛï ÒßàÞÒÐÔÖÕÝÝï ÚÐÝÐÛã (ms)"
+
+msgid "Setup.Miscellaneous$Initial channel"
+msgstr "ºÐÝÐÛ ßàØ ÒÚÛîçÐÝÝî"
+
+msgid "Setup.Miscellaneous$as before"
+msgstr "ïÚ àÐÝöèÕ"
+
+msgid "Setup.Miscellaneous$Initial volume"
+msgstr "³ãçÝöáâì ßàØ ÒÚÛîçÕÝÝö"
+
+msgid "Plugins"
+msgstr "¼ÞÔãÛö àÞ×èØàÕÝÝï"
+
+msgid "This plugin has no setup parameters!"
+msgstr "¼ÞÔãÛì ÝÕ ÜÐô ßÐàÐÜÕâàöÒ ÝÐÛÐèâãÒÐÝì!"
+
+msgid "Setup"
+msgstr "½ÐÛÐèâãÒÐÝÝï"
+
+msgid "Restart"
+msgstr "¿ÕàÕ×ÐßãáâØâØ"
+
+msgid "Really restart?"
+msgstr "´öÙáÝÞ ßÕàÕ×ÐßãáâØâØ?"
+
+#. TRANSLATORS: note the leading and trailing blanks!
+msgid " Stop recording "
+msgstr " ·ãßØÝØâØ ×ÐßØá "
+
+msgid "Schedule"
+msgstr "ÂÕÛÕÓöÔ"
+
+msgid "VDR"
+msgstr "VDR"
+
+msgid "Disk"
+msgstr "´ØáÚ"
+
+msgid "free"
+msgstr "ÒöÛìÝÞ"
+
+#. TRANSLATORS: note the leading blank!
+msgid " Stop replaying"
+msgstr " ·ãßØÝØâØ ßàÞÓàÐÒÐÝÝï"
+
+msgid "Button$Audio"
+msgstr "¼ÞÒÐ"
+
+msgid "Button$Pause"
+msgstr "¿Ðã×Ð"
+
+msgid "Button$Stop"
+msgstr "ÁâÞß"
+
+msgid "Button$Resume"
+msgstr "¿àÞÔÞÒÖØâØ"
+
+#. TRANSLATORS: note the leading blank!
+msgid " Cancel editing"
+msgstr " ¿ÕàÕàÒÐâØ ÜÞÝâÐÖ ×ÐßØáã"
+
+msgid "Stop recording?"
+msgstr "¿àØßØÝØâØ ×ÐßØá?"
+
+msgid "Cancel editing?"
+msgstr "¿ÕàÕàÒÐâØ àÕÔÐÚâãÒÐÝÝï?"
+
+msgid "No audio available!"
+msgstr "²öÔáãâÝöÙ ×ÒãÚ!"
+
+msgid "No subtitles"
+msgstr "½ÕÜÐô áãÑâØâàöÒ"
+
+msgid "Button$Subtitles"
+msgstr "ÁãÑâØâàØ"
+
+msgid "No subtitles available!"
+msgstr "ÁãÑâØâàöÒ ÝÕÜÐô!"
+
+msgid "Not enough disk space to start recording!"
+msgstr "½ÕÔÞáâÐâÝìÞ Üöáæï ÝÐ ÔØáÚã ÔÛï ßÞçÐâÚã ×ÐßØáã"
+
+msgid "No free DVB device to record!"
+msgstr "½ÕÜÐô ÒöÛìÝÞÓÞ DVB-ßàØáâàÞî ÔÛï ×ÐßØáã!"
+
+msgid "Pausing live video..."
+msgstr "ÀÕÖØÜ ÒöÔÚÛÐÔÕÝÞÓÞ ßÕàÕÓÛïÔã..."
+
+#. TRANSLATORS: note the trailing blank!
+msgid "Jump: "
+msgstr "¿ÕàÕÙâØ: "
+
+msgid "No editing marks defined!"
+msgstr "½Õ ×ÐÔÐÝÞ ÜöâÞÚ ÔÛï ÜÞÝâÐÖã!"
+
+msgid "Can't start editing process!"
+msgstr "½ÕÜÞÖÛØÒÞ ßÞçÐâØ ÜÞÝâÐÖ ×ÐßØáã!"
+
+msgid "Editing process started"
+msgstr "¼ÞÝâÐÖ ×ÐßØáã ßÞçÐÒáï"
+
+msgid "Editing process already active!"
+msgstr "¿àÞæÕá ÒöÔÕÞÜÞÝâÐÖã ÒÖÕ ×ÐßãéÕÝØÙ!"
+
+#, fuzzy
+msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
+msgstr " abcdefghijklmnopqrstuvwxyzÐÑÒÓÔÕôñÖ×Øö÷ÙÚÛÜÝÞßàáâãäåæçèéêëìîï0123456789-.#~,/_@"
+
+msgid "yes"
+msgstr "âÐÚ"
+
+#, fuzzy
+msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
+msgstr " 0\t-.#~,/_@1\tabcÐÑÒÓ2\tdefÔÕôñÖ×3\tghiØö÷ÙÚÛ4\tjklÜÝÞ5\tmnoßàá6\tpqrsâãäå7\ttuvæçèéê8\twxyzëìíîï9"
+
+msgid "Button$ABC/abc"
+msgstr "°±²/ÐÑÒ"
+
+msgid "Button$Overwrite"
+msgstr "·ÐÜöÝÐ"
+
+msgid "Button$Insert"
+msgstr "²áâÐÒÚÐ"
+
+msgid "Plugin"
+msgstr "¼ÞÔãÛì"
+
+msgid "Up/Dn for new location - OK to move"
+msgstr "½ÐâØáÚÐÙâÕ \"²ÒÕàå\"/\"²ÝØ×\" ÔÛï ÒØÑÞàã ßÞ×Øæö÷, Ð ßÞâöÜ \"OK\""
+
+msgid "Channel locked (recording)!"
+msgstr "ºÐÝÐÛ ×ÐÑÛÞÚÞÒÐÝÞ (ÙÔÕ ×ÐßØá)!"
+
+msgid "Low disk space!"
+msgstr "½ÕÔÞáâÐâÝìÞ Üöáæï ÝÐ ÔØáÚã!"
+
+msgid "Can't shutdown - option '-s' not given!"
+msgstr "²ØÚÛîçÕÝÝÝï ÝÕÜÞÖÛØÒÕ - ÝÕ ×ÐÔÐÝÞ ßÐàÐÜÕâà '-s'!"
+
+msgid "Editing - shut down anyway?"
+msgstr "¹ÔÕ ÜÞÝâÐÖ - ÔöÙáÝÞ ÒØÚÛîçØâØ?"
+
+msgid "Recording - shut down anyway?"
+msgstr "¹ÔÕ ×ÐßØá - ÔöÙáÝÞ ÒØÚÛîçØâØ?"
+
+#, c-format
+msgid "Recording in %ld minutes, shut down anyway?"
+msgstr "ÇÕàÕ× %ld åÒØÛØÝ ßÞçÝÕâìáï ×ÐßØá - ÔöÙáÝÞ ÒØÚÛîçØâØ?"
+
+msgid "shut down anyway?"
+msgstr "ÔöÙáÝÞ ÒØÚÛîçØâØ?"
+
+#, c-format
+msgid "Plugin %s wakes up in %ld min, continue?"
+msgstr "Plugin %s ßàÞáÝÕâìáï çÕàÕ× %ld åÒØÛØÝ - ßàÞÔÞÒÖØâØ?"
+
+msgid "Editing - restart anyway?"
+msgstr "¿àÞæÕá ÜÞÝâÐÖã - ÔöÙáÝÞ ßÕàÕ×ÐßãáâØâØ?"
+
+msgid "Recording - restart anyway?"
+msgstr "¹ÔÕ ×ÐßØá - ÔöÙáÝÞ ßÕàÕ×ÐßãáâØâØ?"
+
+msgid "restart anyway?"
+msgstr "ÔöÙáÝÞ ßÕàÕ×ÐßãáâØâØ?"
+
+#. TRANSLATORS: note the trailing blank!
+msgid "Volume "
+msgstr "³ãçÝöáâì "
+
+msgid "Classic VDR"
+msgstr "ºÛÐáØçÝØÙ"
+
+msgid "ST:TNG Panels"
+msgstr "ST:TNG ßÐÝÕÛö"
+
+#. TRANSLATORS: the first character of each weekday, beginning with monday
+msgid "MTWTFSS"
+msgstr "¿²ÁÇ¿Á½"
+
+#. TRANSLATORS: abbreviated weekdays, beginning with monday (must all be 3 letters!)
+msgid "MonTueWedThuFriSatSun"
+msgstr "¿ÞÝ²âàÁàÔÇâÒ¿âÝÁãÑ½ÕÔ"
+
+msgid "Monday"
+msgstr "¿ÞÝÕÔöÛÞÚ"
+
+msgid "Tuesday"
+msgstr "²öÒâÞàÞÚ"
+
+msgid "Wednesday"
+msgstr "ÁÕàÕÔÐ"
+
+msgid "Thursday"
+msgstr "ÇÕâÒÕà"
+
+msgid "Friday"
+msgstr "¿'ïâÝØæï"
+
+msgid "Saturday"
+msgstr "ÁãÑÞâÐ"
+
+msgid "Sunday"
+msgstr "½ÕÔöÛï"
+
+msgid "Upcoming VPS recording!"
+msgstr "VPS-·ÐßØá áÚÞàÞ ßÞçÝÕâìáï"
+
+msgid "Recording started"
+msgstr "·ÐßØá ßÞçÐÒáï"
+
+msgid "VDR will shut down later - press Power to force"
+msgstr "VDR ÒØÚÛîçØâìáï ßßö×ÝöèÕ - ÝÐâØáÝöâì Power ÔÛï ßàØèÒØÔèÕÝÝï"
+
+msgid "Press any key to cancel shutdown"
+msgstr "½ÐâØáÝöâì ÑãÔì-ïÚã ÚÝÞßÚã ÔÛï ÒöÔÜöÝØ ÒØÚÛîçÕÝÝï."
+
+msgid "Switching primary DVB..."
+msgstr "·ÜöÝÐ ÞáÝÞÒÝÞÓÞ DVB-ßàØáâàÞî..."
+
+msgid "Editing process failed!"
+msgstr "¿ÞÜØÛÚÐ ßöÔ çÐá ÜÞÝâÐÖã ×ÐßØáã!"
+
+msgid "Editing process finished"
+msgstr "¼ÞÝâÐÖ ×ÐÚöÝçÕÝÞ"
+
+msgid "Press any key to cancel restart"
+msgstr "½ÐâØáÝöâì ÑãÔì-ïÚã ÚÝÞßÚã ÔÛï ÒöÔÜöÝØ ßÕàÕ×ÐÒÐÝâÐÖÕÝÝï"
+
+#, c-format
+msgid "VDR will shut down in %s minutes"
+msgstr "VDR ÒØÚÛîçØâìáï çÕàÕ× %s åÒØÛØÝ"
diff -ruN vdr-1.5.10/recording.c vdr-1.5.11/recording.c
--- vdr-1.5.10/recording.c	2007-10-14 12:21:54.000000000 +0200
+++ vdr-1.5.11/recording.c	2007-11-04 12:17:43.000000000 +0100
@@ -4,10 +4,11 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: recording.c 1.156 2007/10/14 10:21:54 kls Exp $
+ * $Id: recording.c 1.157 2007/11/04 11:17:43 kls Exp $
  */
 
 #include "recording.h"
+#include <ctype.h>
 #include <dirent.h>
 #include <errno.h>
 #include <fcntl.h>
@@ -448,12 +449,14 @@
                 case '/': *p = '~'; break;
                 // encoded characters:
                 case '#': {
-                     if (strlen(p) > 2) {
+                     if (strlen(p) > 2 && isxdigit(*(p + 1)) && isxdigit(*(p + 2))) {
                         char buf[3];
                         sprintf(buf, "%c%c", *(p + 1), *(p + 2));
                         unsigned char c = strtol(buf, NULL, 16);
-                        *p = c;
-                        memmove(p + 1, p + 3, strlen(p) - 2);
+                        if (c) {
+                           *p = c;
+                           memmove(p + 1, p + 3, strlen(p) - 2);
+                           }
                         }
                      }
                      break;
diff -ruN vdr-1.5.10/remux.c vdr-1.5.11/remux.c
--- vdr-1.5.10/remux.c	2007-09-22 14:08:22.000000000 +0200
+++ vdr-1.5.11/remux.c	2007-11-03 15:18:07.000000000 +0100
@@ -11,7 +11,7 @@
  * The cRepacker family's code was originally written by Reinhard Nissl <rnissl@gmx.de>,
  * and adapted to the VDR coding style by Klaus.Schmidinger@cadsoft.de.
  *
- * $Id: remux.c 1.59 2007/09/22 12:08:22 kls Exp $
+ * $Id: remux.c 1.60 2007/11/03 14:18:07 kls Exp $
  */
 
 #include "remux.h"
@@ -1427,6 +1427,7 @@
 #define MMAX_PLENGTH (64*MAX_PLENGTH) // some stations send PES packets that are extremely large, e.g. DVB-T in Finland or HDTV 1920x1080
 
 #define IPACKS 2048
+#define SUBTITLE_PACKS  KILOBYTE(32)
 
 // Start codes:
 #define SC_SEQUENCE 0xB3  // "sequence header code"
@@ -1911,7 +1912,7 @@
   if (SPids) {
      int n = 0;
      while (*SPids && numTracks < MAXTRACKS && n < MAXSPIDS)
-           ts2pes[numTracks++] = new cTS2PES(*SPids++, resultBuffer, IPACKS, 0x00, 0x20 + n++);
+           ts2pes[numTracks++] = new cTS2PES(*SPids++, resultBuffer, SUBTITLE_PACKS, 0x00, 0x20 + n++);
      }
 }
 
@@ -2009,7 +2010,7 @@
          break;
       if (Data[i] != TS_SYNC_BYTE)
          break;
-      if (resultBuffer->Free() < 2 * IPACKS)
+      if (resultBuffer->Free() < SUBTITLE_PACKS)
          break; // A cTS2PES might write one full packet and also a small rest
       int pid = GetPid(Data + i + 1);
       if (Data[i + 3] & 0x10) { // got payload
diff -ruN vdr-1.5.10/shutdown.c vdr-1.5.11/shutdown.c
--- vdr-1.5.10/shutdown.c	2007-02-24 18:24:11.000000000 +0100
+++ vdr-1.5.11/shutdown.c	2007-10-19 16:33:40.000000000 +0200
@@ -6,7 +6,7 @@
  *
  * Original version written by Udo Richter <udo_richter@gmx.de>.
  *
- * $Id: shutdown.c 1.1 2007/02/24 17:24:11 kls Exp $
+ * $Id: shutdown.c 1.2 2007/10/19 14:33:40 kls Exp $
  */
 
 #include "shutdown.h"
@@ -110,9 +110,11 @@
      // Set inactive after MinUserInactivity
      SetUserInactiveTimeout();
      }
-  else
+  else {
      // Set inactive from now on
+     dsyslog("scheduled wakeup time in %ld minutes, assuming automatic start of VDR", Delta / 60);
      SetUserInactive();
+     }
 }
 
 void cShutdownHandler::SetShutdownCommand(const char *ShutdownCommand)
@@ -126,8 +128,13 @@
   time_t Delta = WakeupTime ? WakeupTime - time(NULL) : 0;
   cString cmd = cString::sprintf("%s %ld %ld %d \"%s\" %d", shutdownCommand, WakeupTime, Delta, Channel, *strescape(File, "\"$"), UserShutdown);
   isyslog("executing '%s'", *cmd);
-  if (SystemExec(cmd, true) == 0)
+  int Status = SystemExec(cmd, true);
+  if (!WIFEXITED(Status) || WEXITSTATUS(Status))
+     esyslog("SystemExec() failed with status %d", Status);
+  else {
      Setup.NextWakeupTime = WakeupTime; // Remember this wakeup time for comparison on reboot
+     Setup.Save();
+     }
 }
 
 void cShutdownHandler::SetUserInactiveTimeout(int Seconds, bool Force)
diff -ruN vdr-1.5.10/thread.c vdr-1.5.11/thread.c
--- vdr-1.5.10/thread.c	2007-08-24 15:15:48.000000000 +0200
+++ vdr-1.5.11/thread.c	2007-10-19 16:30:13.000000000 +0200
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: thread.c 1.62 2007/08/24 13:15:48 kls Exp $
+ * $Id: thread.c 1.63 2007/10/19 14:30:13 kls Exp $
  */
 
 #include "thread.h"
@@ -518,7 +518,7 @@
      if (Detached) {
         // Fork again and let first child die - grandchild stays alive without parent
         if (fork() > 0)
-           exit(0);
+           _exit(0);
         // Start a new session
         pid_t sid = setsid();
         if (sid < 0)
diff -ruN vdr-1.5.10/tools.c vdr-1.5.11/tools.c
--- vdr-1.5.10/tools.c	2007-10-13 14:00:21.000000000 +0200
+++ vdr-1.5.11/tools.c	2007-11-03 16:34:07.000000000 +0100
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: tools.c 1.136 2007/10/13 12:00:21 kls Exp $
+ * $Id: tools.c 1.137 2007/11/03 15:34:07 kls Exp $
  */
 
 #include "tools.h"
@@ -896,7 +896,7 @@
      time(&t);
   struct tm tm_r;
   tm *tm = localtime_r(&t, &tm_r);
-  snprintf(buffer, sizeof(buffer), "%s %02d.%02d %02d:%02d", *WeekDayName(tm->tm_wday), tm->tm_mday, tm->tm_mon + 1, tm->tm_hour, tm->tm_min);
+  snprintf(buffer, sizeof(buffer), "%s %02d.%02d. %02d:%02d", *WeekDayName(tm->tm_wday), tm->tm_mday, tm->tm_mon + 1, tm->tm_hour, tm->tm_min);
   return buffer;
 }
 
diff -ruN vdr-1.5.10/vdr.c vdr-1.5.11/vdr.c
--- vdr-1.5.10/vdr.c	2007-08-26 16:36:48.000000000 +0200
+++ vdr-1.5.11/vdr.c	2007-11-03 15:46:29.000000000 +0100
@@ -22,7 +22,7 @@
  *
  * The project's page is at http://www.cadsoft.de/vdr
  *
- * $Id: vdr.c 1.300 2007/08/26 14:36:48 kls Exp $
+ * $Id: vdr.c 1.302 2007/11/03 14:46:29 kls Exp $
  */
 
 #include <getopt.h>
@@ -181,6 +181,7 @@
 
 #define DEFAULTSVDRPPORT 2001
 #define DEFAULTWATCHDOG     0 // seconds
+#define DEFAULTCONFDIR CONFDIR
 #define DEFAULTPLUGINDIR PLUGINDIR
 #define DEFAULTEPGDATAFILENAME "epg.data"
 
@@ -382,8 +383,7 @@
      if (DisplayHelp) {
         printf("Usage: vdr [OPTIONS]\n\n"          // for easier orientation, this is column 80|
                "  -a CMD,   --audio=CMD    send Dolby Digital audio to stdin of command CMD\n"
-               "  -c DIR,   --config=DIR   read config files from DIR (default is to read them\n"
-               "                           from the video directory)\n"
+               "  -c DIR,   --config=DIR   read config files from DIR (default: %s)\n"
                "  -d,       --daemon       run in daemon mode\n"
                "  -D NUM,   --device=NUM   use only the given DVB device (NUM = 0, 1, 2...)\n"
                "                           there may be several -D options (default: all DVB\n"
@@ -425,6 +425,7 @@
                "  -w SEC,   --watchdog=SEC activate the watchdog timer with a timeout of SEC\n"
                "                           seconds (default: %d); '0' disables the watchdog\n"
                "\n",
+               DEFAULTCONFDIR,
                DEFAULTEPGDATAFILENAME,
                DEFAULTPLUGINDIR,
                LIRC_DEVICE,
@@ -523,6 +524,7 @@
   int PreviousChannel[2] = { 1, 1 };
   int PreviousChannelIndex = 0;
   time_t LastChannelChanged = time(NULL);
+  time_t LastInteract = 0;
   int MaxLatencyTime = 0;
   bool InhibitEpgScan = false;
   bool IsInfoMenu = false;
@@ -536,7 +538,7 @@
   // Configuration data:
 
   if (!ConfigDirectory)
-     ConfigDirectory = CONFDIR;
+     ConfigDirectory = DEFAULTCONFDIR;
 
   cPlugin::SetConfigDirectory(ConfigDirectory);
   cThemes::SetThemesDirectory(AddDirectory(ConfigDirectory, "themes"));
@@ -1069,6 +1071,7 @@
           }
         Interact = Menu ? Menu : cControl::Control(); // might have been closed in the mean time
         if (Interact) {
+           LastInteract = Now;
            eOSState state = Interact->ProcessKey(key);
            if (state == osUnknown && Interact != cControl::Control()) {
               if (ISMODELESSKEY(key) && cControl::Control()) {
@@ -1195,7 +1198,7 @@
               ShutdownHandler.countdown.Cancel();
            }
 
-        if (!Interact && !cRecordControls::Active() && !cCutter::Active() && !Interface->HasSVDRPConnection() && (Now - cRemote::LastActivity()) > ACTIVITYTIMEOUT) {
+        if ((Now - LastInteract) > ACTIVITYTIMEOUT && !cRecordControls::Active() && !cCutter::Active() && !Interface->HasSVDRPConnection() && (Now - cRemote::LastActivity()) > ACTIVITYTIMEOUT) {
            // Handle housekeeping tasks
 
            // Shutdown:
