diff options
| -rw-r--r-- | html/alist.tmpl | 2 | ||||
| -rw-r--r-- | html/clist.tmpl | 4 | ||||
| -rw-r--r-- | html/help.tmpl | 2 | ||||
| -rw-r--r-- | html/movetimerlist.tmpl | 4 | ||||
| -rw-r--r-- | html/rdisplay.tmpl | 2 | ||||
| -rw-r--r-- | html/rlist.tmpl | 2 | ||||
| -rw-r--r-- | html/tlist.tmpl | 4 | ||||
| -rw-r--r-- | html/ulist.tmpl | 2 | ||||
| -rw-r--r-- | lib/XXV/MODULES/CHANNELS.pm | 2 | ||||
| -rw-r--r-- | lib/XXV/MODULES/MOVETIMER.pm | 24 | ||||
| -rw-r--r-- | lib/XXV/MODULES/RECORDS.pm | 19 | ||||
| -rw-r--r-- | lib/XXV/MODULES/TIMERS.pm | 233 | ||||
| -rw-r--r-- | lib/XXV/OUTPUT/Html.pm | 21 | ||||
| -rw-r--r-- | locale/de.po | 302 | ||||
| -rw-r--r-- | locale/de/LC_MESSAGES/xxv.mo | bin | 73237 -> 73026 bytes |
15 files changed, 342 insertions, 281 deletions
diff --git a/html/alist.tmpl b/html/alist.tmpl index 675d224..54c7442 100644 --- a/html/alist.tmpl +++ b/html/alist.tmpl @@ -47,7 +47,7 @@ <?% END %?> <?% IF allow('adelete') %?> <a title="<?% gettext("Delete autotimer") %?>" - href="javascript:sure(document.Autotimer, '<?% gettext("You will delete this autotimer") %?> : <?% escape(zeile.2) %?>','?cmd=adelete&data=<?% zeile.0 %?>')"> + href="javascript:sure(document.Autotimer, '<?% gettext("Would you like to delete this autotimer?") %?>\n<?% escape(zeile.2) %?>','?cmd=adelete&data=<?% zeile.0 %?>')"> [<?% gettext("Del") %?>] </a> <?% END %?> diff --git a/html/clist.tmpl b/html/clist.tmpl index ea5df04..6f9862c 100644 --- a/html/clist.tmpl +++ b/html/clist.tmpl @@ -36,7 +36,7 @@ <a href="?cmd=cedit&data=<?% id %?>" title="<?% gettext("Edit channel") %?>">[E]</a> <?%- END -%?> <?%- IF allow('cdelete') -%?> -<a href="javascript:sure(document.KanalListe, '<?% gettext("You will delete this channel") %?> : \'<?% escape(name) %?>\' ?','?cmd=cdelete&data=<?% POS %?>')" +<a href="javascript:sure(document.KanalListe, '<?% gettext("Would you like to delete this channel?") %?>\n\'<?% escape(name) %?>\' ?','?cmd=cdelete&data=<?% POS %?>')" title="<?% gettext("Delete channel") %?>" >[D]</a> <?%- END -%?> <?% END %?> @@ -118,7 +118,7 @@ <a href="#" onclick="selAll(document.clist,1)">[<?% gettext("Select all") %?>]</a> <a href="#" onclick="selAll(document.clist,0)">[<?% gettext("Unselect all") %?>]</a> <a href="#" onclick="reverse(document.clist)">[<?% gettext("Reverse select") %?>]</a> - <a href="#" onclick="Delete('<?% gettext("You would delete follow channels?") %?>', + <a href="#" onclick="Delete('<?% gettext("Would you like to delete these channels?") %?>', '<?% gettext("Nothing selected!") %?>','cdelete',document.clist)"> [<?% gettext("Delete channels") %?>] </a> diff --git a/html/help.tmpl b/html/help.tmpl index 0748f34..809c5ef 100644 --- a/html/help.tmpl +++ b/html/help.tmpl @@ -63,7 +63,7 @@ var control = new WebFXTreeItem("<?% gettext("Programming",15) %?>","?cmd=tlist" <?% END %?> <?% IF allow('rlist') || allow('mlist') || allow('mllist') %?> -var media = new WebFXTreeItem("<?% gettext("Media",15) %?>","?cmd=rlist",tree); +var media = new WebFXTreeItem("<?% gettext("Media content",15) %?>","?cmd=rlist",tree); <?% IF allow('rlist') %?>media.add(new WebFXTreeItem("<?% gettext("Recordings",12) %?>", "?cmd=rlist"));<?% END %?> <?% IF allow('mlist') %?>media.add(new WebFXTreeItem("<?% gettext("Music",12) %?>", "?cmd=mlist"));<?% END %?> <?% IF allow('mllist') %?>media.add(new WebFXTreeItem("<?% gettext("Media library",12) %?>","?cmd=mllist"));<?% END %?> diff --git a/html/movetimerlist.tmpl b/html/movetimerlist.tmpl index 924a581..11de8d4 100644 --- a/html/movetimerlist.tmpl +++ b/html/movetimerlist.tmpl @@ -11,7 +11,7 @@ <?% END %?> <?% IF allow('movetimerdelete') %?> <a title="<?% gettext("Delete rule to move timer") %?>" - href="javascript:sure(document.movetimerlist, '<?% gettext("You will delete this rule") %?>\n<?% escape(source) %?> - <?% escape(destination) %?>','?cmd=movetimerdelete&data=',<?% id %?>)"> + href="javascript:sure(document.movetimerlist, '<?% gettext("Would you like to delete this rule?") %?>\n<?% escape(source) %?> - <?% escape(destination) %?>','?cmd=movetimerdelete&data=',<?% id %?>)"> [D] </a> <?% END %?> @@ -61,7 +61,7 @@ <?% END %?> <?% IF allow('movetimerdelete') %?> <a title="<?% gettext("Delete rules to move timer") %?>" - href="#" onClick="Delete('<?% gettext("You would delete follow rules?") %?>','<?% gettext("Nothing selected!") %?>','movetimerdelete',document.movetimerlist)"> + href="#" onClick="Delete('<?% gettext("Would you like to delete these rules?") %?>','<?% gettext("Nothing selected!") %?>','movetimerdelete',document.movetimerlist)"> [<?% gettext("Delete rules to move timer",25) %?>]</a> <?% END %?> <?% END %?> diff --git a/html/rdisplay.tmpl b/html/rdisplay.tmpl index e1833fa..973a5ec 100644 --- a/html/rdisplay.tmpl +++ b/html/rdisplay.tmpl @@ -73,7 +73,7 @@ <td colspan="2"><b> <a href="?cmd=rlist">[<?% gettext("Recording list") %?>]</a> <?% IF allow('rdelete') %?> - <a href="javascript:sure(document.RecordDisplay, '<?% gettext("Do you really want to delete these recordings?") %?>?','?cmd=rdelete&data=<?% data.RecordId %?>')"> + <a href="javascript:sure(document.RecordDisplay, '<?% gettext("Would you like to delete this recording?") %?>?','?cmd=rdelete&data=<?% data.RecordId %?>')"> [<?% gettext("Delete recording") %?>] </a> <?% END %?> diff --git a/html/rlist.tmpl b/html/rlist.tmpl index db1d3ad..b2e8de4 100644 --- a/html/rlist.tmpl +++ b/html/rlist.tmpl @@ -120,7 +120,7 @@ <form> <a href="?cmd=rupdate">[<?% gettext("Update recordings") %?>]</a> <?% IF allow('rdelete') %?> -<a href="#" onClick="Delete('<?% gettext("Do you want to delete the following recordings?") %?>', +<a href="#" onClick="Delete('<?% gettext("Would you like to delete these recordings?") %?>', '<?% gettext("Nothing selected!") %?>','rdelete',document.rlist)"> [<?% gettext("Delete recordings") %?>]</a> <?% END %?> diff --git a/html/tlist.tmpl b/html/tlist.tmpl index 0c119ff..cd5801b 100644 --- a/html/tlist.tmpl +++ b/html/tlist.tmpl @@ -25,7 +25,7 @@ </a> <?% END %?> <?% IF allow('tdelete') %?> -<a href="#" onClick="Delete('<?% gettext("Would You like to delete the following timer(s)?") %?>', +<a href="#" onClick="Delete('<?% gettext("Would you like to delete these timers?") %?>', '<?% gettext("Nothing selected!") %?>','tdelete',document.TimerList)"> [<?% gettext("Delete timer") %?>] </a> @@ -79,7 +79,7 @@ <a href="?cmd=tedit&data=<?% zeile.0 %?>" title="<?% gettext("Edit this timer") %?>"><div class="<?% myclass %?>">[E]</div></a> <?% END %?> <?% IF allow('tdelete') %?> - <a href="javascript:sure(document.TimerList, '<?% gettext("Would You like to delete the following timer(s)?") %?> : <?% escape(zeile.7.split('~').first) %?>','?cmd=tdelete&data=<?% zeile.0 %?>')" title="<?% gettext("Would You like to delete the following timer(s)?") %?>"><div class="<?% myclass %?>">[D]</div></a> + <a href="javascript:sure(document.TimerList, '<?% gettext("Would you like to delete this timer?") %?> : <?% escape(zeile.7.split('~').first) %?>','?cmd=tdelete&data=<?% zeile.0 %?>')" title="<?% gettext("Would you like to delete this timer?") %?>"><div class="<?% myclass %?>">[D]</div></a> <?% END %?> </td> <?% ELSIF c == 1; # Id Status %?> diff --git a/html/ulist.tmpl b/html/ulist.tmpl index c61c42e..f7e7187 100644 --- a/html/ulist.tmpl +++ b/html/ulist.tmpl @@ -26,7 +26,7 @@ <a title="<?% gettext("Edit account of user") %?>" href="?cmd=uedit&data=<?% zeile.0 %?>"> [<?% gettext("Edit") %?>]</a> <a title="<?% gettext("Delete user account") %?>" - href="javascript:sure(document.UserList, '<?% gettext("Do you really want to delete this user account?") %?>: <?% escape(zeile.1) %?>','?cmd=udelete&data=<?% zeile.0 %?>')"> + href="javascript:sure(document.UserList, '<?% gettext("Would you like to delete this user account?") %?>: <?% escape(zeile.1) %?>','?cmd=udelete&data=<?% zeile.0 %?>')"> [<?% gettext("Del") %?>] </a> </td> diff --git a/lib/XXV/MODULES/CHANNELS.pm b/lib/XXV/MODULES/CHANNELS.pm index d0719e8..438d46a 100644 --- a/lib/XXV/MODULES/CHANNELS.pm +++ b/lib/XXV/MODULES/CHANNELS.pm @@ -967,7 +967,7 @@ sub deleteChannel { my $confirm = $console->confirm({ typ => 'confirm', def => 'y', - msg => gettext('Do you want to delete this channel?'), + msg => gettext('Would you like to delete this channel?'), }, $answer); next if(! $answer eq 'y'); } diff --git a/lib/XXV/MODULES/MOVETIMER.pm b/lib/XXV/MODULES/MOVETIMER.pm index 5f9ded0..087e953 100644 --- a/lib/XXV/MODULES/MOVETIMER.pm +++ b/lib/XXV/MODULES/MOVETIMER.pm @@ -31,7 +31,7 @@ sub module { movetimer => { description => gettext("Manual move timer between channels"), short => 'mt', - callback => sub{ $self->movetimer(@_) }, + callback => sub{ $self->movetimermanual(@_) }, Level => 'user', DenyClass => 'tedit', }, @@ -146,7 +146,7 @@ sub _init { return 0 if($self->{active} ne 'y'); lg 'Start timer callback to move timer!'; - return $self->movetimer(); + return $self->_movetimer(); }); return 1; @@ -156,7 +156,23 @@ sub _init { } # ------------------ -sub movetimer { +sub movetimermanual { +# ------------------ + my $self = shift || return error('No object defined!'); + my $watcher = shift; + my $console = shift; + my $id = shift; + + return 0 unless($self->_movetimer($watcher,$console,$id)); + + $console->redirect({url => '?cmd=movetimerlist', wait => 1}) + if($console->typ eq 'HTML'); + + return 1; +} + +# ------------------ +sub _movetimer { # ------------------ my $self = shift || return error('No object defined!'); my $watcher = shift; @@ -438,7 +454,7 @@ sub movetimeredit { ( $console->{USER} && $console->{USER}->{Name} ? sprintf(' from user: %s', $console->{USER}->{Name}) : "" ) ); - $self->movetimer($watcher, $console, $data->{id}); + $self->_movetimer($watcher, $console, $data->{id}); $console->redirect({url => '?cmd=movetimerlist', wait => 1}) if($console->typ eq 'HTML'); diff --git a/lib/XXV/MODULES/RECORDS.pm b/lib/XXV/MODULES/RECORDS.pm index 6b959ee..b48b588 100644 --- a/lib/XXV/MODULES/RECORDS.pm +++ b/lib/XXV/MODULES/RECORDS.pm @@ -519,21 +519,21 @@ sub readData { } # Get state from used harddrive (/video) - my $stat = $obj->{svdrp}->command('stat disk'); + my $disk = $obj->{svdrp}->command('stat disk'); my ($total, $totalUnit, $free, $freeUnit, $percent); my $totalDuration = 0; my $totalSpace = 0; - if($stat->[1] and $stat->[1] =~ /^250/s) { + if($disk->[1] and $disk->[1] =~ /^250/s) { #250 473807MB 98028MB 79% ($total, $totalUnit, $free, $freeUnit, $percent) - = $stat->[1] =~ /^250[\-|\s](\d+)(\S+)\s+(\d+)(\S+)\s+(\S+)/s; + = $disk->[1] =~ /^250[\-|\s](\d+)(\S+)\s+(\d+)(\S+)\s+(\S+)/s; $obj->{CapacityMessage} = sprintf(gettext("Used %s, total %s%s, free %s%s"),$percent, dot1000($total), $totalUnit, dot1000($free), $freeUnit); $obj->{CapacityPercent} = int($percent); } else { - error("Couldn't get disc state : ".join("\n", @$stat)); + error("Couldn't get disc state : ".join("\n", @$disk)); $obj->{CapacityMessage} = gettext("Unknown disc capacity!"); $obj->{CapacityPercent} = 0; @@ -1696,7 +1696,7 @@ sub delete { my $confirm = $console->confirm({ typ => 'confirm', def => 'y', - msg => gettext('Are you sure to delete this recording?'), + msg => gettext('Would you like to delete this recording?'), }, $answer); next if(! $answer eq 'y'); } @@ -2300,12 +2300,13 @@ sub _recordinglength { my $f = sprintf("%s/index.vdr", $path); my $r = sprintf("%s/001.vdr", $path); + my $fst = stat($f); + my $rst = stat($r); # Pseudo Recording (DIR) - return 0 if(! -r $f and ! -s $r); + return 0 unless($fst and $rst); - if(-r $f) { - my $bytes = stat($f)->size; - return int(($bytes / 8) / $obj->{framerate}); + if($fst->mode & 00400) { # mode & S_IRUSR + return int(($fst->size / 8) / $obj->{framerate}); } else { error sprintf("Couldn't read : '%s'", $f); } diff --git a/lib/XXV/MODULES/TIMERS.pm b/lib/XXV/MODULES/TIMERS.pm index 87d8080..00d9ec3 100644 --- a/lib/XXV/MODULES/TIMERS.pm +++ b/lib/XXV/MODULES/TIMERS.pm @@ -444,14 +444,14 @@ sub _init { return 0; } - $obj->readData(); + $obj->_readData(); # Interval to read timers and put to DB Event->timer( interval => $obj->{interval}, prio => 6, # -1 very hard ... 6 very low cb => sub{ - $obj->readData(); + $obj->_readData(); } ); return 1; @@ -468,16 +468,51 @@ sub saveTimer { my $data = shift || return error('No data defined!'); my $timerid = shift || 0; - my $status = ($data->{Activ} eq 'y' ? 1 : 0); - $status |= ($data->{VPS} eq 'y' ? 4 : 0); + $obj->_saveTimer($data,$timerid); + if($obj->{svdrp}->queue_cmds('COUNT')) { + my $erg = $obj->{svdrp}->queue_cmds("CALL"); # Aufrufen der Kommandos + + # Save shortly this timer in DB if this only a new timer (at) + # Very Important for Autotimer! + my $pos = $1 if($erg->[1] =~ /^250\s+(\d+)/); + if(! $timerid and $pos) { + $obj->insert([ + $data->{Status}, + $data->{ChannelID}, + $data->{Day}, + $data->{Start}, + $data->{Stop}, + int($data->{Priority}), + int($data->{Lifetime}), + $data->{File}, + ($data->{aux} || '') + ], $pos); + } + + event sprintf('Save timer "%s" with id: "%d"', $data->{File}, $pos || 0); + + return $erg; + } + return 0; +} + +# ------------------ +sub _saveTimer { +# ------------------ + my $obj = shift || return error('No object defined!'); + my $data = shift || return error('No data defined!'); + my $timerid = shift || 0; + + $data->{Status} = ($data->{Activ} eq 'y' ? 1 : 0); + $data->{Status} |= ($data->{VPS} eq 'y' ? 4 : 0); $data->{File} =~ s/:/|/g; $data->{File} =~ s/(\r|\n)//sig; - my $erg = $obj->{svdrp}->command( + $obj->{svdrp}->queue_cmds( sprintf("%s %s:%s:%s:%s:%s:%s:%s:%s:%s", $timerid ? "modt $timerid" : "newt", - $status, + $data->{Status}, $data->{ChannelID}, $data->{Day}, $data->{Start}, @@ -488,29 +523,25 @@ sub saveTimer { ($data->{aux} || '') ) ); +} - # Save shortly this timer in DB if this only a new timer (at) - # Very Important for Autotimer! - my $pos = $1 if($erg->[1] =~ /^250\s+(\d+)/); - if(! $timerid and $pos) { - $obj->insert([ - $status, - $data->{ChannelID}, - $data->{Day}, - $data->{Start}, - $data->{Stop}, - int($data->{Priority}), - int($data->{Lifetime}), - $data->{File}, - ($data->{aux} || '') - ], $pos); - } +sub _newTimerdefaults { + my $obj = shift || return error('No object defined!'); + my $epg = shift; - event sprintf('Save timer "%s" with id: "%d"', $data->{File}, $pos || 0); + $epg->{Activ} = 'y'; + $epg->{Priority} = $obj->{Priority}; + $epg->{Lifetime} = $obj->{Lifetime}; - return $erg; + if($epg->{VpsStart} && $obj->{usevpstime} eq 'y') { + $epg->{VPS} = 'y'; + $epg->{Day} = $epg->{VpsDay}; + $epg->{Start} = $epg->{VpsStart}; + $epg->{Stop} = $epg->{VpsStop}; + } else { + $epg->{VPS} = 'n'; + } } - # ------------------ sub newTimer { # ------------------ @@ -520,11 +551,13 @@ sub newTimer { my $epgid = shift || 0; my $epg = shift || 0; - if($epgid and not ref $epg) { + my $fast = (ref $epg and exists $epg->{fast}) ? 1 : 0; + if($epgid and ( (not ref $epg) || $fast) ) { + my @events = reverse sort{ $a <=> $b } split(/[^0-9]/, $epgid); my $sql = qq| SELECT SQL_CACHE eventid, - channel_id, + channel_id as ChannelID, description, CONCAT_WS('~', title, subtitle) as File, DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP(starttime) - ? ), '%Y-%m-%d') as Day, @@ -535,44 +568,41 @@ SELECT SQL_CACHE DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP(vpstime) + duration), '%H%i') as VpsStop FROM EPG -WHERE - eventid = ?|; +WHERE|; + $sql .= sprintf(" eventid in (%s)", join(',' => ('?') x @events)); + my $sth = $obj->{dbh}->prepare($sql); - $sth->execute($obj->{prevminutes} * 60, $obj->{prevminutes} * 60, $obj->{afterminutes} * 60, $epgid) - or return $console->err(sprintf(gettext("Event '%s' does not exist in the database!"),$epgid)); - $epg = $sth->fetchrow_hashref(); + $sth->execute($obj->{prevminutes} * 60, $obj->{prevminutes} * 60, $obj->{afterminutes} * 60, @events) + or return $console->err(sprintf(gettext("Event '%s' does not exist in the database!"),join(',',@events))); + + my $data = $sth->fetchall_hashref('eventid') + or return $console->err(sprintf(gettext("Event '%s' does not exist in the database!"),join(',',@events))); + + my $count = 1; + foreach my $eventid (keys %{$data}) { + $epg = $data->{$eventid}; + $obj->_newTimerdefaults($epg); + $epg->{action} = 'save' if(scalar keys %{$data} > 1 || $fast ); + $obj->_editTimer($watcher, $console, 0, $epg) if($count < scalar keys %{$data}); + $count += 1; + } } if(not ref $epg) { - my $t = time; - $epg = { - channel_id => '', - File => '', - description => '', + my $t = time; + $epg = { + ChannelID => '', + File => gettext('New timer'), Day => my_strftime("%Y-%m-%d",$t), Start => my_strftime("%H%M",$t), Stop => my_strftime("%H%M",$t) }; + $obj->_newTimerdefaults($epg); } - - $epg->{Status} = '1' - if(not defined $epg->{Status}); - $epg->{Priority} = $obj->{Priority} - if(not defined $epg->{Priority}); - $epg->{Lifetime} = $obj->{Lifetime} - if(not defined $epg->{Lifetime}); - - if($epg->{VpsStart} && $obj->{usevpstime} eq 'y') { - $epg->{Status} |= 4; - $epg->{Day} = $epg->{VpsDay}; - $epg->{Start} = $epg->{VpsStart}; - $epg->{Stop} = $epg->{VpsStop}; - } - $obj->editTimer($watcher, $console, 0, $epg); } # ------------------ -sub editTimer { +sub _editTimer { # ------------------ my $obj = shift || return error('No object defined!'); my $watcher = shift || return error('No watcher defined!'); @@ -586,7 +616,7 @@ sub editTimer { qq| SELECT SQL_CACHE Id, - ChannelID as channel_id, + ChannelID, File, aux, Start, @@ -594,7 +624,8 @@ SELECT SQL_CACHE Day, Priority, Lifetime, - Status + IF(Status & 1,'y','n') as Activ, + IF(Status & 4,'y','n') as VPS FROM TIMERS WHERE @@ -620,17 +651,17 @@ WHERE }, 'Activ' => { typ => 'confirm', - def => (defined $timerData->{Status} and ($timerData->{Status} & 1) ? 'y' : 'n'), + def => $timerData->{Activ}, msg => gettext('Enable this timer'), }, 'VPS' => { typ => 'confirm', - def => (defined $timerData->{Status} and ($timerData->{Status} & 4) ? 'y' : 'n'), + def => $timerData->{VPS}, msg => gettext('Use PDC time to control timer'), }, 'ChannelID' => { typ => 'list', - def => $con ? $mod->ChannelToPos($timerData->{channel_id}) : $timerData->{channel_id}, + def => $con ? $mod->ChannelToPos($timerData->{ChannelID}) : $timerData->{ChannelID}, choices => $con ? $mod->ChannelArray('Name') : $mod->ChannelIDArray('Name'), msg => gettext('Which channel should recorded'), req => gettext("This is required!"), @@ -782,33 +813,49 @@ WHERE : gettext('New timer')), $questions, $data); if(ref $datasave eq 'HASH') { - my $erg = $obj->saveTimer($datasave, $timerid); - - my $error; - foreach my $zeile (@$erg) { + $obj->_saveTimer($datasave, $timerid); + return 1; + } + return 0; +} +# ------------------ +sub editTimer { +# ------------------ + my $obj = shift || return error('No object defined!'); + my $watcher = shift || return error('No watcher defined!'); + my $console = shift || return error('No console defined!'); + my $timerid = shift; # If timerid the edittimer + my $data = shift; # Data for defaults + + if($obj->_editTimer($watcher,$console,$timerid,$data) + && $obj->{svdrp}->queue_cmds('COUNT')) { + my $erg = $obj->{svdrp}->queue_cmds("CALL"); # Aufrufen der Kommandos + my $error; + foreach my $zeile (@$erg) { if($zeile =~ /^(\d{3})\s+(.+)/) { $error = $2 if(int($1) >= 500); } - } + } - unless($error) { + unless($error) { debug sprintf('%s timer with title "%s" is saved%s', ($timerid ? 'Changed' : 'New'), $data->{File}, ( $console->{USER} && $console->{USER}->{Name} ? sprintf(' from user: %s', $console->{USER}->{Name}) : "" ) ); $console->message($erg); - } else { + } else { error sprintf('%s timer with title "%s" does\'nt saved : %s', ($timerid ? 'Changed' : 'New'), $data->{File}, $error ); $console->err($erg); - } - $obj->readData($watcher,$console); - $console->redirect({url => '?cmd=tlist', wait => 1}) - if($console->typ eq 'HTML'); + } + if($obj->_readData($watcher,$console)) { + $console->redirect({url => '?cmd=tlist', wait => 1}) + if(!$error && $console->typ eq 'HTML'); + } } } @@ -843,7 +890,7 @@ sub deleteTimer { my $confirm = $console->confirm({ typ => 'confirm', def => 'y', - msg => gettext('Are you sure to delete this timer?'), + msg => gettext('Would you like to delete this timer?'), }, $answer); next if(!$answer eq 'y'); } @@ -865,10 +912,10 @@ sub deleteTimer { sleep(1); - $obj->readData($watcher,$console); - - $console->redirect({url => '?cmd=tlist', wait => 1}) + if($obj->_readData($watcher,$console)) { + $console->redirect({url => '?cmd=tlist', wait => 1}) if(ref $console and $console->typ eq 'HTML'); + } } else { $console->err(gettext("No timer to delete!")); } @@ -922,10 +969,10 @@ sub toggleTimer { $console->msg($erg, $obj->{svdrp}->err) if(ref $console and $console->typ ne 'AJAX'); - $obj->readData($watcher, $console); - - $console->redirect({url => '?cmd=tlist', wait => 1}) + if($obj->_readData($watcher, $console)) { + $console->redirect({url => '?cmd=tlist', wait => 1}) if(ref $console and $console->typ eq 'HTML'); + } if(ref $console and $console->typ eq 'AJAX') { # { "data" : [ [ ID, ON, RUN, CONFLICT ], .... ] } @@ -959,8 +1006,10 @@ sub insert { $data->[0] &= 15; # change pos to channelid, because change to telnet reader - $data->[1] = $obj->{channels}->{$data->[1]}->{Id} - if(index($data->[1], '-') < 0); + if(index($data->[1], '-') < 0) { + $data->[1] = main::getModule('CHANNELS')->ToCID($data->[1]) + or return error(sprintf("Couldn't get channel from this data: %s", join(',', @$data))); + } # POS unshift(@$data, $pos); @@ -968,7 +1017,7 @@ sub insert { # NextTime my $nexttime = $obj->getNextTime( $data->[3], $data->[4], $data->[5] ) - or return error(sprintf("Couldn't get time form this data: %s", join(' ', @$data))); + or return error(sprintf("Couldn't get time from this data: %s", join(',', @$data))); push(@$data, $nexttime->{start}, $nexttime->{stop}); # insert placeholder @@ -1005,9 +1054,9 @@ sub insert { } -# Read from svdrp (better for future development) +# Read data # ------------------ -sub readData { +sub _readData { # ------------------ my $obj = shift || return error('No object defined!'); my $watcher = shift; @@ -1021,9 +1070,7 @@ sub readData { $obj->{dbh}->do('DELETE FROM TIMERS'); - # read from svdrp, because the - # vdr edit the timers.conf to lazy ;) - $obj->{channels} = main::getModule('CHANNELS')->ChannelHash('POS'); + # read from svdrp my $tlist = $obj->{svdrp}->command('lstt'); my $c = 0; @@ -1062,12 +1109,22 @@ sub readData { $console->message(sprintf(gettext("%d timer written to database."), $c), {overlapping => $overlapping}) if(ref $console and $console->typ ne 'AJAX'); - $console->redirect({url => '?cmd=tlist', wait => 1}) - if(ref $console and $console->typ eq 'HTML'); - return 1; } +# ------------------ +sub readData { +# ------------------ + my $obj = shift || return error('No object defined!'); + my $watcher = shift; + my $console = shift; + + if($obj->_readData($watcher,$console)) { + $console->redirect({url => '?cmd=tlist', wait => 1}) + if(ref $console and $console->typ eq 'HTML'); + } +} + # Routine um Callbacks zu registrieren und # diese nach dem Aktualisieren der Timer zu starten # ------------------ @@ -1295,8 +1352,6 @@ SELECT SQL_CACHE t.Id as Id, t.Status as Status,t.ChannelID as ChannelID, foreach my $t (keys %$erg) { my %tt; -# dumper($erg->{$t}); - # Adjust start and stop times my $start; my $stop; diff --git a/lib/XXV/OUTPUT/Html.pm b/lib/XXV/OUTPUT/Html.pm index af98b59..5eb70e6 100644 --- a/lib/XXV/OUTPUT/Html.pm +++ b/lib/XXV/OUTPUT/Html.pm @@ -8,6 +8,7 @@ use Tools; use XXV::OUTPUT::HTML::WAIT; use File::Path; use File::Basename; +use File::stat; use Fcntl; $SIG{CHLD} = 'IGNORE'; @@ -611,12 +612,12 @@ sub datei { my %args = (); - my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, - $atime,$mtime,$ctime,$blksize,$blocks) = stat($file); - unless($blocks and ($mode & 00400)) { + my $fst = stat($file); + unless($fst and ($fst->mode & 00400)) { # mode & S_IRUSR error sprintf("Couldn't stat file '%s' : %s",$file,$!); return $obj->status404($file,$!); } + my $size = $fst->size; $typ = $obj->{mime}->{lc((split('\.', $file))[-1])} unless($typ); @@ -627,14 +628,14 @@ sub datei { if($typ =~ /image\// || $typ =~ /video\//); # header only if caching - $args{'ETag'} = sprintf('%x-%x-%x',$ino, $size, $mtime); + $args{'ETag'} = sprintf('%x-%x-%x',$fst->ino, $size, $fst->mtime); return $obj->statusmsg(304,undef,undef,$typ) if($obj->{browser}->{'Match'} && $args{'ETag'} eq $obj->{browser}->{'Match'}); my(@MON)=qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/; my(@WDAY) = qw/Sun Mon Tue Wed Thu Fri Sat/; - my($sec,$min,$hour,$mday,$mon,$year,$wday) = gmtime($mtime); + my($sec,$min,$hour,$mday,$mon,$year,$wday) = gmtime($fst->mtime); $args{'Last-Modified'} = sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT", $WDAY[$wday],$mday,$MON[$mon],$year + 1900,$hour,$min,$sec); $args{'attachment'} = basename($file); @@ -663,15 +664,13 @@ sub stream { my $total = 0; foreach my $file (@{$files}) { - - my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, - $atime,$mtime,$ctime,$blksize,$blocks) = stat($file); - unless($blocks and ($mode & 00400)) { + + my $fst = stat($file); + unless($fst and ($fst->mode & 00400)) { # mode & S_IRUSR error sprintf("Couldn't stat file '%s' : %s",$file,$!); return $obj->status404($file,$!); } - - $total += $size; + $total += $fst->size; } $args{'Content-Length'} = ($total - $offset); diff --git a/locale/de.po b/locale/de.po index 6b2e993..60bcb06 100644 --- a/locale/de.po +++ b/locale/de.po @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #-------------------- -#: ../bin/xxvd:101 ../bin/xxvd:116 ../bin/xxvd:89 ../bin/xxvd:95 ../lib/XXV/MODULES/AUTOTIMER.pm:31 ../lib/XXV/MODULES/AUTOTIMER.pm:685 ../lib/XXV/MODULES/CHANNELS.pm:29 ../lib/XXV/MODULES/CHANNELS.pm:35 ../lib/XXV/MODULES/CHANNELS.pm:701 ../lib/XXV/MODULES/CHANNELS.pm:727 ../lib/XXV/MODULES/CHANNELS.pm:740 ../lib/XXV/MODULES/CHANNELS.pm:779 ../lib/XXV/MODULES/CHANNELS.pm:805 ../lib/XXV/MODULES/CHRONICLE.pm:28 ../lib/XXV/MODULES/EPG.pm:36 ../lib/XXV/MODULES/EPG.pm:42 ../lib/XXV/MODULES/EPG.pm:48 ../lib/XXV/MODULES/EVENTS.pm:34 ../lib/XXV/MODULES/GRAB.pm:30 ../lib/XXV/MODULES/GRAB.pm:44 ../lib/XXV/MODULES/HTTPD.pm:61 ../lib/XXV/MODULES/HTTPD.pm:67 ../lib/XXV/MODULES/HTTPD.pm:73 ../lib/XXV/MODULES/HTTPD.pm:79 ../lib/XXV/MODULES/HTTPD.pm:85 ../lib/XXV/MODULES/HTTPD.pm:92 ../lib/XXV/MODULES/INTERFACE.pm:33 ../lib/XXV/MODULES/INTERFACE.pm:39 ../lib/XXV/MODULES/INTERFACE.pm:45 ../lib/XXV/MODULES/LOGREAD.pm:32 ../lib/XXV/MODULES/LOGREAD.pm:38 ../lib/XXV/MODULES/LOGREAD.pm:44 ../lib/XXV/MODULES/LOGREAD.pm:50 ../lib/XXV/MODULES/MEDIALIB.pm:34 ../lib/XXV/MODULES/MEDIALIB.pm:40 ../lib/XXV/MODULES/MEDIALIB.pm:46 ../lib/XXV/MODULES/MEDIALIB.pm:52 ../lib/XXV/MODULES/MEDIALIB.pm:58 ../lib/XXV/MODULES/MOVETIMER.pm:27 ../lib/XXV/MODULES/MOVETIMER.pm:364 ../lib/XXV/MODULES/MOVETIMER.pm:377 ../lib/XXV/MODULES/MOVETIMER.pm:386 ../lib/XXV/MODULES/MOVETIMER.pm:399 ../lib/XXV/MODULES/MUSIC.pm:40 ../lib/XXV/MODULES/MUSIC.pm:46 ../lib/XXV/MODULES/MUSIC.pm:52 ../lib/XXV/MODULES/MUSIC.pm:58 ../lib/XXV/MODULES/MUSIC.pm:69 ../lib/XXV/MODULES/MUSIC.pm:75 ../lib/XXV/MODULES/RECORDS.pm:1835 ../lib/XXV/MODULES/RECORDS.pm:1849 ../lib/XXV/MODULES/RECORDS.pm:1863 ../lib/XXV/MODULES/RECORDS.pm:1882 ../lib/XXV/MODULES/RECORDS.pm:2426 ../lib/XXV/MODULES/RECORDS.pm:2438 ../lib/XXV/MODULES/RECORDS.pm:40 ../lib/XXV/MODULES/RECORDS.pm:46 ../lib/XXV/MODULES/RECORDS.pm:52 ../lib/XXV/MODULES/RECORDS.pm:58 ../lib/XXV/MODULES/RECORDS.pm:64 ../lib/XXV/MODULES/RECORDS.pm:76 ../lib/XXV/MODULES/RECORDS.pm:92 ../lib/XXV/MODULES/REMOTE.pm:28 ../lib/XXV/MODULES/REMOTE.pm:34 ../lib/XXV/MODULES/REMOTE.pm:40 ../lib/XXV/MODULES/REPORT.pm:30 ../lib/XXV/MODULES/REPORT.pm:46 ../lib/XXV/MODULES/ROBOT.pm:29 ../lib/XXV/MODULES/SHARE.pm:53 ../lib/XXV/MODULES/SHARE.pm:70 ../lib/XXV/MODULES/SHARE.pm:76 ../lib/XXV/MODULES/STATUS.pm:32 ../lib/XXV/MODULES/STATUS.pm:38 ../lib/XXV/MODULES/STATUS.pm:43 ../lib/XXV/MODULES/STATUS.pm:49 ../lib/XXV/MODULES/STREAM.pm:33 ../lib/XXV/MODULES/STREAM.pm:43 ../lib/XXV/MODULES/STREAM.pm:64 ../lib/XXV/MODULES/STREAM.pm:70 ../lib/XXV/MODULES/STREAM.pm:84 ../lib/XXV/MODULES/SVDRP.pm:30 ../lib/XXV/MODULES/SVDRP.pm:36 ../lib/XXV/MODULES/SVDRP.pm:42 ../lib/XXV/MODULES/TELNET.pm:29 ../lib/XXV/MODULES/TELNET.pm:35 ../lib/XXV/MODULES/TELNET.pm:41 ../lib/XXV/MODULES/TELNET.pm:47 ../lib/XXV/MODULES/TIMERS.pm:29 ../lib/XXV/MODULES/TIMERS.pm:636 ../lib/XXV/MODULES/TIMERS.pm:639 ../lib/XXV/MODULES/TIMERS.pm:664 ../lib/XXV/MODULES/TIMERS.pm:760 ../lib/XXV/MODULES/USER.pm:268 ../lib/XXV/MODULES/USER.pm:360 ../lib/XXV/MODULES/USER.pm:366 ../lib/XXV/MODULES/USER.pm:391 ../lib/XXV/MODULES/USER.pm:68 ../lib/XXV/MODULES/VTX.pm:33 ../lib/XXV/MODULES/VTX.pm:39 ../lib/XXV/MODULES/WAPD.pm:43 ../lib/XXV/MODULES/WAPD.pm:49 ../lib/XXV/MODULES/WAPD.pm:55 ../lib/XXV/MODULES/WAPD.pm:61 ../lib/XXV/MODULES/WAPD.pm:67 ../lib/XXV/MODULES/WAPD.pm:74 ../lib/XXV/OUTPUT/NEWS/JABBER.pm:100 ../lib/XXV/OUTPUT/NEWS/JABBER.pm:118 ../lib/XXV/OUTPUT/NEWS/JABBER.pm:124 ../lib/XXV/OUTPUT/NEWS/JABBER.pm:130 ../lib/XXV/OUTPUT/NEWS/JABBER.pm:70 ../lib/XXV/OUTPUT/NEWS/MAIL.pm:107 ../lib/XXV/OUTPUT/NEWS/MAIL.pm:34 ../lib/XXV/OUTPUT/NEWS/MAIL.pm:64 ../lib/XXV/OUTPUT/NEWS/MAIL.pm:82 ../lib/XXV/OUTPUT/NEWS/MAIL.pm:96 ../lib/XXV/OUTPUT/NEWS/RSS.pm:33 ../lib/XXV/OUTPUT/NEWS/RSS.pm:63 ../lib/XXV/OUTPUT/NEWS/VDR.pm:30 ../lib/XXV/OUTPUT/NEWS/VDR.pm:60 +#: ../bin/xxvd:101 ../bin/xxvd:116 ../bin/xxvd:89 ../bin/xxvd:95 ../lib/XXV/MODULES/AUTOTIMER.pm:31 ../lib/XXV/MODULES/AUTOTIMER.pm:685 ../lib/XXV/MODULES/CHANNELS.pm:29 ../lib/XXV/MODULES/CHANNELS.pm:35 ../lib/XXV/MODULES/CHANNELS.pm:701 ../lib/XXV/MODULES/CHANNELS.pm:727 ../lib/XXV/MODULES/CHANNELS.pm:740 ../lib/XXV/MODULES/CHANNELS.pm:779 ../lib/XXV/MODULES/CHANNELS.pm:805 ../lib/XXV/MODULES/CHRONICLE.pm:28 ../lib/XXV/MODULES/EPG.pm:36 ../lib/XXV/MODULES/EPG.pm:42 ../lib/XXV/MODULES/EPG.pm:48 ../lib/XXV/MODULES/EVENTS.pm:34 ../lib/XXV/MODULES/GRAB.pm:30 ../lib/XXV/MODULES/GRAB.pm:44 ../lib/XXV/MODULES/HTTPD.pm:61 ../lib/XXV/MODULES/HTTPD.pm:67 ../lib/XXV/MODULES/HTTPD.pm:73 ../lib/XXV/MODULES/HTTPD.pm:79 ../lib/XXV/MODULES/HTTPD.pm:85 ../lib/XXV/MODULES/HTTPD.pm:92 ../lib/XXV/MODULES/INTERFACE.pm:33 ../lib/XXV/MODULES/INTERFACE.pm:39 ../lib/XXV/MODULES/INTERFACE.pm:45 ../lib/XXV/MODULES/LOGREAD.pm:32 ../lib/XXV/MODULES/LOGREAD.pm:38 ../lib/XXV/MODULES/LOGREAD.pm:44 ../lib/XXV/MODULES/LOGREAD.pm:50 ../lib/XXV/MODULES/MEDIALIB.pm:34 ../lib/XXV/MODULES/MEDIALIB.pm:40 ../lib/XXV/MODULES/MEDIALIB.pm:46 ../lib/XXV/MODULES/MEDIALIB.pm:52 ../lib/XXV/MODULES/MEDIALIB.pm:58 ../lib/XXV/MODULES/MOVETIMER.pm:27 ../lib/XXV/MODULES/MOVETIMER.pm:380 ../lib/XXV/MODULES/MOVETIMER.pm:393 ../lib/XXV/MODULES/MOVETIMER.pm:402 ../lib/XXV/MODULES/MOVETIMER.pm:415 ../lib/XXV/MODULES/MUSIC.pm:40 ../lib/XXV/MODULES/MUSIC.pm:46 ../lib/XXV/MODULES/MUSIC.pm:52 ../lib/XXV/MODULES/MUSIC.pm:58 ../lib/XXV/MODULES/MUSIC.pm:69 ../lib/XXV/MODULES/MUSIC.pm:75 ../lib/XXV/MODULES/RECORDS.pm:1835 ../lib/XXV/MODULES/RECORDS.pm:1849 ../lib/XXV/MODULES/RECORDS.pm:1863 ../lib/XXV/MODULES/RECORDS.pm:1882 ../lib/XXV/MODULES/RECORDS.pm:2427 ../lib/XXV/MODULES/RECORDS.pm:2439 ../lib/XXV/MODULES/RECORDS.pm:40 ../lib/XXV/MODULES/RECORDS.pm:46 ../lib/XXV/MODULES/RECORDS.pm:52 ../lib/XXV/MODULES/RECORDS.pm:58 ../lib/XXV/MODULES/RECORDS.pm:64 ../lib/XXV/MODULES/RECORDS.pm:76 ../lib/XXV/MODULES/RECORDS.pm:92 ../lib/XXV/MODULES/REMOTE.pm:28 ../lib/XXV/MODULES/REMOTE.pm:34 ../lib/XXV/MODULES/REMOTE.pm:40 ../lib/XXV/MODULES/REPORT.pm:30 ../lib/XXV/MODULES/REPORT.pm:46 ../lib/XXV/MODULES/ROBOT.pm:29 ../lib/XXV/MODULES/SHARE.pm:53 ../lib/XXV/MODULES/SHARE.pm:70 ../lib/XXV/MODULES/SHARE.pm:76 ../lib/XXV/MODULES/STATUS.pm:32 ../lib/XXV/MODULES/STATUS.pm:38 ../lib/XXV/MODULES/STATUS.pm:43 ../lib/XXV/MODULES/STATUS.pm:49 ../lib/XXV/MODULES/STREAM.pm:33 ../lib/XXV/MODULES/STREAM.pm:43 ../lib/XXV/MODULES/STREAM.pm:64 ../lib/XXV/MODULES/STREAM.pm:70 ../lib/XXV/MODULES/STREAM.pm:84 ../lib/XXV/MODULES/SVDRP.pm:30 ../lib/XXV/MODULES/SVDRP.pm:36 ../lib/XXV/MODULES/SVDRP.pm:42 ../lib/XXV/MODULES/TELNET.pm:29 ../lib/XXV/MODULES/TELNET.pm:35 ../lib/XXV/MODULES/TELNET.pm:41 ../lib/XXV/MODULES/TELNET.pm:47 ../lib/XXV/MODULES/TIMERS.pm:29 ../lib/XXV/MODULES/TIMERS.pm:667 ../lib/XXV/MODULES/TIMERS.pm:670 ../lib/XXV/MODULES/TIMERS.pm:695 ../lib/XXV/MODULES/TIMERS.pm:791 ../lib/XXV/MODULES/USER.pm:268 ../lib/XXV/MODULES/USER.pm:360 ../lib/XXV/MODULES/USER.pm:366 ../lib/XXV/MODULES/USER.pm:391 ../lib/XXV/MODULES/USER.pm:68 ../lib/XXV/MODULES/VTX.pm:33 ../lib/XXV/MODULES/VTX.pm:39 ../lib/XXV/MODULES/WAPD.pm:43 ../lib/XXV/MODULES/WAPD.pm:49 ../lib/XXV/MODULES/WAPD.pm:55 ../lib/XXV/MODULES/WAPD.pm:61 ../lib/XXV/MODULES/WAPD.pm:67 ../lib/XXV/MODULES/WAPD.pm:74 ../lib/XXV/OUTPUT/NEWS/JABBER.pm:100 ../lib/XXV/OUTPUT/NEWS/JABBER.pm:118 ../lib/XXV/OUTPUT/NEWS/JABBER.pm:124 ../lib/XXV/OUTPUT/NEWS/JABBER.pm:130 ../lib/XXV/OUTPUT/NEWS/JABBER.pm:70 ../lib/XXV/OUTPUT/NEWS/MAIL.pm:107 ../lib/XXV/OUTPUT/NEWS/MAIL.pm:34 ../lib/XXV/OUTPUT/NEWS/MAIL.pm:64 ../lib/XXV/OUTPUT/NEWS/MAIL.pm:82 ../lib/XXV/OUTPUT/NEWS/MAIL.pm:96 ../lib/XXV/OUTPUT/NEWS/RSS.pm:33 ../lib/XXV/OUTPUT/NEWS/RSS.pm:63 ../lib/XXV/OUTPUT/NEWS/VDR.pm:30 ../lib/XXV/OUTPUT/NEWS/VDR.pm:60 msgid "This is required!" msgstr "Das ist erforderlich!" @@ -118,8 +118,8 @@ msgstr "Neuer Autotimer" #-------------------- #: ../html/alist.tmpl:50 ../html/asearch.tmpl:50 -msgid "You will delete this autotimer" -msgstr "Sie wollen wirklich diese Autotimer löschen" +msgid "Would you like to delete this autotimer?" +msgstr "Wollen Sie diese Autotimer löschen?" #-------------------- #: ../html/alist.tmpl:51 ../html/asearch.tmpl:51 ../html/ulist.tmpl:30 @@ -183,8 +183,8 @@ msgstr "Auswahl umkehren" #-------------------- #: ../html/clist.tmpl:121 -msgid "You would delete follow channels?" -msgstr "Wollen Sie folgende Kanäle löschen?" +msgid "Would you like to delete these channels?" +msgstr "Wollen Sie diese Kanäle löschen?" #-------------------- #: ../html/clist.tmpl:122 ../html/mlist.tmpl:40 ../html/movetimerlist.tmpl:64 ../html/rlist.tmpl:124 ../html/rsearch.tmpl:124 ../html/tlist.tmpl:23 ../html/tlist.tmpl:29 ../html/tsearch.tmpl:23 ../html/tsearch.tmpl:29 @@ -247,9 +247,9 @@ msgid "Edit channel" msgstr "Kanal bearbeiten" #-------------------- -#: ../html/clist.tmpl:39 -msgid "You will delete this channel" -msgstr "Wollen Sie diesen Kanal löschen" +#: ../html/clist.tmpl:39 ../lib/XXV/MODULES/CHANNELS.pm:970 +msgid "Would you like to delete this channel?" +msgstr "Wollen Sie diesen Kanal löschen?" #-------------------- #: ../html/clist.tmpl:40 @@ -277,12 +277,12 @@ msgid "Percent" msgstr "Prozent" #-------------------- -#: ../html/display.tmpl:25 ../html/rdisplay.tmpl:149 ../html/search.tmpl:54 ../html/topten.tmpl:21 ../lib/XXV/MODULES/AUTOTIMER.pm:436 ../lib/XXV/MODULES/CHRONICLE.pm:168 ../lib/XXV/MODULES/CHRONICLE.pm:207 ../lib/XXV/MODULES/EPG.pm:748 ../lib/XXV/MODULES/EPG.pm:849 ../lib/XXV/MODULES/EPG.pm:923 ../lib/XXV/MODULES/RECORDS.pm:1873 ../lib/XXV/MODULES/TIMERS.pm:1124 +#: ../html/display.tmpl:25 ../html/rdisplay.tmpl:149 ../html/search.tmpl:54 ../html/topten.tmpl:21 ../lib/XXV/MODULES/AUTOTIMER.pm:436 ../lib/XXV/MODULES/CHRONICLE.pm:168 ../lib/XXV/MODULES/CHRONICLE.pm:207 ../lib/XXV/MODULES/EPG.pm:748 ../lib/XXV/MODULES/EPG.pm:849 ../lib/XXV/MODULES/EPG.pm:923 ../lib/XXV/MODULES/RECORDS.pm:1873 ../lib/XXV/MODULES/TIMERS.pm:1181 msgid "Channel" msgstr "Kanal" #-------------------- -#: ../html/display.tmpl:27 ../html/movetimerlist.tmpl:81 ../html/topten.tmpl:21 ../lib/XXV/MODULES/AUTOTIMER.pm:1137 ../lib/XXV/MODULES/CHRONICLE.pm:165 ../lib/XXV/MODULES/CHRONICLE.pm:204 ../lib/XXV/MODULES/EPG.pm:745 ../lib/XXV/MODULES/EPG.pm:847 ../lib/XXV/MODULES/EPG.pm:921 ../lib/XXV/MODULES/MOVETIMER.pm:527 ../lib/XXV/MODULES/MUSIC.pm:607 ../lib/XXV/MODULES/RECORDS.pm:1519 ../lib/XXV/MODULES/RECORDS.pm:1594 ../lib/XXV/MODULES/TIMERS.pm:1121 ../lib/XXV/MODULES/USER.pm:525 +#: ../html/display.tmpl:27 ../html/movetimerlist.tmpl:81 ../html/topten.tmpl:21 ../lib/XXV/MODULES/AUTOTIMER.pm:1137 ../lib/XXV/MODULES/CHRONICLE.pm:165 ../lib/XXV/MODULES/CHRONICLE.pm:204 ../lib/XXV/MODULES/EPG.pm:745 ../lib/XXV/MODULES/EPG.pm:847 ../lib/XXV/MODULES/EPG.pm:921 ../lib/XXV/MODULES/MOVETIMER.pm:543 ../lib/XXV/MODULES/MUSIC.pm:607 ../lib/XXV/MODULES/RECORDS.pm:1519 ../lib/XXV/MODULES/RECORDS.pm:1594 ../lib/XXV/MODULES/TIMERS.pm:1178 ../lib/XXV/MODULES/USER.pm:525 msgid "Service" msgstr "Service" @@ -312,12 +312,12 @@ msgid "Search with OFDb" msgstr "Suche mit OFDb" #-------------------- -#: ../html/display.tmpl:60 ../lib/XXV/MODULES/AUTOTIMER.pm:445 ../lib/XXV/MODULES/AUTOTIMER.pm:647 ../lib/XXV/MODULES/EPG.pm:751 ../lib/XXV/MODULES/RECORDS.pm:1887 ../lib/XXV/MODULES/RECORDS.pm:2068 ../lib/XXV/MODULES/TIMERS.pm:773 ../lib/XXV/OUTPUT/Console.pm:169 +#: ../html/display.tmpl:60 ../lib/XXV/MODULES/AUTOTIMER.pm:445 ../lib/XXV/MODULES/AUTOTIMER.pm:647 ../lib/XXV/MODULES/EPG.pm:751 ../lib/XXV/MODULES/RECORDS.pm:1887 ../lib/XXV/MODULES/RECORDS.pm:2068 ../lib/XXV/MODULES/TIMERS.pm:804 ../lib/XXV/OUTPUT/Console.pm:169 msgid "Description" msgstr "Beschreibung" #-------------------- -#: ../html/display.tmpl:69 ../html/rlist.tmpl:243 ../html/rsearch.tmpl:243 ../html/topten.tmpl:21 ../lib/XXV/MODULES/AUTOTIMER.pm:1141 ../lib/XXV/MODULES/AUTOTIMER.pm:439 ../lib/XXV/MODULES/AUTOTIMER.pm:442 ../lib/XXV/MODULES/CHRONICLE.pm:170 ../lib/XXV/MODULES/CHRONICLE.pm:209 ../lib/XXV/MODULES/EPG.pm:749 ../lib/XXV/MODULES/EPG.pm:850 ../lib/XXV/MODULES/EPG.pm:924 ../lib/XXV/MODULES/TIMERS.pm:1125 +#: ../html/display.tmpl:69 ../html/rlist.tmpl:243 ../html/rsearch.tmpl:243 ../html/topten.tmpl:21 ../lib/XXV/MODULES/AUTOTIMER.pm:1141 ../lib/XXV/MODULES/AUTOTIMER.pm:439 ../lib/XXV/MODULES/AUTOTIMER.pm:442 ../lib/XXV/MODULES/CHRONICLE.pm:170 ../lib/XXV/MODULES/CHRONICLE.pm:209 ../lib/XXV/MODULES/EPG.pm:749 ../lib/XXV/MODULES/EPG.pm:850 ../lib/XXV/MODULES/EPG.pm:924 ../lib/XXV/MODULES/TIMERS.pm:1182 msgid "Start" msgstr "Start" @@ -327,7 +327,7 @@ msgid "PDC" msgstr "VPS" #-------------------- -#: ../html/display.tmpl:75 ../html/widgets/player.tmpl:100 ../html/widgets/player.tmpl:60 ../lib/XXV/MODULES/AUTOTIMER.pm:1142 ../lib/XXV/MODULES/AUTOTIMER.pm:440 ../lib/XXV/MODULES/AUTOTIMER.pm:443 ../lib/XXV/MODULES/CHRONICLE.pm:171 ../lib/XXV/MODULES/CHRONICLE.pm:210 ../lib/XXV/MODULES/EPG.pm:750 ../lib/XXV/MODULES/EPG.pm:851 ../lib/XXV/MODULES/EPG.pm:925 ../lib/XXV/MODULES/TIMERS.pm:1126 +#: ../html/display.tmpl:75 ../html/widgets/player.tmpl:100 ../html/widgets/player.tmpl:60 ../lib/XXV/MODULES/AUTOTIMER.pm:1142 ../lib/XXV/MODULES/AUTOTIMER.pm:440 ../lib/XXV/MODULES/AUTOTIMER.pm:443 ../lib/XXV/MODULES/CHRONICLE.pm:171 ../lib/XXV/MODULES/CHRONICLE.pm:210 ../lib/XXV/MODULES/EPG.pm:750 ../lib/XXV/MODULES/EPG.pm:851 ../lib/XXV/MODULES/EPG.pm:925 ../lib/XXV/MODULES/TIMERS.pm:1183 msgid "Stop" msgstr "Stopp" @@ -464,8 +464,8 @@ msgstr "Regel zum Verschieben von Timern" #-------------------- #: ../html/help.tmpl:66 #. (15) -msgid "Media" -msgstr "Medien" +msgid "Media content" +msgstr "Medieninhalte" #-------------------- #: ../html/help.tmpl:67 ../lib/XXV/MODULES/HTTPD.pm:99 ../lib/XXV/MODULES/WAPD.pm:80 ../wml/widgets/footer.tmpl:18 @@ -527,7 +527,7 @@ msgid "Edit channels" msgstr "Kanäle bearbeiten" #-------------------- -#: ../html/help.tmpl:92 ../html/widgets/player.tmpl:105 ../html/widgets/player.tmpl:69 ../lib/XXV/MODULES/HTTPD.pm:103 ../lib/XXV/MODULES/TIMERS.pm:1122 ../lib/XXV/MODULES/WAPD.pm:84 +#: ../html/help.tmpl:92 ../html/widgets/player.tmpl:105 ../html/widgets/player.tmpl:69 ../lib/XXV/MODULES/HTTPD.pm:103 ../lib/XXV/MODULES/TIMERS.pm:1179 ../lib/XXV/MODULES/WAPD.pm:84 msgid "Status" msgstr "Status" @@ -682,7 +682,7 @@ msgid "Save" msgstr "Speichern" #-------------------- -#: ../html/mlcopy.tmpl:23 ../html/mledit.tmpl:23 ../html/mlimport.tmpl:23 ../html/rlist.tmpl:241 ../html/rsearch.tmpl:241 ../html/topten.tmpl:21 ../lib/XXV/MODULES/AUTOTIMER.pm:434 ../lib/XXV/MODULES/AUTOTIMER.pm:645 ../lib/XXV/MODULES/CHRONICLE.pm:166 ../lib/XXV/MODULES/CHRONICLE.pm:205 ../lib/XXV/MODULES/EPG.pm:746 ../lib/XXV/MODULES/EPG.pm:848 ../lib/XXV/MODULES/EPG.pm:922 ../lib/XXV/MODULES/MEDIALIB.pm:1300 ../lib/XXV/MODULES/MUSIC.pm:610 ../lib/XXV/MODULES/RECORDS.pm:1520 ../lib/XXV/MODULES/RECORDS.pm:1595 ../lib/XXV/MODULES/TIMERS.pm:1127 +#: ../html/mlcopy.tmpl:23 ../html/mledit.tmpl:23 ../html/mlimport.tmpl:23 ../html/rlist.tmpl:241 ../html/rsearch.tmpl:241 ../html/topten.tmpl:21 ../lib/XXV/MODULES/AUTOTIMER.pm:434 ../lib/XXV/MODULES/AUTOTIMER.pm:645 ../lib/XXV/MODULES/CHRONICLE.pm:166 ../lib/XXV/MODULES/CHRONICLE.pm:205 ../lib/XXV/MODULES/EPG.pm:746 ../lib/XXV/MODULES/EPG.pm:848 ../lib/XXV/MODULES/EPG.pm:922 ../lib/XXV/MODULES/MEDIALIB.pm:1300 ../lib/XXV/MODULES/MUSIC.pm:610 ../lib/XXV/MODULES/RECORDS.pm:1520 ../lib/XXV/MODULES/RECORDS.pm:1595 ../lib/XXV/MODULES/TIMERS.pm:1184 msgid "Title" msgstr "Titel" @@ -893,8 +893,8 @@ msgstr "Lösche Regel zum Verschieben von Timern" #-------------------- #: ../html/movetimerlist.tmpl:14 -msgid "You will delete this rule" -msgstr "Wollen Sie diese Regel löschen" +msgid "Would you like to delete this rule?" +msgstr "Wollen Sie diese Regel löschen?" #-------------------- #: ../html/movetimerlist.tmpl:50 @@ -902,7 +902,7 @@ msgid "Rules to move timer between channels" msgstr "Regeln zum Verschieben von Timern zwischen Kanälen" #-------------------- -#: ../html/movetimerlist.tmpl:54 ../html/movetimerlist.tmpl:55 ../lib/XXV/MODULES/MOVETIMER.pm:427 +#: ../html/movetimerlist.tmpl:54 ../html/movetimerlist.tmpl:55 ../lib/XXV/MODULES/MOVETIMER.pm:443 #. (25) msgid "Create a new rule to move timer" msgstr "Erzeuge eine neue Regel zum Verschieben von Timern" @@ -921,31 +921,31 @@ msgstr "Lösche Regeln zum Verschieben von Timern" #-------------------- #: ../html/movetimerlist.tmpl:64 -msgid "You would delete follow rules?" -msgstr "Wollen Sie die folgenden Regeln löschen?" +msgid "Would you like to delete these rules?" +msgstr "Wollen Sie diese Regeln löschen?" #-------------------- -#: ../html/movetimerlist.tmpl:7 ../lib/XXV/MODULES/MOVETIMER.pm:426 +#: ../html/movetimerlist.tmpl:7 ../lib/XXV/MODULES/MOVETIMER.pm:442 msgid "Edit rule to move timer" msgstr "Regel zum Verschieben von Timern bearbeiten" #-------------------- -#: ../html/movetimerlist.tmpl:82 ../lib/XXV/MODULES/MOVETIMER.pm:528 +#: ../html/movetimerlist.tmpl:82 ../lib/XXV/MODULES/MOVETIMER.pm:544 msgid "Source" msgstr "Quelle" #-------------------- -#: ../html/movetimerlist.tmpl:83 ../lib/XXV/MODULES/MOVETIMER.pm:529 +#: ../html/movetimerlist.tmpl:83 ../lib/XXV/MODULES/MOVETIMER.pm:545 msgid "Destination" msgstr "Ziel" #-------------------- -#: ../html/movetimerlist.tmpl:84 ../lib/XXV/MODULES/MOVETIMER.pm:530 ../lib/XXV/MODULES/MOVETIMER.pm:593 +#: ../html/movetimerlist.tmpl:84 ../lib/XXV/MODULES/MOVETIMER.pm:546 ../lib/XXV/MODULES/MOVETIMER.pm:609 msgid "Move timer" msgstr "Verschiebe Timer" #-------------------- -#: ../html/movetimerlist.tmpl:85 ../lib/XXV/MODULES/MOVETIMER.pm:531 +#: ../html/movetimerlist.tmpl:85 ../lib/XXV/MODULES/MOVETIMER.pm:547 msgid "Change original timer" msgstr "Ändere original Timer" @@ -1040,7 +1040,7 @@ msgid "Lifetime" msgstr "Lebenszeit" #-------------------- -#: ../html/rdisplay.tmpl:162 ../lib/XXV/MODULES/TIMERS.pm:1128 +#: ../html/rdisplay.tmpl:162 ../lib/XXV/MODULES/TIMERS.pm:1185 msgid "Priority" msgstr "Priorität" @@ -1055,9 +1055,9 @@ msgid "Recording list" msgstr "Aufnahmeliste" #-------------------- -#: ../html/rdisplay.tmpl:76 -msgid "Do you really want to delete these recordings?" -msgstr "Sie wollen wirklich diese Aufnahmen löschen" +#: ../html/rdisplay.tmpl:76 ../lib/XXV/MODULES/RECORDS.pm:1699 +msgid "Would you like to delete this recording?" +msgstr "Wollen Sie diese Aufnahme löschen?" #-------------------- #: ../html/rdisplay.tmpl:77 @@ -1106,8 +1106,8 @@ msgstr "Lese die Aufnahmeliste neu ein" #-------------------- #: ../html/rlist.tmpl:123 ../html/rsearch.tmpl:123 -msgid "Do you want to delete the following recordings?" -msgstr "Wollen sie folgende Aufnahmen löschen?" +msgid "Would you like to delete these recordings?" +msgstr "Wollen Sie diese Aufnahmen löschen?" #-------------------- #: ../html/rlist.tmpl:125 ../html/rsearch.tmpl:125 @@ -1282,9 +1282,9 @@ msgid "Toggle timer" msgstr "Timer umschalten" #-------------------- -#: ../html/tlist.tmpl:28 ../html/tlist.tmpl:82 ../html/tsearch.tmpl:28 ../html/tsearch.tmpl:82 -msgid "Would You like to delete the following timer(s)?" -msgstr "Sie wollen folgende Timer löschen?" +#: ../html/tlist.tmpl:28 ../html/tsearch.tmpl:28 +msgid "Would you like to delete these timers?" +msgstr "Wollen Sie diese Timer löschen?" #-------------------- #: ../html/tlist.tmpl:30 ../html/tsearch.tmpl:30 @@ -1297,6 +1297,11 @@ msgid "Search for timers" msgstr "Suche nach Timern" #-------------------- +#: ../html/tlist.tmpl:82 ../html/tsearch.tmpl:82 ../lib/XXV/MODULES/TIMERS.pm:893 +msgid "Would you like to delete this timer?" +msgstr "Wollen Sie diesen Timer löschen?" + +#-------------------- #: ../html/tlist.tmpl:95 ../html/tsearch.tmpl:95 msgid "Not enough space to record this timer!" msgstr "Nicht genügend Kapazität um diesen Timer aufzunehmen!" @@ -1333,8 +1338,8 @@ msgstr "Lösche Anwenderzugang" #-------------------- #: ../html/ulist.tmpl:29 -msgid "Do you really want to delete this user account?" -msgstr "Sie wollen wirklich diese Anwenderzugang löschen" +msgid "Would you like to delete this user account?" +msgstr "Wollen Sie diese Anwenderzugang löschen?" #-------------------- #: ../html/ulist.tmpl:4 @@ -1792,7 +1797,7 @@ msgid "Search for autotimer with text 'aid'" msgstr "Suche nach Autotimer mit Text 'aid'" #-------------------- -#: ../lib/XXV/MODULES/AUTOTIMER.pm:769 ../lib/XXV/MODULES/TIMERS.pm:692 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:769 ../lib/XXV/MODULES/TIMERS.pm:723 msgid "Start time in format 'HH:MM'" msgstr "Startzeit im Format 'HH:MM'" @@ -1802,12 +1807,12 @@ msgid "You set a start time without an end time!" msgstr "Startzeitpunkt ohne Stoppzeitpunkt definiert!" #-------------------- -#: ../lib/XXV/MODULES/AUTOTIMER.pm:776 ../lib/XXV/MODULES/AUTOTIMER.pm:782 ../lib/XXV/MODULES/AUTOTIMER.pm:799 ../lib/XXV/MODULES/AUTOTIMER.pm:805 ../lib/XXV/MODULES/TIMERS.pm:696 ../lib/XXV/MODULES/TIMERS.pm:702 ../lib/XXV/MODULES/TIMERS.pm:715 ../lib/XXV/MODULES/TIMERS.pm:721 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:776 ../lib/XXV/MODULES/AUTOTIMER.pm:782 ../lib/XXV/MODULES/AUTOTIMER.pm:799 ../lib/XXV/MODULES/AUTOTIMER.pm:805 ../lib/XXV/MODULES/TIMERS.pm:727 ../lib/XXV/MODULES/TIMERS.pm:733 ../lib/XXV/MODULES/TIMERS.pm:746 ../lib/XXV/MODULES/TIMERS.pm:752 msgid "The time is incorrect!" msgstr "Die Zeit ist nicht korrekt!" #-------------------- -#: ../lib/XXV/MODULES/AUTOTIMER.pm:792 ../lib/XXV/MODULES/TIMERS.pm:711 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:792 ../lib/XXV/MODULES/TIMERS.pm:742 msgid "End time in format 'HH:MM'" msgstr "Endzeit im Format 'HH:MM'" @@ -1837,7 +1842,7 @@ msgid "Buffer time in minutes before the scheduled start of a recording" msgstr "Pufferzeit in Minuten, vor dem zeitlichen Anfang der Aufnahme." #-------------------- -#: ../lib/XXV/MODULES/AUTOTIMER.pm:855 ../lib/XXV/MODULES/AUTOTIMER.pm:869 ../lib/XXV/MODULES/AUTOTIMER.pm:882 ../lib/XXV/MODULES/AUTOTIMER.pm:898 ../lib/XXV/MODULES/AUTOTIMER.pm:914 ../lib/XXV/MODULES/CHANNELS.pm:683 ../lib/XXV/MODULES/CHANNELS.pm:714 ../lib/XXV/MODULES/CHANNELS.pm:753 ../lib/XXV/MODULES/CHANNELS.pm:766 ../lib/XXV/MODULES/CHANNELS.pm:792 ../lib/XXV/MODULES/CHANNELS.pm:818 ../lib/XXV/MODULES/CHANNELS.pm:831 ../lib/XXV/MODULES/CHANNELS.pm:844 ../lib/XXV/MODULES/CHANNELS.pm:857 ../lib/XXV/MODULES/GRAB.pm:105 ../lib/XXV/MODULES/GRAB.pm:36 ../lib/XXV/MODULES/GRAB.pm:50 ../lib/XXV/MODULES/GRAB.pm:73 ../lib/XXV/MODULES/GRAB.pm:92 ../lib/XXV/MODULES/RECORDS.pm:1846 ../lib/XXV/MODULES/RECORDS.pm:1860 ../lib/XXV/MODULES/STREAM.pm:76 ../lib/XXV/MODULES/STREAM.pm:90 ../lib/XXV/MODULES/TIMERS.pm:737 ../lib/XXV/MODULES/TIMERS.pm:753 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:855 ../lib/XXV/MODULES/AUTOTIMER.pm:869 ../lib/XXV/MODULES/AUTOTIMER.pm:882 ../lib/XXV/MODULES/AUTOTIMER.pm:898 ../lib/XXV/MODULES/AUTOTIMER.pm:914 ../lib/XXV/MODULES/CHANNELS.pm:683 ../lib/XXV/MODULES/CHANNELS.pm:714 ../lib/XXV/MODULES/CHANNELS.pm:753 ../lib/XXV/MODULES/CHANNELS.pm:766 ../lib/XXV/MODULES/CHANNELS.pm:792 ../lib/XXV/MODULES/CHANNELS.pm:818 ../lib/XXV/MODULES/CHANNELS.pm:831 ../lib/XXV/MODULES/CHANNELS.pm:844 ../lib/XXV/MODULES/CHANNELS.pm:857 ../lib/XXV/MODULES/GRAB.pm:105 ../lib/XXV/MODULES/GRAB.pm:36 ../lib/XXV/MODULES/GRAB.pm:50 ../lib/XXV/MODULES/GRAB.pm:73 ../lib/XXV/MODULES/GRAB.pm:92 ../lib/XXV/MODULES/RECORDS.pm:1846 ../lib/XXV/MODULES/RECORDS.pm:1860 ../lib/XXV/MODULES/STREAM.pm:76 ../lib/XXV/MODULES/STREAM.pm:90 ../lib/XXV/MODULES/TIMERS.pm:768 ../lib/XXV/MODULES/TIMERS.pm:784 msgid "Value incorrect!" msgstr "Der Wert ist nicht korrekt!" @@ -1857,22 +1862,22 @@ msgid "Start autotimer search." msgstr "Autotimersuche durchführen" #-------------------- -#: ../lib/XXV/MODULES/AUTOTIMER.pm:888 ../lib/XXV/MODULES/RECORDS.pm:1853 ../lib/XXV/MODULES/TIMERS.pm:727 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:888 ../lib/XXV/MODULES/RECORDS.pm:1853 ../lib/XXV/MODULES/TIMERS.pm:758 msgid "Priority (%d ... %d)" msgstr "Priorität (%d ... %d)" #-------------------- -#: ../lib/XXV/MODULES/AUTOTIMER.pm:894 ../lib/XXV/MODULES/TIMERS.pm:733 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:894 ../lib/XXV/MODULES/TIMERS.pm:764 msgid "Sorry, but the maximum priority is limited to %d!" msgstr "Entschuldigung, aber die maximale Priorität ist auf %d begrenzt!" #-------------------- -#: ../lib/XXV/MODULES/AUTOTIMER.pm:904 ../lib/XXV/MODULES/RECORDS.pm:1839 ../lib/XXV/MODULES/TIMERS.pm:743 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:904 ../lib/XXV/MODULES/RECORDS.pm:1839 ../lib/XXV/MODULES/TIMERS.pm:774 msgid "Lifetime (%d ... %d)" msgstr "Lebenszeit (%d ... %d)" #-------------------- -#: ../lib/XXV/MODULES/AUTOTIMER.pm:910 ../lib/XXV/MODULES/TIMERS.pm:749 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:910 ../lib/XXV/MODULES/TIMERS.pm:780 msgid "Sorry, but the maximum life time is limited to %d!" msgstr "Entschuldigung, aber die maximale Lebenszeit ist auf %d begrenzt!" @@ -1892,7 +1897,7 @@ msgid "Start date as YYYY-MM-DD HH:MM:SS." msgstr "Startdatum als DD.MM.YYYY HH:MM:SS." #-------------------- -#: ../lib/XXV/MODULES/AUTOTIMER.pm:947 ../lib/XXV/MODULES/AUTOTIMER.pm:979 ../lib/XXV/MODULES/TIMERS.pm:669 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:947 ../lib/XXV/MODULES/AUTOTIMER.pm:979 ../lib/XXV/MODULES/TIMERS.pm:700 msgid "Language=English" msgstr "Language=German,DateFormat=non-US" @@ -1902,7 +1907,7 @@ msgid "Toggle autotimer on or off 'aid'" msgstr "Umschalten der Autotimer zwischen Ein und Aus 'aid'" #-------------------- -#: ../lib/XXV/MODULES/AUTOTIMER.pm:954 ../lib/XXV/MODULES/AUTOTIMER.pm:986 ../lib/XXV/MODULES/TIMERS.pm:683 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:954 ../lib/XXV/MODULES/AUTOTIMER.pm:986 ../lib/XXV/MODULES/TIMERS.pm:714 msgid "The day is incorrect or was in a wrong format!" msgstr "Der Tag ist nicht korrekt oder hatte ein falsches Format!" @@ -2062,17 +2067,12 @@ msgid "No channel defined for deletion! Please use cdelete 'pos'!" msgstr "Kanal zu löschen definiert! Bitte verwende cdelete 'pos'" #-------------------- -#: ../lib/XXV/MODULES/CHANNELS.pm:970 -msgid "Do you want to delete this channel?" -msgstr "Wollen sie diesen Kanal wirklich löschen?" - -#-------------------- #: ../lib/XXV/MODULES/CHANNELS.pm:995 msgid "No channel defined for deletion!" msgstr "Kein Kanal zum Löschen definiert!" #-------------------- -#: ../lib/XXV/MODULES/CHRONICLE.pm:169 ../lib/XXV/MODULES/CHRONICLE.pm:208 ../lib/XXV/MODULES/TIMERS.pm:1123 +#: ../lib/XXV/MODULES/CHRONICLE.pm:169 ../lib/XXV/MODULES/CHRONICLE.pm:208 ../lib/XXV/MODULES/TIMERS.pm:1180 msgid "Day" msgstr "Tag" @@ -2436,7 +2436,7 @@ msgid "Traffic on HTTPD socket since %s: transmitted: %s - received: %s - connec msgstr "Datenverkehr des HTTPD Anschlusses seit %s: gesendet: %s - empfangen: %s - Verbindungen: %d." #-------------------- -#: ../lib/XXV/MODULES/HTTPD.pm:569 ../lib/XXV/OUTPUT/Console.pm:676 ../lib/XXV/OUTPUT/Html.pm:811 +#: ../lib/XXV/MODULES/HTTPD.pm:569 ../lib/XXV/OUTPUT/Console.pm:676 ../lib/XXV/OUTPUT/Html.pm:810 msgid "Could not open file '%s'! : %s" msgstr "Konnte Datei '%s' nicht öffnen : %s" @@ -2806,52 +2806,52 @@ msgid "This modul move timers between channels." msgstr "Diese Modul verschiebt Timer zwischen Kanälen." #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:201 +#: ../lib/XXV/MODULES/MOVETIMER.pm:217 msgid "Couldn't query rules to move timer from database!" msgstr "Konnte Regel zum Verschieben der Timer nicht aus der Datenbank abfragen!" #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:277 +#: ../lib/XXV/MODULES/MOVETIMER.pm:293 msgid "There none timer to move." msgstr "Es wurden keine Timer verschoben." #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:346 ../lib/XXV/MODULES/MOVETIMER.pm:503 +#: ../lib/XXV/MODULES/MOVETIMER.pm:362 ../lib/XXV/MODULES/MOVETIMER.pm:519 msgid "Rule to move timer with ID '%s' does not exist in the database!" msgstr "Regel zum Verschieben der Timer mit ID '%s' exisitert nicht in der Datenbank!" #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:363 +#: ../lib/XXV/MODULES/MOVETIMER.pm:379 msgid "Which channel should used as source?" msgstr "Welcher Kanal soll als Quelle verwendet werden?" #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:375 ../lib/XXV/MODULES/MOVETIMER.pm:397 ../lib/XXV/MODULES/RECORDS.pm:1880 ../lib/XXV/MODULES/STREAM.pm:170 ../lib/XXV/MODULES/TIMERS.pm:643 +#: ../lib/XXV/MODULES/MOVETIMER.pm:39 +msgid "List rules to move timer between channels" +msgstr "Zeige Regel zum Verschieben von Timer zwischen Kanälen" + +#-------------------- +#: ../lib/XXV/MODULES/MOVETIMER.pm:391 ../lib/XXV/MODULES/MOVETIMER.pm:413 ../lib/XXV/MODULES/RECORDS.pm:1880 ../lib/XXV/MODULES/STREAM.pm:170 ../lib/XXV/MODULES/TIMERS.pm:674 msgid "This channel '%s' does not exist!" msgstr "Dieser Kanal '%s' existiert nicht in der Datenbank!" #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:385 +#: ../lib/XXV/MODULES/MOVETIMER.pm:401 msgid "Which channel should used as destination?" msgstr "Welcher Kanal soll als Ziel verwendet werden?" #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:39 -msgid "List rules to move timer between channels" -msgstr "Zeige Regel zum Verschieben von Timer zwischen Kanälen" - -#-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:404 +#: ../lib/XXV/MODULES/MOVETIMER.pm:420 msgid "When should use this rule" msgstr "Wann soll die Regel verwendet werden" #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:414 +#: ../lib/XXV/MODULES/MOVETIMER.pm:430 msgid "How should timer handled, if changed" msgstr "Wie sollen Timer behandelt bei Änderungen behandelt werden" #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:435 +#: ../lib/XXV/MODULES/MOVETIMER.pm:451 msgid "Rule to move timer saved!" msgstr "Regel zum Verschieben von Timern gespeichert!" @@ -2861,17 +2861,17 @@ msgid "Create rule to move timer between channels" msgstr "Erzeuge eine neue Regel zum Verschieben von Timern zwischen Kanälen" #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:472 ../lib/XXV/MODULES/MOVETIMER.pm:479 +#: ../lib/XXV/MODULES/MOVETIMER.pm:488 ../lib/XXV/MODULES/MOVETIMER.pm:495 msgid "Couldn't insert rule move timer in database!" msgstr "Regel zum Verschieben von Timern konnte nicht in Datenbank eingefügt werden!" #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:495 +#: ../lib/XXV/MODULES/MOVETIMER.pm:511 msgid "Missing ID to select rules for deletion! Please use movetimerdelete 'id'" msgstr "Benötige ID zum Auswählen der Regel für die Löschung! Bitte verwende movetimerdelete 'id'" #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:507 +#: ../lib/XXV/MODULES/MOVETIMER.pm:523 msgid "Rule to move timer %s is deleted." msgstr "Regel zum Verschieben der Timer %s wurde gelöscht." @@ -2881,36 +2881,36 @@ msgid "Delete rule to move timer between channels" msgstr "Lösche Regel zum Verschieben von Timern zwischen Kanälen" #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:581 +#: ../lib/XXV/MODULES/MOVETIMER.pm:597 msgid "Allways" msgstr "Immer" #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:582 +#: ../lib/XXV/MODULES/MOVETIMER.pm:598 msgid "Newer" msgstr "Niemals" #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:583 +#: ../lib/XXV/MODULES/MOVETIMER.pm:599 msgid "If collision detected" msgstr "Wenn eine Kollision erkannt wurde" #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:594 +#: ../lib/XXV/MODULES/MOVETIMER.pm:60 +msgid "Edit rule to move timer between channels" +msgstr "Bearbeite Regel zum Verschieben von Timern zwischen Kanälen" + +#-------------------- +#: ../lib/XXV/MODULES/MOVETIMER.pm:610 msgid "Keep inactiv original timer" msgstr "Behalte den inaktiven original Timer" #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:595 +#: ../lib/XXV/MODULES/MOVETIMER.pm:611 msgid "Copy original timer" msgstr "Kopiere den original Timer" #-------------------- -#: ../lib/XXV/MODULES/MOVETIMER.pm:60 -msgid "Edit rule to move timer between channels" -msgstr "Bearbeite Regel zum Verschieben von Timern zwischen Kanälen" - -#-------------------- #: ../lib/XXV/MODULES/MUSIC.pm:102 msgid "Download album covers." msgstr "Plattenhüllen herunterladen." @@ -3131,11 +3131,6 @@ msgid "No recording defined for deletion! Please use rdelete 'id'." msgstr "Keine Aufnahme zum Löschen definiert! Bitte verwende rdelete 'rid'." #-------------------- -#: ../lib/XXV/MODULES/RECORDS.pm:1699 -msgid "Are you sure to delete this recording?" -msgstr "Wollen sie wirklich diese Aufnahme löschen?" - -#-------------------- #: ../lib/XXV/MODULES/RECORDS.pm:1733 msgid "Recording '%s' to delete" msgstr "Aufnahme '%s' wird gelöscht" @@ -3156,7 +3151,7 @@ msgid "No recording defined for editing!" msgstr "Keine Aufnahme-ID zum Bearbeiten!" #-------------------- -#: ../lib/XXV/MODULES/RECORDS.pm:1833 ../lib/XXV/MODULES/RECORDS.pm:2425 ../lib/XXV/MODULES/TIMERS.pm:758 +#: ../lib/XXV/MODULES/RECORDS.pm:1833 ../lib/XXV/MODULES/RECORDS.pm:2426 ../lib/XXV/MODULES/TIMERS.pm:789 msgid "Title of recording" msgstr "Titel der Aufnahme" @@ -3266,32 +3261,32 @@ msgid "%d new recordings since last report time %s" msgstr "%d neue Aufnahmen seit der letzten Reportzeit %s" #-------------------- -#: ../lib/XXV/MODULES/RECORDS.pm:2415 +#: ../lib/XXV/MODULES/RECORDS.pm:2416 msgid "There none recoverable recordings!" msgstr "Es sind keine wiederherstellbaren Aufnahmen vorhanden!" #-------------------- -#: ../lib/XXV/MODULES/RECORDS.pm:2445 +#: ../lib/XXV/MODULES/RECORDS.pm:2446 msgid "Recover recording" msgstr "Aufnahme wiederherstellen" #-------------------- -#: ../lib/XXV/MODULES/RECORDS.pm:2451 +#: ../lib/XXV/MODULES/RECORDS.pm:2452 msgid "Can't recover recording, maybe was this in the meantime deleted!" msgstr "Aufnahme konnte nicht wiederhergestellt werden, möglicherweise wurde sie in der zwischenzeit gelöscht!" #-------------------- -#: ../lib/XXV/MODULES/RECORDS.pm:2460 +#: ../lib/XXV/MODULES/RECORDS.pm:2461 msgid "Recover recording, couldn't rename '%s' to %s : %s" msgstr "Wiederhergestellen der Aufnahme, konnte '%s' nicht in %s umbenennen : %s" #-------------------- -#: ../lib/XXV/MODULES/RECORDS.pm:2473 ../lib/XXV/MODULES/RECORDS.pm:2475 +#: ../lib/XXV/MODULES/RECORDS.pm:2474 ../lib/XXV/MODULES/RECORDS.pm:2476 msgid "Recording recovered!" msgstr "Aufnahme wiederhergestellt!" #-------------------- -#: ../lib/XXV/MODULES/RECORDS.pm:2483 +#: ../lib/XXV/MODULES/RECORDS.pm:2484 msgid "None recording was'nt recovered!" msgstr "Keine Aufnahme wurde wiederhergestellt!" @@ -3960,16 +3955,16 @@ msgid "Delete timer 'tid'" msgstr "Lösche Timer 'tid'" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:1062 -msgid "%d timer written to database." -msgstr "%d Timer in Datenbank geschrieben." - -#-------------------- #: ../lib/XXV/MODULES/TIMERS.pm:109 msgid "Activate/Deactive timer 'tid'" msgstr "Aktiviere/Deaktiviere Timer 'tid'" #-------------------- +#: ../lib/XXV/MODULES/TIMERS.pm:1109 +msgid "%d timer written to database." +msgstr "%d Timer in Datenbank geschrieben." + +#-------------------- #: ../lib/XXV/MODULES/TIMERS.pm:123 msgid "Create event entries if the user has created a new timer." msgstr "Erzeuge Ereigniseinträge, wenn ein neuer Timer vom Anwender erstellt wurde." @@ -3980,12 +3975,12 @@ msgid "New timer found: %s" msgstr "Neuer Timer gefunden: %s" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:1519 +#: ../lib/XXV/MODULES/TIMERS.pm:1574 msgid "Timer %d with title '%s' has started the recording!" msgstr "Timer %d mit Titel '%s' hat die Aufnahme gestartet!" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:1520 +#: ../lib/XXV/MODULES/TIMERS.pm:1575 msgid "on channel: %s to %s" msgstr "auf Kanal: %s bis %s" @@ -4050,19 +4045,19 @@ msgid "How much DVB cards exist on this system" msgstr "Wieviel DVB Karten sind im System" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:542 -msgid "Event '%s' does not exist in the database!" -msgstr "Sendung '%s' existiert nicht in der Datenbank!" - -#-------------------- #: ../lib/XXV/MODULES/TIMERS.pm:57 msgid "Use Programme Delivery Control (PDC) to control start time" msgstr "Verwende Video Program System (VPS) zum Überwachen der Startzeit" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:604 ../lib/XXV/MODULES/TIMERS.pm:835 ../lib/XXV/MODULES/TIMERS.pm:899 -msgid "Timer '%s' does not exist in the database!" -msgstr "Timer '%s' existiert nicht in der Datenbank!" +#: ../lib/XXV/MODULES/TIMERS.pm:576 ../lib/XXV/MODULES/TIMERS.pm:579 +msgid "Event '%s' does not exist in the database!" +msgstr "Sendung '%s' existiert nicht in der Datenbank!" + +#-------------------- +#: ../lib/XXV/MODULES/TIMERS.pm:594 ../lib/XXV/MODULES/TIMERS.pm:813 +msgid "New timer" +msgstr "Neuer Timer" #-------------------- #: ../lib/XXV/MODULES/TIMERS.pm:62 @@ -4070,91 +4065,86 @@ msgid "Change timers if EPG entries change" msgstr "Timer justieren, wenn EPG Eintrag verändert wurde" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:624 +#: ../lib/XXV/MODULES/TIMERS.pm:635 ../lib/XXV/MODULES/TIMERS.pm:882 ../lib/XXV/MODULES/TIMERS.pm:946 +msgid "Timer '%s' does not exist in the database!" +msgstr "Timer '%s' existiert nicht in der Datenbank!" + +#-------------------- +#: ../lib/XXV/MODULES/TIMERS.pm:655 msgid "Enable this timer" msgstr "Aktiviere diesen Timer" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:629 +#: ../lib/XXV/MODULES/TIMERS.pm:660 msgid "Use PDC time to control timer" msgstr "Verwende VPS Zeit zum Überwachen des Timers" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:635 +#: ../lib/XXV/MODULES/TIMERS.pm:666 msgid "Which channel should recorded" msgstr "Welcher Kanal soll aufgezeichnet werden" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:657 +#: ../lib/XXV/MODULES/TIMERS.pm:688 msgid "%Y-%m-%d" msgstr "%d.%m.%Y" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:663 -msgid "Enter a day (1 to 31) or weekday in format 'MTWTFSS'." -msgstr "Tag (1 - 31) oder Wochentag im Format 'MDMDFSS' eingeben." - -#-------------------- #: ../lib/XXV/MODULES/TIMERS.pm:69 msgid "List timers 'tid'" msgstr "Zeige Timer 'tid'" #-------------------- +#: ../lib/XXV/MODULES/TIMERS.pm:694 +msgid "Enter a day (1 to 31) or weekday in format 'MTWTFSS'." +msgstr "Tag (1 - 31) oder Wochentag im Format 'MDMDFSS' eingeben." + +#-------------------- #: ../lib/XXV/MODULES/TIMERS.pm:75 msgid "Search timers 'text'" msgstr "Suche Timer 'text'" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:781 -msgid "Edit timer" -msgstr "Timer bearbeiten" - -#-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:782 -msgid "New timer" -msgstr "Neuer Timer" - -#-------------------- #: ../lib/XXV/MODULES/TIMERS.pm:81 msgid "Read timers and write them to the database" msgstr "Lese Timer und schreibe sie in die Datenbank" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:821 +#: ../lib/XXV/MODULES/TIMERS.pm:812 +msgid "Edit timer" +msgstr "Timer bearbeiten" + +#-------------------- +#: ../lib/XXV/MODULES/TIMERS.pm:868 msgid "No timer defined for deletion! Please use tdelete 'tid'." msgstr "Kein Timer zum Löschen definiert! Bitte verwende tdelete 'tid'." #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:846 -msgid "Are you sure to delete this timer?" -msgstr "Sind Sie sicher, wollen Sie den Timer löschen?" +#: ../lib/XXV/MODULES/TIMERS.pm:88 +msgid "Create timer 'eid'" +msgstr "Erzeuge Timer 'eid'" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:873 +#: ../lib/XXV/MODULES/TIMERS.pm:920 msgid "No timer to delete!" msgstr "Kein Timer zum Löschen!" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:88 -msgid "Create timer 'eid'" -msgstr "Erzeuge Timer 'eid'" - -#-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:885 +#: ../lib/XXV/MODULES/TIMERS.pm:932 msgid "No timer defined to toggle! Please use ttoggle 'id'." msgstr "Kein Timer zum Umschalten definiert! Bitte verwende ttoggle 'tid'" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:944 -msgid "No timer to toggle!" -msgstr "Kein Timer zum Umschalten!" - -#-------------------- #: ../lib/XXV/MODULES/TIMERS.pm:95 msgid "Edit timer 'tid'" msgstr "Bearbeite Timer 'tid'" #-------------------- +#: ../lib/XXV/MODULES/TIMERS.pm:991 +msgid "No timer to toggle!" +msgstr "Kein Timer zum Umschalten!" + +#-------------------- #: ../lib/XXV/MODULES/USER.pm:103 msgid "Log out from current session." msgstr "Abmelden von der aktuellen Sitzung." @@ -4481,17 +4471,17 @@ msgid "This receives and sends ASCII messages" msgstr "Dies empfängt und sendet ASCII Nachrichten" #-------------------- -#: ../lib/XXV/OUTPUT/Console.pm:304 ../lib/XXV/OUTPUT/Html.pm:505 ../lib/XXV/OUTPUT/Wml.pm:297 ../wml/widgets/dir.tmpl:8 +#: ../lib/XXV/OUTPUT/Console.pm:304 ../lib/XXV/OUTPUT/Html.pm:506 ../lib/XXV/OUTPUT/Wml.pm:297 ../wml/widgets/dir.tmpl:8 msgid "Directory '%s' does not exist!" msgstr "Verzeichnis '%s' existiert leider nicht!" #-------------------- -#: ../lib/XXV/OUTPUT/Console.pm:309 ../lib/XXV/OUTPUT/Html.pm:510 ../lib/XXV/OUTPUT/Wml.pm:302 ../wml/widgets/file.tmpl:8 +#: ../lib/XXV/OUTPUT/Console.pm:309 ../lib/XXV/OUTPUT/Html.pm:511 ../lib/XXV/OUTPUT/Wml.pm:302 ../wml/widgets/file.tmpl:8 msgid "File '%s' does not exist!" msgstr "Datei '%s' existiert leider nicht!" #-------------------- -#: ../lib/XXV/OUTPUT/Console.pm:313 ../lib/XXV/OUTPUT/Html.pm:519 ../lib/XXV/OUTPUT/Wml.pm:306 +#: ../lib/XXV/OUTPUT/Console.pm:313 ../lib/XXV/OUTPUT/Html.pm:520 ../lib/XXV/OUTPUT/Wml.pm:306 msgid "Error '%s' (%s) : %s!" msgstr "Fehler im Feld '%s' (%s) : %s!" @@ -4537,7 +4527,7 @@ msgid "You can only use one of these elements: %s" msgstr "Sie können nur einen von diesen Elementen verwenden: %s" #-------------------- -#: ../lib/XXV/OUTPUT/Console.pm:640 ../lib/XXV/OUTPUT/Html.pm:769 +#: ../lib/XXV/OUTPUT/Console.pm:640 ../lib/XXV/OUTPUT/Html.pm:768 msgid "Module %s not found!" msgstr "Modul %s nicht gefunden!" @@ -4547,42 +4537,42 @@ msgid "This receives and sends dump messages." msgstr "Dies empfängt und sendet Ausgabe-Nachrichten" #-------------------- -#: ../lib/XXV/OUTPUT/Html.pm:28 +#: ../lib/XXV/OUTPUT/Html.pm:29 msgid "This receives and sends HTML messages." msgstr "Dies empfängt und sendet HTML Nachrichten" #-------------------- -#: ../lib/XXV/OUTPUT/Html.pm:446 +#: ../lib/XXV/OUTPUT/Html.pm:447 msgid "Authorization required" msgstr "Berechtigung erforderlich" #-------------------- -#: ../lib/XXV/OUTPUT/Html.pm:456 +#: ../lib/XXV/OUTPUT/Html.pm:457 msgid "Forbidden" msgstr "Verboten" #-------------------- -#: ../lib/XXV/OUTPUT/Html.pm:470 ../lib/XXV/OUTPUT/Wml.pm:267 +#: ../lib/XXV/OUTPUT/Html.pm:471 ../lib/XXV/OUTPUT/Wml.pm:267 msgid "Couldn't open file '%s' : %s!" msgstr "Kann Datei '%s' nicht öffnen : %s!" #-------------------- -#: ../lib/XXV/OUTPUT/Html.pm:471 +#: ../lib/XXV/OUTPUT/Html.pm:472 msgid "Not found" msgstr "Nicht gefunden" #-------------------- -#: ../lib/XXV/OUTPUT/Html.pm:557 +#: ../lib/XXV/OUTPUT/Html.pm:558 msgid "Please wait ..." msgstr "Bitte warten ..." #-------------------- -#: ../lib/XXV/OUTPUT/Html.pm:787 ../lib/XXV/OUTPUT/Wml.pm:385 +#: ../lib/XXV/OUTPUT/Html.pm:786 ../lib/XXV/OUTPUT/Wml.pm:385 msgid "Back to configuration page." msgstr "Zurück zur Konfigurationsseite" #-------------------- -#: ../lib/XXV/OUTPUT/Html.pm:818 +#: ../lib/XXV/OUTPUT/Html.pm:817 msgid "File" msgstr "Datei" diff --git a/locale/de/LC_MESSAGES/xxv.mo b/locale/de/LC_MESSAGES/xxv.mo Binary files differindex 853f4cd..92d6b64 100644 --- a/locale/de/LC_MESSAGES/xxv.mo +++ b/locale/de/LC_MESSAGES/xxv.mo |
