diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2008-01-03 11:56:27 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2008-01-03 11:56:27 +0000 |
| commit | 51899785cc76d32a71b043b6a19d3c8e904355e2 (patch) | |
| tree | d817e1b7f77bafe84b1418474213eda1140a92bf | |
| parent | 8222d826a768795076a655fcc057a218b7f8e933 (diff) | |
| download | xxv-51899785cc76d32a71b043b6a19d3c8e904355e2.tar.gz xxv-51899785cc76d32a71b043b6a19d3c8e904355e2.tar.bz2 | |
* STREAM: Add embed player of playback (selectable widget)
* GRAB: Check range of parameter width/height
* HTTPD: Some times missing footer
* EPG: display deliver channelid for stream
* Skins: remove skin.cfg / global.playbackmode
* Skins: add skin.cfg / global.preferedlocal as default button for Switch inside VDR or web cast
* Skins: format images to common size
* Skins: Add more images (mute,loud,quiet)
* Skins: Player with selectable widget (vlc/default media)
| -rw-r--r-- | html/program.tmpl | 2 | ||||
| -rw-r--r-- | html/rdisplay.tmpl | 2 | ||||
| -rw-r--r-- | html/topten.tmpl | 11 | ||||
| -rw-r--r-- | html/widgets/player.tmpl | 205 | ||||
| -rw-r--r-- | lib/XXV/MODULES/CHANNELS.pm | 4 | ||||
| -rw-r--r-- | lib/XXV/MODULES/EPG.pm | 3 | ||||
| -rw-r--r-- | lib/XXV/MODULES/GRAB.pm | 40 | ||||
| -rw-r--r-- | lib/XXV/MODULES/HTTPD.pm | 5 | ||||
| -rw-r--r-- | lib/XXV/MODULES/RECORDS.pm | 15 | ||||
| -rw-r--r-- | lib/XXV/MODULES/STREAM.pm | 130 | ||||
| -rw-r--r-- | lib/XXV/OUTPUT/Html.pm | 3 | ||||
| -rw-r--r-- | locale/de.po | 346 | ||||
| -rw-r--r-- | locale/de/LC_MESSAGES/xxv.mo | bin | 71086 -> 71911 bytes |
13 files changed, 553 insertions, 213 deletions
diff --git a/html/program.tmpl b/html/program.tmpl index 195fdb8..8fe07b1 100644 --- a/html/program.tmpl +++ b/html/program.tmpl @@ -36,7 +36,7 @@ </form> <td> <a href='?cmd=switch&data=<?% channelpos %?>'>[<?% gettext('Switch') %?>]</a> - <a href='?cmd=livestream&data=<?% channelpos %?>' type='audio/x-mpegurl'>[<?% gettext('Livestream') %?>]</a> + <a href='?cmd=livestream&data=<?% channelpos %?>'>[<?% gettext('Live TV web cast') %?>]</a> </td> </tr> </table> diff --git a/html/rdisplay.tmpl b/html/rdisplay.tmpl index 112c447..e1833fa 100644 --- a/html/rdisplay.tmpl +++ b/html/rdisplay.tmpl @@ -84,7 +84,7 @@ <a href="?cmd=redit&data=<?% data.RecordId %?>">[<?% gettext("Edit recording") %?>]</a> <?% END %?> <?% IF allow('playrecord') %?> - <a href="?cmd=playrecord&data=<?% data.RecordId %?>">[<?% gettext("Watch recording") %?>]</a> + <a href="?cmd=playrecord&data=<?% data.RecordId %?>">[<?% gettext("Watch recording as web cast") %?>]</a> <?% END %?> <?% IF allow('rplay') %?> <a href="?cmd=rplay&data=<?% data.RecordId %?>">[<?% gettext("Watch recording in VDR") %?>]</a> diff --git a/html/topten.tmpl b/html/topten.tmpl index b01c220..8ebe7f5 100644 --- a/html/topten.tmpl +++ b/html/topten.tmpl @@ -14,17 +14,6 @@ <table> <tr> -<!-- -<div id="navcontainer"> -<ul id="navlist"> - <li><a href="#" onclick="suche('<?% gettext('Search string:') %?>', '?cmd=search&__channel=<?% channelpos %?>&data=', '<?% cgi.param('search') %?>')"> - <?% gettext("Search on Channel") %?></a></li> - <li><a href='?cmd=switch&data=<?% channelpos %?>'><?% gettext('Switch') %?></a></li> - <li><a href='?cmd=livestream&data=<?% channelpos %?>' type='audio/x-mpegurl'><?% gettext('Livestream') %?></a></li> -</ul> -</div> ---> - <table border="0" width="95%"> <?% IF data.size %?> <?% fields = data.shift %?> diff --git a/html/widgets/player.tmpl b/html/widgets/player.tmpl index 0a4db13..d6354e8 100644 --- a/html/widgets/player.tmpl +++ b/html/widgets/player.tmpl @@ -1,20 +1,187 @@ -<br> <!-- player --> - <OBJECT id='mediaPlayer' width="320" height="285" - classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95' - codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701' - standby='Loading Microsoft Windows Media Player components...' type='application/x-oleobject'> - <param name='fileName' value="<?% data %?>"> - <param name='animationatStart' value='true'> - <param name='transparentatStart' value='true'> - <param name='autoStart' value="true"> - <param name='showControls' value="true"> - <param name='loop' value="true"> - <EMBED type='application/x-mplayer2' - pluginspage='http://microsoft.com/windows/mediaplayer/en/download/' - id='mediaPlayer' name='mediaPlayer' displaysize='4' autosize='-1' - bgcolor='darkblue' showcontrols="true" showtracker='-1' - showdisplay='0' showstatusbar='-1' videoborder3d='-1' width="320" height="285" - src="<?% data %?>" autostart="true" designtimesp='5311' loop="true"> - </EMBED> - </OBJECT> +<?% width = param.width %?> +<?% height = param.height %?> +<?% widget = param.widget %?> + +<?% IF info.http_useragent.match('.*MSIE.*') && !info.http_useragent.match('.*Opera.*'); + msie = 1; +ELSE; + msie = 0; +END %?> + + + +<h1><?% param.title %?></h1> + +<?% IF widget == 'vlc' && !msie %?> + +<!-- vlc with mozilla --> +<script language="javascript"> +<!-- + function volume_up() + { + var previous = document.vlc.get_volume(); + var newvolume = previous + 10; + if( newvolume > 200 ) newvolume = 200; + document.vlc.set_volume( newvolume ); + var volume = document.getElementById("volume_status"); + var current = document.vlc.get_volume(); + volume.innerHTML = current + " %"; + } + + function volume_down() + { + var previous = document.vlc.get_volume(); + var newvolume = previous - 10; + if( newvolume < 0 ) newvolume = 0; + document.vlc.set_volume( newvolume ); + var current = document.vlc.get_volume(); + volume.innerHTML = current + " %"; + } + function status() + { + var play_status = document.getElementById("play_status"); + play_status.innerHTML = document.vlc.isplaying() + ? "<?% gettext("Playing") %?>" + : "<?% gettext("Not playing") %?>"; + setTimeout("status()", 1000 ); + } +//--> +</script> +<p align='center'> + <embed type="application/x-vlc-plugin" + pluginspage="http://www.videolan.org/vlc" + name="vlc" + autoplay="yes" loop="no" height="<?% height %?>" width="<?% width %?>" + target="<?% data %?>" /> +<br /> + <input type="button" id="play" value="<?% gettext("Playback") %?>" onClick='document.vlc.play()' /> + <input type="button" id="pause" value="<?% gettext("Pause") %?>" onClick='document.vlc.pause()' /> + <input type="button" id="stop" value="<?% gettext("Stop") %?>" onClick='document.vlc.stop()' /> + + <input type="button" id="quiet" value="<?% gettext("Decrease volume") %?>" onClick='volume_down()' /> + <input type="button" id="loud" value="<?% gettext("Increase volume") %?>" onClick='volume_up()' /> + <input type="button" id="mute" value="<?% gettext("Mute") %?>" onClick='document.vlc.mute()' /> + + <input type="button" id="fullscreen" value="<?% gettext("Full screen") %?>" onClick='document.vlc.fullscreen()' /> +<br /> + <table summary=""> + <tr><td><?% gettext("Status") %?> : </td> + <td><span id="play_status"><?% gettext("Unknown") %?></span></td></tr> + <tr><td><?% gettext("Volume") %?> : </td><td><span id="volume_status"></span></td></tr> + </table> +</p> + +<script language="javascript"> +<!-- + var volume = document.getElementById("volume_status"); + var current = document.vlc.get_volume(); + volume.innerHTML = current + " %"; + setTimeout("status()", 1 ); +//--> +</script> + + +<?% ELSIF widget == 'vlc' %?> + +<!-- vlc with activeX --> +<p align='center'> + <object classid="clsid:E23FE9C6-778E-49D4-B537-38FCDE4887D8" + codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab" + height="<?% height %?>" width="<?% width %?>" id="vlc" events="True"> + <param name="Src" value="<?% data %?>" /> + <param name="ShowDisplay" value="True" /> + <param name="Loop" value="False" /> + <param name="AutoPlay" value="True" /> + </object> +<br /> + <input type="button" id="play" value="<?% gettext("Playback") %?>" onClick='doPlayOrPause()' /> + <input type="button" id="pause" value="<?% gettext("Pause") %?>" onClick='doPlayOrPause()' /> + <input type="button" id="stop" value="<?% gettext("Stop") %?>" onClick='document.vlc.stop()' /> + + <input type="button" id="mute" value="<?% gettext("Mute") %?>" onClick='document.vlc.toggleMute()' /> +<br /> + <table summary=""> + <tr><td><?% gettext("Status") %?> : </td> + <td><span id="play_status"><?% gettext("Unknown") %?></span></td></tr> + </table> +</p> + +<script LANGUAGE="JScript"> +<!-- +var sliderTimerId = 0; + +function onPlay() { + document.getElementById("play_status").value = "<?% gettext("Playing") %?>"; +}; +function onPause() { + document.getElementById("play_status").value = "<?% gettext("Paused") %?>"; +}; +function onStop() { + document.getElementById("play_status").value = "<?% gettext("Not playing") %?>"; +}; + +function doUpdate() { + if( vlc.Playing ) { + sliderTimerId = setTimeout("doUpdate()", 1000); + } + else { + onStop(); + sliderTimerId = 0; + } +}; + +function doPlayOrPause() { + if( document.vlc.playing ) { + document.vlc.pause(); + } + else { + document.vlc.play(); + } +}; +function vlc::play() { + if( ! sliderTimerId ) { + sliderTimerId = setTimeout("doUpdate()", 1000); + } + onPlay(); +}; +function vlc::pause() { + if( sliderTimerId ) { + clearTimeout(sliderTimerId) + sliderTimerId = 0; + } + onPause(); +}; +function vlc::stop() { + if( sliderTimerId ) { + clearTimeout(sliderTimerId) + sliderTimerId = 0; + } + onStop(); +}; +//--> +</script> +<?% ELSE %?> +<!-- media player with activeX --> +<p align='center'> + <object id="mediaPlayer" width="<?% width %?>" height="<?% height %?>" + classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" + codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" + standby="Loading Microsoft Windows Media Player components..." type="application/x-oleobject"> + <param name="fileName" value="<?% data %?>" /> + <param name="animationatStart" value="true" /> + <param name="transparentatStart" value="true" /> + <param name="autoStart" value="true" /> + <param name="showControls" value="true" /> + <param name="loop" value="true" /> + <embed type="application/x-mplayer2" + pluginspage="http://microsoft.com/windows/mediaplayer/en/download/" + id="mediaPlayer" name="mediaPlayer" displaysize="4" autosize="-1" + bgcolor='darkblue' showcontrols="true" showtracker="-1" + showdisplay="0" showstatusbar="-1" videoborder3d="-1" width="<?% width %?>" height="<?% height %?>" + src="<?% data %?>" autostart="true" designtimesp="5311" loop="true"> + </embed> + </object> +</p> +<?% END %?> + diff --git a/lib/XXV/MODULES/CHANNELS.pm b/lib/XXV/MODULES/CHANNELS.pm index f1e4464..d0719e8 100644 --- a/lib/XXV/MODULES/CHANNELS.pm +++ b/lib/XXV/MODULES/CHANNELS.pm @@ -1014,12 +1014,12 @@ sub _brandNewChannels { foreach my $chpos (sort {$erg->{$a} <=> $erg->{$b}} keys %$erg) { my $c = $erg->{$chpos}; $text .= sprintf(gettext('New %s channel: %s on position: %d %s'), - ($c->{VPID} > 5 or index('+', $c->{VPID}) + ($c->{VPID} ? gettext('TV') : gettext('Radio')), $c->{Name}, $c->{POS}, - (index('+', $c->{VPID}) || $c->{VPID} == 1 ? gettext('(encrypted)') : ''), + (($c->{CA} && $c->{CA} > 5) ? gettext('(encrypted)') : ''), ); } diff --git a/lib/XXV/MODULES/EPG.pm b/lib/XXV/MODULES/EPG.pm index 98470a4..a5f0e4d 100644 --- a/lib/XXV/MODULES/EPG.pm +++ b/lib/XXV/MODULES/EPG.pm @@ -778,7 +778,8 @@ SELECT SQL_CACHE (unix_timestamp(e.starttime) + e.duration - unix_timestamp())/duration*100 as \'$f{'Percent'}\', e.video as __Video, e.audio as __Audio, - IF(e.vpstime!=0,$vps,'') as __PDC + IF(e.vpstime!=0,$vps,'') as __PDC, + e.channel_id as __channel_id from $table as e,CHANNELS as c where diff --git a/lib/XXV/MODULES/GRAB.pm b/lib/XXV/MODULES/GRAB.pm index b341a76..c1582a4 100644 --- a/lib/XXV/MODULES/GRAB.pm +++ b/lib/XXV/MODULES/GRAB.pm @@ -28,12 +28,28 @@ sub module { default => 320, type => 'integer', required => gettext('This is required!'), + check => sub{ + my $value = shift || 0; + if($value =~ /^\d+$/sig and $value >= 8 and $value < 4096) { + return int($value); + } else { + return undef, gettext('Value incorrect!'); + } + }, }, ysize => { description => gettext('Image height'), default => 240, type => 'integer', required => gettext('This is required!'), + check => sub{ + my $value = shift || 0; + if($value =~ /^\d+$/sig and $value >= 8 and $value < 4096) { + return int($value); + } else { + return undef, gettext('Value incorrect!'); + } + } }, overlay => { description => gettext('Text to display in the grabbed picture.'), @@ -49,6 +65,14 @@ sub module { description => gettext('Vertical position of displayed text, in pixels.'), default => 10, type => 'integer', + check => sub{ + my $value = shift || 0; + if($value =~ /^\d+$/sig and $value >= 8 and $value < 4096) { + return int($value); + } else { + return undef, gettext('Value incorrect!'); + } + } }, font => { description => gettext('TrueType font to draw overlay text'), @@ -60,11 +84,27 @@ sub module { description => gettext('Font size to draw image text (only for ttf font!).'), default => 10, type => 'integer', + check => sub{ + my $value = shift || 0; + if($value =~ /^\d+$/sig and $value >= 1 and $value < 100) { + return int($value); + } else { + return undef, gettext('Value incorrect!'); + } + } }, imgquality => { description => gettext('Quality from image in percent.'), default => 80, type => 'integer', + check => sub{ + my $value = shift || 0; + if($value =~ /^\d+$/sig and $value >= 1 and $value < 100) { + return int($value); + } else { + return undef, gettext('Value incorrect!'); + } + } }, }, Commands => { diff --git a/lib/XXV/MODULES/HTTPD.pm b/lib/XXV/MODULES/HTTPD.pm index 26fb07c..be18755 100644 --- a/lib/XXV/MODULES/HTTPD.pm +++ b/lib/XXV/MODULES/HTTPD.pm @@ -317,14 +317,12 @@ sub communicator } } else { $obj->handleInput($watcher, $console, $cgi); - $console->footer() - unless($console->{TYP} eq 'AJAX' - or $console->{noFooter}); } } else { $obj->ModulNotLoaded($console,'USER'); } + $console->footer() if($console->{inclFooter}); $console->printout(); # make entry more readable @@ -481,7 +479,6 @@ sub handleInput { if($cmdobj and not $shorterr) { if($cmdobj->{binary}) { - $console->{noFooter} = 1; $console->{nocache} = 1 if($cmdobj->{binary} eq 'nocache'); } diff --git a/lib/XXV/MODULES/RECORDS.pm b/lib/XXV/MODULES/RECORDS.pm index 0b447d3..705984f 100644 --- a/lib/XXV/MODULES/RECORDS.pm +++ b/lib/XXV/MODULES/RECORDS.pm @@ -2118,12 +2118,25 @@ ORDER BY # ------------------ +sub IdToData { +# ------------------ + my $obj = shift || return error('No object defined!'); + my $id = shift || return undef; + + my $sth = $obj->{dbh}->prepare('SELECT SQL_CACHE * from RECORDS as r, OLDEPG as e where e.eventid = r.eventid and RecordMD5 = ?'); + $sth->execute($id) + or return error sprintf("Couldn't execute query: %s.",$sth->errstr); + my $erg = $sth->fetchrow_hashref(); + return $erg; +} + +# ------------------ sub IdToPath { # ------------------ my $obj = shift || return error('No object defined!'); my $id = shift || return undef; - my $sth = $obj->{dbh}->prepare('SELECT SQL_CACHE Path from RECORDS where RecordMD5 = ?'); + my $sth = $obj->{dbh}->prepare('SELECT SQL_CACHE Path from RECORDS where RecordMD5 = ?'); $sth->execute($id) or return error sprintf("Couldn't execute query: %s.",$sth->errstr); my $erg = $sth->fetchrow_hashref(); diff --git a/lib/XXV/MODULES/STREAM.pm b/lib/XXV/MODULES/STREAM.pm index 2267017..7928dfd 100644 --- a/lib/XXV/MODULES/STREAM.pm +++ b/lib/XXV/MODULES/STREAM.pm @@ -32,36 +32,64 @@ sub module { type => 'host', required => gettext('This is required!'), }, - streamtyp => { + method => { description => gettext('Typ of streaming'), - default => 1, + default => 'http', type => 'list', - choices => sub { - my $erg = $obj->_get_streamtyp(); - map { my $x = $_->[1]; $_->[1] = $_->[0]; $_->[0] = $x; } @$erg; - return @$erg; - }, + choices => [ + [ gettext('HTTP Streaming'), 'http' ], + [ gettext('Remote SMB/NFS share'),'smb' ], + ], required => gettext('This is required!'), - check => sub { - my $value = int(shift) || 0; - my $erg = $obj->_get_streamtyp(); - unless($value >= $erg->[0]->[0] and $value <= $erg->[-1]->[0]) { - return undef, - sprintf(gettext('Sorry, but value must be between %d and %d'), - $erg->[0]->[0],$erg->[-1]->[0]); - } - return $value; - }, + }, + mimetyp => { + description => gettext('Used mime type to deliver video streams'), + default => 'video/x-mpegurl', + type => 'string', }, netvideo => { description => gettext('Base directory of remote SMB/NFS share.'), default => '\\\\vdr\\video', type => 'string', }, - mimetyp => { - description => gettext('Used mime type to deliver video streams'), - default => 'video/x-mpegurl', - type => 'string', + widget => { + description => gettext('Used stream widget'), + type => 'list', + default => 'vlc', + choices => [ + [gettext("Other external player"), 'external'], + [gettext('Embed media player'), 'media'], + [gettext('Embed vlc player'), 'vlc'], + ], + required => gettext("This is required!"), + }, + width => { + description => gettext('Stream widget width'), + default => 720, + type => 'integer', + required => gettext('This is required!'), + check => sub{ + my $value = shift || 0; + if($value =~ /^\d+$/sig and $value >= 8 and $value < 4096) { + return int($value); + } else { + return undef, gettext('Value incorrect!'); + } + }, + }, + height => { + description => gettext('Stream widget height'), + default => 576, + type => 'integer', + required => gettext('This is required!'), + check => sub{ + my $value = shift || 0; + if($value =~ /^\d+$/sig and $value >= 8 and $value < 4096) { + return int($value); + } else { + return undef, gettext('Value incorrect!'); + } + }, }, }, Commands => { @@ -131,6 +159,7 @@ sub livestream { my $watcher = shift || return error('No watcher defined!'); my $console = shift || return error('No console defined!'); my $channel = shift || return con_err($console,gettext("No channel defined for streaming!")); + my $params = shift; return $console->err(gettext("Can't stream files!")) unless($console->can('datei')); @@ -141,6 +170,18 @@ sub livestream { return $console->err(sprintf(gettext("This channel '%s' does not exist!"),$channel)) unless($ch); + if($obj->{widget} ne 'external' && (!$params || !(exists $params->{player}))) { + my $data = sprintf("?cmd=livestream&__player=1&data=%s",$ch); + + my $param = { + title => $cmod->ChannelToName($ch), + widget => $obj->{widget}, + width => $obj->{width}, + height => $obj->{height}, + }; + return $console->player($data, $param); + } + my $cpos = $cmod->ChannelToPos($ch); debug sprintf('Live stream with channel "%s"%s', $cmod->ChannelToName($ch), @@ -171,20 +212,39 @@ sub playrecord { my $params = shift; my $rmod = main::getModule('RECORDS'); - my $videopath = $rmod->{videodir}; - my $path = $rmod->IdToPath($recid) + my $result = $rmod->IdToData($recid) or return $console->err(gettext(sprintf("Couldn't find recording: '%s'", $recid))); - my @files = bsd_glob("$path/[0-9][0-9][0-9].vdr"); - - return $console->err(gettext(sprintf("Couldn't find recording: '%s'", $recid))) - unless scalar(@files); - my $start = 0; my $offset = 0; if($params && exists $params->{start}) { $start = &text2frame($params->{start}); } + + if($obj->{widget} ne 'external' && (!$params || !(exists $params->{player}))) { + my $data = sprintf("?cmd=playrecord&__player=1&data=%s",$recid); + $data .= sprintf("&__start=%d", $start) if($start); + + my $param = { + title => $result->{title}, + widget => $obj->{widget}, + width => $obj->{width}, + height => $obj->{height}, + }; + $param->{title} .= '~' . $result->{subtitle} if($result->{subtitle}); + + return $console->player($data, $param); + } + + return $console->err(gettext(sprintf("Couldn't find recording: '%s'", $recid))) + unless $result->{Path}; + + my $path = $result->{Path}; + my @files = bsd_glob("$path/[0-9][0-9][0-9].vdr"); + + return $console->err(gettext(sprintf("Couldn't find recording: '%s'", $recid))) + unless scalar(@files); + if($start) { my ($filenumber,$fileoffset) = $rmod->frametofile($path,$start); splice(@files, 0, $filenumber-1) if($filenumber && ($filenumber - 1) > 0); @@ -196,7 +256,7 @@ sub playrecord { ( $console->{USER} && $console->{USER}->{Name} ? sprintf(' from user: %s', $console->{USER}->{Name}) : "" ) ); - if($obj->{streamtyp} != 1) { + if($obj->{method} eq 'http') { return $console->err(gettext("Can't stream files!")) unless($console->can('stream')); @@ -207,6 +267,8 @@ sub playrecord { return $console->err(gettext("Can't stream files!")) unless($console->can('datei')); + my $videopath = $rmod->{videodir}; + my $data; $data = "#EXTM3U\r\n"; foreach my $file (@files) { @@ -229,14 +291,4 @@ sub playrecord { } } -# ------------------ -sub _get_streamtyp { -# ------------------ - my $obj = shift || return error('No object defined!'); - - return [ - [ 1, gettext('Remote SMB/NFS share') ], - [ 2, gettext('HTTP Streaming') ], - ]; -} 1; diff --git a/lib/XXV/OUTPUT/Html.pm b/lib/XXV/OUTPUT/Html.pm index 2d8d1bc..af98b59 100644 --- a/lib/XXV/OUTPUT/Html.pm +++ b/lib/XXV/OUTPUT/Html.pm @@ -47,7 +47,6 @@ sub AUTOLOAD { my $output = $obj->parseTemplate($name, $data, $params); $obj->out( $output ); - $obj->{call} = ''; } @@ -139,6 +138,8 @@ sub parseTemplate { my $output; unless(defined $obj->{header}) { $output .= $obj->parseTemplateFile("start", $data, $params); + # we must add footer on any template generated output + $obj->{inclFooter} = 1; } $output .= $obj->parseTemplateFile($name, $data, $params,((exists $obj->{call}) ? $obj->{call} : 'nothing')); return $output; diff --git a/locale/de.po b/locale/de.po index 3716db6..1ee8f32 100644 --- a/locale/de.po +++ b/locale/de.po @@ -1,15 +1,15 @@ # Deutsche Übersetzung der XXV Pakets. -# Copyright (C) 2004-2007 THE PACKAGE'S COPYRIGHT HOLDER +# Copyright (C) 2004-2008 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the XXV package. # -# Andreas Brachold <anbr at users.berlios.de>, 2004-2007 +# Andreas Brachold <anbr at users.berlios.de>, 2004-2008 # Tobias Grimm <tg@e-tobi.net> 2005 # msgid "" msgstr "" "Project-Id-Version: XXV 1.1\n" "POT-Creation-Date: 2005-01-12 18:55\n" -"PO-Revision-Date: 2007-12-30 14:22+0100\n" +"PO-Revision-Date: 2008-01-03 12:31+0100\n" "Last-Translator: Andreas Brachold <anbr at users.berlios.de>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" @@ -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:677 ../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:36 ../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:1810 ../lib/XXV/MODULES/RECORDS.pm:1824 ../lib/XXV/MODULES/RECORDS.pm:1838 ../lib/XXV/MODULES/RECORDS.pm:1857 ../lib/XXV/MODULES/RECORDS.pm:2411 ../lib/XXV/MODULES/RECORDS.pm:2423 ../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:44 ../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:657 ../lib/XXV/MODULES/TIMERS.pm:677 ../lib/XXV/MODULES/TIMERS.pm:773 ../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:677 ../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:1810 ../lib/XXV/MODULES/RECORDS.pm:1824 ../lib/XXV/MODULES/RECORDS.pm:1838 ../lib/XXV/MODULES/RECORDS.pm:1857 ../lib/XXV/MODULES/RECORDS.pm:2424 ../lib/XXV/MODULES/RECORDS.pm:2436 ../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 msgid "This is required!" msgstr "Das ist erforderlich!" @@ -272,17 +272,17 @@ msgid "Detailed program information" msgstr "Detailierte Programminformation" #-------------------- -#: ../html/display.tmpl:21 ../html/display.tmpl:44 ../lib/XXV/MODULES/EPG.pm:753 ../lib/XXV/MODULES/EPG.pm:926 +#: ../html/display.tmpl:21 ../html/display.tmpl:44 ../lib/XXV/MODULES/EPG.pm:753 ../lib/XXV/MODULES/EPG.pm:927 msgid "Percent" msgstr "Prozent" #-------------------- -#: ../html/display.tmpl:25 ../html/rdisplay.tmpl:149 ../html/search.tmpl:54 ../html/topten.tmpl:32 ../lib/XXV/MODULES/AUTOTIMER.pm:436 ../lib/XXV/MODULES/CHRONICLE.pm:168 ../lib/XXV/MODULES/CHRONICLE.pm:207 ../lib/XXV/MODULES/EPG.pm:749 ../lib/XXV/MODULES/EPG.pm:849 ../lib/XXV/MODULES/EPG.pm:923 ../lib/XXV/MODULES/RECORDS.pm:1848 ../lib/XXV/MODULES/TIMERS.pm:1136 +#: ../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:749 ../lib/XXV/MODULES/EPG.pm:850 ../lib/XXV/MODULES/EPG.pm:924 ../lib/XXV/MODULES/RECORDS.pm:1848 ../lib/XXV/MODULES/TIMERS.pm:1123 msgid "Channel" msgstr "Kanal" #-------------------- -#: ../html/display.tmpl:27 ../html/topten.tmpl:32 ../lib/XXV/MODULES/AUTOTIMER.pm:1064 ../lib/XXV/MODULES/CHRONICLE.pm:165 ../lib/XXV/MODULES/CHRONICLE.pm:204 ../lib/XXV/MODULES/EPG.pm:746 ../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:1494 ../lib/XXV/MODULES/RECORDS.pm:1569 ../lib/XXV/MODULES/TIMERS.pm:1133 ../lib/XXV/MODULES/USER.pm:525 +#: ../html/display.tmpl:27 ../html/topten.tmpl:21 ../lib/XXV/MODULES/AUTOTIMER.pm:1064 ../lib/XXV/MODULES/CHRONICLE.pm:165 ../lib/XXV/MODULES/CHRONICLE.pm:204 ../lib/XXV/MODULES/EPG.pm:746 ../lib/XXV/MODULES/EPG.pm:848 ../lib/XXV/MODULES/EPG.pm:922 ../lib/XXV/MODULES/MOVETIMER.pm:527 ../lib/XXV/MODULES/MUSIC.pm:607 ../lib/XXV/MODULES/RECORDS.pm:1494 ../lib/XXV/MODULES/RECORDS.pm:1569 ../lib/XXV/MODULES/TIMERS.pm:1120 ../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:639 ../lib/XXV/MODULES/EPG.pm:752 ../lib/XXV/MODULES/RECORDS.pm:1862 ../lib/XXV/MODULES/RECORDS.pm:2042 ../lib/XXV/MODULES/TIMERS.pm:786 ../lib/XXV/OUTPUT/Console.pm:169 +#: ../html/display.tmpl:60 ../lib/XXV/MODULES/AUTOTIMER.pm:445 ../lib/XXV/MODULES/AUTOTIMER.pm:639 ../lib/XXV/MODULES/EPG.pm:752 ../lib/XXV/MODULES/RECORDS.pm:1862 ../lib/XXV/MODULES/RECORDS.pm:2042 ../lib/XXV/MODULES/TIMERS.pm:773 ../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:32 ../lib/XXV/MODULES/AUTOTIMER.pm:1068 ../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:750 ../lib/XXV/MODULES/EPG.pm:850 ../lib/XXV/MODULES/EPG.pm:924 ../lib/XXV/MODULES/TIMERS.pm:1137 +#: ../html/display.tmpl:69 ../html/rlist.tmpl:243 ../html/rsearch.tmpl:243 ../html/topten.tmpl:21 ../lib/XXV/MODULES/AUTOTIMER.pm:1068 ../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:750 ../lib/XXV/MODULES/EPG.pm:851 ../lib/XXV/MODULES/EPG.pm:925 ../lib/XXV/MODULES/TIMERS.pm:1124 msgid "Start" msgstr "Start" @@ -327,7 +327,7 @@ msgid "PDC" msgstr "VPS" #-------------------- -#: ../html/display.tmpl:75 ../lib/XXV/MODULES/AUTOTIMER.pm:1069 ../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:751 ../lib/XXV/MODULES/EPG.pm:851 ../lib/XXV/MODULES/EPG.pm:925 ../lib/XXV/MODULES/TIMERS.pm:1138 +#: ../html/display.tmpl:75 ../html/widgets/player.tmpl:100 ../html/widgets/player.tmpl:60 ../lib/XXV/MODULES/AUTOTIMER.pm:1069 ../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:751 ../lib/XXV/MODULES/EPG.pm:852 ../lib/XXV/MODULES/EPG.pm:926 ../lib/XXV/MODULES/TIMERS.pm:1125 msgid "Stop" msgstr "Stopp" @@ -469,7 +469,7 @@ msgid "Edit channels" msgstr "Kanäle bearbeiten" #-------------------- -#: ../html/help.tmpl:87 ../lib/XXV/MODULES/HTTPD.pm:103 ../lib/XXV/MODULES/TIMERS.pm:1134 ../lib/XXV/MODULES/WAPD.pm:84 +#: ../html/help.tmpl:87 ../html/widgets/player.tmpl:105 ../html/widgets/player.tmpl:69 ../lib/XXV/MODULES/HTTPD.pm:103 ../lib/XXV/MODULES/TIMERS.pm:1121 ../lib/XXV/MODULES/WAPD.pm:84 msgid "Status" msgstr "Status" @@ -644,7 +644,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:32 ../lib/XXV/MODULES/AUTOTIMER.pm:434 ../lib/XXV/MODULES/AUTOTIMER.pm:637 ../lib/XXV/MODULES/CHRONICLE.pm:166 ../lib/XXV/MODULES/CHRONICLE.pm:205 ../lib/XXV/MODULES/EPG.pm:747 ../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:1495 ../lib/XXV/MODULES/RECORDS.pm:1570 ../lib/XXV/MODULES/TIMERS.pm:1139 +#: ../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:637 ../lib/XXV/MODULES/CHRONICLE.pm:166 ../lib/XXV/MODULES/CHRONICLE.pm:205 ../lib/XXV/MODULES/EPG.pm:747 ../lib/XXV/MODULES/EPG.pm:849 ../lib/XXV/MODULES/EPG.pm:923 ../lib/XXV/MODULES/MEDIALIB.pm:1300 ../lib/XXV/MODULES/MUSIC.pm:610 ../lib/XXV/MODULES/RECORDS.pm:1495 ../lib/XXV/MODULES/RECORDS.pm:1570 ../lib/XXV/MODULES/TIMERS.pm:1126 msgid "Title" msgstr "Titel" @@ -904,19 +904,19 @@ msgid "Program guide for" msgstr "Programm für" #-------------------- -#: ../html/program.tmpl:25 ../html/topten.tmpl:21 +#: ../html/program.tmpl:25 msgid "Search on Channel" msgstr "Suche im Kanal" #-------------------- -#: ../html/program.tmpl:38 ../html/topten.tmpl:22 ../wml/program.tmpl:45 +#: ../html/program.tmpl:38 ../wml/program.tmpl:45 msgid "Switch" msgstr "Umschalten" #-------------------- -#: ../html/program.tmpl:39 ../html/topten.tmpl:23 -msgid "Livestream" -msgstr "Livestream" +#: ../html/program.tmpl:39 +msgid "Live TV web cast" +msgstr "Live TV Streaming" #-------------------- #: ../html/rdisplay.tmpl:1 @@ -939,7 +939,7 @@ msgid "Lifetime" msgstr "Lebenszeit" #-------------------- -#: ../html/rdisplay.tmpl:162 ../lib/XXV/MODULES/TIMERS.pm:1140 +#: ../html/rdisplay.tmpl:162 ../lib/XXV/MODULES/TIMERS.pm:1127 msgid "Priority" msgstr "Priorität" @@ -975,8 +975,8 @@ msgstr "Aufnahme bearbeiten" #-------------------- #: ../html/rdisplay.tmpl:87 -msgid "Watch recording" -msgstr "Aufnahme ansehen" +msgid "Watch recording as web cast" +msgstr "Aufnahme als Stream ansehen" #-------------------- #: ../html/rdisplay.tmpl:90 @@ -1211,12 +1211,7 @@ msgid "This Screen list the most programmed EPG Events from all XXV Users. Of co msgstr "Diese Liste die zeigt meist programmierten Sendungen von allen XXV Benutzern. Selbstverständlich sind das nur nur Sendungen, die in Ihrer EPG-Tabelle vorhanden sind!" #-------------------- -#: ../html/topten.tmpl:20 -msgid "Search string:" -msgstr "Suchmuster:" - -#-------------------- -#: ../html/topten.tmpl:32 +#: ../html/topten.tmpl:21 msgid "Rank" msgstr "Platzierung" @@ -1311,6 +1306,61 @@ msgid "Repeat entry" msgstr "Eingabe wiederholen" #-------------------- +#: ../html/widgets/player.tmpl:102 ../html/widgets/player.tmpl:64 +msgid "Mute" +msgstr "Mute" + +#-------------------- +#: ../html/widgets/player.tmpl:106 ../html/widgets/player.tmpl:70 +msgid "Unknown" +msgstr "Unbekannt" + +#-------------------- +#: ../html/widgets/player.tmpl:115 ../html/widgets/player.tmpl:45 +msgid "Playing" +msgstr "Wiedergabe" + +#-------------------- +#: ../html/widgets/player.tmpl:118 +msgid "Paused" +msgstr "Pausiert" + +#-------------------- +#: ../html/widgets/player.tmpl:121 ../html/widgets/player.tmpl:46 +msgid "Not playing" +msgstr "Keine Wiedergabe" + +#-------------------- +#: ../html/widgets/player.tmpl:58 ../html/widgets/player.tmpl:98 +msgid "Playback" +msgstr "Wiedergabe" + +#-------------------- +#: ../html/widgets/player.tmpl:59 ../html/widgets/player.tmpl:99 +msgid "Pause" +msgstr "Pause" + +#-------------------- +#: ../html/widgets/player.tmpl:62 +msgid "Decrease volume" +msgstr "Leiser" + +#-------------------- +#: ../html/widgets/player.tmpl:63 +msgid "Increase volume" +msgstr "Lauter" + +#-------------------- +#: ../html/widgets/player.tmpl:66 +msgid "Full screen" +msgstr "Vollbild" + +#-------------------- +#: ../html/widgets/player.tmpl:71 +msgid "Volume" +msgstr "Lautstärke" + +#-------------------- #: ../html/widgets/remote.tmpl:109 ../wml/next.tmpl:32 ../wml/next.tmpl:46 ../wml/now.tmpl:32 ../wml/now.tmpl:46 ../wml/program.tmpl:25 ../wml/program.tmpl:63 ../wml/program.tmpl:77 ../wml/search.tmpl:34 ../wml/search.tmpl:48 ../wml/tlist.tmpl:13 ../wml/tlist.tmpl:62 ../wml/tlist.tmpl:76 ../wml/tsearch.tmpl:13 ../wml/tsearch.tmpl:62 ../wml/tsearch.tmpl:76 ../wml/widgets/err.tmpl:18 ../wml/widgets/footer.tmpl:2 ../wml/widgets/formEnd.tmpl:5 ../wml/widgets/message.tmpl:18 msgid "Menu" msgstr "Menü" @@ -1621,7 +1671,7 @@ msgid "Search for autotimer with text 'aid'" msgstr "Suche nach Autotimer mit Text 'aid'" #-------------------- -#: ../lib/XXV/MODULES/AUTOTIMER.pm:761 ../lib/XXV/MODULES/TIMERS.pm:705 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:761 ../lib/XXV/MODULES/TIMERS.pm:692 msgid "Start time in format 'HH:MM'" msgstr "Startzeit im Format 'HH:MM'" @@ -1631,12 +1681,12 @@ msgid "You set a start time without an end time!" msgstr "Startzeitpunkt ohne Stoppzeitpunkt definiert!" #-------------------- -#: ../lib/XXV/MODULES/AUTOTIMER.pm:768 ../lib/XXV/MODULES/AUTOTIMER.pm:774 ../lib/XXV/MODULES/AUTOTIMER.pm:791 ../lib/XXV/MODULES/AUTOTIMER.pm:797 ../lib/XXV/MODULES/TIMERS.pm:709 ../lib/XXV/MODULES/TIMERS.pm:715 ../lib/XXV/MODULES/TIMERS.pm:728 ../lib/XXV/MODULES/TIMERS.pm:734 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:768 ../lib/XXV/MODULES/AUTOTIMER.pm:774 ../lib/XXV/MODULES/AUTOTIMER.pm:791 ../lib/XXV/MODULES/AUTOTIMER.pm:797 ../lib/XXV/MODULES/TIMERS.pm:696 ../lib/XXV/MODULES/TIMERS.pm:702 ../lib/XXV/MODULES/TIMERS.pm:715 ../lib/XXV/MODULES/TIMERS.pm:721 msgid "The time is incorrect!" msgstr "Die Zeit ist nicht korrekt!" #-------------------- -#: ../lib/XXV/MODULES/AUTOTIMER.pm:784 ../lib/XXV/MODULES/TIMERS.pm:724 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:784 ../lib/XXV/MODULES/TIMERS.pm:711 msgid "End time in format 'HH:MM'" msgstr "Endzeit im Format 'HH:MM'" @@ -1666,7 +1716,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:847 ../lib/XXV/MODULES/AUTOTIMER.pm:861 ../lib/XXV/MODULES/AUTOTIMER.pm:874 ../lib/XXV/MODULES/AUTOTIMER.pm:890 ../lib/XXV/MODULES/AUTOTIMER.pm:906 ../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/RECORDS.pm:1821 ../lib/XXV/MODULES/RECORDS.pm:1835 ../lib/XXV/MODULES/TIMERS.pm:750 ../lib/XXV/MODULES/TIMERS.pm:766 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:847 ../lib/XXV/MODULES/AUTOTIMER.pm:861 ../lib/XXV/MODULES/AUTOTIMER.pm:874 ../lib/XXV/MODULES/AUTOTIMER.pm:890 ../lib/XXV/MODULES/AUTOTIMER.pm:906 ../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:1821 ../lib/XXV/MODULES/RECORDS.pm:1835 ../lib/XXV/MODULES/STREAM.pm:76 ../lib/XXV/MODULES/STREAM.pm:90 ../lib/XXV/MODULES/TIMERS.pm:737 ../lib/XXV/MODULES/TIMERS.pm:753 msgid "Value incorrect!" msgstr "Der Wert ist nicht korrekt!" @@ -1686,22 +1736,22 @@ msgid "Start autotimer search." msgstr "Autotimersuche durchführen" #-------------------- -#: ../lib/XXV/MODULES/AUTOTIMER.pm:880 ../lib/XXV/MODULES/RECORDS.pm:1828 ../lib/XXV/MODULES/TIMERS.pm:740 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:880 ../lib/XXV/MODULES/RECORDS.pm:1828 ../lib/XXV/MODULES/TIMERS.pm:727 msgid "Priority (%d ... %d)" msgstr "Priorität (%d ... %d)" #-------------------- -#: ../lib/XXV/MODULES/AUTOTIMER.pm:886 ../lib/XXV/MODULES/TIMERS.pm:746 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:886 ../lib/XXV/MODULES/TIMERS.pm:733 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:896 ../lib/XXV/MODULES/RECORDS.pm:1814 ../lib/XXV/MODULES/TIMERS.pm:756 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:896 ../lib/XXV/MODULES/RECORDS.pm:1814 ../lib/XXV/MODULES/TIMERS.pm:743 msgid "Lifetime (%d ... %d)" msgstr "Lebenszeit (%d ... %d)" #-------------------- -#: ../lib/XXV/MODULES/AUTOTIMER.pm:902 ../lib/XXV/MODULES/TIMERS.pm:762 +#: ../lib/XXV/MODULES/AUTOTIMER.pm:902 ../lib/XXV/MODULES/TIMERS.pm:749 msgid "Sorry, but the maximum life time is limited to %d!" msgstr "Entschuldigung, aber die maximale Lebenszeit ist auf %d begrenzt!" @@ -1896,7 +1946,7 @@ 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:1135 +#: ../lib/XXV/MODULES/CHRONICLE.pm:169 ../lib/XXV/MODULES/CHRONICLE.pm:208 ../lib/XXV/MODULES/TIMERS.pm:1122 msgid "Day" msgstr "Tag" @@ -2040,7 +2090,7 @@ msgid "Modules loaded." msgstr "Module neugeladen." #-------------------- -#: ../lib/XXV/MODULES/EPG.pm:1125 +#: ../lib/XXV/MODULES/EPG.pm:1126 msgid "No event id defined!" msgstr "Keine ID zum Event definiert!" @@ -2135,7 +2185,7 @@ msgid "Display events in a schematic way" msgstr "Zeigt Sendungen in einer übersichtlichen Weise" #-------------------- -#: ../lib/XXV/MODULES/EPG.pm:799 +#: ../lib/XXV/MODULES/EPG.pm:800 msgid "Event '%d' does not exist in the database!" msgstr "Sendung '%d' existiert nicht in der Datenbank!" @@ -2145,16 +2195,16 @@ msgid "Update EPG data." msgstr "Aktualisiere EPG Daten" #-------------------- -#: ../lib/XXV/MODULES/EPG.pm:979 ../lib/XXV/MODULES/VTX.pm:1348 -msgid "No channel defined!" -msgstr "Kein Kanal definiert!" - -#-------------------- #: ../lib/XXV/MODULES/EPG.pm:98 msgid "Display the current program running in the VDR" msgstr "Zeigt die Sendung, die im VDR läuft" #-------------------- +#: ../lib/XXV/MODULES/EPG.pm:980 ../lib/XXV/MODULES/VTX.pm:1348 +msgid "No channel defined!" +msgstr "Kein Kanal definiert!" + +#-------------------- #: ../lib/XXV/MODULES/EVENTS.pm:19 msgid "" "This module manage the events for control and watch the xxv system.\n" @@ -2180,6 +2230,16 @@ msgid "Change a event on or off" msgstr "Ändere ein Ereignis zwischen ein/aus" #-------------------- +#: ../lib/XXV/MODULES/GRAB.pm:112 +msgid "Grab a picture" +msgstr "Hole den Screenshot" + +#-------------------- +#: ../lib/XXV/MODULES/GRAB.pm:119 +msgid "Display the picture" +msgstr "Zeige den Screenshot an" + +#-------------------- #: ../lib/XXV/MODULES/GRAB.pm:20 msgid "This module grab a picture from livestream." msgstr "Dieses Modul holt einen Screenshot von der DVB Karte per SVDRP" @@ -2190,46 +2250,36 @@ msgid "Image width" msgstr "Bildbreite" #-------------------- -#: ../lib/XXV/MODULES/GRAB.pm:33 +#: ../lib/XXV/MODULES/GRAB.pm:41 msgid "Image height" msgstr "Bildhöhe" #-------------------- -#: ../lib/XXV/MODULES/GRAB.pm:39 +#: ../lib/XXV/MODULES/GRAB.pm:55 msgid "Text to display in the grabbed picture." msgstr "Im Screenshots anzuzeigender Text." #-------------------- -#: ../lib/XXV/MODULES/GRAB.pm:49 +#: ../lib/XXV/MODULES/GRAB.pm:65 msgid "Vertical position of displayed text, in pixels." msgstr "Vertikalen Position des anzuzeigen Text, in Pixeln." #-------------------- -#: ../lib/XXV/MODULES/GRAB.pm:54 ../lib/XXV/MODULES/STATUS.pm:63 +#: ../lib/XXV/MODULES/GRAB.pm:78 ../lib/XXV/MODULES/STATUS.pm:63 msgid "TrueType font to draw overlay text" msgstr "TrueType Zeichensatz für Overlaytext." #-------------------- -#: ../lib/XXV/MODULES/GRAB.pm:60 +#: ../lib/XXV/MODULES/GRAB.pm:84 msgid "Font size to draw image text (only for ttf font!)." msgstr "Zeichengröße für Overlaytext (nur für TTF Font!)." #-------------------- -#: ../lib/XXV/MODULES/GRAB.pm:65 +#: ../lib/XXV/MODULES/GRAB.pm:97 msgid "Quality from image in percent." msgstr "Qualität des Bildes in Prozent." #-------------------- -#: ../lib/XXV/MODULES/GRAB.pm:72 -msgid "Grab a picture" -msgstr "Hole den Screenshot" - -#-------------------- -#: ../lib/XXV/MODULES/GRAB.pm:79 -msgid "Display the picture" -msgstr "Zeige den Screenshot an" - -#-------------------- #: ../lib/XXV/MODULES/HTTPD.pm:107 msgid "Dump additional debugging information, required only for software development." msgstr "Ausgeben von zusätzliche Informationen zur Fehlersuche, wird nur für die Software-Entwicklung benötigt." @@ -2240,12 +2290,12 @@ msgid "You are not authorized to use this system!" msgstr "Sie haben keine Berechtigungen für dieses System!" #-------------------- -#: ../lib/XXV/MODULES/HTTPD.pm:442 +#: ../lib/XXV/MODULES/HTTPD.pm:440 msgid "Modul '%s' is'nt loaded!" msgstr "Modul '%s' wurde nicht geladen!" #-------------------- -#: ../lib/XXV/MODULES/HTTPD.pm:443 +#: ../lib/XXV/MODULES/HTTPD.pm:441 msgid "Internal Server Error" msgstr "Interner Serverfehler" @@ -2255,12 +2305,12 @@ msgid "This module is a multisession HTTPD server." msgstr "Dieses Modul ist ein Mehrfachsitzung HTTPD Server." #-------------------- -#: ../lib/XXV/MODULES/HTTPD.pm:526 +#: ../lib/XXV/MODULES/HTTPD.pm:523 msgid "Traffic on HTTPD socket since %s: transmitted: %s - received: %s - connections: %d." msgstr "Datenverkehr des HTTPD Anschlusses seit %s: gesendet: %s - empfangen: %s - Verbindungen: %d." #-------------------- -#: ../lib/XXV/MODULES/HTTPD.pm:572 ../lib/XXV/OUTPUT/Console.pm:676 ../lib/XXV/OUTPUT/Html.pm:810 +#: ../lib/XXV/MODULES/HTTPD.pm:569 ../lib/XXV/OUTPUT/Console.pm:676 ../lib/XXV/OUTPUT/Html.pm:811 msgid "Could not open file '%s'! : %s" msgstr "Konnte Datei '%s' nicht öffnen : %s" @@ -2655,7 +2705,7 @@ 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:1855 ../lib/XXV/MODULES/STREAM.pm:141 ../lib/XXV/MODULES/TIMERS.pm:643 ../lib/XXV/MODULES/TIMERS.pm:655 +#: ../lib/XXV/MODULES/MOVETIMER.pm:375 ../lib/XXV/MODULES/MOVETIMER.pm:397 ../lib/XXV/MODULES/RECORDS.pm:1855 ../lib/XXV/MODULES/STREAM.pm:170 ../lib/XXV/MODULES/TIMERS.pm:643 msgid "This channel '%s' does not exist!" msgstr "Dieser Kanal '%s' existiert nicht in der Datenbank!" @@ -3015,7 +3065,7 @@ msgid "No recording defined for editing!" msgstr "Keine Aufnahme-ID zum Bearbeiten!" #-------------------- -#: ../lib/XXV/MODULES/RECORDS.pm:1808 ../lib/XXV/MODULES/RECORDS.pm:2410 ../lib/XXV/MODULES/TIMERS.pm:771 +#: ../lib/XXV/MODULES/RECORDS.pm:1808 ../lib/XXV/MODULES/RECORDS.pm:2423 ../lib/XXV/MODULES/TIMERS.pm:758 msgid "Title of recording" msgstr "Titel der Aufnahme" @@ -3125,32 +3175,32 @@ msgid "%d new recordings since last report time %s" msgstr "%d neue Aufnahmen seit der letzten Reportzeit %s" #-------------------- -#: ../lib/XXV/MODULES/RECORDS.pm:2405 +#: ../lib/XXV/MODULES/RECORDS.pm:2418 msgid "There none recoverable recordings!" msgstr "Es sind keine wiederherstellbaren Aufnahmen vorhanden!" #-------------------- -#: ../lib/XXV/MODULES/RECORDS.pm:2430 +#: ../lib/XXV/MODULES/RECORDS.pm:2443 msgid "Recover recording" msgstr "Aufnahme wiederherstellen" #-------------------- -#: ../lib/XXV/MODULES/RECORDS.pm:2436 +#: ../lib/XXV/MODULES/RECORDS.pm:2449 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:2445 +#: ../lib/XXV/MODULES/RECORDS.pm:2458 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:2457 ../lib/XXV/MODULES/RECORDS.pm:2459 +#: ../lib/XXV/MODULES/RECORDS.pm:2470 ../lib/XXV/MODULES/RECORDS.pm:2472 msgid "Recording recovered!" msgstr "Aufnahme wiederhergestellt!" #-------------------- -#: ../lib/XXV/MODULES/RECORDS.pm:2467 +#: ../lib/XXV/MODULES/RECORDS.pm:2480 msgid "None recording was'nt recovered!" msgstr "Keine Aufnahme wurde wiederhergestellt!" @@ -3620,17 +3670,22 @@ msgid "Display the vitals informations" msgstr "Zeigt die wichtigen Informationen" #-------------------- -#: ../lib/XXV/MODULES/STREAM.pm:133 +#: ../lib/XXV/MODULES/STREAM.pm:104 +msgid "Stream a channel 'cid'. This required the streamdev plugin!" +msgstr "Stream eines Kanales 'cid'. Dies erfordert das Streamdev Plugin!" + +#-------------------- +#: ../lib/XXV/MODULES/STREAM.pm:161 msgid "No channel defined for streaming!" msgstr "Kein Kanal für Streaming definiert!" #-------------------- -#: ../lib/XXV/MODULES/STREAM.pm:135 ../lib/XXV/MODULES/STREAM.pm:200 ../lib/XXV/MODULES/STREAM.pm:207 +#: ../lib/XXV/MODULES/STREAM.pm:164 ../lib/XXV/MODULES/STREAM.pm:260 ../lib/XXV/MODULES/STREAM.pm:267 msgid "Can't stream files!" msgstr "Kann Datei nicht streamen!" #-------------------- -#: ../lib/XXV/MODULES/STREAM.pm:170 +#: ../lib/XXV/MODULES/STREAM.pm:211 msgid "No recording defined for streaming!" msgstr "Keine Aufnahme für Streaming definiert!" @@ -3640,16 +3695,6 @@ msgid "This module generate streams from recordings." msgstr "Dieses Modul erzeugt Streams von Aufnahmen." #-------------------- -#: ../lib/XXV/MODULES/STREAM.pm:238 -msgid "Remote SMB/NFS share" -msgstr "SMB/NFS Dateifreigabe" - -#-------------------- -#: ../lib/XXV/MODULES/STREAM.pm:239 -msgid "HTTP Streaming" -msgstr "HTTP Streaming" - -#-------------------- #: ../lib/XXV/MODULES/STREAM.pm:30 msgid "Used host of referred link inside playlist." msgstr "Benutzter Host für verweisende Links innerhalb der Abspiellisten." @@ -3660,29 +3705,59 @@ msgid "Typ of streaming" msgstr "Art des Streaming" #-------------------- -#: ../lib/XXV/MODULES/STREAM.pm:50 ../lib/XXV/OUTPUT/NEWS/JABBER.pm:108 ../lib/XXV/OUTPUT/NEWS/MAIL.pm:72 ../lib/XXV/OUTPUT/NEWS/RSS.pm:71 ../lib/XXV/OUTPUT/NEWS/VDR.pm:68 -msgid "Sorry, but value must be between %d and %d" -msgstr "Entschuldigung, der Wert muss zwischen %d und %d liegen!" +#: ../lib/XXV/MODULES/STREAM.pm:40 +msgid "HTTP Streaming" +msgstr "HTTP Streaming" + +#-------------------- +#: ../lib/XXV/MODULES/STREAM.pm:41 +msgid "Remote SMB/NFS share" +msgstr "SMB/NFS Dateifreigabe" + +#-------------------- +#: ../lib/XXV/MODULES/STREAM.pm:46 +msgid "Used mime type to deliver video streams" +msgstr "Verwendeter Mime-Typ zur Ausgabe von Video-Streams" #-------------------- -#: ../lib/XXV/MODULES/STREAM.pm:57 +#: ../lib/XXV/MODULES/STREAM.pm:51 msgid "Base directory of remote SMB/NFS share." msgstr "Basisverzeichnis für SMB/NFS Dateifreigaben." #-------------------- +#: ../lib/XXV/MODULES/STREAM.pm:56 +msgid "Used stream widget" +msgstr "Verwendetes Streamwidget" + +#-------------------- +#: ../lib/XXV/MODULES/STREAM.pm:60 +msgid "Other external player" +msgstr "Anderer externer Player" + +#-------------------- +#: ../lib/XXV/MODULES/STREAM.pm:61 +msgid "Embed media player" +msgstr "Eingebetteter Media Player" + +#-------------------- #: ../lib/XXV/MODULES/STREAM.pm:62 -msgid "Used mime type to deliver video streams" -msgstr "Verwendeter Mime-Typ zur Ausgabe von Video-Streams" +msgid "Embed vlc player" +msgstr "Eingebetteter VLC Player" #-------------------- -#: ../lib/XXV/MODULES/STREAM.pm:69 -msgid "Stream a recordings." -msgstr "Aufnahme streamen." +#: ../lib/XXV/MODULES/STREAM.pm:67 +msgid "Stream widget width" +msgstr "Streaming Widgetbreite" #-------------------- -#: ../lib/XXV/MODULES/STREAM.pm:76 -msgid "Stream a channel 'cid'. This required the streamdev plugin!" -msgstr "Stream eines Kanales 'cid'. Dies erfordert das Streamdev Plugin!" +#: ../lib/XXV/MODULES/STREAM.pm:81 +msgid "Stream widget height" +msgstr "Streaming Widgethöhe" + +#-------------------- +#: ../lib/XXV/MODULES/STREAM.pm:97 +msgid "Stream a recordings." +msgstr "Aufnahme streamen." #-------------------- #: ../lib/XXV/MODULES/SVDRP.pm:20 @@ -3779,7 +3854,7 @@ msgid "Delete timer 'tid'" msgstr "Lösche Timer 'tid'" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:1074 +#: ../lib/XXV/MODULES/TIMERS.pm:1061 msgid "%d timer written to database." msgstr "%d Timer in Datenbank geschrieben." @@ -3799,12 +3874,12 @@ msgid "New timer found: %s" msgstr "Neuer Timer gefunden: %s" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:1531 +#: ../lib/XXV/MODULES/TIMERS.pm:1518 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:1532 +#: ../lib/XXV/MODULES/TIMERS.pm:1519 msgid "on channel: %s to %s" msgstr "auf Kanal: %s bis %s" @@ -3879,7 +3954,7 @@ 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:848 ../lib/XXV/MODULES/TIMERS.pm:912 +#: ../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!" @@ -3904,42 +3979,42 @@ msgid "Which channel should recorded" msgstr "Welcher Kanal soll aufgezeichnet werden" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:670 +#: ../lib/XXV/MODULES/TIMERS.pm:657 msgid "%Y-%m-%d" msgstr "%d.%m.%Y" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:676 +#: ../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:682 +#: ../lib/XXV/MODULES/TIMERS.pm:669 msgid "Language=English" msgstr "Language=German,DateFormat=non-US" #-------------------- +#: ../lib/XXV/MODULES/TIMERS.pm:683 +msgid "The day is incorrect or was in a wrong format!" +msgstr "Der Tag ist nicht korrekt oder hatte ein falsches Format!" + +#-------------------- #: ../lib/XXV/MODULES/TIMERS.pm:69 msgid "List timers 'tid'" msgstr "Zeige Timer 'tid'" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:696 -msgid "The day is incorrect or was in a wrong format!" -msgstr "Der Tag ist nicht korrekt oder hatte ein falsches Format!" - -#-------------------- #: ../lib/XXV/MODULES/TIMERS.pm:75 msgid "Search timers 'text'" msgstr "Suche Timer 'text'" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:794 +#: ../lib/XXV/MODULES/TIMERS.pm:781 msgid "Edit timer" msgstr "Timer bearbeiten" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:795 +#: ../lib/XXV/MODULES/TIMERS.pm:782 msgid "New timer" msgstr "Neuer Timer" @@ -3949,41 +4024,41 @@ msgid "Read timers and write them to the database" msgstr "Lese Timer und schreibe sie in die Datenbank" #-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:834 +#: ../lib/XXV/MODULES/TIMERS.pm:821 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:859 +#: ../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:873 +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:886 -msgid "No timer to delete!" -msgstr "Kein Timer zum Löschen!" - -#-------------------- -#: ../lib/XXV/MODULES/TIMERS.pm:898 +#: ../lib/XXV/MODULES/TIMERS.pm:885 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:957 -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." @@ -4310,17 +4385,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:504 ../lib/XXV/OUTPUT/Wml.pm:297 ../wml/widgets/dir.tmpl:8 +#: ../lib/XXV/OUTPUT/Console.pm:304 ../lib/XXV/OUTPUT/Html.pm:505 ../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:509 ../lib/XXV/OUTPUT/Wml.pm:302 ../wml/widgets/file.tmpl:8 +#: ../lib/XXV/OUTPUT/Console.pm:309 ../lib/XXV/OUTPUT/Html.pm:510 ../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:518 ../lib/XXV/OUTPUT/Wml.pm:306 +#: ../lib/XXV/OUTPUT/Console.pm:313 ../lib/XXV/OUTPUT/Html.pm:519 ../lib/XXV/OUTPUT/Wml.pm:306 msgid "Error '%s' (%s) : %s!" msgstr "Fehler im Feld '%s' (%s) : %s!" @@ -4366,7 +4441,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:768 +#: ../lib/XXV/OUTPUT/Console.pm:640 ../lib/XXV/OUTPUT/Html.pm:769 msgid "Module %s not found!" msgstr "Modul %s nicht gefunden!" @@ -4381,41 +4456,46 @@ msgid "This receives and sends HTML messages." msgstr "Dies empfängt und sendet HTML Nachrichten" #-------------------- -#: ../lib/XXV/OUTPUT/Html.pm:445 +#: ../lib/XXV/OUTPUT/Html.pm:446 msgid "Authorization required" msgstr "Berechtigung erforderlich" #-------------------- -#: ../lib/XXV/OUTPUT/Html.pm:455 +#: ../lib/XXV/OUTPUT/Html.pm:456 msgid "Forbidden" msgstr "Verboten" #-------------------- -#: ../lib/XXV/OUTPUT/Html.pm:469 ../lib/XXV/OUTPUT/Wml.pm:267 +#: ../lib/XXV/OUTPUT/Html.pm:470 ../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:470 +#: ../lib/XXV/OUTPUT/Html.pm:471 msgid "Not found" msgstr "Nicht gefunden" #-------------------- -#: ../lib/XXV/OUTPUT/Html.pm:556 +#: ../lib/XXV/OUTPUT/Html.pm:557 msgid "Please wait ..." msgstr "Bitte warten ..." #-------------------- -#: ../lib/XXV/OUTPUT/Html.pm:786 ../lib/XXV/OUTPUT/Wml.pm:385 +#: ../lib/XXV/OUTPUT/Html.pm:787 ../lib/XXV/OUTPUT/Wml.pm:385 msgid "Back to configuration page." msgstr "Zurück zur Konfigurationsseite" #-------------------- -#: ../lib/XXV/OUTPUT/Html.pm:817 +#: ../lib/XXV/OUTPUT/Html.pm:818 msgid "File" msgstr "Datei" #-------------------- +#: ../lib/XXV/OUTPUT/NEWS/JABBER.pm:108 ../lib/XXV/OUTPUT/NEWS/MAIL.pm:72 ../lib/XXV/OUTPUT/NEWS/RSS.pm:71 ../lib/XXV/OUTPUT/NEWS/VDR.pm:68 +msgid "Sorry, but value must be between %d and %d" +msgstr "Entschuldigung, der Wert muss zwischen %d und %d liegen!" + +#-------------------- #: ../lib/XXV/OUTPUT/NEWS/JABBER.pm:115 msgid "User to be notified (as Jabber account to@jabber.server.org)" msgstr "Zu benachrichtigender Anwender (als Jabberzugang an@jabber.server.org)" diff --git a/locale/de/LC_MESSAGES/xxv.mo b/locale/de/LC_MESSAGES/xxv.mo Binary files differindex b77cbf7..b5d8d18 100644 --- a/locale/de/LC_MESSAGES/xxv.mo +++ b/locale/de/LC_MESSAGES/xxv.mo |
