diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2004-11-14 18:00:00 +0100 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2004-11-14 18:00:00 +0100 |
commit | 23ed5a5ed3824b01cbf66699ff0b34f72ddb9826 (patch) | |
tree | 6b645985ef629f81442e7b15089f6f725d2d70e0 | |
parent | 3038be2a6a849e726d6fe99236d5dc61b679198f (diff) | |
download | vdr-patch-lnbsharing-23ed5a5ed3824b01cbf66699ff0b34f72ddb9826.tar.gz vdr-patch-lnbsharing-23ed5a5ed3824b01cbf66699ff0b34f72ddb9826.tar.bz2 |
Version 1.3.16vdr-1.3.16
- Fixed cChannel::SetName() in case only the ShortName or Provider has changed
(thanks to Sascha Volkenandt for reporting this one).
- Added Danish language texts (thanks to Mogens Elneff).
- Reactivated the NPTL check at startup because there appear to be still
unsolved problems when running on NPTL systems.
- Added missing calls to cStatus::MsgOsdClear() in cSkins::Message() (thanks
to Joachim Wilke for reporting this one, and Andreas Regel for additional
input).
- Fixed the cDvbSpuDecoder (thanks to Marco Schlüßler).
- Fixed handling of pmAudioOnlyBlack (thanks to Stefan Huelswitt).
- Fixed a short glitch when starting a recording on the primary device while
in replay or transfer mode (thanks to Marco Schlüßler).
- Added missing initialization of cEvent::seen.
- Checking PID language codes for ISO 639 compliance to avoid problems with
funny characters. Invalid language codes will be stored as "???".
- The '0' key now toggles the "Day" item in the "Timers" menu between "single
shot" and "repeating". The keys '1'...'7' can be used to toggle the individual
days ('1' is Monday). Thanks to Sascha Klek for reporting a problem with the
'0' key in the "Day" item of the "Timers" menu.
-rw-r--r-- | CONTRIBUTORS | 17 | ||||
-rw-r--r-- | HISTORY | 24 | ||||
-rw-r--r-- | INSTALL | 9 | ||||
-rw-r--r-- | MANUAL | 8 | ||||
-rw-r--r-- | PLUGINS/src/sky/channels.conf.sky | 2 | ||||
-rw-r--r-- | channels.c | 26 | ||||
-rw-r--r-- | channels.conf | 14 | ||||
-rw-r--r-- | config.h | 6 | ||||
-rw-r--r-- | dvbdevice.c | 24 | ||||
-rw-r--r-- | dvbdevice.h | 4 | ||||
-rw-r--r-- | dvbspu.c | 73 | ||||
-rw-r--r-- | dvbspu.h | 4 | ||||
-rw-r--r-- | epg.c | 3 | ||||
-rw-r--r-- | i18n.c | 249 | ||||
-rw-r--r-- | i18n.h | 4 | ||||
-rw-r--r-- | menuitems.c | 32 | ||||
-rw-r--r-- | skins.c | 8 | ||||
-rw-r--r-- | timers.c | 6 | ||||
-rw-r--r-- | timers.h | 6 | ||||
-rw-r--r-- | vdr.c | 13 |
20 files changed, 454 insertions, 78 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index b869c6b..000ed46 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -187,6 +187,7 @@ Stefan Huelswitt <huels@iname.com> available to plugins, and to add a SetText() function for reporting a bug in setting the title in the replay display of the "Classic VDR" skin in case a shorter title is set after a longer one + for fixing handling of pmAudioOnlyBlack Ulrich Röder <roeder@efr-net.de> for pointing out that there are channels that have a symbol rate higher than @@ -732,6 +733,8 @@ Sascha Volkenandt <sascha@akv-soft.de> some broken graphics tools for fixing a memory leak in theme description handling for pointing out a "near miss" condition in cCondVar + for reporting a bug in cChannel::SetName() in case only the ShortName or Provider + has changed Malcolm Caldwell <malcolm.caldwell@ntu.edu.au> for modifying LOF handling to allow for C-band reception @@ -997,6 +1000,8 @@ Andreas Regel <andreas.regel@gmx.de> for fixing handling bitmap indexes for 256 color mode for reporting a bug in removing the "scanning recordings..." message in case the video directory is empty + for pointing out a missing call to cStatus::MsgOsdtatusMessage(NULL) in + cSkins::Message() Thomas Bergwinkl <Thomas.Bergwinkl@t-online.de> for fixing the validity check for channel IDs, because some providers use TIDs @@ -1071,6 +1076,9 @@ Marco Schlüßler <marco@lordzodiac.de> for reporting a problem with initialization of the main program loop variables with older compiler versions for adding the 'portal name' to cChannels + for fixing the cDvbSpuDecoder + for fixing a short glitch when starting a recording on the primary device while + in replay or transfer mode Jürgen Schmitz <j.schmitz@web.de> for reporting a bug in displaying the current channel when switching via the SVDRP @@ -1132,3 +1140,12 @@ Mattias Grönlund <Mattias@Gronlund.net> Uwe Hanke <uhanke@gmx.de> for fixing some typos in the Makefile's 'font' target + +Mogens Elneff <mogens@elneff.dk> + for translating OSD texts to the Danish language + +Joachim Wilke <vdr@joachim-wilke.de> + for reporting missing calls to cStatus::MsgOsdClear() in cSkins::Message() + +Sascha Klek <sklek@gmx.de> + for reporting a problem with the '0' key in the "Day" item of the "Timers" menu @@ -359,7 +359,7 @@ Video Disk Recorder Revision History the EPG scanner). - The EPG scanner now starts with the first channel (it used to start with the second channel). -- Reacitvated setting the PNR. +- Reactivated setting the PNR. - Adapted the frame scanning to the new muxing of the driver. - The new compile time option REMOTE=NONE can be used to compile VDR without any remote control support (for applications where it shall be controlled @@ -3116,3 +3116,25 @@ Video Disk Recorder Revision History - Now displaying the name of the remote control for which the keys are being learned inside the menu to avoid overwriting the date/time in the 'classic' skin (thanks to Oliver Endriss for reporting this one). + +2004-11-14: Version 1.3.16 + +- Fixed cChannel::SetName() in case only the ShortName or Provider has changed + (thanks to Sascha Volkenandt for reporting this one). +- Added Danish language texts (thanks to Mogens Elneff). +- Reactivated the NPTL check at startup because there appear to be still + unsolved problems when running on NPTL systems. +- Added missing calls to cStatus::MsgOsdClear() in cSkins::Message() (thanks + to Joachim Wilke for reporting this one, and Andreas Regel for additional + input). +- Fixed the cDvbSpuDecoder (thanks to Marco Schlüßler). +- Fixed handling of pmAudioOnlyBlack (thanks to Stefan Huelswitt). +- Fixed a short glitch when starting a recording on the primary device while + in replay or transfer mode (thanks to Marco Schlüßler). +- Added missing initialization of cEvent::seen. +- Checking PID language codes for ISO 639 compliance to avoid problems with + funny characters. Invalid language codes will be stored as "???". +- The '0' key now toggles the "Day" item in the "Timers" menu between "single + shot" and "repeating". The keys '1'...'7' can be used to toggle the individual + days ('1' is monday). Thanks to Sascha Klek for reporting a problem with the + '0' key in the "Day" item of the "Timers" menu. @@ -7,7 +7,14 @@ Version 1.3 IMPORTANT NOTES: ---------------- -Please make sure your environment is NOT set to use UTF-8 or +VDR currently doesn't work with NPTL ("Native Posix Thread Library"). +Either don't use NPTL, or set the environment variable + + LD_ASSUME_KERNEL=2.4.1 + +before running VDR. + +Also, please make sure your environment is NOT set to use UTF-8 or any other multibyte character representation. Check the value of your $LANG or $LC_CTYPE environment variable, and if it contains something like "de_DE.UTF-8", make sure you set it to something like "de_DE.iso8859-1" @@ -24,7 +24,7 @@ Version 1.2 Green - Language New New Ins/Ovr Rewind Skip -60s Yellow - Pause live Delete Delete Delete Delete Skip +60s Blue - Stop/Resume Mark On/Off(1) - Summary Stop - 0..9 Ch select - Sort(3) - Numeric inp. Exec cmd(2) Editing + 0..9 Ch select - Sort(3) Day(4) Numeric inp. Exec cmd(2) Editing In a numerical input field (like the response to a CAM enquiry) the keys 0..9 are used to enter the data, and the Left key can be used to delete the last @@ -73,6 +73,9 @@ Version 1.2 (2) See "Processing Recordings" below. (3) In the "Channels" menu the '0' key switches the sort mode through "by number", "by name" and "by provider". + (4) In the "Timers" menu, when on the "Day" item, the '0' key toggles between + a single shot and a repeating timer. If "Day" indicates a repeating timer, + the keys '1'...'7' can be used to toggle the individual days ('1' is monday). * Navigating through the On Screen Menus @@ -369,6 +372,9 @@ Version 1.2 by listing the days of the week on which they shall record. For example, a timer that shall record every monday and wednesday would have a Day setting of "M-W----". + The '0' key toggles between a single shot and a repeating timer. + If "Day" indicates a repeating timer, the keys '1'...'7' can be + used to toggle the individual days ('1' is monday). Start: The start time of the timer in hh:mm as 24 hour ("military") time. Stop: The stop time of the timer. VPS: Defines whether the timer shall use VPS (if available). If this diff --git a/PLUGINS/src/sky/channels.conf.sky b/PLUGINS/src/sky/channels.conf.sky index 4b6e1af..d40837f 100644 --- a/PLUGINS/src/sky/channels.conf.sky +++ b/PLUGINS/src/sky/channels.conf.sky @@ -18,7 +18,7 @@ # S28.2E-2-2027-4705:106:sky_one S28.2E-2-2027-5104:107:sky_one_mix -S28.2E-2-2054-10240:175:itv2 +S28.2E-2-2054-10240:118:itv2 S28.2E-2-2023-4905:130:scifi S28.2E-2-2025-5904:127:paramount S28.2E-2-2009-6201:551:discovery @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: channels.c 1.30 2004/10/31 12:54:06 kls Exp $ + * $Id: channels.c 1.31 2004/11/02 18:07:05 kls Exp $ */ #include "channels.h" @@ -358,15 +358,23 @@ void cChannel::SetId(int Nid, int Tid, int Sid, int Rid) void cChannel::SetName(const char *Name, const char *ShortName, const char *Provider) { - if (!isempty(Name) && strcmp(name, Name) != 0) { - if (Number()) { - dsyslog("changing name of channel %d from '%s,%s;%s' to '%s,%s;%s'", Number(), name, shortName, provider, Name, ShortName, Provider); - modification |= CHANNELMOD_NAME; - Channels.SetModified(); + if (!isempty(Name)) { + bool nn = strcmp(name, Name) != 0; + bool ns = strcmp(shortName, ShortName) != 0; + bool np = strcmp(provider, Provider) != 0; + if (nn || ns || np) { + if (Number()) { + dsyslog("changing name of channel %d from '%s,%s;%s' to '%s,%s;%s'", Number(), name, shortName, provider, Name, ShortName, Provider); + modification |= CHANNELMOD_NAME; + Channels.SetModified(); + } + if (nn) + name = strcpyrealloc(name, Name); + if (ns) + shortName = strcpyrealloc(shortName, ShortName); + if (np) + provider = strcpyrealloc(provider, Provider); } - name = strcpyrealloc(name, Name); - shortName = strcpyrealloc(shortName, ShortName); - provider = strcpyrealloc(provider, Provider); } } diff --git a/channels.conf b/channels.conf index acb25d5..95ccdf1 100644 --- a/channels.conf +++ b/channels.conf @@ -24,7 +24,7 @@ VOX;RTL World:12187:hC34:S19.2E:27500:167:136=deu:71:0:12060:1:1089:0 KABEL1;ProSiebenSat.1:12480:vC34:S19.2E:27500:511:512=deu:33:0:899:133:33:0 NEUN LIVE Television,NEUN LIVE;BetaDigital:12480:vC34:S19.2E:27500:767:768=deu:35:0:897:133:33:0 DSF;BetaDigital:12480:vC34:S19.2E:27500:1023:1024=deu:0:0:900:133:33:0 -HSE24;BetaDigital:12480:vC34:S19.2E:27500:1279:1280=deu:37:0:40:133:33:0 +HSE24,HSE24;BetaDigital:12480:vC34:S19.2E:27500:1279:1280=deu:37:0:40:133:33:0 Bloomberg TV Germany;Bloomberg:12551:vC56:S19.2E:22000:162:99=deu:0:0:12160:1:1108:0 EURONEWS;CSAT:11817:vC34:S19.2E:27500:163:92=fra,93=eng,94=ita,95=esl,91=rus,98=por,99=deu:0:0:8004:1:1070:0 rbb Brandenburg;ARD:12109:hC34:S19.2E:27500:501:502=deu:504:0:28205:1:1073:0 @@ -48,8 +48,8 @@ PREMIERE START,START;PREMIERE:11797:hC34:S19.2E:27500:255:256=deu:32:1702,1801,1 PREMIERE 1,PREM 1;PREMIERE:11797:hC34:S19.2E:27500:511:512=deu,513=deu;515=deu:32:1702,1801,1722:10:133:2:0 PREMIERE 2,PREM 2;PREMIERE:11797:hC34:S19.2E:27500:1791:1792=deu,1793=deu;1795=deu:32:1702,1722,1801:11:133:2:0 PREMIERE 3,PREM 3;PREMIERE:11797:hC34:S19.2E:27500:2303:2304=deu,2305=deu:32:1722,1801,1702:43:133:2:0 -PREMIERE 4,PREM 4;PREMIERE:11797:hC34:S19.2E:27500:767:768=deu,769=deu:32:1801,1722,1702:9:133:2:0 -PREMIERE 5,PREM 5;PREMIERE:11797:hC34:S19.2E:27500:1279:1280=deu,1281=deu:32:1722,1702,1801:29:133:2:0 +PREMIERE 4,PREM 4;PREMIERE:11797:hC34:S19.2E:27500:767:768=deu:32:1801,1722,1702:9:133:2:0 +PREMIERE 5,PREM 5;PREMIERE:11797:hC34:S19.2E:27500:1279:1280=deu:32:1722,1702,1801:29:133:2:0 PREMIERE 6,PREM 6;PREMIERE:11797:hC34:S19.2E:27500:1535:1536=deu:32:1702,1722,1801:41:133:2:0 PREMIERE 7,PREM 7;PREMIERE:11797:hC34:S19.2E:27500:1023:1024=deu:32:1722,1702,1801:20:133:2:0 DISNEY CHANNEL,DISNEY;PREMIERE:11758:hC34:S19.2E:27500:2559:2560=deu:0:1722,1702,1801:34:133:17:0 @@ -59,7 +59,7 @@ PREMIERE DIREKT,DIREKT;PREMIERE:12031:hC34:S19.2E:27500:2815:2816=deu,2817=deu;2 BEATE-UHSE.TV,B-UHSE;PREMIERE:12070:hC34:S19.2E:27500:1023:1024=deu:32:1801,1702,1722:21:133:1:0 DIREKT EROTIK,EROTIK;PREMIERE:12031:hC34:S19.2E:27500:1279:0:0:1722,1702,1801:513:133:4:0 :Sportsworld -PREMIERE SPORT 1,SPORT 1;PREMIERE:11719:hC34:S19.2E:27500:255:256=deu,257=deu:32:1801,1702,1722:17:133:3:0 +Konferenz:11719:hC34:S19.2E:27500:255:256=deu,257=deu:32:1801,1702,1722:17:133:3:0 PREMIERE SPORT 2,SPORT 2;PREMIERE:12031:hC34:S19.2E:27500:3839:3840=deu,3841=deu:32:1722,1702,1801:27:133:4:0 :Beta Digital N24;ProSiebenSat.1:12480:vC34:S19.2E:27500:2047:2048=deu:36:0:47:133:33:0 @@ -82,10 +82,10 @@ Chamber TV;Chambre des Députées:12551:vC56:S19.2E:22000:55:56=ltz:0:0:12180:1:11 RTL TELE Letzebuerg:12551:vC56:S19.2E:22000:168:144=eng,146=fra,151=ltz:74:0:3994:1:1108:0 Yorin;CANAL+:12574:hC56:S19.2E:22000:512+8190:84=dut:33:622,602,100:5010:53:1109:0 MTV2 Pop Channel;MTV Networks:12226:hC34:S19.2E:27500:513+8190:661=deu:577:0:28640:1:1091:0 +MTV Central;MTV Networks:11739:vC34:S19.2E:27500:3031:3032:3034:0:28653:1:1066:0 Via 1 - Schöner Reisen:12148:h:S19.2E:27500:511:512:0:0:44:0:0:0 VIVA;VIVA Fernsehen GmbH & Co. KG:12669:vC56:S19.2E:22000:309:310=deu:311:0:12732:1:1116:0 VIVA PLUS;VIVA Fernsehen GmbH & Co. KG:12551:vC56:S19.2E:22000:171:172=deu:173:0:12120:1:1108:0 -MTV Central;MTV Networks:11739:vC34:S19.2E:27500:3031:3032:3034:0:28653:1:1066:0 QVC Deutschland;QVC:12551:vC56:S19.2E:22000:165:166:167:0:12100:1:1108:0 TELE 5;BetaDigital:12480:vC34:S19.2E:27500:1535:1536=deu:38:0:51:133:33:0 :@201 Sky @@ -94,7 +94,7 @@ Sky Mix;BSkyB:12226:hC23:S28.2E:27500:2314+2304:2315=eng,2316=NAR:2317:960,961:5 ITV2;BSkyB:10906:vC56:S28.2E:22000:2350:2351=eng,2352=eng:2353:960,961:10240:2:2054:0 Sci-Fi;BSkyB:12148:hC23:S28.2E:27500:2314+2304:2315=eng:2316:960,961:4905:2:2023:0 Paramount;BSkyB:12187:hC23:S28.2E:27500:2313+2304:2314=eng:2315:960,961:5904:2:2025:0 -Discovery;BSkyB:11875:hC23:S28.2E:27500:2304:2306=eng,2307=NAR:2305:960,961:6201:2:2009:0 +Discovery;BSkyB:11875:hC23:S28.2E:27500:2304:2306=eng,2307:2305:960,961:6201:2:2009:0 Sky Movies 1;BSkyB:11836:hC23:S28.2E:27500:2310+2304:2311=eng,2312=NAR;2314=eng:2313:960,961:4303:2:2007:0 Sky Movies 2;BSkyB:11836:hC23:S28.2E:27500:2305+2304:2306=eng,2307=NAR;2309=eng:2308:960,961:4302:2:2007:0 Sky Movies 3;BSkyB:11836:hC23:S28.2E:27500:2315+2304:2316=eng,2317=NAR;2319=eng:2318:960,961:4403:2:2007:0 @@ -114,7 +114,7 @@ Animal Plnt+;BSkyB:12070:hC23:S28.2E:27500:2314+2307:2315=eng:0:960,961:50002:2: S1T;BSkyB:12285:vC23:S28.2E:27500:2311+2304:2312=eng,2313=NAR:2307:960,961:4409:2:2030:0 CNN;BSkyB:12051:vC23:S28.2E:27500:2313:2315=eng:2314:0:7140:2:2018:0 BBC PARL'MNT:12129:vC23:S28.2E:27500:2304:2306=eng,2307=eng:2305:0:7300:2:2022:0 -Olisat;T-Systems/MTI:11200:vC56:S13.0E:27500:413:414=ita:0:0:4733:318:13400:0 +Olisat / Telefe;T-Systems/MTI:11200:vC56:S13.0E:27500:413:414=ita:0:0:4733:318:13400:0 EURO1080:12168:vC34:S19.2E:27500:308:256:0:FF:21100:1:1088:0 Astra HD:12441:vC34:S19.2E:27500:133+80:134:0:FF:29700:0:0:0 :@1000 New channels @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: config.h 1.203 2004/10/31 16:17:02 kls Exp $ + * $Id: config.h 1.204 2004/11/02 17:20:27 kls Exp $ */ #ifndef __CONFIG_H @@ -20,8 +20,8 @@ #include "i18n.h" #include "tools.h" -#define VDRVERSION "1.3.15" -#define VDRVERSNUM 10315 // Version * 10000 + Major * 100 + Minor +#define VDRVERSION "1.3.16" +#define VDRVERSNUM 10316 // Version * 10000 + Major * 100 + Minor #define MAXPRIORITY 99 #define MAXLIFETIME 99 diff --git a/dvbdevice.c b/dvbdevice.c index fb87ae4..2702f95 100644 --- a/dvbdevice.c +++ b/dvbdevice.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbdevice.c 1.102 2004/10/30 14:53:30 kls Exp $ + * $Id: dvbdevice.c 1.104 2004/11/07 10:27:19 kls Exp $ */ #include "dvbdevice.h" @@ -681,14 +681,15 @@ int cDvbDevice::OpenFilter(u_short Pid, u_char Tid, u_char Mask) return -1; } -void cDvbDevice::TurnOffLiveMode(void) +void cDvbDevice::TurnOffLiveMode(bool LiveView) { - // Avoid noise while switching: - - CHECK(ioctl(fd_audio, AUDIO_SET_MUTE, true)); - CHECK(ioctl(fd_video, VIDEO_SET_BLANK, true)); - CHECK(ioctl(fd_audio, AUDIO_CLEAR_BUFFER)); - CHECK(ioctl(fd_video, VIDEO_CLEAR_BUFFER)); + if (LiveView) { + // Avoid noise while switching: + CHECK(ioctl(fd_audio, AUDIO_SET_MUTE, true)); + CHECK(ioctl(fd_video, VIDEO_SET_BLANK, true)); + CHECK(ioctl(fd_audio, AUDIO_CLEAR_BUFFER)); + CHECK(ioctl(fd_video, VIDEO_CLEAR_BUFFER)); + } // Turn off live PIDs: @@ -781,7 +782,7 @@ bool cDvbDevice::SetChannelDevice(const cChannel *Channel, bool LiveView) // Turn off live PIDs if necessary: if (TurnOffLivePIDs) - TurnOffLiveMode(); + TurnOffLiveMode(LiveView); // Set the tuner: @@ -897,10 +898,9 @@ bool cDvbDevice::SetPlayMode(ePlayMode PlayMode) CHECK(ioctl(fd_audio, AUDIO_SET_MUTE, false)); break; case pmAudioVideo: - if (playMode == pmNone) - TurnOffLiveMode(); - // continue with next... case pmAudioOnlyBlack: + if (playMode == pmNone) + TurnOffLiveMode(true); CHECK(ioctl(fd_video, VIDEO_SET_BLANK, true)); CHECK(ioctl(fd_audio, AUDIO_SELECT_SOURCE, AUDIO_SOURCE_MEMORY)); CHECK(ioctl(fd_audio, AUDIO_SET_AV_SYNC, PlayMode == pmAudioVideo)); diff --git a/dvbdevice.h b/dvbdevice.h index 7dd6174..1817f37 100644 --- a/dvbdevice.h +++ b/dvbdevice.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbdevice.h 1.29 2004/10/30 14:48:27 kls Exp $ + * $Id: dvbdevice.h 1.30 2004/11/07 10:25:16 kls Exp $ */ #ifndef __DVBDEVICE_H @@ -56,7 +56,7 @@ public: private: cDvbTuner *dvbTuner; - void TurnOffLiveMode(void); + void TurnOffLiveMode(bool LiveView); public: virtual bool ProvidesSource(int Source) const; virtual bool ProvidesTransponder(const cChannel *Channel) const; @@ -8,7 +8,7 @@ * * parts of this file are derived from the OMS program. * - * $Id: dvbspu.c 1.7 2004/05/22 14:02:32 kls Exp $ + * $Id: dvbspu.c 1.8 2004/11/06 11:50:13 kls Exp $ */ #include <assert.h> @@ -319,25 +319,42 @@ int cDvbSpuDecoder::ScaleYres(int value) return value; } -void cDvbSpuDecoder::DrawBmp(sDvbSpuRect & size, cBitmap * bmp) +sDvbSpuRect cDvbSpuDecoder::CalcAreaSize(sDvbSpuRect fgsize, cBitmap *fgbmp, sDvbSpuRect bgsize, cBitmap *bgbmp) { - int x2 = size.x2; - while ((x2 - size.x1 + 1) & 0x03) - x2++; - tArea Area = { size.x1, size.y1, x2, size.y2, 2 }; - osd->SetAreas(&Area, 1); - if (x2 > size.x2) - osd->DrawRectangle(size.x2 + 1, size.y1, x2, size.y2, clrTransparent); - osd->DrawBitmap(size.x1, size.y1, *bmp); - delete bmp; + sDvbSpuRect size; + if (fgbmp && bgbmp) { + size.x1 = min(fgsize.x1, bgsize.x1); + size.y1 = min(fgsize.y1, bgsize.y1); + size.x2 = max(fgsize.x2, bgsize.x2); + size.y2 = max(fgsize.y2, bgsize.y2); + } + else if (fgbmp) { + size.x1 = fgsize.x1; + size.y1 = fgsize.y1; + size.x2 = fgsize.x2; + size.y2 = fgsize.y2; + } + else if (bgbmp) { + size.x1 = bgsize.x1; + size.y1 = bgsize.y1; + size.x2 = bgsize.x2; + size.y2 = bgsize.y2; + } + else { + size.x1 = 0; + size.y1 = 0; + size.x2 = 0; + size.y2 = 0; + } + return size; } void cDvbSpuDecoder::Draw(void) { - Hide(); - - if (!spubmp) + if (!spubmp) { + Hide(); return; + } cBitmap *fg = NULL; cBitmap *bg = NULL; @@ -362,18 +379,28 @@ void cDvbSpuDecoder::Draw(void) } } - if (bg || fg) { - if (osd == NULL) - if ((osd = cOsdProvider::NewOsd(0, 0)) == NULL) { - dsyslog("NewOsd failed\n"); - return; - } + sDvbSpuRect areaSize = CalcAreaSize(hlsize, fg, bgsize, bg); - if (fg) - DrawBmp(hlsize, fg); + if (!fg || !bg || !osd) { + Hide(); + } + + if (bg || fg) { + if (osd == NULL) { + osd = cOsdProvider::NewOsd(0, 0); + int x2 = areaSize.x2; + while ((x2 - areaSize.x1 + 1) & 0x03) + x2++; + tArea Area = { areaSize.x1, areaSize.y1, x2, areaSize.y2, (fg && bg) ? 4 : 2 }; + osd->SetAreas(&Area, 1); + } if (bg) - DrawBmp(bgsize, bg); + osd->DrawBitmap(bgsize.x1, bgsize.y1, *bg); + if (fg) + osd->DrawBitmap(hlsize.x1, hlsize.y1, *fg); + delete fg; + delete bg; osd->Flush(); } @@ -8,7 +8,7 @@ * * parts of this file are derived from the OMS program. * - * $Id: dvbspu.h 1.5 2004/06/12 12:57:55 kls Exp $ + * $Id: dvbspu.h 1.6 2004/11/06 11:42:37 kls Exp $ */ #ifndef __DVBSPU_H @@ -130,7 +130,7 @@ class cDvbSpuDecoder:public cSpuDecoder { int ScaleYcoord(int value); int ScaleYres(int value); - void DrawBmp(sDvbSpuRect & size, cBitmap * bmp); + sDvbSpuRect CalcAreaSize(sDvbSpuRect fgsize, cBitmap *fgbmp, sDvbSpuRect bgsize, cBitmap *bgbmp); public: cDvbSpuDecoder(); @@ -7,7 +7,7 @@ * Original version (as used in VDR before 1.3.0) written by * Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>. * - * $Id: epg.c 1.21 2004/10/31 16:12:36 kls Exp $ + * $Id: epg.c 1.22 2004/11/07 10:43:30 kls Exp $ */ #include "epg.h" @@ -31,6 +31,7 @@ cEvent::cEvent(tChannelID ChannelID, u_int16_t EventID) startTime = 0; duration = 0; vps = 0; + SetSeen(); } cEvent::~cEvent() @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: i18n.c 1.161 2004/11/01 14:18:48 kls Exp $ + * $Id: i18n.c 1.163 2004/11/14 14:28:29 kls Exp $ * * Translations provided by: * @@ -25,6 +25,7 @@ * Russian Vyacheslav Dikonov <sdiconov@mail.ru> * Croatian Drazen Dupor <drazen.dupor@dupor.com> * Estonian Arthur Konovalov <kasjas@hot.ee> + * Danish Mogens Elneff <mogens@elneff.dk> * */ @@ -74,6 +75,7 @@ */ #include "i18n.h" +#include <ctype.h> #include "config.h" #include "tools.h" @@ -98,6 +100,7 @@ const tI18nPhrase Phrases[] = { "ÀãááÚØÙ", // Russian "Hrvatski", "Eesti", + "Dansk", }, // The character set needed for this language (this MUST be the second phrase!): { "iso8859-1", @@ -119,6 +122,7 @@ const tI18nPhrase Phrases[] = { "iso8859-5", "iso8859-2", "iso8859-15", // or iso8859-1 as alternative + "iso8859-1", }, // The 3-letter names of the language (this MUST be the third phrase!): { "eng,dos", @@ -140,6 +144,7 @@ const tI18nPhrase Phrases[] = { "rus", "hrv", "est", + "dan", }, // Menu titles: { "VDR", @@ -161,6 +166,7 @@ const tI18nPhrase Phrases[] = { "VDR", "VDR", "VDR", + "VDR", }, { "Schedule", "Programm", @@ -181,6 +187,7 @@ const tI18nPhrase Phrases[] = { "ÂÕÛÕÓØÔ", "Raspored", "Kava", + "Programoversigt", }, { "Channels", "Kanäle", @@ -201,6 +208,7 @@ const tI18nPhrase Phrases[] = { "ºÐÝÐÛë", "Programi", "Kanalid", + "Kanaler", }, { "Timers", "Timer", @@ -221,6 +229,7 @@ const tI18nPhrase Phrases[] = { "ÂÐÙÜÕàë", "Termini", "Taimer", + "Timere", }, { "Recordings", "Aufzeichnungen", @@ -241,6 +250,7 @@ const tI18nPhrase Phrases[] = { "·ÐßØáØ", "Snimke", "Salvestused", + "Optagelser", }, { "Setup", "Einstellungen", @@ -261,6 +271,7 @@ const tI18nPhrase Phrases[] = { "½ÐáâàÞÙÚÐ", "Konfiguracija", "Sätted", + "Indstillinger", }, { "Commands", "Befehle", @@ -281,6 +292,7 @@ const tI18nPhrase Phrases[] = { "ºÞÜÐÝÔë", "Naredbe", "Käsud", + "Kommandoer", }, { "Recording commands", "Befehle für Aufzeichnungen", @@ -301,6 +313,7 @@ const tI18nPhrase Phrases[] = { "ºÞÜÐÝÔë ×ÐßØáØ", "Naredbe za snimanje", "Salvestuse käsud", + "Optage kommandoer", }, { "Edit channel", "Kanal editieren", @@ -321,6 +334,7 @@ const tI18nPhrase Phrases[] = { "ÀÕÔÐÚâØàÞÒÐÝØÕ ÚÐÝÐÛÐ", "Ureðivanje programa", "Kanali muutmine", + "Rediger kanal", }, { "Edit timer", "Timer editieren", @@ -341,6 +355,7 @@ const tI18nPhrase Phrases[] = { "ÃáâÐÝÞÒÚÐ âÐÙÜÕàÐ", "Ureðivanje termina", "Taimeri muutmine", + "Rediger timer", }, { "Event", "Sendung", @@ -361,6 +376,7 @@ const tI18nPhrase Phrases[] = { "¿ÕàÕÔÐçÐ", "Emisija", "Sündmus", + "Udsendelse", }, { "Summary", "Inhalt", @@ -381,6 +397,7 @@ const tI18nPhrase Phrases[] = { "¾ßØáÐÝØÕ", "Sadr¾aj", "Kokkuvõte", + "Omtale", }, { "Schedule - %s", "Programm - %s", @@ -401,6 +418,7 @@ const tI18nPhrase Phrases[] = { "¿àÞÓàÐÜÜÐ - %s", "Raspored - %s", "Programm - %s", + "Program - %s", }, { "What's on now?", "Was läuft jetzt?", @@ -421,6 +439,7 @@ const tI18nPhrase Phrases[] = { "ÁÕÙçÐá Ò íäØàÕ:", "©to je trenutno na programu?", "Hetkel eetris", + "Hvilket program vises nu?", }, { "What's on next?", "Was läuft als nächstes?", @@ -441,6 +460,7 @@ const tI18nPhrase Phrases[] = { "´ÐÛÕÕ Ò ßàÞÓàÐÜÜÕ:", "©to slijedi?", "Järgmisena eetris", + "Hvilket næste program vises?", }, // Button texts (should not be more than 10 characters!): { "Edit", @@ -462,6 +482,7 @@ const tI18nPhrase Phrases[] = { "ÀÕÔÐÚâØàÞÒÐâì", "Promjeni", "Muuda", + "Rediger", }, { "New", "Neu", @@ -482,6 +503,7 @@ const tI18nPhrase Phrases[] = { "´ÞÑÐÒØâì", "Novi", "Uus", + "Ny", }, { "Delete", "Löschen", @@ -502,6 +524,7 @@ const tI18nPhrase Phrases[] = { "ÃÔÐÛØâì", "Obri¹i", "Kustuta", + "Slet", }, { "Mark", "Markieren", @@ -522,6 +545,7 @@ const tI18nPhrase Phrases[] = { "¿ÕàÕÜÕáâØâì", "Oznaèi", "Siirda", + "Markér", }, { "On/Off", "Ein/Aus", @@ -542,6 +566,7 @@ const tI18nPhrase Phrases[] = { "²ÚÛ/²ëÚÛ", "De-/Aktiviraj", "Sees/Väljas", + "Til/Fra", }, { "Record", "Aufnehmen", @@ -562,6 +587,7 @@ const tI18nPhrase Phrases[] = { "·ÐßØáì", "Snimi", "Salvesta", + "Optag", }, { "Play", "Wiedergabe", @@ -582,6 +608,7 @@ const tI18nPhrase Phrases[] = { "²ÞáßàÞØ×ÒÕáâØ", "Start", "Start", + "Afspil", }, { "Rewind", "Anfang", @@ -602,6 +629,7 @@ const tI18nPhrase Phrases[] = { "½Ð×ÐÔ", "Na poèetak", "Algusesse", + "Forfra", }, { "Button$Stop", "Beenden", @@ -622,6 +650,7 @@ const tI18nPhrase Phrases[] = { "ÁâÞß", "Stop", "Stopp", + "Stop", }, { "Resume", "Weiter", @@ -642,6 +671,7 @@ const tI18nPhrase Phrases[] = { "¿àÞÔÞÛÖØâì", "Nastavi", "Jätka", + "Fortsæt", }, { "Summary", "Inhalt", @@ -662,6 +692,7 @@ const tI18nPhrase Phrases[] = { "¾ßØáÐÝØÕ", "Sadr¾aj", "Kokkuvõte", + "Omtale", }, { "Open", "Öffnen", @@ -682,6 +713,7 @@ const tI18nPhrase Phrases[] = { "¾âÚàëâì", "Otvori", "Ava", + "Åbn", }, { "Switch", "Umschalten", @@ -702,6 +734,7 @@ const tI18nPhrase Phrases[] = { "¿ÕàÕÚÛîçØâì", "Prebaci", "Vali", + "Skift", }, { "Now", "Jetzt", @@ -722,6 +755,7 @@ const tI18nPhrase Phrases[] = { "ÁÕÙçÐá", "Trenutno", "Nüüd", + "Nu", }, { "Next", "Nächste", @@ -742,6 +776,7 @@ const tI18nPhrase Phrases[] = { "´ÐÛÕÕ", "Slijedi", "Järgmine", + "Næste", }, { "Button$Schedule", "Programm", @@ -762,6 +797,7 @@ const tI18nPhrase Phrases[] = { "¿àÞÓàÐÜÜÐ", "Raspored", "Kava", + "Program", }, { "Language", "Sprache", @@ -782,6 +818,7 @@ const tI18nPhrase Phrases[] = { "Ï×ëÚ", "Jezik", "Keel", + "Sprog", }, { "Eject", "Auswerfen", @@ -802,6 +839,7 @@ const tI18nPhrase Phrases[] = { "¸×ÒÛÕçì", "Izbaci", "Ava", + "Skub ud", }, { "ABC/abc", "ABC/abc", @@ -822,6 +860,7 @@ const tI18nPhrase Phrases[] = { "°±²/ÐÑÒ", "ABC/abc", "ABC/abc", + "ABC/abc", }, { "Insert", "Einfügen", @@ -842,6 +881,7 @@ const tI18nPhrase Phrases[] = { "²áâÐÒÚÐ", "Umetni", "Lisa (INS)", + "Indsæt", }, { "Overwrite", "Überschreiben", @@ -862,6 +902,7 @@ const tI18nPhrase Phrases[] = { "·ÐÜÕÝÐ", "Prepi¹i", "Asenda (OVR)", + "Overskriv", }, { "Menu", "Menü", @@ -882,6 +923,7 @@ const tI18nPhrase Phrases[] = { "¼ÕÝî", "Izbor", "Menüü", + "Menu", }, { "Reset", "Reset", @@ -902,6 +944,7 @@ const tI18nPhrase Phrases[] = { "ÁÑàÞá", "Reset", "Reset", + "Nulstille", }, { "Scan", "Scan", @@ -922,6 +965,7 @@ const tI18nPhrase Phrases[] = { "ÁÚÐÝØàÞÒÐâì", "Pretra¾i", "Uuenda", + "Skan", }, // Confirmations: { "Delete channel?", @@ -943,6 +987,7 @@ const tI18nPhrase Phrases[] = { "ÃÔÐÛØâì ÚÐÝÐÛ?", "Obrisati program?", "Kustutan kanali?", + "Slet kanal?", }, { "Delete timer?", "Timer löschen?", @@ -963,6 +1008,7 @@ const tI18nPhrase Phrases[] = { "ÃÔÐÛØâì âÐÙÜÕà?", "Obrisati termin?", "Kustutan taimeri?", + "Slet timer?", }, { "Delete recording?", "Aufzeichnung löschen?", @@ -983,6 +1029,7 @@ const tI18nPhrase Phrases[] = { "ÁâÕàÕâì ×ÐßØáì?", "Obrisati snimku?", "Kustutan salvestuse?", + "Slet optagelse", }, { "Timer still recording - really delete?", "Timer zeichnet auf - trotzdem löschen?", @@ -1003,6 +1050,7 @@ const tI18nPhrase Phrases[] = { "¸Ôñâ ×ÐßØáì ßÞ âÐÙÜÕàã - ÔÕÙáâÒØâÕÛìÝÞ ãÔÐÛØâì?", "Jo¹ snimam - zaista obrisati?", "Salvestus aktiivne - kustutan?", + "Timerstyret optagelse i gang - slet alligevel?", }, { "Stop recording?", "Aufzeichnung beenden?", @@ -1023,6 +1071,7 @@ const tI18nPhrase Phrases[] = { "¿àÕÚàÐâØâì ×ÐßØáì?", "Zaustaviti snimanje?", "Lõpetan salvestamise?", + "Stop optagelse?", }, { "on primary interface", "auf dem primären Interface", @@ -1043,6 +1092,7 @@ const tI18nPhrase Phrases[] = { "ÝÐ ÞáÝÞÒÝÞÜ ãáâàÞÙáâÒÕ", "na primarnom ureðaju", "peavastuvõtjal", + "på primær enhed", }, { "Cancel editing?", "Schneiden abbrechen?", @@ -1063,6 +1113,7 @@ const tI18nPhrase Phrases[] = { "¿àÕàÒÐâì àÕÔÐÚâØàÞÒÐÝØÕ?", "Otkazati ureðivanje?", "Tühistan muudatuse?", + "Afbryd redigering?", }, { "Really restart?", "Wirklich neu starten?", @@ -1083,6 +1134,7 @@ const tI18nPhrase Phrases[] = { "´ÕÙáâÒØâÕÛìÝÞ ßÕàÕ×ÐßãáâØâì?", "Zaista ponovo pokrenuti?", "Restart?", + "Vil du virkelig genstarte?", }, { "Recording - restart anyway?", "Aufnahme läuft - trotzdem neu starten?", @@ -1103,6 +1155,7 @@ const tI18nPhrase Phrases[] = { "¸Ôñâ ×ÐßØáì - ÔÕÙáâÒØâÕÛìÝÞ ßÕàÕ×ÐßãáâØâì?", "Snimanje traje - svejedno restart sistema?", "Salvestamine aktiivne - restart?", + "Optagelse igang - genstart alligevel?", }, { "Recording - shut down anyway?", "Aufnahme läuft - trotzdem ausschalten?", @@ -1123,6 +1176,7 @@ const tI18nPhrase Phrases[] = { "¸Ôñâ ×ÐßØáì - ÔÕÙáâÒØâÕÛìÝÞ ÒëÚÛîçØâì?", "Snimanje traje - svejedno iskljuèiti?", "Salvestamine aktiivne - lülitan välja?", + "Optagelse igang - sluk alligevel?", }, { "Recording in %d minutes, shut down anyway?", "Aufnahme in %d Minuten - trotzdem ausschalten?", @@ -1143,6 +1197,7 @@ const tI18nPhrase Phrases[] = { "ÇÕàÕ× %d ÜØÝãâ ÝÐçÝñâáï ×ÐßØáì - ÔÕÙáâÒØâÕÛìÝÞ ÒëÚÛîçØâì?", "Snimanje za %d minuta - svejedno iskljuèiti?", "Salvestamine algab %d minuti pärast - lülitan välja?", + "Optagelse om %d minutter - sluk alligevel?", }, { "Press any key to cancel shutdown", "Taste drücken um Shutdown abzubrechen", @@ -1163,6 +1218,7 @@ const tI18nPhrase Phrases[] = { "½ÐÖÜØâÕ ÛîÑãî ÚÝÞßÚã çâÞÑë ÞâÜÕÝØâì ÒëÚÛîçÕÝØÕ.", "Pritisnite tipku ako ne ¾elite ugasiti sistem", "Vajuta suvalist klahvi väljalülitamise tühistamiseks", + "Tryk vilkårlig tast for at annullere sluk", }, // Channel parameters: { "Name", @@ -1184,6 +1240,7 @@ const tI18nPhrase Phrases[] = { "½Ð×ÒÐÝØÕ", "Naziv", "Nimi", + "Navn", }, { "Frequency", "Frequenz", @@ -1204,6 +1261,7 @@ const tI18nPhrase Phrases[] = { "ÇÐáâÞâÐ", "Frekvencija", "Sagedus", + "Frekvens", }, { "Polarization", "Polarisation", @@ -1224,6 +1282,7 @@ const tI18nPhrase Phrases[] = { "¿ÞÛïàØ×ÐæØï", "Polarizacija", "Polarisatsioon", + "Polarisation", }, { "Source", "Quelle", @@ -1244,6 +1303,7 @@ const tI18nPhrase Phrases[] = { "¸áâÞçÝØÚ", "Izvor", "Allikas", + "Kilde", }, { "Srate", "Srate", @@ -1264,6 +1324,7 @@ const tI18nPhrase Phrases[] = { "ÁØÜÒ. áÚÞàÞáâì", "Srate", // hrv "Srate", + "Srate", }, { "Vpid", "Vpid", @@ -1284,6 +1345,7 @@ const tI18nPhrase Phrases[] = { "Vpid (ÒØÔÕÞ)", "Vpid", "Vpid", + "Vpid", }, { "Ppid", "Ppid", @@ -1304,6 +1366,7 @@ const tI18nPhrase Phrases[] = { "Ppid", "Ppid", "Ppid", + "Ppid", }, { "Apid1", "Apid1", @@ -1324,6 +1387,7 @@ const tI18nPhrase Phrases[] = { "Apid1 (ÐãÔØÞ 1)", "Apid1", // hrv "Apid1", + "Apid1", }, { "Apid2", "Apid2", @@ -1344,6 +1408,7 @@ const tI18nPhrase Phrases[] = { "Apid2 (ÐãÔØÞ 2)", "Apid2", // hrv "Apid2", + "Apid2", }, { "Dpid1", "Dpid1", @@ -1364,6 +1429,7 @@ const tI18nPhrase Phrases[] = { "Dpid1 (AC3 1)", "Dpid1", // hrv "Dpid1", + "Dpid1", }, { "Dpid2", "Dpid2", @@ -1384,6 +1450,7 @@ const tI18nPhrase Phrases[] = { "Dpid2 (AC3 2)", "Dpid2", // hrv "Dpid2", + "Dpid2", }, { "Tpid", "Tpid", @@ -1404,6 +1471,7 @@ const tI18nPhrase Phrases[] = { "Tpid (âÕÛÕâÕÚáâ)", "Tpid", // hrv "Tpid", + "Tpid", }, { "CA", "CA", @@ -1424,6 +1492,7 @@ const tI18nPhrase Phrases[] = { "CA (ÔÕÚÞÔÕà)", "Kodiranje (CA)", "CA", + "CA", }, { "Sid", "Sid", @@ -1444,6 +1513,7 @@ const tI18nPhrase Phrases[] = { "Sid", "Sid", // hrv "Sid", + "Sid", }, { "Inversion", "Inversion", @@ -1464,6 +1534,7 @@ const tI18nPhrase Phrases[] = { "¸ÝÒÕàáØï", "Inverzija", "Inversioon", + "Inversion", }, { "Bandwidth", "Bandwidth", @@ -1484,6 +1555,7 @@ const tI18nPhrase Phrases[] = { "´ØÐßÐ×ÞÝ", "Bandwidth", // hrv "Pojasna ¹irina", "Ribalaius", + "Båndbredde", }, { "CoderateH", "CoderateH", @@ -1504,6 +1576,7 @@ const tI18nPhrase Phrases[] = { "CoderateH", "CoderateH", // hrv "CoderateH", + "CoderateH", }, { "CoderateL", "CoderateL", @@ -1524,6 +1597,7 @@ const tI18nPhrase Phrases[] = { "CoderateL", "CoderateL", // hrv "CoderateL", + "CoderateL", }, { "Modulation", "Modulation", @@ -1544,6 +1618,7 @@ const tI18nPhrase Phrases[] = { "¼ÞÔãÛïæØï", "Modulacija", "Modulatsioon", + "Modulation", }, { "Transmission", "Transmission", @@ -1564,6 +1639,7 @@ const tI18nPhrase Phrases[] = { "¿ÕàÕÔÐçÐ", "Prijenos", "Transmissioon", + "Transmission", }, { "Guard", "Guard", @@ -1584,6 +1660,7 @@ const tI18nPhrase Phrases[] = { "·ÐéØâÐ", "Za¹tita", "Guard", + "Guard", }, { "Hierarchy", "Hierarchy", @@ -1604,6 +1681,7 @@ const tI18nPhrase Phrases[] = { "¸ÕàÐàåØï", "Hijerarhija", "Hierarhia", + "Hierarki", }, // Timer parameters: { "Active", @@ -1625,6 +1703,7 @@ const tI18nPhrase Phrases[] = { "°ÚâØÒØàÞÒÐÝ", "Aktivan", "Aktiivne", + "Aktiv", }, { "Channel", "Kanal", @@ -1645,6 +1724,7 @@ const tI18nPhrase Phrases[] = { "ºÐÝÐÛ", "Program", "Kanal", + "Kanal", }, { "Day", "Tag", @@ -1665,6 +1745,7 @@ const tI18nPhrase Phrases[] = { "´ÕÝì", "Dan", "Päev", + "Dag", }, { "Start", "Anfang", @@ -1685,6 +1766,7 @@ const tI18nPhrase Phrases[] = { "½ÐçÐÛÞ", "Poèetak", "Start", + "Start", }, { "Stop", "Ende", @@ -1705,6 +1787,7 @@ const tI18nPhrase Phrases[] = { "ºÞÝÕæ", "Kraj", "Stopp", + "Stop", }, { "VPS", "VPS", @@ -1725,6 +1808,7 @@ const tI18nPhrase Phrases[] = { "VPS ßÞßàÐÒÚÐ", "VPS", // hrv "VPS", + "VPS", }, { "Priority", "Priorität", @@ -1745,6 +1829,7 @@ const tI18nPhrase Phrases[] = { "¿àØÞàØâÕâ", "Prioritet", "Prioriteet", + "Prioritet", }, { "Lifetime", "Lebensdauer", @@ -1765,6 +1850,7 @@ const tI18nPhrase Phrases[] = { "ÁàÞÚ åàÐÝÕÝØï", "Trajanje", "Eluiga", + "Levetid", }, { "File", "Datei", @@ -1785,6 +1871,7 @@ const tI18nPhrase Phrases[] = { "ÄÐÙÛ", "Datoteka", "Fail", + "Fil", }, { "First day", "Erster Tag", @@ -1805,6 +1892,7 @@ const tI18nPhrase Phrases[] = { "¿ÕàÒëÙ ÔÕÝì", "Prvi dan", "Esimene päev", + "Første dag", }, // Error messages: { "Channel is being used by a timer!", @@ -1826,6 +1914,7 @@ const tI18nPhrase Phrases[] = { "ºÐÝÐÛ ×ÐÝïâ âÐÙÜÕàÞÜ!", "Program je trenutno zauzet terminom za snimanje", "Kanal on taimeri kasutuses!", + "Kanal anvendes af en timer!", }, { "Can't switch channel!", "Kanal kann nicht umgeschaltet werden!", @@ -1846,6 +1935,7 @@ const tI18nPhrase Phrases[] = { "½ÕÒÞ×ÜÞÖÝÞ ßÕàÕÚÛîçØâì ÚÐÝÐÛ!", "Ne mogu prebaciti program!", "Kanali vahetus ei ole võimalik!", + "Kan ikke skifte kanal!", }, { "Timer is recording!", "Timer zeichnet gerade auf!", @@ -1866,6 +1956,7 @@ const tI18nPhrase Phrases[] = { "¸Ôñâ ×ÐßØáì ßÞ âÐÙÜÕàã!", "Snimanje po definiranom terminu!", "Taimeri salvestamine!", + "Timer optager nu!", }, { "Error while accessing recording!", "Fehler beim Ansprechen der Aufzeichnung!", @@ -1886,6 +1977,7 @@ const tI18nPhrase Phrases[] = { "¾èØÑÚÐ ÔÞáâãßÐ Ú ×ÐßØáØ!", "Gre¹ka pri pristupanju snimke!", "Salvestuse taasesitus ebaõnnestus!", + "Fejl ved læsning af optagelse!", }, { "Error while deleting recording!", "Fehler beim Löschen der Aufzeichnung!", @@ -1906,6 +1998,7 @@ const tI18nPhrase Phrases[] = { "¾èØÑÚÐ ãÔÐÛÕÝØï ×ÐßØáØ!", "Gre¹ka pri brisanju snimke!", "Salvestuse kustutamine ebaõnnestus!", + "Fejl ved sletning af optagelse!", }, { "*** Invalid Channel ***", "*** Ungültiger Kanal ***", @@ -1926,6 +2019,7 @@ const tI18nPhrase Phrases[] = { "*** ½ÕßàÐÒØÛìÝëÙ ÚÐÝÐÛ ***", "*** Neispravan program ***", "*** Vigane kanal ***", + "*** Ugyldig kanal! ***", }, { "No free DVB device to record!", "Keine freie DVB-Karte zum Aufnehmen!", @@ -1946,6 +2040,7 @@ const tI18nPhrase Phrases[] = { "½Õâ áÒÞÑÞÔÝÞÓÞ DVB-ãáâàÞÙáâÒÐ ÔÛï ×ÐßØáØ!", "Nema slobodnog DVB ureðaja za snimanje!", "Puudub vaba DVB seade salvestamiseks!", + "Ingen fri DVB enhed til optagelse!", }, { "Channel not available!", "Kanal nicht verfügbar!", @@ -1966,6 +2061,7 @@ const tI18nPhrase Phrases[] = { "ºÐÝÐÛ ÝÕÔÞáâãßÕÝ!", "Program nije dostupan!", "Kanal ei ole kättesaadav!", + "Kanal er ikke tilgængelig!", }, { "Channel settings are not unique!", "Kanaleinstellungen sind nicht eindeutig!", @@ -1986,6 +2082,7 @@ const tI18nPhrase Phrases[] = { "½ÐáâàÞÙÚØ ÚÐÝÐÛÐ ÝÕ ãÝØÚÐÛìÝë!", "Parametri programa nisu jednoznaèni!", "Kanaliseaded ei ole unikaalsed!", + "Kanalindstillinger er ikke entydige!", }, { "Channel locked (recording)!", "Kanal blockiert (zeichnet auf)!", @@ -2006,6 +2103,7 @@ const tI18nPhrase Phrases[] = { "ºÐÝÐÛ ×ÐÑÛÞÚØàÞÒÐÝ (ØÔñâ ×ÐßØáì)!", "Program blokiran (snimanje)!", "Kanal lukus (salvestamine aktiivne)!", + "Kanal blokeret (optagelse i gang)", }, { "Can't start Transfer Mode!", "Transfer-Mode kann nicht gestartet werden!", @@ -2026,6 +2124,7 @@ const tI18nPhrase Phrases[] = { "½ÕÒÞ×ÜÞÖÝÞ ÒÚÛîçØâì àÕÖØÜ ßàÞßãáÚÐ!", // ??? "Ne mogu zapoèeti 'prijenosni' naèin!", "Siirdemooduse start ebaõnnestus!", + "Kan ikke starte Transfer Mode!", }, { "No editing marks defined!", "Keine Schnittmarken gesetzt!", @@ -2046,6 +2145,7 @@ const tI18nPhrase Phrases[] = { "½Õ ×ÐÔÐÝë ÜÕâÚØ ÔÛï ÜÞÝâÐÖÐ!", "Nijedna prekidna toèka nije postavljena!", "Redigeerimise markerid puuduvad!", + "Der er ikke sat nogen redigeringsmærker!", }, { "Can't start editing process!", "Schnitt kann nicht gestartet werden!", @@ -2066,6 +2166,7 @@ const tI18nPhrase Phrases[] = { "½ÕÒÞ×ÜÞÖÝÞ ÝÐçÐâì ÜÞÝâÐÖ ×ÐßØáØ!", "Ne mogu zapoèeti ureðivanje!", "Redigeerimise start ebaõnnestus!", + "Kan ikke starte redigeringsprocessen!", }, { "Editing process already active!", "Schnitt bereits aktiv!", @@ -2086,6 +2187,7 @@ const tI18nPhrase Phrases[] = { "¿àÞæÕáá ÒØÔÕÞÜÞÝâÐÖÐ ãÖÕ ×ÐßãéÕÝ!", "Ureðivanje je veæ aktivirano!", "Redigeerimine on juba aktiivne!", + "Redigeringsproces er allerede aktiv!", }, { "Can't shutdown - option '-s' not given!", "Shutdown unmöglich - Option '-s' fehlt!", @@ -2106,6 +2208,7 @@ const tI18nPhrase Phrases[] = { "²ëÚÛîçÕÝØÕ ÝÕÒÞ×ÜÞÖÝÞ - ÝÕ ×ÐÔÐÝ ßÐàÐÜÕâà '-s'!", "Ga¹enje nemoguæe - nedostaje opcija '-s'!", "Väljalülitamine ebaõnnestus - '-s' parameeter puudub!", + "Kan ikke slukke - parameter '-s' ikke angivet!", }, { "Low disk space!", "Platte beinahe voll!", @@ -2126,6 +2229,7 @@ const tI18nPhrase Phrases[] = { "½ÕÔÞáâÐâÞçÝÞ ÜÕáâÐ ÝÐ ÔØáÚÕ!", "Nedovoljno prostora na disku", "Kõvaketas peaaegu täis!", + "Kun lidt diskplads tilbage!", }, { "Can't open CAM menu!", "CAM-Menü kann nicht geöffnet werden!", @@ -2146,6 +2250,7 @@ const tI18nPhrase Phrases[] = { "¼ÕÝî CAM-ÜÞÔãÛï ÝÕÔÞáâãßÝÞ!", "Ne mogu otvoriti CAM izbor!", "Ei saa avada CAM menüüd!", + "Kan ikke åbne CAM menuen!", }, { "Can't reset CAM!", "CAM-Reset fehlgeschlagen!", @@ -2166,6 +2271,7 @@ const tI18nPhrase Phrases[] = { "¾èØÑÚÐ ßÕàÕ×ÐßãáÚÐ CAM-ÜÞÔãÛï!", "Ne mogu resetirati CAM", "CAM mooduli taaskäivitus ebaõnnestus!", + "Kan ikke nulstille CAM!", }, { "CAM has been reset", "CAM wurde zurückgesetzt!", @@ -2186,6 +2292,7 @@ const tI18nPhrase Phrases[] = { "CAM-ÜÞÔãÛì ßÕàÕ×ÐßãéÕÝ!", "CAM je resetiran!", "CAM mooduli taaskäivitus tehtud", + "CAM er blevet nulstillet", }, // Setup pages: { "OSD", @@ -2207,6 +2314,7 @@ const tI18nPhrase Phrases[] = { "¼ÕÝî", "OSD", "Ekraanimenüü", + "OSD", }, { "EPG", "EPG", @@ -2227,6 +2335,7 @@ const tI18nPhrase Phrases[] = { "ÂÕÛÕÓØÔ", "Pregled emisija (EPG)", "EPG", + "EPG", }, { "DVB", "DVB", @@ -2247,6 +2356,7 @@ const tI18nPhrase Phrases[] = { "DVB", "DVB", "DVB", + "DVB", }, { "LNB", "LNB", @@ -2267,6 +2377,7 @@ const tI18nPhrase Phrases[] = { "ºÞÝÒÕàâÕà", "LNB", "LNB", + "LNB", }, { "CICAM", "CICAM", @@ -2287,6 +2398,7 @@ const tI18nPhrase Phrases[] = { "ÃáÛÞÒÝëÙ ÔÞáâãß", "CICAM", "CICAM", + "CICAM", }, { "Recording", "Aufnahme", @@ -2307,6 +2419,7 @@ const tI18nPhrase Phrases[] = { "·ÐßØáì", "Snimanje", "Salvestamine", + "Optagelse", }, { "Replay", "Wiedergabe", @@ -2327,6 +2440,7 @@ const tI18nPhrase Phrases[] = { "²ÞáßàÞØ×ÒÕÔÕÝØÕ", "Reprodukcija", "Taasesitus", + "Afspilning", }, { "Miscellaneous", "Sonstiges", @@ -2347,6 +2461,7 @@ const tI18nPhrase Phrases[] = { "¿àÞçÕÕ", "Ostalo", "Muud sätted", + "Diverse", }, { "Plugins", "Plugins", @@ -2367,6 +2482,7 @@ const tI18nPhrase Phrases[] = { "¼ÞÔãÛØ àÐáèØàÕÝØï", "Dodaci (Plugins)", "Laiendusmoodulid", + "Plugins", }, { "Plugin", "Plugin", @@ -2387,6 +2503,7 @@ const tI18nPhrase Phrases[] = { "¼ÞÔãÛì", "Plugin", "Laiendusmoodul", + "Plugin", }, { "Restart", "Neustart", @@ -2407,6 +2524,7 @@ const tI18nPhrase Phrases[] = { "¿ÕàÕ×ÐßãáâØâì", "Restart sistema", "Restart", + "Genstart", }, // Setup parameters: { "Setup.OSD$Language", @@ -2428,6 +2546,7 @@ const tI18nPhrase Phrases[] = { "Ï×ëÚ", "Jezik", "Keel", + "Sprog", }, { "Setup.OSD$Skin", "Oberfläche", @@ -2448,6 +2567,7 @@ const tI18nPhrase Phrases[] = { "ÁâØÛì", "Povr¹ina", "Kest", + "Skin", }, { "Setup.OSD$Theme", "Thema", @@ -2468,6 +2588,7 @@ const tI18nPhrase Phrases[] = { "¿ÐÛØâàÐ", "Tema", "Teema", + "Tema", }, { "Setup.OSD$Left", "Links", @@ -2488,6 +2609,7 @@ const tI18nPhrase Phrases[] = { "¾âáâãß áÛÕÒÐ", "Lijevo", "Vasakule", + "Venstre", }, { "Setup.OSD$Top", "Oben", @@ -2508,6 +2630,7 @@ const tI18nPhrase Phrases[] = { "¾âáâãß áÒÕàåã", "Gore", "Ülesse", + "Top", }, { "Setup.OSD$Width", "Breite", @@ -2528,6 +2651,7 @@ const tI18nPhrase Phrases[] = { "ÈØàØÝÐ", "©irina", "Laius", + "Bredde", }, { "Setup.OSD$Height", "Höhe", @@ -2548,6 +2672,7 @@ const tI18nPhrase Phrases[] = { "²ëáÞâÐ", "Visina", "Kõrgus", + "Højde", }, { "Setup.OSD$Message time (s)", "Anzeigedauer für Nachrichten (s)", @@ -2568,6 +2693,7 @@ const tI18nPhrase Phrases[] = { "´ÛØâÕÛìÝÞáâì ßÞÚÐ×Ð áÞÞÑéÕÝØÙ (áÕÚ)", "Vrijeme prikaza poruka (s)", "Kanaliteate esitusaeg (s)", + "Tid beskeder skal vises (s)", }, { "Setup.OSD$Use small font", "Kleine Schrift benutzen", @@ -2588,6 +2714,7 @@ const tI18nPhrase Phrases[] = { "¸áßÞÛì×ÞÒÐâì ÜÕÛÚØÙ èàØäâ", "Koristi mala slova", "Väikese fondi kasutamine", + "Anvend lille skrift", }, { "never", "nie", @@ -2608,6 +2735,7 @@ const tI18nPhrase Phrases[] = { "ÝØÚÞÓÔÐ", "nikada", "mitte kunagi", + "aldrig", }, { "skin dependent", "je nach Oberfläche", @@ -2628,6 +2756,7 @@ const tI18nPhrase Phrases[] = { "áÞÓÛÐáÝÞ âÕÜÕ", "ovisno o povr¹ini", "kestast sõltuv", + "skin afhængig", }, { "always", "immer", @@ -2648,6 +2777,7 @@ const tI18nPhrase Phrases[] = { "ÒáÕÓÔÐ", "uvijek", "alati", + "altid", }, { "Setup.OSD$Channel info position", "Kanal-Info Position", @@ -2668,6 +2798,7 @@ const tI18nPhrase Phrases[] = { "¿ÞÛÞÖÕÝØÕ ÞÚÝÐ ØÝäÞàÜÐæØØ Þ ÚÐÝÐÛÕ", "Pozicija informacije o programu", "Kanaliinfo asukoht", + "Placering af kanalinfo", }, { "Setup.OSD$Info on channel switch", "Info beim Kanalwechsel", @@ -2688,6 +2819,7 @@ const tI18nPhrase Phrases[] = { "¿ÞÚÐ×ëÒÐâì ØÝäÞàÜÐæØî Þ ÚÐÝÐÛÕ", "Informacije kod promjene kanala", "Näita kanaliteadet", + "Info ved kanalskift", }, { "Setup.OSD$Scroll pages", "Seitenweise scrollen", @@ -2708,6 +2840,7 @@ const tI18nPhrase Phrases[] = { "¿àÞÚàãâÚÐ áâàÐÝØæ ÜÕÝî", "Listaj po stranicama", "Lehekülje kerimine", + "Rul sider", }, { "Setup.OSD$Sort timers", "Timer sortieren", @@ -2728,6 +2861,7 @@ const tI18nPhrase Phrases[] = { "ÁÞàâØàÞÒÚÐ âÐÙÜÕàÞÒ", "Sortiraj termine", "Taimeri sorteerimine", + "Sorter timere", }, { "Setup.OSD$Recording directories", "Aufnahmeverzeichnisse", @@ -2748,6 +2882,7 @@ const tI18nPhrase Phrases[] = { "ºÐâÐÛÞÓØ åàÐÝÕÝØï ×ÐßØáÕÙ", "Imenik za snimke", "Salvesta kausta nime", + "Optagelser i foldere", }, { "Setup.EPG$EPG scan timeout (h)", "Zeit bis EPG Scan (h)", @@ -2768,6 +2903,7 @@ const tI18nPhrase Phrases[] = { "·ÐÔÕàÖÚÐ áÚÐÝØàÞÒÐÝØï âÕÛÕÓØÔÐ (ç)", "Vrijeme do EPG pregleda (h)", "EPG skaneerimise viide (h)", + "Tid før EPG skanning (t)", }, { "Setup.EPG$EPG bugfix level", "EPG Fehlerbereinigung", @@ -2788,6 +2924,7 @@ const tI18nPhrase Phrases[] = { "ÃàÞÒÕÝì ÚÞààÕÚæØØ ÞèØÑÞÚ", "Nivo popravka EPG gre¹aka", "EPG veaparanduse tase", + "Niveau for EPG fejlrettelse", }, { "Setup.EPG$EPG linger time (min)", "Alte EPG-Daten anzeigen (min)",// TODO @@ -2808,6 +2945,7 @@ const tI18nPhrase Phrases[] = { "ÅàÐÝÕÝØÕ ãáâÐàÕÒèØå ÔÐÝÝëå (ÜØÝ)", "Prika¾i stare EPG podatke (min)", "Vana EPG viide (min)", + "Vise gammel EPG info (min)", }, { "Setup.EPG$Set system time", "Systemzeit stellen", @@ -2828,6 +2966,7 @@ const tI18nPhrase Phrases[] = { "ÃáâÐÝÞÒØâì áØáâÕÜÝÞÕ ÒàÕÜï", "Podesi vrijeme sistema", "Kella sünkroniseerimine", + "Indstil system tid", }, { "Setup.EPG$Use time from transponder", "Transponder für Systemzeit", @@ -2848,6 +2987,7 @@ const tI18nPhrase Phrases[] = { "¸áßÞÛì×ÞÒÐâì ÒàÕÜï âàÐÝáßÞÝÔÕàÐ", "Transponder za pode¹avanje sata", "Kella sünkroniseerimise transponder", + "Anvend tid fra transponder", }, { "Setup.EPG$Preferred languages", // note the plural "Bevorzugte Sprachen", @@ -2868,6 +3008,7 @@ const tI18nPhrase Phrases[] = { "¿àÕÔßÞçØâÐÕÜëÕ ï×ëÚØ", "Preferirani jezici", "Eelistatuid keeli", + "Foretrukne sprog", }, { "Setup.EPG$Preferred language", // note the singular "Bevorzugte Sprache", @@ -2888,6 +3029,7 @@ const tI18nPhrase Phrases[] = { "²ëÑàÐÝ", "Preferirani jezik", "Eelistatud keel", + "Foretrukket sprog", }, { "Setup.DVB$Primary DVB interface", "Primäres DVB Interface", @@ -2908,6 +3050,7 @@ const tI18nPhrase Phrases[] = { "¾áÝÞÒÝÞÕ DVB-ãáâàÞÙáâÒÞ", "Primarni DVB ureðaj", "Esmane DVB seade", + "Primær DVB enhed", }, { "Setup.DVB$Video format", "Video Format", @@ -2928,6 +3071,7 @@ const tI18nPhrase Phrases[] = { "ÄÞàÜÐâ ÒØÔÕÞ", "Video format", "TV külgsuhe", + "Video format", }, { "Setup.DVB$Update channels", "Kanäle aktualisieren", @@ -2948,6 +3092,7 @@ const tI18nPhrase Phrases[] = { "¾ÑÝÞÒÛïâì ÝÐáâàÞÙÚØ ÚÐÝÐÛÞÒ", "Aktualiziraj programe", "Kanalite uuendamine", + "Opdatér kanaler", }, { "names only", "nur Namen", @@ -2968,6 +3113,7 @@ const tI18nPhrase Phrases[] = { "âÞÛìÚÞ ÝÐ×ÒÐÝØï", "samo imena", "ainult nimed", + "kun navne", }, { "names and PIDs", "Namen und PIDs", @@ -2988,6 +3134,7 @@ const tI18nPhrase Phrases[] = { "ÝÐ×ÒÐÝØï Ø PIDë", "imena i identifikatore (PIDs)", "nimed ja PID-id", + "navne og PIDs", }, { "add new channels", "neue Kanäle hinzufügen", @@ -3008,6 +3155,7 @@ const tI18nPhrase Phrases[] = { "ÝÞÒëÕ ÚÐÝÐÛë", "dodaj nove programe", "lisa uued kanalid", + "tilf. ny kanaler", }, { "add new transponders", "neue Transponder hinzufügen", @@ -3028,6 +3176,7 @@ const tI18nPhrase Phrases[] = { "ÝÞÒ. âàÐÝáßÞÝÔÕàë", "dodaj nove transpondere", // hrv TODO transponderi == odasiljaèi? "lisa uued transponderid", + "tilf. ny transp.", }, { "Setup.LNB$SLOF (MHz)", "SLOF (MHz)", @@ -3048,6 +3197,7 @@ const tI18nPhrase Phrases[] = { "ÇÐáâÞâÐ ßÕàÕÚÛîçÕÝØï (SLOF) (¼³æ)", "Frekv. preklopa SLOF (MHz)", "SLOF (MHz)", + "SLOF (MHz)", }, { "Setup.LNB$Low LNB frequency (MHz)", "Untere LNB-Frequenz (MHz)", @@ -3068,6 +3218,7 @@ const tI18nPhrase Phrases[] = { "½ØÖÝïï çÐáâÞâÐ ÚÞÝÒÕàâÕàÐ (¼³æ)", "Donja LNB frekv. (MHz)", "Alumine (LO) LNB sagedus (MHz)", + "Nedre LNB frekvens (MHz)", }, { "Setup.LNB$High LNB frequency (MHz)", "Obere LNB-Frequenz (MHz)", @@ -3088,6 +3239,7 @@ const tI18nPhrase Phrases[] = { "²ÕàåÝïï çÐáâÞâÐ ÚÞÝÒÕàâÕàÐ (¼³æ)", "Gornja LNB frekv. (MHz)", "Ülemine (HI) LNB sagedus (MHz)", + "Øvre LNB frekvens (MHz)", }, { "Setup.LNB$Use DiSEqC", "DiSEqC benutzen", @@ -3108,6 +3260,7 @@ const tI18nPhrase Phrases[] = { "¸áßÞÛì×ÞÒÐâì DiSEqC", "Koristi DiSEqC", "DiSEqC kasutamine", + "Anvend DiSEqC", }, { "Setup.CICAM$CICAM DVB", "CICAM DVB", @@ -3128,6 +3281,7 @@ const tI18nPhrase Phrases[] = { "CAM-ÜÞÔãÛì DVB", "CICAM DVB", "CICAM DVB", + "CICAM DVB", }, { "Setup.Recording$Margin at start (min)", "Zeitpuffer bei Anfang (min)", @@ -3148,6 +3302,7 @@ const tI18nPhrase Phrases[] = { "¾ßÕàÕÖÕÝØÕ ÝÐçÐÛÐ ×ÐßØáØ (ÜØÝ)", "Rezerva na poèetku snimanja (min)", "Salvestamise algusvaru (min)", + "Margin ved start (min)", }, { "Setup.Recording$Margin at stop (min)", "Zeitpuffer bei Ende (min)", @@ -3168,6 +3323,7 @@ const tI18nPhrase Phrases[] = { "·ÐßÐ×ÔëÒÐÝØÕ ÞáâÐÝÞÒÚØ ×ÐßØáØ (ÜØÝ)", "Rezerva na kraju (min)", "Salvestamise lõpuvaru (min)", + "Margin ved stop (min)", }, { "Setup.Recording$Primary limit", "Primär-Limit", @@ -3188,6 +3344,7 @@ const tI18nPhrase Phrases[] = { "¼ØÝ. ßàØÞàØâÕâ ×ÐåÒÐâÐ ÞáÝ. ãáâàÞÙáâÒÐ", "Standardno ogranièenje", "Esmase seadme prioriteet", + "Primær grænse", }, { "Setup.Recording$Default priority", "Default Priorität", @@ -3208,6 +3365,7 @@ const tI18nPhrase Phrases[] = { "¿àØÞàØâÕâ âÐÙÜÕàÐ ßÞ ãÜÞÛçÐÝØî", "Standardni prioritet", "Vaikimisi prioriteet", + "Standard prioritet", }, { "Setup.Recording$Default lifetime (d)", "Default Lebensdauer (d)", @@ -3228,6 +3386,7 @@ const tI18nPhrase Phrases[] = { "ÁàÞÚ åàÐÝÕÝØï ×ÐßØáØ ßÞ ãÜÞÛçÐÝØî (Ô)", "Standardno trajanje (d)", "Salvestuse eluiga (päevi)", + "Standard levetid (d)", }, { "Setup.Recording$Pause priority", "Pause Priorität", @@ -3248,6 +3407,7 @@ const tI18nPhrase Phrases[] = { "¿àØÞàØâÕâ ÞâÛÞÖÕÝÝÞÓÞ ßàÞáÜÞâàÐ", "Prioritet pauze", "Pausi prioriteet", + "Pause prioritet", }, { "Setup.Recording$Pause lifetime (d)", "Pause Lebensdauer (d)", @@ -3268,6 +3428,7 @@ const tI18nPhrase Phrases[] = { "ÅàÐÝÕÝØÕ ÞâÛÞÖÕÝÝÞÓÞ ßàÞáÜÞâàÐ (Ô)", "Trajanje pauze (d)", "Pausi eluiga (päevi)", + "Pause levetid (d)", }, { "Setup.Recording$Use episode name", "Episodenname verwenden", @@ -3288,6 +3449,7 @@ const tI18nPhrase Phrases[] = { "³àãßßØàÞÒÐâì äÐÙÛë ßÞ íßØ×ÞÔÐÜ", "Koristi ime epizode", "Kasuta episoodi nime", + "Anvend udsendelsesnavn", }, { "Setup.Recording$Use VPS", "VPS benutzen", @@ -3308,6 +3470,7 @@ const tI18nPhrase Phrases[] = { "¸áßÞÛì×ÞÒÐâì áØÓÝÐÛë VPS", "Koristi VPS", "Kasuta VPS-i", + "Anvend VPS", }, { "Setup.Recording$VPS margin (s)", "Zeitpuffer bei VPS (s)", @@ -3328,6 +3491,7 @@ const tI18nPhrase Phrases[] = { "±ãäÕàÝÞÕ ÒàÕÜï VPS (áÕÚ)", "Vremenska rezerva kod VPS (s)", "VPS-i algusvaru (s)", + "VPS margin (s)", }, { "Setup.Recording$Mark instant recording", "Direktaufzeichnung markieren", @@ -3348,6 +3512,7 @@ const tI18nPhrase Phrases[] = { "¾âÜÕçÐâì áÔÕÛÐÝÝëÕ ÒàãçÝãî ×ÐßØáØ", "Oznaèi direktno snimanje", "Märgista otsesalvestusi", + "Markér direkte optagelse", }, { "Setup.Recording$Name instant recording", "Direktaufzeichnung benennen", @@ -3368,6 +3533,7 @@ const tI18nPhrase Phrases[] = { "ÁåÕÜÐ ØÜÕÝÞÒÐÝØï àãçÝëå ×ÐßØáÕÙ", "Imenuj direktno snimanje", "Otsesalvestuse nimi", + "Navngiv direkte optagelse", }, { "Setup.Recording$Instant rec. time (min)", "Dauer der Direktaufzeichnung (min)", @@ -3388,6 +3554,7 @@ const tI18nPhrase Phrases[] = { "´ÛØâÕÛìÝÞáâì àãçÝÞÙ ×ÐßØáØ (ÜØÝ)", "Trajanje direktnog snimanja (min)", "Otsesalvestuse kestus (min)", + "Længde af direkte optagelse (min)", }, { "Setup.Recording$Record Dolby Digital", "Dolby Digital Ton aufzeichnen", @@ -3408,6 +3575,7 @@ const tI18nPhrase Phrases[] = { "·ÐßØáëÒÐâì ×ÒãÚ Dolby Digital", "Snimi 'Dolby digital' ton", "Dolby Digital salvestamine", + "Optag Dolby Digital lyd", }, { "Setup.Recording$Max. video file size (MB)", "Max. Video Dateigröße (MB)", @@ -3428,6 +3596,7 @@ const tI18nPhrase Phrases[] = { "¼ÐÚá. àÐ×ÜÕà ÒØÔÕÞäÐÙÛÐ (¼Ñ)", "Maksimalna velièina datoteke (MB)", "Maksimaalne failisuurus (MB)", + "Max. video filstørrelse (MB)", }, { "Setup.Recording$Split edited files", "Editierte Dateien aufteilen", @@ -3448,6 +3617,7 @@ const tI18nPhrase Phrases[] = { "´ÕÛØâì ÞâàÕÔÐÚâØàÞÒÐÝÝëÕ äÐÙÛë", "Podijeli ureðene datoteke", "Tükelda redigeeritud faile", + "Opdel redigerede filer", }, { "Setup.Replay$Multi speed mode", "MultiSpeed Modus", @@ -3468,6 +3638,7 @@ const tI18nPhrase Phrases[] = { "¼ÝÞÓÞáÚÞàÞáâÝÞÙ àÕÖØÜ", "MultiSpeed naèin", "Multi-kiiruse moodus", + "Multi hastighedsmodus", }, { "Setup.Replay$Show replay mode", "Wiedergabestatus anzeigen", @@ -3488,6 +3659,7 @@ const tI18nPhrase Phrases[] = { "¾âÞÑàÐÖÐâì àÕÖØÜ ÒÞáßàÞØ×ÒÕÔÕÝØï", // ??? "Prika¾i naèin prikazivanja", "Korduse moodus", + "Vis afspilningsmodus", }, { "Setup.Replay$Resume ID", "Wiedergabe ID", @@ -3508,6 +3680,7 @@ const tI18nPhrase Phrases[] = { "ID ÒÞáßàÞØ×ÒÕÔÕÝØï", // ??? "ID nastavka", "Jätkamise ID", + "Genoptagelses ID", }, { "Setup.Miscellaneous$Min. event timeout (min)", "Mindest Event Pause (min)", @@ -3528,6 +3701,7 @@ const tI18nPhrase Phrases[] = { "¼ØÝ. ÒàÕÜï ÞÖØÔÐÝØï áÞÑëâØï (ÜØÝ)", "Najmanje vrijeme pauze", "Min. sündmuse kestus (min)", + "Mindste hændelsespause (min)", }, { "Setup.Miscellaneous$Min. user inactivity (min)", "Mindest Benutzer-Inaktivität (min)", @@ -3548,6 +3722,7 @@ const tI18nPhrase Phrases[] = { "¼ØÝ. ÒàÕÜï ÞÖØÔÐÝØï ÒÒÞÔÐ (ÜØÝ)", "Najmanje vrijeme neaktivnosti (min)", "Min. kasutaja tegevusetus (min)", + "Min. bruger inaktivitet (min)", }, { "Setup.Miscellaneous$SVDRP timeout (s)", "SVDRP Timeout (s)", @@ -3568,6 +3743,7 @@ const tI18nPhrase Phrases[] = { "·ÐÔÕàÖÚÐ ÞÑàëÒÐ áÞÕÔ. SVDRP (áÕÚ)", "SVDRP vrijeme neaktivnosti", "SVDRP ooteaeg (s)", + "SVDRP timeout (s)", }, { "Setup.Miscellaneous$Zap timeout (s)", "Zap Timeout (s)", @@ -3588,6 +3764,7 @@ const tI18nPhrase Phrases[] = { "·ÐÔÕàÖÚÐ ßÕàÕÚÛîçÕÝØï ÚÐÝÐÛÐ (áÕÚ)", "",// hrv TODO "Kanalivahetuse ooteaeg (s)", + "Zap timeout (s)", }, // The days of the week: { "MTWTFSS", @@ -3609,6 +3786,7 @@ const tI18nPhrase Phrases[] = { "¿²ÁÇ¿²Á", "PUSÈPSN", // hrv "ETKNRLP", + "MTOTFLS", }, { "MonTueWedThuFriSatSun", // must all be 3 letters! "MonDieMitDonFreSamSon", @@ -3629,6 +3807,7 @@ const tI18nPhrase Phrases[] = { "¿ÞݲâàÁàÔÇâÒ¿âÝÁãѲáÚ", "PonUtoSriÈetPetSubNed", // hrv " E T K N R L P ", + "ManTirOnsTorFreLørSøn", }, // The allowed characters in strings: { " abcdefghijklmnopqrstuvwxyz0123456789-.#~", @@ -3650,6 +3829,7 @@ const tI18nPhrase Phrases[] = { " abcdefghijklmnopqrstuvwxyzÐÑÒÓÔÕñÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìîï0123456789-.#~", " abcèædðefghijklmnopqrs¹tuvwxyz¾0123456789-.#~", // hrv " abcdefghijklmnopqrsðzþtuvwõäöüxyå0123456789-.#~", + " abcdefghijklmnopqrstuvwxyzæøå0123456789-.#~", }, // Learning keys: { "Learning Remote Control Keys", @@ -3671,6 +3851,7 @@ const tI18nPhrase Phrases[] = { "²ÒÞÔ ÚÞÔÞÒ ÚÝÞßÞÚ ßãÛìâÐ", "Uèenje kôda daljinskog upravljaèa", "Kaugjuhtimispuldi õpetamine", + "Lærer fjernbetjeningstaster", }, { "Phase 1: Detecting RC code type", "Phase 1: FB Code feststellen", @@ -3691,6 +3872,7 @@ const tI18nPhrase Phrases[] = { "ÈÐÓ 1: ¾ßàÕÔÕÛÕÝØÕ âØßÐ ÚÞÔÐ ßãÛìâÐ", "Faza 1: detektiranje kôda daljinskog upravljaèa.", "Aste 1: Koodeerimissüsteemi tuvastamine", + "Fase 1: Detekterer fjernbetjenings-kodetype", }, { "Press any key on the RC unit", "Eine Taste auf der FB drücken", @@ -3711,6 +3893,7 @@ const tI18nPhrase Phrases[] = { "½ÐÖÜØâÕ ÛîÑãî ÚÝÞßÚã ÝÐ ßãÛìâÕ", "Pritisnite tipku na daljinskom upravljaèu", "Vajuta puldil suvalist klahvi", + "Tryk vilkårlig tast på fjernbetjeningen", }, { "RC code detected!", "FB Code erkannt!", @@ -3731,6 +3914,7 @@ const tI18nPhrase Phrases[] = { "¾ÑÝÐàãÖÕÝ ÚÞÔ ßãÛìâÐ!", "Kôd daljinskog upravljaèa je prepoznat!", "Koodeerimissüsteem tuvastatud!", + "Fjernbetjenings-kodetype fundet!", }, { "Do not press any key...", "Keine Taste drücken...", @@ -3751,6 +3935,7 @@ const tI18nPhrase Phrases[] = { "½Õ ÝÐÖØÜÐÙâÕ ÚÝÞßÚØ...", "Ne pritiskajte tipku...", "Ära vajuta puldil ühtki klahvi...", + "Tryk ikke på nogen tast...", }, { "Phase 2: Learning specific key codes", "Phase 2: Einzelne Tastencodes lernen", @@ -3771,6 +3956,7 @@ const tI18nPhrase Phrases[] = { "ÈÐÓ 2: ·ÐÔÐÝØÕ ÚÞÔÞÒ ÞâÔÕÛìÝëå ÚÝÞßÞÚ", "Faza 2: Uèenje posebnih kôdova", "Aste 2: Klahvide õpetamine", + "Fase 2: Lær individuelle tast koder", }, { "Press key for '%s'", "Taste für '%s' drücken", @@ -3791,6 +3977,7 @@ const tI18nPhrase Phrases[] = { "½ÐÖÜØâÕ ÚÝÞßÚã '%s'", "Pritisnite tipku za '%s'", "Vajuta klahvile '%s'", + "Tryk tasten for '%s'", }, { "Press 'Up' to confirm", "'Auf' drücken zum Bestätigen", @@ -3811,6 +3998,7 @@ const tI18nPhrase Phrases[] = { "½ÐÖÜØâÕ '²ÒÕàå' çâÞÑë ßÞÔâÒÕàÔØâì", "Pritisnite 'Gore' za potvrdu", "Kinnitamiseks vajuta 'Üles'", + "Tryk 'Op' for at bekræfte", }, { "Press 'Down' to continue", "'Ab' drücken zum Weitermachen", @@ -3831,6 +4019,7 @@ const tI18nPhrase Phrases[] = { "½ÐÖÜØâÕ '²ÝØ×' çâÞÑë ßàÞÔÞÛÖØâì", "Pritisnite 'Dolje' za nastavak", "Jätkamiseks vajuta 'Alla'", + "Tryk 'Ned' for at fortsætte", }, { "(press 'Up' to go back)", "('Auf' drücken um zurückzugehen)", @@ -3851,6 +4040,7 @@ const tI18nPhrase Phrases[] = { "(½ÐÖÜØâÕ '²ÒÕàå' çâÞÑë ÒÕàÝãâìáï)", "(pritisnite 'Gore' za nazad)", "(tagasiminekuks vajuta 'Üles')", + "(tryk 'Op' for at gå tilbage)", }, { "(press 'Down' to end key definition)", "('Ab' drücken zum Beenden)", @@ -3871,6 +4061,7 @@ const tI18nPhrase Phrases[] = { "(½ÐÖÜØâÕ '²ÝØ×' çâÞÑë ×ÐÚÞÝçØâì ÝÐáâàÞÙÚã ßãÛìâÐ)", "(pritisnite 'Dolje' za kraj)", "(lõpetamiseks vajuta 'Alla')", + "(tryk 'Ned' for at afslutte indlæringen)", }, { "(press 'Menu' to skip this key)", "('Menü' drücken zum Überspringen)", @@ -3891,6 +4082,7 @@ const tI18nPhrase Phrases[] = { "(½ÐÖÜØâÕ '¼ÕÝî' çâÞÑë ßàÞßãáâØâì ÚÝÞßÚã)", "pritisnite 'Izbor' da preskoèite ovu tipku", "(selle klahvi vahelejätmiseks vajuta 'Menüü')", + "(tryk 'Menu' for at springe denne tast over)", }, { "Phase 3: Saving key codes", "Phase 3: Codes abspeichern", @@ -3911,6 +4103,7 @@ const tI18nPhrase Phrases[] = { "ÈÐÓ 3: ·ÐßÞÜØÝÐÝØÕ ÚÞÔÞÒ ÚÝÞßÞÚ", "Faza 3: Spremanje kôdova tipki", "Aste 3: Klavhikoodide salvestamine", + "Fase 3: Gemmer tast koder", }, { "Press 'Up' to save, 'Down' to cancel", "'Auf' speichert, 'Ab' bricht ab", @@ -3931,6 +4124,7 @@ const tI18nPhrase Phrases[] = { "½ÐÖÜØâÕ '²ÒÕàå' çâÞÑë ×ÐßÞÜÝØâì, '²ÝØ×' çâÞÑë ÞâÚÐ×Ðâìáï", "'Gore' za potvrdu, 'Dolje' za prekid", "Salvestamiseks vajuta 'Üles' ja katkestamiseks 'Alla'", + "Tryk 'Op' for at gemme, 'Ned' for at annullere", }, // Key names: { "Up", @@ -3952,6 +4146,7 @@ const tI18nPhrase Phrases[] = { "²ÒÕàå", "Gore", "Üles", + "Op", }, { "Down", "Ab", @@ -3972,6 +4167,7 @@ const tI18nPhrase Phrases[] = { "²ÝØ×", "Dolje", "Alla", + "Ned", }, { "Menu", "Menü", @@ -3992,6 +4188,7 @@ const tI18nPhrase Phrases[] = { "¼ÕÝî", "Izbor", "Menüü", + "Menu", }, { "Ok", "Ok", @@ -4012,6 +4209,7 @@ const tI18nPhrase Phrases[] = { "Ok", "Ok", "Ok", + "Ok", }, { "Back", "Zurück", @@ -4032,6 +4230,7 @@ const tI18nPhrase Phrases[] = { "½Ð×ÐÔ", "Nazad", "Tagasi", + "Tilbage", }, { "Left", "Links", @@ -4052,6 +4251,7 @@ const tI18nPhrase Phrases[] = { "½ÐÛÕÒÞ", "Lijevo", "Vasakule", + "Venstre", }, { "Right", "Rechts", @@ -4072,6 +4272,7 @@ const tI18nPhrase Phrases[] = { "½ÐßàÐÒÞ", "Desno", "Paremale", + "Højre", }, { "Red", "Rot", @@ -4092,6 +4293,7 @@ const tI18nPhrase Phrases[] = { "ºàÐáÝëÙ", "Crveno", "Punane", + "Rød", }, { "Green", "Grün", @@ -4112,6 +4314,7 @@ const tI18nPhrase Phrases[] = { "·ÕÛñÝëÙ", "Zeleno", "Roheline", + "Grøn", }, { "Yellow", "Gelb", @@ -4132,6 +4335,7 @@ const tI18nPhrase Phrases[] = { "¶ñÛâëÙ", "®uto", "Kollane", + "Gul", }, { "Blue", "Blau", @@ -4152,6 +4356,7 @@ const tI18nPhrase Phrases[] = { "ÁØÝØÙ", "Plavo", "Sinine", + "Blå", }, { "Play", "Wiedergabe", @@ -4172,6 +4377,7 @@ const tI18nPhrase Phrases[] = { "²ÞáßàÞØ×ÒÕÔÕÝØÕ", "Start", "Start", + "Afspil", }, { "Pause", "Pause", @@ -4192,6 +4398,7 @@ const tI18nPhrase Phrases[] = { "¿Ðã×Ð", "Pauza", "Paus", + "Pause", }, { "Stop", "Stop", @@ -4212,6 +4419,7 @@ const tI18nPhrase Phrases[] = { "ÁâÞß", "Stop", "Stopp", + "Stop", }, { "Record", "Aufnehmen", @@ -4232,6 +4440,7 @@ const tI18nPhrase Phrases[] = { "·ÐßØáì", "Snimaj", "Salvestamine", + "Optag", }, { "FastFwd", "Vorlauf", @@ -4252,6 +4461,7 @@ const tI18nPhrase Phrases[] = { "²ßÕàñÔ", "Naprijed", "Edasikerimine", + "Spol fremad", }, { "FastRew", "Rücklauf", @@ -4272,6 +4482,7 @@ const tI18nPhrase Phrases[] = { "½Ð×ÐÔ", "Nazad", "Tagasikerimine", + "Spol tilbage", }, { "Power", "Ausschalten", @@ -4292,6 +4503,7 @@ const tI18nPhrase Phrases[] = { "²ëÚÛîçØâì", "Iskljuèi", "Toide", + "Sluk", }, { "Channel+", "Kanal+", @@ -4312,6 +4524,7 @@ const tI18nPhrase Phrases[] = { "ºÐÝÐÛ +", "Program +", "Kanal+", + "Kanal+", }, { "Channel-", "Kanal-", @@ -4332,6 +4545,7 @@ const tI18nPhrase Phrases[] = { "ºÐÝÐÛ -", "Program -", "Kanal-", + "Kanal-", }, { "Volume+", "Lautstärke+", @@ -4352,6 +4566,7 @@ const tI18nPhrase Phrases[] = { "³àÞÜÚÞáâì +", "Glasnije", // hrv "Glasnocca +" "Helitugevus+", + "Lydstyrke+", }, { "Volume-", "Lautstärke-", @@ -4372,6 +4587,7 @@ const tI18nPhrase Phrases[] = { "³àÞÜÚÞáâì -", "Ti¹e", // hrv Glasnocca -" "Helitugevus-", + "Lydstyrke-", }, { "Mute", "Stumm", @@ -4392,6 +4608,7 @@ const tI18nPhrase Phrases[] = { "²ëÚÛîçØâì ×ÒãÚ", "Bez zvuka", "Hääletu", + "Sluk lyd", }, // Miscellaneous: { "yes", @@ -4413,6 +4630,7 @@ const tI18nPhrase Phrases[] = { "ÔÐ", "da", "jah", + "ja", }, { "no", "nein", @@ -4433,6 +4651,7 @@ const tI18nPhrase Phrases[] = { "ÝÕâ", "ne", "ei", + "nej", }, { "off", "aus", @@ -4453,6 +4672,7 @@ const tI18nPhrase Phrases[] = { "ÒëÚÛ", "ugasi", "välja", + "fra", }, { "none", "keine", @@ -4473,6 +4693,7 @@ const tI18nPhrase Phrases[] = { "ÝØçÕÓÞ", "nijedan", "tühi", + "ingen", }, { "auto", "auto", @@ -4493,6 +4714,7 @@ const tI18nPhrase Phrases[] = { "ÐÒâÞ", "automatski", "automaatne", + "automatisk", }, { "top", "oben", @@ -4513,6 +4735,7 @@ const tI18nPhrase Phrases[] = { "áÒÕàåã", "gore", "üleval", + "top", }, { "bottom", "unten", @@ -4533,6 +4756,7 @@ const tI18nPhrase Phrases[] = { "áÝØ×ã", "dolje", "all", + "bund", }, { "Disk", "Disk", @@ -4553,6 +4777,7 @@ const tI18nPhrase Phrases[] = { "´ØáÚ", "Disk", "Ketas", + "Disk", }, { "free", "frei", @@ -4573,6 +4798,7 @@ const tI18nPhrase Phrases[] = { "áÒÞÑÞÔÝÞ", "slobodno", "vaba", + "fri", }, { "Jump: ", // note the trailing blank "Springen: ", @@ -4593,6 +4819,7 @@ const tI18nPhrase Phrases[] = { "¿ÕàÕÙâØ: ", "Skoèi: ", "Hüpe: ", + "Hop: ", }, { "Volume ", // note the trailing blank "Lautstärke ", @@ -4613,6 +4840,7 @@ const tI18nPhrase Phrases[] = { "³àÞÜÚÞáâì ", "Glasnoæa ", "Helitugevus ", + "Lydstyrke ", }, { " Stop replaying", // note the leading blank! " Wiedergabe beenden", @@ -4633,6 +4861,7 @@ const tI18nPhrase Phrases[] = { " ¿àÕÚàÐâØâì ÒÞáßàÞØ×ÒÕÔÕÝØÕ", " Prekini reprodukciju", " Lõpeta kordus", + " Stop afspilning", }, { " Stop recording ", // note the leading and trailing blanks! " Aufzeichnung beenden ", @@ -4653,6 +4882,7 @@ const tI18nPhrase Phrases[] = { " ¿àÕÚàÐâØâì ×ÐßØáì ", " Prekini snimanje ", " Lõpeta salvestamine ", + " Stop optagelse ", }, { " Cancel editing", // note the leading blank! " Schneiden abbrechen", @@ -4673,6 +4903,7 @@ const tI18nPhrase Phrases[] = { " ¿àÕàÒÐâì ÜÞÝâÐÖ ×ÐßØáØ", " Prekini ureðivanje", " Katkesta monteerimine", + " Afbryd redigering", }, { "Switching primary DVB...", "Primäres Interface wird umgeschaltet...", @@ -4693,6 +4924,7 @@ const tI18nPhrase Phrases[] = { "ÁÜÕÝÐ ÞáÝÞÒÝÞÓÞ DVB-ãáâàÞÙáâÒÐ...", "Preklapanje primarnog DVB ureðaja...", "Esmase DVB seadme ümberlülitus...", + "Skifter primær DVB enhed...", }, { "Up/Dn for new location - OK to move", "Auf/Ab für neue Position - dann OK", @@ -4713,6 +4945,7 @@ const tI18nPhrase Phrases[] = { "½ÐÖØÜÐÙâÕ \"²ÒÕàå\"/\"²ÝØ×\" ÔÛï ÒëÑÞàÐ ßÞ×ØæØØ, Ð ×ÐâÕÜ \"OK\"", "Gore/Dolje na novu poziciju - zatim OK", "'Üles/Alla' uus asukoht - 'OK' kinnitus", + "Op/Ned for ny placering - OK for at flytte", }, { "Editing process started", "Schnitt gestartet", @@ -4733,6 +4966,7 @@ const tI18nPhrase Phrases[] = { "½ÐçÐâ ÜÞÝâÐÖ ×ÐßØáØ", "Rezanje je zapoèeto", "Redigeerimine algas", + "Redigeringsproces startet", }, { "Editing process finished", "Schnitt beendet", @@ -4753,6 +4987,7 @@ const tI18nPhrase Phrases[] = { "¼ÞÝâÐÖ ÞÚÞÝçÕÝ", "Rezanje zavr¹eno", "Redigeerimine on lõpetatud", + "Redigeringsproces afsluttet", }, { "Editing process failed!", "Schnitt gescheitert!", @@ -4773,6 +5008,7 @@ const tI18nPhrase Phrases[] = { "¾èØÑÚÐ ÒÞ ÒàÕÜï ÜÞÝâÐÖÐ ×ÐßØáØ!", "Rezanje neuspje¹no!", "Redigeerimine ebaõnnestus", + "Redigeringsproces fejlede!", }, { "scanning recordings...", "Aufzeichnungen werden durchsucht...", @@ -4793,6 +5029,7 @@ const tI18nPhrase Phrases[] = { "ÁÚÐÝØàÞÒÐÝØÕ ×ÐßØáÕÙ...", "pretra¾ivanje snimljenog...", "salvestuste skaneerimine...", + "skanner optagelser...", }, { "Pausing live video...", "Live-Signal wird angehalten...", @@ -4813,6 +5050,7 @@ const tI18nPhrase Phrases[] = { "ÀÕÖØÜ ÞâÛÞÖÕÝÝÞÓÞ ßàÞáÜÞâàÐ...", "Zaustavljanje ¾ivog signala...", "Saate edastamise peatamine...", + "Pausere live udsendelse...", }, { "This plugin has no setup parameters!", "Dieses Plugin hat keine Setup-Parameter!", @@ -4833,6 +5071,7 @@ const tI18nPhrase Phrases[] = { "¼ÞÔãÛì ÝÕ ØÜÕÕâ ßÐàÐÜÕâàÞÒ ÝÐáâàÞÙÚØ!", "Ovaj dodatak (Plugin) nema parametara!", "Sellel laienudusmoodulil ei ole seadeid!", + "Denne plugin har ingen parametre", }, { "Classic VDR", "Klassischer VDR", @@ -4853,6 +5092,7 @@ const tI18nPhrase Phrases[] = { "ºÛÐááØçÕáÚØÙ", "Klasiècni VDR", "Klassikaline VDR", + "Klassisk VDR", }, { "ST:TNG Panels", "ST:TNG Konsolen", @@ -4873,6 +5113,7 @@ const tI18nPhrase Phrases[] = { "ST:TNG ßÐÝÕÛØ", "ST:TNG Konzole", "ST:TNG konsool", + "ST:TNG konsol", }, { NULL } }; @@ -4982,6 +5223,12 @@ int I18nLanguageIndex(const char *Code) const char *I18nNormalizeLanguageCode(const char *Code) { + if (Code[0] && !isalnum(Code[0]) || Code[1] && !isalnum(Code[1]) || Code[2] && !isalnum(Code[2])) { + // ISO 639 language codes are defined as alphabetical characters, but digits are apparently + // also used, for instance for "2ch" + //dsyslog("invalid language code: '%s'", Code); + return "???"; + } int n = I18nLanguageIndex(Code); return n >= 0 ? I18nLanguageCode(n) : Code; } @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: i18n.h 1.13 2004/10/16 11:50:41 kls Exp $ + * $Id: i18n.h 1.14 2004/11/02 17:21:19 kls Exp $ */ #ifndef __I18N_H @@ -12,7 +12,7 @@ #include <stdio.h> -const int I18nNumLanguages = 19; +const int I18nNumLanguages = 20; typedef const char *tI18nPhrase[I18nNumLanguages]; diff --git a/menuitems.c b/menuitems.c index ee92dc9..dea2029 100644 --- a/menuitems.c +++ b/menuitems.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menuitems.c 1.19 2004/06/19 09:45:45 kls Exp $ + * $Id: menuitems.c 1.20 2004/11/14 16:16:21 kls Exp $ */ #include "menuitems.h" @@ -495,7 +495,7 @@ eOSState cMenuEditChanItem::ProcessKey(eKeys Key) } } break; - default : return cMenuEditIntItem::ProcessKey(Key); + default: return cMenuEditIntItem::ProcessKey(Key); } return osContinue; } @@ -606,7 +606,33 @@ eOSState cMenuEditDayItem::ProcessKey(eKeys Key) return cMenuEditIntItem::ProcessKey(Key); Set(); break; - default : return cMenuEditIntItem::ProcessKey(Key); + default: { + if (d >= 0) { + if (k1 <= Key && Key <= k7) { + int v = *value ^ (1 << (Key - k1)); + if ((v & 0xFF) != 0) { + *value = v; // can't let this become all 0 + Set(); + } + break; + } + } + int v = *value; + eOSState result = cMenuEditIntItem::ProcessKey(Key); + if (result == osContinue && Key == k0) { + if (d >= 0) { + *value = cTimer::GetMDay(time(NULL)); + d = -1; + Set(); + } + else if (*value == 0 || *value == v) { + d = cTimer::GetWDay(time(NULL)); + *value = days[d]; + Set(); + } + } + return result; + } } return osContinue; } @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: skins.c 1.1 2004/05/15 12:34:38 kls Exp $ + * $Id: skins.c 1.3 2004/11/07 09:46:46 kls Exp $ */ #include "skins.h" @@ -183,13 +183,17 @@ eKeys cSkins::Message(eMessageType Type, const char *s, int Seconds) if (displayMessage) { delete displayMessage; displayMessage = NULL; + cStatus::MsgOsdClear(); } - else + else { cSkinDisplay::Current()->SetMessage(Type, NULL); + cStatus::MsgOsdStatusMessage(NULL); + } } else if (!s && displayMessage) { delete displayMessage; displayMessage = NULL; + cStatus::MsgOsdClear(); } return k; } @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: timers.c 1.16 2004/10/31 16:41:30 kls Exp $ + * $Id: timers.c 1.17 2004/11/14 16:02:42 kls Exp $ */ #include "timers.h" @@ -256,13 +256,13 @@ bool cTimer::IsSingleEvent(void) const return (day & 0x80000000) == 0; } -int cTimer::GetMDay(time_t t) const +int cTimer::GetMDay(time_t t) { struct tm tm_r; return localtime_r(&t, &tm_r)->tm_mday; } -int cTimer::GetWDay(time_t t) const +int cTimer::GetWDay(time_t t) { struct tm tm_r; int weekday = localtime_r(&t, &tm_r)->tm_wday; @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: timers.h 1.10 2004/10/31 16:41:17 kls Exp $ + * $Id: timers.h 1.11 2004/11/14 16:02:28 kls Exp $ */ #ifndef __TIMERS_H @@ -64,8 +64,8 @@ public: bool Parse(const char *s); bool Save(FILE *f); bool IsSingleEvent(void) const; - int GetMDay(time_t t) const; - int GetWDay(time_t t) const; + static int GetMDay(time_t t); + static int GetWDay(time_t t); bool DayMatches(time_t t) const; static time_t IncDay(time_t t, int Days); static time_t SetTime(time_t t, int SecondsFromMidnight); @@ -22,7 +22,7 @@ * * The project's page is at http://www.cadsoft.de/vdr * - * $Id: vdr.c 1.192 2004/10/31 10:17:23 kls Exp $ + * $Id: vdr.c 1.193 2004/11/06 10:30:30 kls Exp $ */ #include <getopt.h> @@ -87,6 +87,17 @@ static void Watchdog(int signum) int main(int argc, char *argv[]) { +#ifdef _CS_GNU_LIBPTHREAD_VERSION + // Check for NPTL and exit if present - VDR apparently doesn't run well with NPTL: + char LibPthreadVersion[128]; + if (confstr(_CS_GNU_LIBPTHREAD_VERSION, LibPthreadVersion, sizeof(LibPthreadVersion)) > 0) { + if (strstr(LibPthreadVersion, "NPTL")) { + fprintf(stderr, "vdr: please turn off NPTL by setting 'export LD_ASSUME_KERNEL=2.4.1' before starting VDR\n"); + return 2; + } + } +#endif + // Check for UTF-8 and exit if present - asprintf() will fail if it encounters 8 bit ASCII codes char *LangEnv; if ((LangEnv = getenv("LANG")) != NULL && strcasestr(LangEnv, "utf") || |