Subtitles can now be temporarily displayed after a fast rewind

This commit is contained in:
Klaus Schmidinger
2025-03-28 22:49:17 +01:00
parent e66e19329d
commit a10e987f35
39 changed files with 208 additions and 56 deletions

View File

@@ -10108,3 +10108,7 @@ Video Disk Recorder Revision History
+ Subtitles now disappear as signaled in the data stream.
+ Subtitles are now kept in memory for at least 120 seconds, to have them readily
available after a short rewind during replay.
- Subtitles can now be temporarily displayed after a fast rewind:
+ The setup option "DVB/Display subtitles" now has three settings: "no" and "always"
behave like before, the new "after rewind" turns on subtitles after a fast rewind
during replay, and off again when the point where the rewind was started is reached.

7
MANUAL
View File

@@ -949,9 +949,12 @@ VDR version 2.6.6 added '/' to this list.
many "Audio language" options which allow you to select the
individual preferred languages.
Display subtitles = no If set to 'yes', the first available subtitles in the list
Display subtitles = no If set to 'always', the first available subtitles in the list
of preferred subtitle languages will be turned on when
switching to a channel that provides subtitles.
switching to a channel or playing a recording that provides
subtitles. 'after rewind' turns on subtitles after a fast
rewind during replay, and off again when the point where the
rewind was started is reached.
Subtitle languages = 0 Some tv stations broadcast various subtitle tracks in different
languages. This option allows you to define which language(s)

View File

@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: config.c 5.1 2024/03/04 21:13:58 kls Exp $
* $Id: config.c 5.2 2025/03/28 22:49:17 kls Exp $
*/
#include "config.h"
@@ -402,7 +402,7 @@ cSetup::cSetup(void)
MarginStart = 2;
MarginStop = 10;
AudioLanguages[0] = -1;
DisplaySubtitles = 0;
DisplaySubtitles = SUBTITLES_NO;
SubtitleLanguages[0] = -1;
SubtitleOffset = 0;
SubtitleFgTransparency = 0;

View File

@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: config.h 5.28 2025/03/04 15:54:07 kls Exp $
* $Id: config.h 5.29 2025/03/28 22:49:17 kls Exp $
*/
#ifndef __CONFIG_H
@@ -76,6 +76,12 @@
#define STANDARD_ANSISCTE 1
#define STANDARD_NORDIG 2
// Automatic subtitles:
#define SUBTITLES_NO 0
#define SUBTITLES_ALWAYS 1
#define SUBTITLES_REWIND 2
typedef uint32_t in_addr_t; //XXX from /usr/include/netinet/in.h (apparently this is not defined on systems with glibc < 2.2)
class cSVDRPhost : public cListObject {

View File

@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: device.c 5.15 2025/03/02 11:03:35 kls Exp $
* $Id: device.c 5.16 2025/03/28 22:49:17 kls Exp $
*/
#include "device.h"
@@ -1190,10 +1190,18 @@ bool cDevice::SetCurrentSubtitleTrack(eTrackType Type, bool Manual)
autoSelectPreferredSubtitleLanguage = !Manual;
if (dvbSubtitleConverter)
dvbSubtitleConverter->Reset();
if (Type == ttNone && dvbSubtitleConverter) {
if (dvbSubtitleConverter) {
if (Type == ttNone) {
if (Replaying() && !Transferring() && Setup.DisplaySubtitles == SUBTITLES_REWIND)
dvbSubtitleConverter->SetVisible(false);
else {
cMutexLock MutexLock(&mutexCurrentSubtitleTrack);
DELETENULL(dvbSubtitleConverter);
}
}
else if (Replaying() && !Transferring() && Setup.DisplaySubtitles == SUBTITLES_REWIND)
dvbSubtitleConverter->SetVisible(true);
}
DELETENULL(liveSubtitle);
if (player)
player->SetSubtitleTrack(currentSubtitleTrack, GetTrack(currentSubtitleTrack));
@@ -1211,6 +1219,12 @@ bool cDevice::SetCurrentSubtitleTrack(eTrackType Type, bool Manual)
return false;
}
void cDevice::SetTempSubtitles(void)
{
if (dvbSubtitleConverter)
dvbSubtitleConverter->SetTempVisible();
}
void cDevice::EnsureAudioTrack(bool Force)
{
if (keepTracks)
@@ -1248,7 +1262,7 @@ void cDevice::EnsureSubtitleTrack(void)
{
if (keepTracks)
return;
if (Setup.DisplaySubtitles) {
if (Setup.DisplaySubtitles == SUBTITLES_ALWAYS || Setup.DisplaySubtitles == SUBTITLES_REWIND && Replaying() && !Transferring()) {
eTrackType PreferredTrack = ttNone;
int LanguagePreference = INT_MAX; // higher than the maximum possible value
for (int i = ttSubtitleFirst; i <= ttSubtitleLast; i++) {
@@ -1449,8 +1463,11 @@ int cDevice::PlayAudio(const uchar *Data, int Length, uchar Id)
int cDevice::PlaySubtitle(const uchar *Data, int Length)
{
if (!dvbSubtitleConverter)
if (!dvbSubtitleConverter) {
dvbSubtitleConverter = new cDvbSubtitleConverter;
if (Replaying() && !Transferring())
dvbSubtitleConverter->SetVisible(Setup.DisplaySubtitles != SUBTITLES_REWIND);
}
return dvbSubtitleConverter->ConvertFragments(Data, Length);
}
@@ -1618,8 +1635,11 @@ int cDevice::PlayTsAudio(const uchar *Data, int Length)
int cDevice::PlayTsSubtitle(const uchar *Data, int Length)
{
if (!dvbSubtitleConverter)
if (!dvbSubtitleConverter) {
dvbSubtitleConverter = new cDvbSubtitleConverter;
if (Replaying() && !Transferring())
dvbSubtitleConverter->SetVisible(Setup.DisplaySubtitles != SUBTITLES_REWIND);
}
tsToPesSubtitle.PutTs(Data, Length);
int l;
if (const uchar *p = tsToPesSubtitle.GetPes(l)) {

View File

@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: device.h 5.7 2025/03/02 11:03:35 kls Exp $
* $Id: device.h 5.8 2025/03/28 22:49:17 kls Exp $
*/
#ifndef __DEVICE_H
@@ -601,6 +601,8 @@ public:
///< will be done for the rest of the current replay session, or until
///< the channel is changed.
///< Returns true if Type is a valid subtitle track, false otherwise.
void SetTempSubtitles(void);
///< Temporarily turn on subtitles after a fast rewind during reply.
void EnsureAudioTrack(bool Force = false);
///< Makes sure an audio track is selected that is actually available.
///< If Force is true, the language and Dolby Digital settings will

View File

@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: dvbplayer.c 5.8 2025/03/02 11:03:35 kls Exp $
* $Id: dvbplayer.c 5.9 2025/03/28 22:49:17 kls Exp $
*/
#include "dvbplayer.h"
@@ -826,6 +826,7 @@ void cDvbPlayer::Backward(void)
// run into pmPlay
case pmPlay: {
LOCK_THREAD;
DeviceSetTempSubtitles();
Empty();
if (DeviceIsPlayingVideo())
DeviceMute();

View File

@@ -7,7 +7,7 @@
* Original author: Marco Schluessler <marco@lordzodiac.de>
* With some input from the "subtitles plugin" by Pekka Virtanen <pekka.virtanen@sci.fi>
*
* $Id: dvbsubtitle.c 5.4 2025/03/28 21:55:03 kls Exp $
* $Id: dvbsubtitle.c 5.5 2025/03/28 22:49:17 kls Exp $
*/
#include "dvbsubtitle.h"
@@ -1369,6 +1369,8 @@ cDvbSubtitleConverter::cDvbSubtitleConverter(void)
osdDeltaX = osdDeltaY = 0;
osdFactorX = osdFactorY = 1.0;
retention = SUBTITLE_RETENTION;
visible = true;
endVisible = -1;
pages = new cList<cDvbSubtitlePage>;
bitmaps = new cList<cDvbSubtitleBitmaps>;
current = NULL;
@@ -1385,6 +1387,24 @@ cDvbSubtitleConverter::~cDvbSubtitleConverter()
delete pages;
}
void cDvbSubtitleConverter::SetVisible(bool Visible)
{
LOCK_THREAD;
visible = Visible;
if (!visible)
DELETENULL(osd);
endVisible = -1;
}
void cDvbSubtitleConverter::SetTempVisible(void)
{
LOCK_THREAD;
if (!visible) {
endVisible = cDevice::PrimaryDevice()->GetSTC();
visible = true;
}
}
void cDvbSubtitleConverter::SetupChanged(void)
{
setupLevel++;
@@ -1400,10 +1420,6 @@ void cDvbSubtitleConverter::Reset(void)
DELETENULL(osd);
frozen = false;
ddsVersionNumber = -1;
displayWidth = windowWidth = 720;
displayHeight = windowHeight = 576;
windowHorizontalOffset = 0;
windowVerticalOffset = 0;
Unlock();
}
@@ -1496,6 +1512,8 @@ static int PtsDeltaMs(int64_t a, int64_t b)
return (LimitTo32Bit(a) - LimitTo32Bit(b)) / 90; // some devices only deliver 32 bits, PTS are in 1/90000s
}
#define TEMPSUBTITLETAIL 1000 // ms
void cDvbSubtitleConverter::Action(void)
{
int LastSetupLevel = setupLevel;
@@ -1529,9 +1547,14 @@ void cDvbSubtitleConverter::Action(void)
This = sb;
if (This && This != current) {
current = This;
if (!current->HasBitmaps() || current->Timeout() * 1000 - PtsDeltaMs(STC, current->Pts()) <= 0)
if (endVisible >= 0 && PtsDeltaMs(STC, endVisible) > TEMPSUBTITLETAIL) {
visible = false;
endVisible = -1;
DELETENULL(osd);
else if (AssertOsd()) {
}
else if (!current->HasBitmaps() || current->Timeout() * 1000 - PtsDeltaMs(STC, current->Pts()) <= 0)
DELETENULL(osd);
else if (visible && AssertOsd()) {
dbgoutput("showing bitmap #%d of %d<br>\n", current->Index() + 1, bitmaps->Count());
current->Draw(osd);
dbgconverter("PTS: %" PRId64 " STC: %" PRId64 " (%" PRId64 ") timeout: %d<br>\n", current->Pts(), STC, Delta, current->Timeout());

View File

@@ -6,7 +6,7 @@
*
* Original author: Marco Schluessler <marco@lordzodiac.de>
*
* $Id: dvbsubtitle.h 5.2 2025/03/28 21:55:03 kls Exp $
* $Id: dvbsubtitle.h 5.3 2025/03/28 22:49:17 kls Exp $
*/
#ifndef __DVBSUBTITLE_H
@@ -38,6 +38,8 @@ private:
double osdFactorX;
double osdFactorY;
int retention;
bool visible;
uint64_t endVisible;
cList<cDvbSubtitlePage> *pages;
cList<cDvbSubtitleBitmaps> *bitmaps;
cDvbSubtitleBitmaps *current;
@@ -51,6 +53,8 @@ public:
cDvbSubtitleConverter(void);
virtual ~cDvbSubtitleConverter() override;
virtual void Action(void) override;
void SetVisible(bool Visible);
void SetTempVisible(void);
void Reset(void);
void Freeze(bool Status) { frozen = Status; }
int ConvertFragments(const uchar *Data, int Length); // for legacy PES recordings

14
menu.c
View File

@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menu.c 5.25 2025/03/03 11:05:23 kls Exp $
* $Id: menu.c 5.26 2025/03/28 22:49:17 kls Exp $
*/
#include "menu.h"
@@ -3735,6 +3735,7 @@ private:
void Setup(void);
const char *videoDisplayFormatTexts[3];
const char *updateChannelsTexts[6];
const char *displaySubtitlesTexts[3];
const char *standardComplianceTexts[3];
public:
cMenuSetupDVB(void);
@@ -3759,6 +3760,9 @@ cMenuSetupDVB::cMenuSetupDVB(void)
updateChannelsTexts[3] = tr("names and PIDs");
updateChannelsTexts[4] = tr("add new channels");
updateChannelsTexts[5] = tr("add new transponders");
displaySubtitlesTexts[0] = tr("no");
displaySubtitlesTexts[1] = tr("always");
displaySubtitlesTexts[2] = tr("after rewind");
standardComplianceTexts[0] = "DVB";
standardComplianceTexts[1] = "ANSI/SCTE";
standardComplianceTexts[2] = "NORDIG";
@@ -3784,8 +3788,8 @@ void cMenuSetupDVB::Setup(void)
Add(new cMenuEditIntItem( tr("Setup.DVB$Audio languages"), &numAudioLanguages, 0, I18nLanguages()->Size()));
for (int i = 0; i < numAudioLanguages; i++)
Add(new cMenuEditStraItem(tr("Setup.DVB$Audio language"), &data.AudioLanguages[i], I18nLanguages()->Size(), &I18nLanguages()->At(0)));
Add(new cMenuEditBoolItem(tr("Setup.DVB$Display subtitles"), &data.DisplaySubtitles));
if (data.DisplaySubtitles) {
Add(new cMenuEditStraItem(tr("Setup.DVB$Display subtitles"), &data.DisplaySubtitles, 3, displaySubtitlesTexts));
if (data.DisplaySubtitles != SUBTITLES_NO) {
Add(new cMenuEditIntItem( tr("Setup.DVB$Subtitle languages"), &numSubtitleLanguages, 0, I18nLanguages()->Size()));
for (int i = 0; i < numSubtitleLanguages; i++)
Add(new cMenuEditStraItem(tr("Setup.DVB$Subtitle language"), &data.SubtitleLanguages[i], I18nLanguages()->Size(), &I18nLanguages()->At(0)));
@@ -3803,8 +3807,8 @@ eOSState cMenuSetupDVB::ProcessKey(eKeys Key)
int oldVideoDisplayFormat = ::Setup.VideoDisplayFormat;
bool oldVideoFormat = ::Setup.VideoFormat;
bool newVideoFormat = data.VideoFormat;
bool oldDisplaySubtitles = ::Setup.DisplaySubtitles;
bool newDisplaySubtitles = data.DisplaySubtitles;
int oldDisplaySubtitles = ::Setup.DisplaySubtitles;
int newDisplaySubtitles = data.DisplaySubtitles;
int oldnumAudioLanguages = numAudioLanguages;
int oldnumSubtitleLanguages = numSubtitleLanguages;
eOSState state = cMenuSetupBase::ProcessKey(Key);

View File

@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: player.h 5.7 2025/03/02 11:03:35 kls Exp $
* $Id: player.h 5.8 2025/03/28 22:49:17 kls Exp $
*/
#ifndef __PLAYER_H
@@ -34,6 +34,7 @@ protected:
void DeviceMute(void) { if (device) device->Mute(); }
void DeviceSetVideoDisplayFormat(eVideoDisplayFormat VideoDisplayFormat) { if (device) device->SetVideoDisplayFormat(VideoDisplayFormat); }
void DeviceStillPicture(const uchar *Data, int Length) { if (device) device->StillPicture(Data, Length); }
void DeviceSetTempSubtitles(void) { if (device) device->SetTempSubtitles(); }
uint64_t DeviceGetSTC(void) { return device ? device->GetSTC() : -1; }
void Detach(void);
virtual void Activate(bool On) {}

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2008-10-16 11:16-0400\n"
"Last-Translator: Osama Alrawab <alrawab@hotmail.com>\n"
"Language-Team: Arabic <ar@li.org>\n"
@@ -1084,6 +1084,9 @@ msgstr "اضافة قناة جديدة"
msgid "add new transponders"
msgstr "اضافة مصدر قنوات جديد"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "الدى فى بى"

View File

@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2008-03-02 19:02+0100\n"
"Last-Translator: Luca Olivetti <luca@ventoso.org>\n"
"Language-Team: Catalan <vdr@linuxtv.org>\n"
@@ -1083,6 +1083,9 @@ msgstr "afegir nous canals"
msgid "add new transponders"
msgstr "afegir nous transponders"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "Tarja DVB"

View File

@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2010-05-06 11:00+0200\n"
"Last-Translator: Aleš Juřík <ajurik@quick.cz>\n"
"Language-Team: Czech <vdr@linuxtv.org>\n"
@@ -1083,6 +1083,9 @@ msgstr "přidat nové kanály"
msgid "add new transponders"
msgstr "přidat nové transpondéry"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Mogens Elneff <mogens@elneff.dk>\n"
"Language-Team: Danish <vdr@linuxtv.org>\n"
@@ -1080,6 +1080,9 @@ msgstr "tilf. ny kanaler"
msgid "add new transponders"
msgstr "tilf. ny transp."
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2015-02-10 13:45+0100\n"
"Last-Translator: Klaus Schmidinger <vdr@tvdr.de>\n"
"Language-Team: German <vdr@linuxtv.org>\n"
@@ -1082,6 +1082,9 @@ msgstr "neue Kan
msgid "add new transponders"
msgstr "neue Transponder hinzufügen"
msgid "after rewind"
msgstr "nach Rücklauf"
msgid "DVB"
msgstr "DVB"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Dimitrios Dimitrakos <mail@dimitrios.de>\n"
"Language-Team: Greek <vdr@linuxtv.org>\n"
@@ -1080,6 +1080,9 @@ msgstr "
msgid "add new transponders"
msgstr "ðñïóèÞêç íÝïõ áíáìåôáäüôç"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2015-02-19 23:00+0100\n"
"Last-Translator: Gabriel Bonich <gbonich@gmail.com>\n"
"Language-Team: Spanish <vdr@linuxtv.org>\n"
@@ -1081,6 +1081,9 @@ msgstr "a
msgid "add new transponders"
msgstr "añadir transponders"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Arthur Konovalov <artlov@gmail.com>\n"
"Language-Team: Estonian <vdr@linuxtv.org>\n"
@@ -1080,6 +1080,9 @@ msgstr "uued kanalid"
msgid "add new transponders"
msgstr "uued transponderid"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2007-08-15 15:52+0200\n"
"Last-Translator: Matti Lehtimäki <matti.lehtimaki@gmail.com>\n"
"Language-Team: Finnish <vdr@linuxtv.org>\n"
@@ -1084,6 +1084,9 @@ msgstr "uudet kanavat"
msgid "add new transponders"
msgstr "uudet transponderit"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -18,7 +18,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2018-04-14 10:16+0100\n"
"Last-Translator: Bernard Jaulin <bernard.jaulin@gmail.com>\n"
"Language-Team: French <vdr@linuxtv.org>\n"
@@ -1091,6 +1091,9 @@ msgstr "ajouter les nouvelles chaînes"
msgid "add new transponders"
msgstr "ajouter les nouveaux transpondeurs"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2008-03-17 19:00+0100\n"
"Last-Translator: Adrian Caval <anrxc@sysphere.org>\n"
"Language-Team: Croatian <vdr@linuxtv.org>\n"
@@ -1082,6 +1082,9 @@ msgstr "dodaj nove programe"
msgid "add new transponders"
msgstr "dodaj nove transpondere"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.6\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2024-02-09 06:29+0000\n"
"Last-Translator: István Füley <ifuley@tigercomp.ro>\n"
"Language-Team: Hungarian\n"
@@ -1088,6 +1088,9 @@ msgstr "új csatornák hozzáadása"
msgid "add new transponders"
msgstr "új transponderek hozzáadása"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2024-10-15 00:35+0200\n"
"Last-Translator: Gringo <openpli@tiscali.it>\n"
"Language-Team: Italian <vdr@linuxtv.org>\n"
@@ -1086,6 +1086,9 @@ msgstr "nuovi canali"
msgid "add new transponders"
msgstr "nuovi transponder"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "Scheda DVB"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2015-02-11 14:02+0200\n"
"Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n"
"Language-Team: Lithuanian <vdr@linuxtv.org>\n"
@@ -1080,6 +1080,9 @@ msgstr "pridėti naujus kanalus"
msgid "add new transponders"
msgstr "pridėti naujus siųstuvus"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2018-03-31 21:47+0100\n"
"Last-Translator: Dimitar Petrovski <dimeptr@gmail.com>\n"
"Language-Team: Macedonian <kde-i18n-doc@kde.org>\n"
@@ -1082,6 +1082,9 @@ msgstr "додај нови канали"
msgid "add new transponders"
msgstr "додај нови транспондери"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2015-02-10 19:43+0100\n"
"Last-Translator: Erik Oomen <oomen.e@gmail.com>\n"
"Language-Team: Dutch <vdr@linuxtv.org>\n"
@@ -1086,6 +1086,9 @@ msgstr "nieuwe kanalen toevoegen"
msgid "add new transponders"
msgstr "nieuwe transponders toevoegen"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Truls Slevigen <truls@slevigen.no>\n"
"Language-Team: Norwegian Nynorsk <vdr@linuxtv.org>\n"
@@ -1081,6 +1081,9 @@ msgstr ""
msgid "add new transponders"
msgstr ""
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB-enheter"

View File

@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2018-02-19 00:42+0100\n"
"Last-Translator: Tomasz Maciej Nowak <tmn505@gmail.com>\n"
"Language-Team: Polish <vdr@linuxtv.org>\n"
@@ -1085,6 +1085,9 @@ msgstr "dodawaj nowe kanały"
msgid "add new transponders"
msgstr "dodawaj nowe transpondery"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2010-03-28 22:49+0100\n"
"Last-Translator: Cris Silva <hudokkow@gmail.com>\n"
"Language-Team: Portuguese <vdr@linuxtv.org>\n"
@@ -1081,6 +1081,9 @@ msgstr "adicionar novos canais"
msgid "add new transponders"
msgstr "adicionar novos transponders"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "Placa DVB"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2015-02-11 22:26+0100\n"
"Last-Translator: Lucian Muresan <lucianm@users.sourceforge.net>\n"
"Language-Team: Romanian <vdr@linuxtv.org>\n"
@@ -1082,6 +1082,9 @@ msgstr "adăugare canale noi"
msgid "add new transponders"
msgstr "adăugare transpondere noi"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "Dispozitiv DVB"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2016-12-27 17:13+0100\n"
"Last-Translator: Pridvorov Andrey <ua0lnj@bk.ru>\n"
"Language-Team: Russian <vdr@linuxtv.org>\n"
@@ -1081,6 +1081,9 @@ msgstr "новые каналы"
msgid "add new transponders"
msgstr "нов. транспондеры"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2015-02-17 18:59+0100\n"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: Slovak <vdr@linuxtv.org>\n"
@@ -1081,6 +1081,9 @@ msgstr "prida
msgid "add new transponders"
msgstr "prida» nové transpondéry"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB (digitálne televízne vysielanie)"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2013-03-04 12:46+0100\n"
"Last-Translator: Matjaz Thaler <matjaz.thaler@guest.arnes.si>\n"
"Language-Team: Slovenian <vdr@linuxtv.org>\n"
@@ -1081,6 +1081,9 @@ msgstr "dodaj nove programe"
msgid "add new transponders"
msgstr "dodaj nove oddajnike"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2013-03-16 15:05+0100\n"
"Last-Translator: Zoran Turalija <zoran.turalija@gmail.com>\n"
"Language-Team: Serbian <vdr@linuxtv.org>\n"
@@ -1081,6 +1081,9 @@ msgstr "dodaj nove kanale"
msgid "add new transponders"
msgstr "dodaj nove transpondere"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2015-02-12 21:58+0100\n"
"Last-Translator: Magnus Sirviö <sirwio@hotmail.com>\n"
"Language-Team: Swedish <vdr@linuxtv.org>\n"
@@ -1085,6 +1085,9 @@ msgstr "l
msgid "add new transponders"
msgstr "lägg till nya transponders"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2008-02-28 00:33+0100\n"
"Last-Translator: Oktay Yolgeçen <oktay_73@yahoo.de>\n"
"Language-Team: Turkish <vdr@linuxtv.org>\n"
@@ -1080,6 +1080,9 @@ msgstr "yeni kanallar ekle"
msgid "add new transponders"
msgstr "yeni uydu alýcý-verici ekle"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2018-03-18 20:00+0100\n"
"Last-Translator: Yarema aka Knedlyk <yupadmin@gmail.com>\n"
"Language-Team: Ukrainian <vdr@linuxtv.org>\n"
@@ -1081,6 +1081,9 @@ msgstr "додати нові канали"
msgid "add new transponders"
msgstr "додати нові транспондери"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "DVB"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-09-21 12:45+0200\n"
"POT-Creation-Date: 2025-03-28 22:45+0100\n"
"PO-Revision-Date: 2013-03-04 14:52+0800\n"
"Last-Translator: NFVDR <nfvdr@live.com>\n"
"Language-Team: Chinese (simplified) <nfvdr@live.com>\n"
@@ -1082,6 +1082,9 @@ msgstr "添加新频道"
msgid "add new transponders"
msgstr "添加新转发器"
msgid "after rewind"
msgstr ""
msgid "DVB"
msgstr "卫星卡设置"