From 84036cf7b98582633c72b0abda9b4a3e8cc264cb Mon Sep 17 00:00:00 2001 From: Dimitar Tsenev Date: Tue, 4 Jun 2024 13:47:00 +0300 Subject: [PATCH 01/62] [Fixed] CI Assignment CAID selection crash --- .../CommonInterfaceAssignment/plugin.py | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py index 4e5e3c9564c..86130ef552e 100644 --- a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py +++ b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py @@ -283,19 +283,17 @@ def saveXML(self): fp.write("\t\n") fp.write("\t\t%s\n" % self.ci_slot) for item in self.selectedcaid: - if len(self.selectedcaid): - fp.write("\t\t\n" % item[0]) + fp.write("\t\t\n" % item[0]) for item in self.servicelist: - if len(self.servicelist): - name = item[0].replace('<', '<') - name = name.replace('&', '&') - name = name.replace('>', '>') - name = name.replace('"', '"') - name = name.replace("'", ''') - if item[2] == 1: - fp.write("\t\t\n" % (stringToXML(name), item[3])) - else: - fp.write("\t\t\n" % (stringToXML(name), item[3])) + name = item[0].replace('<', '<') + name = name.replace('&', '&') + name = name.replace('>', '>') + name = name.replace('"', '"') + name = name.replace("'", ''') + if item[2] == 1: + fp.write("\t\t\n" % (stringToXML(name), item[3])) + else: + fp.write("\t\t\n" % (stringToXML(name), item[3])) fp.write("\t\n") fp.write("\n") fp.close() @@ -321,7 +319,7 @@ def getValue(definitions, default): read_slot = str(getValue(slot.findall("id"), False)) i = 0 for caid in slot.findall("caid"): - read_caid = caid.get("id").encode("UTF-8") + read_caid = caid.get("id") self.selectedcaid.append((str(read_caid), str(read_caid), i)) self.usingcaid.append(int(read_caid, 16)) i += 1 From 1ce9e757ac741170a4dc5f18ed037c7e64df9f5d Mon Sep 17 00:00:00 2001 From: Huevos Date: Tue, 4 Jun 2024 13:38:28 +0000 Subject: [PATCH 02/62] openvix: developer 6.6.001.004 --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index b9f5180f4e9..686d5859db1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1270,3 +1270,4 @@ openvix: developer 6.6.000.004 openvix: developer 6.6.001.001 openvix: developer 6.6.001.002 openvix: developer 6.6.001.003 +openvix: developer 6.6.001.004 From 8609d303bf889bcc1645306d01a4a5c890745630 Mon Sep 17 00:00:00 2001 From: Orlandoxx <95180049+Orlandoxx@users.noreply.github.com> Date: Thu, 6 Jun 2024 17:05:24 +0300 Subject: [PATCH 03/62] [Translations] Updated Finnish (fi.po) translation --- po/fi.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/po/fi.po b/po/fi.po index 8b8c343a553..127925f7210 100644 --- a/po/fi.po +++ b/po/fi.po @@ -5,7 +5,7 @@ msgstr "" "Project-Id-Version: enigma2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-12-27 23:35+0000\n" -"PO-Revision-Date: 2024-06-01 14:08+0300\n" +"PO-Revision-Date: 2024-06-06 17:01+0300\n" "Last-Translator: Orlandox\n" "Language-Team: timoj/Kojo/Samzam/Orlandox\n" "Language: fi\n" @@ -1221,7 +1221,7 @@ msgid "(TV)" msgstr "(TV)" msgid "(You are currently using a temporary sort method)" -msgstr "(Käytät tällä hetkellä väliaikasta järjestelymenetelmää)" +msgstr "(Käytät tällä hetkellä väliaikaista lajittelutapaa)" msgid "(ZAP as PiP)" msgstr "(Tee kanavanvaihto PiP:nä)" @@ -7695,7 +7695,7 @@ msgid "Leave DVD player?" msgstr "Poistutaanko DVD-soittimesta?" msgid "Leave this set to 'yes' unless you fully understand why you are adjusting it." -msgstr "Jätä tämä asentoon 'kyllä', ellet täysin ymmärrä miksi säädät tätä." +msgstr "Jätä asetukseksi 'kyllä', ellet ymmärrä täysin, miksi säädät sitä." msgid "Lebanon" msgstr "Libanon" @@ -7704,7 +7704,7 @@ msgid "Left" msgstr "Vasen" msgid "Left from servicename (only available in single line mode)" -msgstr "Kanavanimestä vasemmalle (käytössä vain yksirivisessä tilassa)" +msgstr "Kanavanimestä vasemmalle (käytössä vain 1-rivisessä tilassa)" msgid "Left long" msgstr "Pitkä vasemmalle" @@ -9466,7 +9466,7 @@ msgid "Percentage left" msgstr "Prosentit vasemmalla" msgid "Percentage right (only available in single line mode)" -msgstr "Prosentit oikealla (käytössä vain yksirivisessä tilassa)" +msgstr "Prosentit oikealla (käytössä vain 1-rivisessä tilassa)" msgid "Perform a complete image backup before updating." msgstr "Suorita täydellinen image-varmuuskopiointi ennen päivitystä." @@ -10226,7 +10226,7 @@ msgid "Progress bar left" msgstr "Etenemispalkki vasemmalla" msgid "Progress bar right (only available in single line mode)" -msgstr "Etenemispalkki oikealla (käytössä vain yksirivisessä tilassa)" +msgstr "Etenemispalkki oikealla (käytössä vain 1-rivisessä tilassa)" msgid "Prominent" msgstr "Kuuluisa" @@ -13546,7 +13546,7 @@ msgstr "" "Suomenkielinen käännös: timoj, Kojo, Samzam, Orlandox\n" "\n" "Ylläpito : Orlandox\n" -"--- 31.05.2024 ---\n" +"--- 06.06.2024 ---\n" "\n" "http://www.huoltovalikko.com" From 0eea41aa4d2fc1dfdeb31440e2df2084668a744b Mon Sep 17 00:00:00 2001 From: Orlandoxx <95180049+Orlandoxx@users.noreply.github.com> Date: Sat, 8 Jun 2024 20:50:23 +0300 Subject: [PATCH 04/62] [Translations] Updated Finnish (fi.po) translation --- po/fi.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/po/fi.po b/po/fi.po index 127925f7210..158b53f0abc 100644 --- a/po/fi.po +++ b/po/fi.po @@ -5,7 +5,7 @@ msgstr "" "Project-Id-Version: enigma2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-12-27 23:35+0000\n" -"PO-Revision-Date: 2024-06-06 17:01+0300\n" +"PO-Revision-Date: 2024-06-08 20:48+0300\n" "Last-Translator: Orlandox\n" "Language-Team: timoj/Kojo/Samzam/Orlandox\n" "Language: fi\n" @@ -1746,13 +1746,13 @@ msgid "Abort" msgstr "Keskeytä" msgid "Abort alternatives edit" -msgstr "Peruuta muutokset ja poistu" +msgstr "Keskeytä vaihtoehtojen muokkaus" msgid "Abort bouquet edit" -msgstr "Peruuta muutokset ja poistu" +msgstr "Keskeytä suosikkilistan muokkaus" msgid "Abort favourites edit" -msgstr "Peruuta muutokset ja poistu" +msgstr "Keskeytä suosikkien muokkaus" msgid "About" msgstr "Tietoja" @@ -13546,7 +13546,7 @@ msgstr "" "Suomenkielinen käännös: timoj, Kojo, Samzam, Orlandox\n" "\n" "Ylläpito : Orlandox\n" -"--- 06.06.2024 ---\n" +"--- 08.06.2024 ---\n" "\n" "http://www.huoltovalikko.com" From e2f1c004a7fccdd2d1a9206929a3e8f743704aeb Mon Sep 17 00:00:00 2001 From: Dimitar Tsenev Date: Sun, 9 Jun 2024 17:09:39 +0300 Subject: [PATCH 05/62] [Fixed] Wrong screen title lenght renderer [Fixed] Wrong check for front LED features --- lib/gui/ewindowstyleskinned.cpp | 2 +- lib/python/Components/Renderer/FrontpanelLed.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/gui/ewindowstyleskinned.cpp b/lib/gui/ewindowstyleskinned.cpp index d07259f7496..b8378ba7b47 100644 --- a/lib/gui/ewindowstyleskinned.cpp +++ b/lib/gui/ewindowstyleskinned.cpp @@ -41,7 +41,7 @@ void eWindowStyleSkinned::paintWindowDecoration(eWindow *wnd, gPainter &painter, painter.setBackgroundColor(m_color[colWindowTitleBackground]); painter.setForegroundColor(m_color[colWindowTitleForeground]); painter.setFont(m_fnt); - painter.renderText(eRect(m_title_offset.width(), m_title_offset.height(), wnd->size().width() - m_title_offset.width(), m_border[bsWindow].m_border_top - m_title_offset.height()), title); + painter.renderText(eRect(m_title_offset.width(), m_title_offset.height(), wnd->size().width() - m_title_offset.width() * 2, m_border[bsWindow].m_border_top - m_title_offset.height()), title); } } diff --git a/lib/python/Components/Renderer/FrontpanelLed.py b/lib/python/Components/Renderer/FrontpanelLed.py index 67c320011f4..44f02574d35 100644 --- a/lib/python/Components/Renderer/FrontpanelLed.py +++ b/lib/python/Components/Renderer/FrontpanelLed.py @@ -33,7 +33,7 @@ def changed(self, *args, **kwargs): f = open("/proc/stb/fp/led_set_speed", "w") f.write("%d" % speed) f.close() - if path.exists("/proc/stb/fp/led_set_pattern"): + if path.exists("/proc/stb/fp/led_pattern_speed"): f = open("/proc/stb/fp/led_pattern_speed", "w") f.write("%d" % speed) f.close() From 510aeb37a8cf6a3c8ca483589710d2c8187653f5 Mon Sep 17 00:00:00 2001 From: Huevos Date: Sun, 9 Jun 2024 21:07:29 +0000 Subject: [PATCH 06/62] openvix: developer 6.6.002.001 --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 686d5859db1..576d7b78780 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1271,3 +1271,4 @@ openvix: developer 6.6.001.001 openvix: developer 6.6.001.002 openvix: developer 6.6.001.003 openvix: developer 6.6.001.004 +openvix: developer 6.6.002.001 From 18783872f2365a4cb6c235aa5514b1a8842faf17 Mon Sep 17 00:00:00 2001 From: EnoSat Date: Sat, 8 Jun 2024 22:18:04 +0200 Subject: [PATCH 07/62] Update sk.po fixed SK language --- po/sk.po | 15017 ++++++++++++++++++++++++----------------------------- 1 file changed, 6775 insertions(+), 8242 deletions(-) diff --git a/po/sk.po b/po/sk.po index b7cc723eaab..2dcc9b697fe 100644 --- a/po/sk.po +++ b/po/sk.po @@ -1,31 +1,37 @@ # Slovak translations for Enigma2. +# Copyright (C) 2024 +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR Nicker, 2016. # msgid "" msgstr "" "Project-Id-Version: enigma2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-17 11:46+0000\n" -"PO-Revision-Date: 2016-04-29 10:48+0200\n" -"Last-Translator: Nicker \n" -"Language-Team: none\n" +"POT-Creation-Date: 2021-05-18 14:44+0200\n" +"PO-Revision-Date: 2023-10-01 13:07+0200\n" +"Last-Translator: EnoSat \n" +"Language-Team: \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Poedit 1.8.7\n" +"X-Generator: Poedit 3.3.2\n" #, python-format msgid "" "\n" " %s is also enabled for autofs network mount" msgstr "" +"\n" +" %s je tiež povolené pre autofs sieťové pripojenie" msgid "" "\n" -"(DeepStandby request changed to Standby owing to there being streaming " -"clients.)" +"(DeepStandby request changed to Standby owing to there being streaming clients.)" msgstr "" +"\n" +"(Požiadavka Vyčkávací režim sa zmenila na Pohotovostný režim z dôvodu streamovania.)" # msgid "" @@ -33,7 +39,7 @@ msgid "" "Advanced options and settings." msgstr "" "\n" -"Rozšírené volby a nastavenia." +"Rozšírené možnosti a nastavenia." # msgid "" @@ -41,7 +47,7 @@ msgid "" "After pressing OK, please wait!" msgstr "" "\n" -"Po stlacení tlacidla OK pockajte!" +"Po stlačení tlačidla OK počkajte!" #, python-format msgid "" @@ -49,7 +55,7 @@ msgid "" "Backup your %s %s settings." msgstr "" "\n" -"Zálohujte svoje %s%s nastavenia." +"Zálohujte svoje %s %s nastavenia." # msgid "" @@ -57,12 +63,14 @@ msgid "" "Edit the upgrade source address." msgstr "" "\n" -"Upravit adresu zdroja aktualizácií." +"Upraviť adresu zdroja aktualizácií." msgid "" "\n" "It contains other items." msgstr "" +"\n" +"Obsahuje ďalšie položky." #, python-format msgid "" @@ -70,7 +78,7 @@ msgid "" "Manage extensions or plugins for your %s %s" msgstr "" "\n" -"Správa rozšírení a pluginov Vášho %s %s" +"Správa rozšírení alebo doplnkov Vášho %s %s" msgid "" "\n" @@ -79,8 +87,14 @@ msgid_plural "" "\n" "There are directories that aren't empty." msgstr[0] "" +"\n" +"Jeden je adresár, ktorý nie je prázdny." msgstr[1] "" +"\n" +"Existujú adresáre, ktoré nie sú prázdne." msgstr[2] "" +"\n" +"Existujú adresáre, ktoré nie sú voľné." #, python-format msgid "" @@ -88,7 +102,7 @@ msgid "" "Online update of your %s %s software." msgstr "" "\n" -"Online aktualizácia software vášho %s %s." +"Online aktualizácia softvéru Vášho %s %s." # msgid "" @@ -96,13 +110,14 @@ msgid "" "Press OK on your remote control to continue." msgstr "" "\n" -"Pre pokracovanie stlacte tlacidlo OK na dialkovom ovládaci." +"Pre pokračovanie stlačte tlačidlo OK na diaľkovom ovládači." -#, fuzzy msgid "" "\n" "Recording in progress." -msgstr "Nahráva sa" +msgstr "" +"\n" +"Nahrávanie prebieha." #, python-format msgid "" @@ -110,7 +125,7 @@ msgid "" "Restore your %s %s settings." msgstr "" "\n" -"Obnovit systémové nastavenia %s %s." +"Obnoviť Vaše %s %s nastavenia." # #, python-format @@ -119,7 +134,7 @@ msgid "" "Restore your %s %s with a new firmware." msgstr "" "\n" -"Obnovit %s %s novým firmvérom." +"Obnoviť Váš %s %s s novým firmvérom." # msgid "" @@ -127,7 +142,7 @@ msgid "" "Restore your backups by date." msgstr "" "\n" -"Obnovit zo zálohy podla dátumu." +"Obnoviť zo zálohy podľa dátumu." # msgid "" @@ -135,7 +150,7 @@ msgid "" "Scan for local extensions and install them." msgstr "" "\n" -"Prehladat miestne balícky a nainštalovat ich." +"Prehľadať miestne rozšírenia a nainštalovať ich." # msgid "" @@ -144,7 +159,7 @@ msgid "" "Current device: " msgstr "" "\n" -"Zvolte zariadenie pre zálohovanie.\n" +"Vyberte zariadenie pre zálohovanie.\n" "Aktuálne zariadenie: " #, python-format @@ -152,81 +167,74 @@ msgid "" "\n" "Timer '%s' disabled!" msgstr "" +"\n" +"Časovač '%s' vypnutý!" msgid "" "\n" "View, install and remove available or installed packages." msgstr "" "\n" -"Zobrazit, nainštalovat a odstránit dostupné alebo nainštalované balícky." +"Zobraziť, inštalovať a odstrániť dostupné alebo nainštalované balíčky." msgid " " msgstr "" -#, fuzzy, python-format +#, python-format msgid " (%s x %s)" -msgstr "%s (%s)\n" +msgstr "" -#, fuzzy msgid " (+5 volt terrestrial)" -msgstr "Pozemné" +msgstr " (+5V pozemné)" -#, fuzzy msgid " (0 - all networks)" -msgstr "Miestna siet" +msgstr " (0 - všetky siete)" -#, fuzzy, python-format +#, python-format msgid " (Channel %s)" -msgstr "Zotnam staníc" +msgstr " (Kanál %s)" -#, fuzzy msgid " (auto detection)" -msgstr "Automatické vypnutie" +msgstr " (automatická detekcia)" -#, fuzzy msgid " (disabled)" -msgstr "zrušené" +msgstr " (vypnuté)" msgid " (higher than any auto)" -msgstr "" +msgstr " (vyššia ako akákoľvek automatika)" msgid " (higher than rotor any auto)" -msgstr "" +msgstr " (vyššia ako motora akákoľvek automatika)" msgid " (lower than any auto)" -msgstr "" +msgstr " (nižšia ako akákoľvek automatika)" msgid " - Unicable/JESS LNBs not found" -msgstr "" +msgstr " - LNB Unicable/JESS nenájdené" -#, fuzzy msgid " - video0" -msgstr "S-Video" +msgstr " - S-Video" msgid " - video0+video1" -msgstr "" +msgstr " - S-Video + RGB" -#, fuzzy msgid " - video1" -msgstr "S-Video" +msgstr " - RGB" -msgid "" -" Warning: the selected tuner should not use SCR Unicable type for LNBs " -"because each tuner need a own SCR number." -msgstr "" +msgid " Warning: the selected tuner should not use SCR Unicable type for LNBs because each tuner need a own SCR number." +msgstr " Upozornenie: vybraný tuner by nemal používať typ SCR Unicable pre LNB, pretože každý tuner potrebuje vlastné číslo SCR." msgid " and" -msgstr "a" +msgstr " a" msgid " unicable LNB input of rotor" -msgstr "" +msgstr " unicable LNB vstup motora" msgid "%-H:%M" -msgstr "%-H:%M" +msgstr "" -#, fuzzy msgid "%-H:%M:%S" -msgstr "%-H:%M" +msgstr "" msgid "%-I:%M" msgstr "" @@ -247,16 +255,19 @@ msgid "%-I:%M:%S%^p" msgstr "" #. TRANSLATORS: full date representation daynum monthname year in strftime() format! See 'man strftime' -#, fuzzy +#. PREKLADATELIA: úplná prezentácia dátumu daynum meno mesiaca rok vo formáte strftime()! Pozri 'man strftime' msgid "%-d %B %Y" -msgstr "%d.%B %Y" +msgstr "" #. TRANSLATORS: small date representation daynum short monthname in strftime() format! See 'man strftime' #. TRANSLATORS: compact date representation (for VFD) daynum short monthname in strftime() format! See 'man strftime' +#. PREKLADATELIA: malé zastúpenie dátumu daynum krátke meno mesiaca vo formáte strftime()! Pozri 'man strftime' +#. PREKLADATELIA: kompaktná prezentácia dátumu (pre VFD) daynum short monthname vo formáte strftime()! Pozri 'man strftime' msgid "%-d %b" msgstr "" #. TRANSLATORS: long date representation daynum short monthname year in strftime() format! See 'man strftime' +#. PREKLADATELIA: long date prezentácia daynum short monthname rok vo formáte strftime()! Pozri 'man strftime' msgid "%-d %b %Y" msgstr "" @@ -272,16 +283,14 @@ msgstr "" msgid "%-d-%b-%Y" msgstr "" -#, fuzzy msgid "%-d. %B %Y" -msgstr "%d.%B %Y" +msgstr "" msgid "%-d. %b" msgstr "" -#, fuzzy msgid "%-d. %b %Y" -msgstr "%d.%B %Y" +msgstr "" msgid "%-d.%-m" msgstr "" @@ -334,75 +343,47 @@ msgstr "" msgid "%-m/%d/%Y" msgstr "" -#, python-format -msgid "%.0f GB" -msgstr "" - -#, python-format -msgid "%.0f MB" -msgstr "" - -#, python-format -msgid "%.0f kB" -msgstr "" - -#, python-format -msgid "%.2f GB" -msgstr "" - -#, fuzzy, python-format -msgid "%02d MB" -msgstr "%d MB" - #, python-format msgid "%2.1f sec" -msgstr "" +msgstr "%2.1f sek" #, python-format msgid "%3.01f dB" msgstr "" #. TRANSLATORS: short date representation dayname daynum short monthname in strftime() format! See 'man strftime' -#, fuzzy +#. PREKLADATELIA: krátka prezentácia dátumu názov dňa názov dňa názov mesiaca vo formáte strftime()! Pozri 'man strftime' msgid "%A %-d %B" -msgstr "%A %e %B" +msgstr "" #. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' -#, fuzzy +#. PREKLADATELIA: úplné zobrazenie dátumu dayname daynum monthname rok vo formáte strftime()! Pozri 'man strftime' msgid "%A %-d %B %Y" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %-d-%B" -msgstr "%A %e %B" +msgstr "" -#, fuzzy msgid "%A %-d-%B-%Y" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %-d. %B" -msgstr "%A %e %B" +msgstr "" -#, fuzzy msgid "%A %-d. %B %Y" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %-d.%-m" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%A %-d.%-m.%Y" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %-d.%m" -msgstr "%A %e %B" +msgstr "" -#, fuzzy msgid "%A %-d.%m.%Y" -msgstr "%A %e %B %Y" +msgstr "" msgid "%A %-d/%-m" msgstr "" @@ -413,9 +394,8 @@ msgstr "" msgid "%A %-d/%m" msgstr "" -#, fuzzy msgid "%A %-d/%m/%Y" -msgstr "%A %e %B %Y" +msgstr "" msgid "%A %-m/%-d" msgstr "" @@ -426,57 +406,44 @@ msgstr "" msgid "%A %-m/%d" msgstr "" -#, fuzzy msgid "%A %-m/%d/%Y" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %B %-d" -msgstr "%d.%B %Y" +msgstr "" -#, fuzzy msgid "%A %B %-d %Y" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %B %d" -msgstr "%d.%B %Y" +msgstr "" -#, fuzzy msgid "%A %B %d %Y" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %B-%-d" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %B-%-d-%Y" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %B-%d" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %B-%d-%Y" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %Y %B %-d" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %Y %B %d" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %Y-%B-%-d" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %Y-%B-%d" -msgstr "%A %e %B %Y" +msgstr "" msgid "%A %Y/%-m/%-d" msgstr "" @@ -490,83 +457,65 @@ msgstr "" msgid "%A %Y/%m/%d" msgstr "" -#, fuzzy msgid "%A %d %B" -msgstr "%A %e %B" +msgstr "" -#, fuzzy msgid "%A %d %B %Y" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %d-%B" -msgstr "%A %e %B" +msgstr "" -#, fuzzy msgid "%A %d-%B-%Y" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %d. %B" -msgstr "%A %e %B" +msgstr "" -#, fuzzy msgid "%A %d. %B %Y" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %d.%-m" -msgstr "%A %e %B" +msgstr "" -#, fuzzy msgid "%A %d.%-m.%Y" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %d.%m" -msgstr "%A %e %B" +msgstr "" -#, fuzzy msgid "%A %d.%m.%Y" -msgstr "%A %e %B %Y" +msgstr "" msgid "%A %d/%-m" msgstr "" -#, fuzzy msgid "%A %d/%-m/%Y" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %d/%m" -msgstr "%A %e %B" +msgstr "" -#, fuzzy msgid "%A %d/%m/%Y" -msgstr "%A %e %B %Y" +msgstr "" msgid "%A %m/%-d" msgstr "" -#, fuzzy msgid "%A %m/%-d/%Y" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%A %m/%d" -msgstr "%A %e %B" +msgstr "" -#, fuzzy msgid "%A %m/%d/%Y" -msgstr "%A %e %B %Y" +msgstr "" -#, fuzzy msgid "%B %-d %Y" -msgstr "%d.%B %Y" +msgstr "" -#, fuzzy msgid "%B %d %Y" -msgstr "%d.%B %Y" +msgstr "" msgid "%B-%-d-%Y" msgstr "" @@ -575,7 +524,7 @@ msgid "%B-%d-%Y" msgstr "" msgid "%H:%M" -msgstr "%H:%M" +msgstr "" msgid "%I:%M" msgstr "" @@ -596,20 +545,20 @@ msgid "%I:%M:%S%^p" msgstr "" #. TRANSLATORS: short time representation hour:minute (Same as "Default") +#. PREKLADATELIA: krátka prezentácia hodina:minúta (Rovnaké ako „Predvolené“) msgid "%R" msgstr "" #. TRANSLATORS: time representation hour:minute:seconds for 24 hour clock or 12 hour clock without AM/PM and hour:minute for 12 hour clocks with AM/PM +#. PREKLADATELIA: zobrazenie času hodina:minúta:sekundy pre 24-hodinové hodiny alebo 12-hodinové hodiny bez AM/PM a hodina:minúta pre 12-hodinové hodiny s AM/PM msgid "%T" msgstr "" -#, fuzzy msgid "%Y %B %-d" -msgstr "%d.%B %Y" +msgstr "" -#, fuzzy msgid "%Y %B %d" -msgstr "%d.%B %Y" +msgstr "" msgid "%Y %b %-d" msgstr "" @@ -642,136 +591,111 @@ msgid "%Y/%m/%d" msgstr "" #. TRANSLATORS: small date representation short dayname daynum in strftime() format! See 'man strftime' +#. PREKLADATELIA: prezentácia malého dátumu krátke meno dňa daynum vo formáte strftime()! Pozri 'man strftime' msgid "%a %-d" msgstr "" #. TRANSLATORS: long date representation short dayname daynum monthname year in strftime() format! See 'man strftime' -#, fuzzy +#. PREKLADATELIA: prezentácia dlhého dátumu krátky názov dňa daynum názov mesiaca rok vo formáte strftime()! Pozri 'man strftime' msgid "%a %-d %B %Y" -msgstr "%a %e %B %Y" +msgstr "" #. TRANSLATORS: short date representation short dayname daynum short monthname in strftime() format! See 'man strftime' -#, fuzzy +#. PREKLADATELIA: prezentácia krátkeho dátumu krátky názov dňa daynum krátky názov mesiaca vo formáte strftime()! Pozri 'man strftime' msgid "%a %-d %b" -msgstr "%a %e %B %Y" +msgstr "" #. TRANSLATORS: long date representation short dayname daynum short monthname year in strftime() format! See 'man strftime' -#, fuzzy +#. PREKLADATELIA: prezentácia dlhého dátumu krátky názov dňa daynum krátky názov mesiaca rok vo formáte strftime()! Pozri 'man strftime' msgid "%a %-d %b %Y" -msgstr "%a %e %B %Y" +msgstr "" msgid "%a %-d+%b_" msgstr "" -#, fuzzy msgid "%a %-d-%B-%Y" -msgstr "%a %e %B %Y" +msgstr "" msgid "%a %-d-%b" msgstr "" -#, fuzzy msgid "%a %-d-%b-%Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %-d. %B %Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %-d. %b" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %-d. %b %Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %-d.%-m" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %-d.%-m.%Y" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %-d.%m" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %-d.%m.%Y" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %-d/%-m" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %-d/%-m/%Y" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %-d/%m" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %-d/%m/%Y" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %-m/%-d" -msgstr "%a %e/%m" +msgstr "" msgid "%a %-m/%-d/%Y" msgstr "" -#, fuzzy msgid "%a %-m/%d" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %-m/%d/%Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %B %-d %Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %B %d %Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %B-%-d-%Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %B-%d-%Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %Y %B %-d" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %Y %B %d" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %Y %b %-d" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %Y %b %d" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %Y-%B-%-d" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %Y-%B-%d" -msgstr "%a %e %B %Y" +msgstr "" msgid "%a %Y-%b-%-d" msgstr "" @@ -779,143 +703,110 @@ msgstr "" msgid "%a %Y-%b-%d" msgstr "" -#, fuzzy msgid "%a %Y/%-m/%-d" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %Y/%-m/%d" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %Y/%m/%-d" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %Y/%m/%d" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %b %-d" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %b %-d %Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %b %d" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %b %d %Y" -msgstr "%a %e %B %Y" +msgstr "" msgid "%a %b-%-d" msgstr "" -#, fuzzy msgid "%a %b-%-d-%Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %b-%d" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %b-%d-%Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %d" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %d %B %Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %d %b" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %d %b %Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %d-%B-%Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %d-%b" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %d-%b-%Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %d. %B %Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %d. %b" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %d. %b %Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %d.%-m" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %d.%-m.%Y" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %d.%m" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %d.%m.%Y" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %d/%-m" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %d/%-m/%Y" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %d/%m" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %d/%m/%Y" -msgstr "%a %e/%m" +msgstr "" msgid "%a %e %b %-H:%M" -msgstr "%a %e %b %-H:%M" +msgstr "" -#, fuzzy msgid "%a %m/%-d" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %m/%-d/%Y" -msgstr "%a %e %B %Y" +msgstr "" -#, fuzzy msgid "%a %m/%d" -msgstr "%a %e/%m" +msgstr "" -#, fuzzy msgid "%a %m/%d/%Y" -msgstr "%a %e %B %Y" +msgstr "" msgid "%b %-d" msgstr "" @@ -926,9 +817,8 @@ msgstr "" msgid "%b %d" msgstr "" -#, fuzzy msgid "%b %d %Y" -msgstr "%d.%B %Y" +msgstr "" msgid "%b+%-d " msgstr "" @@ -958,80 +848,76 @@ msgstr "" msgid "%d" msgstr "" -#, fuzzy msgid "%d %B %Y" -msgstr "%d.%B %Y" +msgstr "" -#, fuzzy msgid "%d %b" -msgstr "%d.%B %Y" +msgstr "" -#, fuzzy msgid "%d %b %Y" -msgstr "%d.%B %Y" - -#, python-format -msgid "%d B" msgstr "" #, python-format msgid "%d GB" -msgstr "%d GB" +msgstr "" #, python-format msgid "%d KB" -msgstr "%d KB" +msgstr "" #, python-format msgid "%d MB" -msgstr "%d MB" +msgstr "" #. TRANSLATORS: full date representation dayname daynum monthname year in strftime() format! See 'man strftime' +#. PREKLADATELIA: úplné zobrazenie dátumu dayname daynum monthname rok vo formáte strftime()! Pozri 'man strftime' #. _("%A %e %B %Y") #. TRANSLATORS: short time representation hour:minute in strftime() format! See 'man strftime' -#. _("%R") -#. TRANSLATORS: short time representation hour:minute in strftime() format! See 'man strftime' +#. PREKLADATELIA: krátka prezentácia hodín:minúta vo formáte strftime()! Pozri 'man strftime' #. _("%R") #. TRANSLATORS: short date representation daynum short monthname in strftime() format! See 'man strftime' +#. PREKLADATELIA: prezentácia krátkeho dátumu daynum krátky názov mesiaca vo formáte strftime()! Pozri 'man strftime' #. _("%e %b") #. TRANSLATORS: short date representation daynum short monthname in strftime() format! See 'man strftime' +#. PREKLADATELIA: prezentácia krátkeho dátumu daynum krátky názov mesiaca vo formáte strftime()! Pozri 'man strftime' #. _("%a %e %b") -#. TRANSLATORS: short time representation hour:minute in strftime() format! See 'man strftime' -#. _("%R") #. TRANSLATORS: long date representation short dayname daynum short monthname hour:minute in strftime() format! See 'man strftime' +#. PREKLADATELIA: prezentácia dlhého dátumu krátky názov dňa daynum krátky názov mesiaca hodina:minúta vo formáte strftime()! Pozri 'man strftime' #. _("%a %e %b %R") #. TRANSLATORS: full date representations short dayname daynum monthname long year in strftime() format! See 'man strftime' +#. PREKLADATELIA: prezentácie plného dátumu krátke meno dňa daynum názov mesiaca dlhý rok vo formáte strftime()! Pozri 'man strftime' #. _("%a %e %B %Y") #. #, python-format msgid "%d Min" msgid_plural "%d Mins" -msgstr[0] "%d min" -msgstr[1] "%d minúty" -msgstr[2] "%d minút" +msgstr[0] "%d Min" +msgstr[1] "%d Min" +msgstr[2] "%d Min" -#, fuzzy, python-format +#, python-format msgid "%d Recording" msgid_plural "%d Recordings" -msgstr[0] "Nahrávanie" -msgstr[1] "Nahrávanie" -msgstr[2] "Nahrávanie" +msgstr[0] "%d Nahrávanie" +msgstr[1] "%d Nahrávania" +msgstr[2] "%d Nahrávaní" #. TRANSLATORS: Intermediate scanning result, '%d' channel(s) have been found so far +#. TRANSLATORS: Priebežný výsledok skenovania, zatiaľ bolo nájdených '%d' kanálov #, python-format msgid "%d channel found" msgid_plural "%d channels found" -msgstr[0] "Nájdená %d stanica!" -msgstr[1] "Nájdené %d stanice!" -msgstr[2] "Nájdených %d staníc!" +msgstr[0] "%d stanica nájdená" +msgstr[1] "%d stanice nájdené" +msgstr[2] "%d staníc nájdených" -#, fuzzy, python-format +#, python-format msgid "%d cores" -msgstr "Farba textu" +msgstr "%d jadrá" #, python-format msgid "%d days" -msgstr "" +msgstr "%d dní" #, python-format msgid "%d hour" @@ -1040,13 +926,13 @@ msgstr[0] "%d hodina" msgstr[1] "%d hodiny" msgstr[2] "%d hodín" -#, fuzzy, python-format +#, python-format msgid "%d hours" -msgstr "%d hodina" +msgstr "%d hodiny" -#, fuzzy, python-format +#, python-format msgid "%d items" -msgstr "Odstránené položky" +msgstr "%d položky" #, python-format msgid "%d job is running in the background!" @@ -1061,19 +947,19 @@ msgstr "%d úloh beží na pozadí!" #, python-format msgid "%d kB" -msgstr "%d kB" +msgstr "" -#, fuzzy, python-format +#, python-format msgid "%d marked item" -msgstr "%d minúta" +msgstr "%d označená položka" -#, fuzzy, python-format +#, python-format msgid "%d marked items" -msgstr "%d minút" +msgstr "%d označených položiek" #, python-format msgid "%d min" -msgstr "%d min" +msgstr "" #, python-format msgid "%d minute" @@ -1086,28 +972,28 @@ msgstr[2] "%d minút" msgid "%d minutes" msgstr "%d minút" -#, fuzzy, python-format +#, python-format msgid "%d ms" -msgstr "%d min" +msgstr "" #, python-format msgid "%d of %d Bytes" -msgstr "" +msgstr "%d z %d Bajtov" -#, fuzzy, python-format +#, python-format msgid "%d of %d KB" -msgstr "%d KB" +msgstr "" #, python-format msgid "%d pixel wide" msgid_plural "%d pixels wide" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "%d pixel široké" +msgstr[1] "%d pixely široké" +msgstr[2] "%d pixelov široké" -#, fuzzy, python-format +#, python-format msgid "%d sec" -msgstr "%d sekunda" +msgstr "%d sek" #, python-format msgid "%d second" @@ -1116,16 +1002,16 @@ msgstr[0] "%d sekunda" msgstr[1] "%d sekundy" msgstr[2] "%d sekúnd" -#, fuzzy, python-format +#, python-format msgid "%d seconds" -msgstr "%d sekunda" +msgstr "%d sekundy" #, python-format msgid "%d wireless network found!" msgid_plural "%d wireless networks found!" -msgstr[0] "Nájdená %d bezdrôtová siet." -msgstr[1] "Nájdené %d bezdrôtové siete." -msgstr[2] "Nájdených %d bezdrôtových sietí." +msgstr[0] "Nájdená %d bezdrôtová sieť!" +msgstr[1] "Nájdené %d bezdrôtové siete!" +msgstr[2] "Nájdených %d bezdrôtových sietí!" msgid "%d+%b_" msgstr "" @@ -1139,31 +1025,26 @@ msgstr "" msgid "%d-%b-%Y" msgstr "" -#, fuzzy msgid "%d. %B %Y" -msgstr "%d.%B %Y" +msgstr "" msgid "%d. %b" msgstr "" -#, fuzzy msgid "%d. %b %Y" -msgstr "%d.%B %Y" +msgstr "" msgid "%d.%-m" msgstr "" -#, fuzzy msgid "%d.%-m.%Y" -msgstr "%d.%B %Y" +msgstr "" -#, fuzzy msgid "%d.%m" -msgstr "%d.%B %Y" +msgstr "" -#, fuzzy msgid "%d.%m.%Y" -msgstr "%d.%B %Y" +msgstr "" msgid "%d/%-m" msgstr "" @@ -1204,176 +1085,182 @@ msgstr "" msgid "%m/%d/%Y" msgstr "" -#, fuzzy, python-format +#, python-format msgid "%s" -msgstr "bc%s" +msgstr "" #, python-format +msgctxt "problem trans" msgid "%s %s advanced remote control (native)" -msgstr "%s %s pokrocilé dialkové ovládanie (natívne)" +msgstr "%s %s rozšírené diaľkové ovládanie (natívne)" #, python-format msgid "%s %s format data DVD (HDTV compatible)" msgstr "DVD s formátom dát %s %s (kompatibilné s HDTV)" #, python-format +msgctxt "problem trans" msgid "%s %s front panel" -msgstr "%s%s celný panel" +msgstr "%s%s čelný panel" #, python-format msgid "%s %s ir keyboard" msgstr "%s %s IR klávesnica" #, python-format +msgctxt "problem trans" msgid "%s %s ir mouse" msgstr "%s %s IR myš" #, python-format msgid "%s %s remote control (native)" -msgstr "%s %s dialkové ovládanie (natívne)" +msgstr "%s %s diaľkové ovládanie (natívne)" #, python-format msgid "%s %s software because updates are available." -msgstr "%s %s softvér, nakolko sú dostupné aktualizácie." +msgstr "%s %s softvér, nakoľko sú dostupné aktualizácie." -#, fuzzy, python-format +#, python-format msgid "%s ( %s Cards )" -msgstr "%s (%s)\n" +msgstr "%s ( %s Karty )" #, python-format -msgid "%s (%s)\n" -msgstr "%s (%s)\n" +msgid "%s (%s)" +msgstr "" -#, fuzzy, python-format -msgid "%s - %s (%s%d min)" -msgstr "%02d.%02d - %02d.%02d (%s%d min)" +#, python-format +msgid "%s (%s)\n" +msgstr "" #, python-format -msgid "%s GB" +msgid "%s - %s (%s%d min)" msgstr "" -#, fuzzy, python-format +#, python-format msgid "%s Info - Configuration" -msgstr "OSCam info - konfigurácia" - -#, fuzzy, python-format -msgid "%s Info - Main Menu" -msgstr "OSCam info - hlavné Menu" +msgstr "%s Info - Konfigurácia" #, python-format -msgid "%s Log ( %s-Version: %s )" -msgstr "" +msgid "%s Info - Main Menu" +msgstr "%s Info - Hlavná ponuka" #, python-format msgid "%s files cannot be bulk renamed" -msgstr "" +msgstr "%s súbory sa nedajú hromadne premenovať" #. TRANSLATORS: The satellite with name '%s' is no longer used after a configuration change. The user is asked whether or not the satellite should be deleted. +#. TRANSLATORS: Satelit s názvom '%s' sa už po zmene konfigurácie nepoužíva. Používateľ dostane otázku, či sa má satelit vymazať alebo nie. #, python-format msgid "%s is no longer used. Should it be deleted?" msgstr "%s sa už nepoužíva. Mal by byt odstránený?" #, python-format msgid "%s of %s GB" -msgstr "" +msgstr "%s z %s GB" #, python-format msgid "%s of %s MB" +msgstr "%s z %s MB" + +#, python-format +msgid "%s scheduled update" +msgstr "%s naplánovaná aktualizácia" + +#, python-format +msgid "" +"%s update is about to start.\n" +"Do you want to allow this?" msgstr "" +"%s aktualizácia sa práve začína.\n" +"Chcete to povoliť?" #, python-format msgid "%s updated package available" msgid_plural "%s updated packages available" -msgstr[0] "%s aktualizovaný balícek k dispozícii" -msgstr[1] "%s aktualizované balícky k dispozícii" -msgstr[2] "%s aktualizovaných balíckov k dispozícii" +msgstr[0] "%s aktualizovaný balíček k dispozícii" +msgstr[1] "%s aktualizované balíčky k dispozícii" +msgstr[2] "%s aktualizovaných balíčkov k dispozícii" -#, fuzzy, python-format +#, python-format msgid "%s webif disabled" -msgstr "zrušené" +msgstr "%s webif vypnuté" -#, fuzzy, python-format +#, python-format msgid "%s%d Min" -msgstr "%s%d min" +msgstr "" -#, fuzzy, python-format +#, python-format +msgid "%s%s - Select to access recovery options" +msgstr "%s%s - Vyberte pre prístup k možnostiam obnovy" + +#, python-format msgid "%s%s(Default: %s)" -msgstr "Predvolené" +msgstr "%s%s(Prednastavené: %s)" #, python-format msgid "%s/%s: %s" -msgstr "%s/%s: %s" +msgstr "" #, python-format msgid "%s?" msgstr "" -#, fuzzy, python-format +#, python-format msgid "'%s' already exists" -msgstr "Cesta %s už existuje." +msgstr "'%s' už existuje" -msgid "" -"'Network peer' automatically detects other Enigma2 receivers on the local " -"network. You can also manually enter the URL or IP address." -msgstr "" +msgid "'Network peer' automatically detects other Enigma2 receivers on the local network. You can also manually enter the URL or IP address." +msgstr "'Sieťový partner' automaticky detekuje iné prijímače Enigma2 v miestnej sieti. URL alebo IP adresu môžete zadať aj ručne." msgid "" "'Save' changes active language.\n" "'Add Language' or MENU adds additional language(s).\n" -"'Delete Language' allows either deletion of all but English and active " -"language OR selected language" +"'Delete Language' allows either deletion of all but English and active language OR selected language" msgstr "" +"'Uložiť' zmení aktívny jazyk.\n" +"'Pridať jazyk' alebo MENU pridá ďalší jazyk(y).\n" +"'Vymazať jazyk' umožňuje buď vymazanie všetkých jazykov okrem angličtiny a aktívneho jazyka, ALEBO vybraného jazyka" -#, fuzzy msgid "(All readers)" -msgstr "(Všetky cítacky)" +msgstr "(Všetky čítačky)" -#, fuzzy msgid "(Current)" -msgstr "Aktuálny cas" - -#, fuzzy -msgid "(FTA Service)" -msgstr "Stanica" +msgstr "(Aktuálne)" -#, fuzzy, python-format +#, python-format msgid "(Partition %d)" -msgstr "Polarizácia" +msgstr "(Partícia %d)" -#, fuzzy msgid "(PiP)" -msgstr "(PiP)" +msgstr "" -#, fuzzy msgid "(Radio)" msgstr "(Rádio)" -#, fuzzy, python-format +#, python-format msgid "(Show only reader) (%s)" -msgstr "Zobrazit iba cítacku:" +msgstr "(Zobraziť iba čítačku) (%s)" -#, fuzzy msgid "(TV)" -msgstr "(TV)" +msgstr "" msgid "(You are currently using a temporary sort method)" -msgstr "" +msgstr "(V súčasnosti používate dočasnú metódu triedenia)" msgid "(ZAP as PiP)" -msgstr "" +msgstr "(PREPNÚŤ ako PiP)" msgid "(ZAP)" -msgstr "(Prepnút)" +msgstr "(PREPNÚŤ)" msgid "(empty)" msgstr "(prázdne)" msgid "(show optional DVD audio menu)" -msgstr "(zobrazit volitelné menu zvuku DVD)" +msgstr "(zobraziť voliteľné menu zvuku DVD)" -#, fuzzy msgid "(unknown)" -msgstr "neznáme" +msgstr "(neznáme)" msgid "* = Restart Required" msgstr "* = Nutný reštart" @@ -1381,90 +1268,77 @@ msgstr "* = Nutný reštart" msgid "* Only available if more than one interface is active." msgstr "* Dostupné, len ak je aktívnych viac rozhraní než jedno." -#, fuzzy msgid "* current animation" -msgstr "Aktivovat aktuálne nastavenie" +msgstr "* aktuálna animácia" -#, fuzzy msgid "+24 hours" -msgstr "Uložit každých (v hodinách)" +msgstr "+24 hodín" -msgid "-" +msgctxt "Text list separator" +msgid ", " msgstr "" -#, fuzzy msgid "-24 hours" -msgstr "Uložit každých (v hodinách)" +msgstr "-24 hodín" msgid "-NO SERVICE\n" -msgstr "" +msgstr "-ŽIADNA STANICA\n" #, python-format msgid "-SERVICE ERROR:%d\n" -msgstr "" +msgstr "-CHYBA STANICE:%d\n" msgid "." msgstr "" -#, fuzzy msgctxt "ButtonSetup help separator" msgid "/" -msgstr "/s" +msgstr "" -#, fuzzy msgid "/T" -msgstr "/s" +msgstr "" msgid "/s" -msgstr "/s" +msgstr "" msgid "1 day" -msgstr "" +msgstr "1 deň" -#, fuzzy msgid "1 hour" -msgstr "%d hodina" +msgstr "1 hodina" -#, fuzzy msgid "1 minute" -msgstr "minúta" +msgstr "1 minúta" -#, fuzzy msgid "1 second" -msgstr "%d sekunda" +msgstr "1 sekunda" msgid "1.0" -msgstr "1.0" +msgstr "" msgid "1.1" -msgstr "1.1" - -msgid "1.2" -msgstr "1.2" - -msgid "10 MB/s" msgstr "" -msgid "100 MB/s" +msgid "1.2" msgstr "" msgid "1080i" -msgstr "1080i" +msgstr "" msgid "1080p 24Hz" -msgstr "1080p 24Hz" +msgstr "" msgid "1080p 25Hz" -msgstr "1080p 25Hz" +msgstr "" msgid "1080p 30Hz" -msgstr "1080p 30Hz" +msgstr "" msgid "1080p 50Hz" -msgstr "1080p 50Hz" +msgstr "" msgid "1080p 60Hz" -msgstr "1080p 60Hz" +msgstr "" msgid "10bit" msgstr "" @@ -1479,112 +1353,119 @@ msgid "12bit" msgstr "" msgid "13 V" -msgstr "13V" +msgstr "" msgid "16:10" -msgstr "16:10" +msgstr "" msgid "16:10 Letterbox" -msgstr "16:10 Letterbox" +msgstr "" msgid "16:10 PanScan" -msgstr "16:10 PanScan" +msgstr "" msgid "16:9" -msgstr "16:9" +msgstr "" msgid "16:9 Letterbox" -msgstr "16:9 Letterbox" +msgstr "" msgid "16:9 always" -msgstr "vždy 16:9" +msgstr "16:9 vždy" msgid "16K" msgstr "" msgid "18 V" -msgstr "18 V" +msgstr "" msgid "1X" -msgstr "1X" +msgstr "" msgid "1st Infobar timeout" -msgstr "Prvý infopanel skryt po" +msgstr "Časový limit prvej Informačnej lišty" -msgid "20 MB/s" -msgstr "" - -#, fuzzy msgid "2160p 24Hz" -msgstr "720p 24Hz" +msgstr "" -#, fuzzy msgid "2160p 25Hz" -msgstr "1080p 25Hz" +msgstr "" -#, fuzzy msgid "2160p 30Hz" -msgstr "1080p 30Hz" +msgstr "" -#, fuzzy msgid "2160p 50Hz" -msgstr "1080p 50Hz" +msgstr "" -#, fuzzy msgid "2160p 60Hz" -msgstr "1080p 60Hz" +msgstr "" msgid "23.976" -msgstr "23.976" +msgstr "" msgid "24" -msgstr "24" +msgstr "" msgid "25" -msgstr "25" +msgstr "" msgid "29.97" -msgstr "29.97" +msgstr "" msgid "2X" -msgstr "2X" +msgstr "" -#, fuzzy msgid "3" -msgstr "30" +msgstr "" msgid "30" -msgstr "30" +msgstr "" msgid "3D" msgstr "" msgid "3D Mode" -msgstr "3D režim" +msgstr "3D Režim" -#, fuzzy msgid "3D Setup" -msgstr "3D nastavenia" +msgstr "3D Nastavenie" msgid "3D Surround" -msgstr "3D priestorový zvuk" +msgstr "3D Priestorový zvuk" msgid "3D Surround Speaker Position" -msgstr "" +msgstr "3D Priestorový reproduktor - Umiestnenie" -#, fuzzy msgid "3D surround" msgstr "3D priestorový zvuk" msgid "3D surround speaker position" -msgstr "" +msgstr "Poloha 3D priestorového reproduktora" msgid "3X" -msgstr "3X" +msgstr "" -#, fuzzy msgid "4" -msgstr "24" +msgstr "" + +msgid "4097 + 5001" +msgstr "" + +msgid "4097 + 5001 + 5002" +msgstr "" + +msgid "4097 + 5002" +msgstr "" + +#, python-format +msgid "4097 iptv player:\t%s\n" +msgstr "4097 iptv prehrávač:\t%s\n" + +msgid "4097 iptv player:\tDefault player\n" +msgstr "4097 iptv prehrávač:\tPrednastavený prehrávač\n" + +msgid "4097 only" +msgstr "len 4097" msgid "420" msgstr "" @@ -1595,40 +1476,44 @@ msgstr "" msgid "444" msgstr "" -#, fuzzy msgid "480p 24Hz" -msgstr "1080p 24Hz" +msgstr "" msgid "4:3" -msgstr "4:3" +msgstr "" msgid "4:3 Letterbox" -msgstr "4:3 Letterbox" +msgstr "" msgid "4:3 PanScan" -msgstr "4:3 PanScan" +msgstr "" msgid "4K" msgstr "" msgid "4X" -msgstr "4X" +msgstr "" -#, fuzzy msgid "5" -msgstr "25" +msgstr "" -msgid "50 MB/s" +msgid "5001 + 5002" msgstr "" +msgid "5001 only" +msgstr "len 5001" + +msgid "5002 only" +msgstr "len 5002" + msgid "6" msgstr "" msgid "720p" -msgstr "720p" +msgstr "" msgid "720p 24Hz" -msgstr "720p 24Hz" +msgstr "" msgid "8K" msgstr "" @@ -1639,172 +1524,158 @@ msgstr "" msgid "" msgstr "" -#, fuzzy msgid "" -msgstr "Aktuálny cas" +msgstr "" msgid "" msgstr "" -#, fuzzy msgid "" -msgstr "" +msgstr "" -#, fuzzy msgid "" -msgstr "Predvolené" +msgstr "" msgid "" -msgstr "" +msgstr "" msgid "" -msgstr "" +msgstr "" msgid "" -msgstr "" +msgstr "<Čaká na reštart>" msgid "" msgstr "" msgid "=NO STREAM\n" -msgstr "" +msgstr "=ŽIADNY STREAM\n" #, python-format msgid "?%s-recursive?" -msgstr "" +msgstr "?%s-naopak?" #, python-format msgid "?%s?" msgstr "" msgid "A" -msgstr "A" +msgstr "" -#, fuzzy msgid "" "A background update check is in progress,\n" "please wait a few minutes and try again." msgstr "" -"Kontrola aktualizácií prebieha na pozadí, prosím pockajte niekolko minút a " -"skúste to znovu." +"Prebieha kontrola aktualizácie na pozadí,\n" +" počkajte niekoľko minút a skúste znova." -#, fuzzy -msgid "" -"A background update check is in progress, please wait a few minutes and then " -"try again." +msgid "A background update check is in progress, please wait a few minutes and then try again." msgstr "" -"Kontrola aktualizácií prebieha na pozadí, prosím pockajte niekolko minút a " -"skúste to znovu." +"Prebieha kontrola aktualizácie na pozadí,\n" +" počkajte niekoľko minút a potom to skúste znova." -msgid "" -"A background update check is in progress, please wait a few minutes and try " -"again." -msgstr "" -"Kontrola aktualizácií prebieha na pozadí, prosím pockajte niekolko minút a " -"skúste to znovu." +msgid "A background update check is in progress, please wait a few minutes and try again." +msgstr "Kontrola aktualizácií prebieha na pozadí, prosím počkajte niekoľko minút a skúste to znovu." msgid "A client is streaming from this box!" -msgstr "" +msgstr "Klient streamuje z tohto boxu!" #, python-format msgid "" "A configuration file (%s) has been modified since it was installed.\n" "Do you want to keep your modifications?" msgstr "" -"Konfiguracný súbor (%s) bol od inštalácie zmenený.\n" -"Chcete zachovat Vaše zmeny?" +"Konfiguračný súbor (%s) je od inštalácie zmenený.\n" +"Chcete zachovať Vaše zmeny?" #, python-format msgid "" "A configuration file (%s) was modified since Installation.\n" "Do you want to keep your version?" msgstr "" -"Konfiguracný súbor (%s) bol od inštalácie zmenený.\n" -"Chcete zachovat svoju verziu?" +"Konfiguračný súbor (%s) bol od inštalácie zmenený.\n" +"Chcete zachovať Vašu verziu?" #, python-format msgid "" "A finished powertimer wants to reboot your %s %s.\n" "Do that now?" msgstr "" -"Ukoncený casovac napájania chce reštartovat Váš %s %s.\n" -"Povolit?" +"Ukončený časovač napájania chce reštartovať Váš %s %s.\n" +"Urobiť to teraz?" msgid "" "A finished powertimer wants to restart the user interface.\n" "Do that now?" msgstr "" -"Casovac skoncil a chce reštartovat užívatelské rozhranie.\n" -"Povolit?" +"Ukončený časovač napájania skončil a chce reštartovať užívateľské rozhranie.\n" +"Urobiť to teraz?" #, python-format msgid "" "A finished powertimer wants to set your\n" "%s %s to standby. Do that now?" msgstr "" -"Ukoncený casovac napájania chce prepnút Váš\n" -"%s %s do pohotovostného režimu. Prepnút teraz?" +"Ukončený časovač napájania chce prepnúť Váš\n" +"%s %s do pohotovostného režimu. Urobiť to teraz?" #, python-format msgid "" "A finished powertimer wants to shutdown your %s %s.\n" "Do that now?" msgstr "" -"Ukoncený casovac napájania chce vypnút\n" -"Váš %s %s. Vypnút teraz?" +"Ukončený časovač napájania chce vypnúť Váš %s %s.\n" +"Urobiť to teraz?" #, python-format msgid "" "A finished record timer wants to set your\n" "%s %s to standby. Do that now?" msgstr "" -"Ukoncený casovac nahrávania chce prepnút Váš\n" -"%s %s do pohotovostného režimu. Prepnút teraz?" +"Ukončený časovač nahrávania chce prepnúť Váš\n" +"%s %s do pohotovostného režimu. Urobiť to teraz?" #, python-format msgid "" "A finished record timer wants to shut down\n" "your %s %s. Shutdown now?" msgstr "" -"Ukoncený casovac nahrávania chce vypnút\n" -"Váš %s %s. Vypnút teraz?" +"Ukončený časovač nahrávania chce vypnúť\n" +"Váš %s %s. Vypnúť teraz?" + +msgid "A highlight on the remote control image shows which button the help refers to. If more than one button performs the indicated function, more than one highlight will be shown. Text below the list indicates whether the function is for a long press of the button(s)." +msgstr "Zvýraznenie na obrázku diaľkového ovládača ukazuje, na ktoré tlačidlo sa nápoveda vzťahuje. Ak uvedenú funkciu vykonáva viac ako jedno tlačidlo, zobrazí sa viac ako jedno zvýraznenie. Text pod zoznamom uvádza, či sa funkcia týka dlhého stlačenia tlačidla (tlačidiel)." #, python-format msgid "" "A recording has been started:\n" "%s" msgstr "" -"Nahrávanie zacalo:\n" +"Nahrávanie sa začalo:\n" "%s" -#, fuzzy msgid "" "A recording is currently in progress.\n" "What do you want to do?" msgstr "" "Práve sa nahráva.\n" -"Co chcete urobit?" +"Co chcete urobiť?" -#, fuzzy -msgid "" -"A recording is currently running on the selected tuner. Please select a " -"different tuner or consider to stop the recording to try again." -msgstr "Práve sa nahráva. Prosím, zastavte nahrávanie pred skenovaním." +msgid "A recording is currently running on the selected tuner. Please select a different tuner or consider to stop the recording to try again." +msgstr "Na vybranom tunery práve prebieha nahrávanie. Vyberte iný tuner alebo zvážte zastavenie nahrávania a skúste to znova." -msgid "" -"A recording is currently running. Please stop the recording before trying to " -"scan." -msgstr "Práve sa nahráva. Prosím, zastavte nahrávanie pred skenovaním." +msgid "A recording is currently running. Please stop the recording before trying to scan." +msgstr "Práve prebieha nahrávanie. Pred pokusom o vyhľadávanie zastavte nahrávanie." msgid "A repeating timer or just once?" -msgstr "Opakujúci sa casovac, alebo len jednorázový?" +msgstr "Opakujúci sa časovač alebo iba raz?" #, python-format msgid "A required tool (%s) was not found." msgstr "Požadovaný nástroj (%s) sa nenašiel." msgid "A search for available updates is currently in progress." -msgstr "Práve prebieha vyhladávanie dostupných aktualizácií." +msgstr "Práve prebieha vyhľadávanie dostupných aktualizácií." msgid "" "A second configured interface has been found.\n" @@ -1812,61 +1683,63 @@ msgid "" "Do you want to disable the second network interface?" msgstr "" "Bolo nájdené druhé nakonfigurované rozhranie.\n" -"Chcete vypnút druhé sietové rozhranie?" +"Chcete vypnúť druhé sieťové rozhranie?" -#, fuzzy, python-format +#, python-format msgid "" "A sleep timer wants to set your\n" "%s %s to standby. Proceed?" msgstr "" -"Zaspávací casovac chce prepnút Váš\n" -"%s %s do pohotovostného režimu. Povolit?" +"Časovač uspania chce prepnúť Váš\n" +"%s %s do pohotovostného režimu. Pokračovať?" -#, fuzzy, python-format +#, python-format msgid "" "A sleep timer wants to shut down\n" "your %s %s. Proceed?" msgstr "" -"Zaspávací casovac chce vypnút\n" -"Váš %s %s. Vypnút teraz?" +"Časovač uspania chce vypnúť\n" +"Váš %s %s. Pokračovať?" msgid "A small overview of the available icon states and actions." -msgstr "Tu je malý prehlad dostupných ikon štátov a cinností." +msgstr "Malý prehľad dostupných stavov ikon a akcií." msgid "" "A timer failed to record!\n" "Disable TV and try again?\n" msgstr "" -"Zlyhalo casovanie nahrávania!\n" -"Vypnút TV a skúsit znova?\n" +"Zlyhalo časovanie nahrávania!\n" +"Vypnúť TV a skúsiť znova?\n" -#, fuzzy msgid "A/V settings" -msgstr "Nastavenia A/V" +msgstr "A/V Nastavenia" msgid "AAC downmix" -msgstr "AAC downmix" +msgstr "" msgid "AAC transcoding" -msgstr "" +msgstr "AAC transkódovanie" -#, fuzzy msgid "AAC+ downmix" -msgstr "AAC downmix" +msgstr "" + +msgid "ABOUT" +msgstr "O" -#, fuzzy msgid "AC3" -msgstr "DAC" +msgstr "" -#, fuzzy msgid "AC3 downmix" -msgstr "AAC downmix" +msgstr "" msgid "AC3 transcoding" -msgstr "" +msgstr "AC3 transkódovanie" msgid "ACQUIRING TSID/ONID" -msgstr "ZÍSKANIE TSID / ONID" +msgstr "ZÍSKANIE TSID/ONID" + +msgid "AFL" +msgstr "" msgid "AFP" msgstr "" @@ -1877,81 +1750,84 @@ msgstr "AFP Nastavenie" msgid "AGC:" msgstr "" +msgid "ARROWLEFT" +msgstr "ŠÍPKA VĽAVO" + +msgid "ARROWRIGHT" +msgstr "ŠÍPKA VPRAVO" + msgid "ASS file" -msgstr "" +msgstr "ASS súbor" msgid "ATSC" msgstr "" -#, fuzzy msgid "ATSC provider" -msgstr "Pridat poskytovatela" +msgstr "ATSC poskytovateľ" + +msgid "AUDIO" +msgstr "ZVUK" + +msgid "AUTOTIMER" +msgstr "AUTOMATICKÝ ČASOVAČ" #, python-format msgid "AV aspect is %s." msgstr "Pomer strán obrazu je %s." +msgid "Abenteuer" +msgstr "" + msgid "Abort" -msgstr "Zrušit" +msgstr "Prerušiť" -#, fuzzy msgid "Abort alternatives edit" -msgstr "zrušit úpravu alternatív" +msgstr "Zrušiť úpravu alternatív" -#, fuzzy msgid "Abort bouquet edit" -msgstr "zrušit úpravu prehladu" +msgstr "Zrušit úpravu prehľadu" -#, fuzzy msgid "Abort favourites edit" -msgstr "zrušit úpravu oblúbených" +msgstr "Zrušit úpravu obľúbených" msgid "About" -msgstr "O prijímaci" +msgstr "O prijímači" + +msgid "About screen setup" +msgstr "O nastavení obrazovky" -#, fuzzy msgid "Accept the current selection" -msgstr "Aktivovat aktuálne nastavenie" +msgstr "Akceptovať aktuálny výber" -#, fuzzy msgid "Access extensions" -msgstr "rozšírenia." +msgstr "Rozšírenia prístupu" msgid "Accesspoint:" msgstr "Prístupový bod:" +msgid "Action" +msgstr "Akcia" + msgid "Activate" -msgstr "Aktivovat" +msgstr "Aktivovať" msgid "Activate HbbTV (RedButton)" -msgstr "" - -#, fuzzy -msgid "Activate MAC address configuration" -msgstr "Aktivovat konfiguráciu MAC adresy" +msgstr "Aktivácia HbbTV (červené tlačidlo)" msgid "Activate Picture in Picture" -msgstr "Zapnút obraz v obraze" - -msgid "Activate current configuration" -msgstr "Aktivovat aktuálne nastavenie" - -#, fuzzy -msgid "Activate network adapter configuration" -msgstr "aktivovat konfiguráciu sietového adaptéra" +msgstr "Aktivácia funkcie Obraz v obraze (PiP)" msgid "Activate network settings" -msgstr "Aktivovat nastavenia siete" +msgstr "Aktivácia nastavení siete" msgid "Activate the configured network settings." -msgstr "Aktivovat konfiguráciu sietových nastavení." +msgstr "Aktivácia nakonfigurovaných nastavení siete." -#, fuzzy msgid "Activate timeshift end" -msgstr "Spustit casový posun" +msgstr "Aktivácia ukončenia časového posunu" msgid "Activate timeshift end and pause" -msgstr "" +msgstr "Aktivácia ukončenia časového posunu a pauzy" msgid "Active" msgstr "Aktívny" @@ -1959,236 +1835,228 @@ msgstr "Aktívny" msgid "Active clients" msgstr "Aktívni klienti" -#, fuzzy msgid "Adapter Settings" -msgstr "Nastavenia adaptéra" +msgstr "Nastavenia Adaptéra" msgid "Adapter settings" msgstr "Nastavenia adaptéra" -msgid "" -"Adaptive date display allows recent dates to be displayed as 'Today' or " -"'Yesterday'. It hides the year for recordings made this year. It hides the " -"day of the week for recordings made in previous years." -msgstr "" +msgid "Adaptive date display allows recent dates to be displayed as 'Today' or 'Yesterday'. It hides the year for recordings made this year. It hides the day of the week for recordings made in previous years." +msgstr "Adaptívne zobrazenie dátumu umožňuje zobrazenie posledných dátumov ako \"Dnes\" alebo \"Včera\". Pri nahrávkach z tohto roka skryje rok. Skrýva deň v týždni pre nahrávky z predchádzajúcich rokov." msgid "Add" -msgstr "Pridat" +msgstr "Pridať" + +#, python-format +msgid "Add 4 more Vu+ Multiboot USB slots after slot %s ?" +msgstr "Pridať ďalšie štyri Vu+ Multiboot USB sloty za slot %s ?" msgid "Add AutoTimer" -msgstr "Pridat automatický casovac" +msgstr "Pridať automatický časovač" + +msgid "Add Extra USB slots" +msgstr "Pridať extra USB sloty" -#, fuzzy msgid "Add Language" -msgstr "Jazyk" +msgstr "Pridať jazyk" msgid "Add Timer" -msgstr "Pridat casovac" +msgstr "Pridať časovač" msgid "Add a mark" -msgstr "Pridat znacku" +msgstr "Pridať značku" msgid "Add a nameserver entry" -msgstr "Pridat nameserver" +msgstr "Pridať nameserver" msgid "Add a new title" -msgstr "Pridat nový titul" +msgstr "Pridať nový titul" msgid "Add a record timer" -msgstr "Pridat casovac" +msgstr "Pridať časovač nahrávania" msgid "Add a record timer for current event" -msgstr "Pridat casovac nahrávania pre aktuálnu udalost" +msgstr "Pridať časovač nahrávania pre aktuálnu udalosť" -#, fuzzy msgid "Add a record timer or an autotimer for current event" -msgstr "Pridat casovac nahrávania pre aktuálnu udalost" +msgstr "Pridať časovač nahrávania alebo automatického časovača pre aktuálnu udalosť" msgid "Add a zap timer for current event" -msgstr "Pridajte casovac prepnutia pre aktuálnu udalost" +msgstr "Pridať časovač prepnutia pre aktuálnu udalosť" msgid "Add a zap timer for next event" -msgstr "Pridajte casovac prepnutia pre nasledujúcu udalost" +msgstr "Pridať časovač prepnutia pre nasledujúcu udalosť" -#, fuzzy msgid "Add alternatives" -msgstr "pridat alternatívy" +msgstr "Pridať alternatívy" -#, fuzzy msgid "Add an autotimer for current event" -msgstr "Pridat automatický casovac pre aktuálnu udalost" +msgstr "Pridať automatický časovač pre aktuálnu udalosť" -#, fuzzy msgid "Add and edit a record timer for current event" -msgstr "Pridat casovac nahrávania pre aktuálnu udalost" +msgstr "Pridať časovač nahrávania pre aktuálnu udalosť" msgid "Add bookmark" -msgstr "Pridat záložku" +msgstr "Pridať záložku" -#, fuzzy msgid "Add bouquet" -msgstr "pridat prehlad" +msgstr "Pridať prehľad" -#, fuzzy msgid "Add bouquet to parental protection" -msgstr "pridat k rodicovskej zámke" +msgstr "Pridať k rodičovskej zámke" msgid "Add directory to playlist" -msgstr "Pridat adresár do zoznamu prehrávok" +msgstr "Pridať adresár do zoznamu prehrávok" msgid "Add file to playlist" -msgstr "Pridat súbor do zoznamu prehrávok" +msgstr "Pridať súbor do zoznamu prehrávok" msgid "Add files to playlist" -msgstr "Pridat súbory do zoznamu prehrávok" +msgstr "Pridať súbory do zoznamu prehrávok" -#, fuzzy msgid "Add marker" -msgstr "pridat znacku" +msgstr "Pridať značku" msgid "Add provider" -msgstr "Pridat poskytovatela" +msgstr "Pridať poskytovateľa" msgid "Add recording (enter recording duration)" -msgstr "Pridat nahrávanie (zadat dlžku trvania záznamu)" +msgstr "Pridať nahrávanie (zadať trvanie nahrávania)" msgid "Add recording (enter recording endtime)" -msgstr "Pridat nahrávanie (zadat cas zastavenia záznamu)" +msgstr "Pridať nahrávanie (zadať čas ukončenia nahrávania)" msgid "Add recording (indefinitely)" -msgstr "Spustit nahrávanie (neobmedzená dlžka)" +msgstr "Pridať nahrávanie (na neurčito)" msgid "Add recording (stop after current event)" -msgstr "Pridat nahrávanie (ukoncit po aktuálnej udalosti)" +msgstr "Pridať nahrávanie (zastaviť po aktuálnej udalosti)" msgid "Add service" -msgstr "Pridat službu" +msgstr "Pridať stanicu" -#, fuzzy msgid "Add service to bouquet" -msgstr "pridat stanicu do prehladu" +msgstr "Pridať stanicu do prehľadu" -#, fuzzy msgid "Add service to favourites" -msgstr "pridat stanicu do oblúbených" +msgstr "Pridať stanicu do obľúbených" -#, fuzzy msgid "Add services to this bouquet?" -msgstr "pridat stanicu do prehladu" +msgstr "Pridať stanicu do prehľadu?" msgid "Add timer" -msgstr "Pridat casovac" +msgstr "Pridať časovač" -#, fuzzy msgid "Add timers" -msgstr "Pridat casovac" +msgstr "Pridať časovače" msgid "Add title" -msgstr "Pridat titul" +msgstr "Pridať titul" msgid "Add to bouquet" -msgstr "Pridat do prehladu" +msgstr "Pridať do prehľadu" msgid "Add to favourites" -msgstr "Pridat do oblúbených" +msgstr "Pridať do obľúbených" -#, fuzzy msgid "Add to parental protection" -msgstr "pridat k rodicovskej zámke" +msgstr "Pridať k rodičovskej ochrane" -#, fuzzy msgid "Add/Edit an autotimer for current event" -msgstr "Pridat automatický casovac pre aktuálnu udalost" +msgstr "Pridať/Upraviť automatický časovač pre aktuálnu udalosť" msgid "Add/Remove timer for current event" -msgstr "Pridat/odstránit casovac pre aktuálnu udalost" +msgstr "Pridať/Odstrániť časovač pre aktuálnu udalosť" msgid "Adding schedule..." -msgstr "Pridávam casový plán..." +msgstr "Pridávam časový plán..." -#, fuzzy msgid "Additional cable of motorized LNB" -msgstr "druhý kábel motorizovaného LNB" +msgstr "Prídavný kábel motorizovaného LNB" -msgid "" -"Additional motor options opens a sub-menu where you can enter details from " -"your motor's spec sheet so enigma can work out how long it will take to move " -"the dish from one satellite to another satellite." -msgstr "" +msgid "Additional motor options opens a sub-menu where you can enter details from your motor's spec sheet so enigma can work out how long it will take to move the dish from one satellite to another satellite." +msgstr "Ďalšie možnosti motora otvoria podponuku, do ktorej môžete zadať údaje z technického listu motora, aby enigma mohla zistiť, ako dlho bude trvať presun paraboly z jedného satelitu na druhý." msgid "Address" msgstr "Adresa" -msgid "" -"Adjust the color settings so that all the color shades are distinguishable, " -"but appear as saturated as possible. If you are happy with the result, press " -"OK to close the video fine-tuning, or use the number keys to select other " -"test screens." +msgid "Adel" msgstr "" -"Nastavte farby tak, aby boli jednotlivé odtiene dobre rozlíšitelné, ale " -"zároven co najsýtejšie. Ak ste s výsledkom spokojní, stlacením tlacidla OK " -"ukoncite jemné ladenie obrazu alebo císlicovými tlacidlami zvolte iný " -"testovací obrazec." + +msgid "Adjust the color settings so that all the color shades are distinguishable, but appear as saturated as possible. If you are happy with the result, press OK to close the video fine-tuning, or use the number keys to select other test screens." +msgstr "Upravte nastavenia farieb tak, aby boli všetky farebné odtiene rozlíšiteľné, ale aby vyzerali čo najsýtejšie. Ak ste s výsledkom spokojní, stlačením tlačidla OK ukončite jemné doladenie videa alebo pomocou číselných tlačidiel vyberte ďalšie testovacie obrazce." + +msgid "Adult" +msgstr "Pre dospelých" msgid "Adult Audience, Strong Violence 15+" -msgstr "" +msgstr "Pre dospelých, Tvrdé násilie 15+" + +msgid "Adult Movie" +msgstr "Film pre dospelých" msgid "Advance EPG to the following date and time" -msgstr "" +msgstr "Posun EPG na nasledujúci dátum a čas" -#, fuzzy msgid "Advanced" -msgstr "rozšírené" +msgstr "Rozšírené" msgid "Advanced options" -msgstr "Rozšírené volby" +msgstr "Rozšírené možnosti" msgid "Advanced restore" msgstr "Rozšírené obnovenie" msgid "Advanced software" -msgstr "Pokrocilé možnosti softvéru" +msgstr "Rozšírený softvér" msgid "Advanced software plugin" -msgstr "Plugin pokrocilých možností softvéru" +msgstr "Doplnok rozšíreného softvéru" msgid "Advanced video enhancement setup" -msgstr "Pokrocilé nastavenia korekcie obrazu" +msgstr "Pokročilé nastavenia korekcie obrazu" + +msgid "Adventure" +msgstr "Dobrodružstvo" + +msgid "Advertisement" +msgstr "Reklama" msgid "Afghanistan" msgstr "" msgid "After event" -msgstr "Po skoncení" +msgstr "Po udalosti" -msgid "Aland Islands" +msgid "Agenten" msgstr "" +msgid "Aland Islands" +msgstr "Ålandy" + msgid "Albania" -msgstr "" +msgstr "Albánsko" msgid "Album" msgstr "Album" msgid "Algeria" -msgstr "" +msgstr "Alžírsko" msgid "Alias" msgstr "Pseudonym" msgid "Alignment of events" -msgstr "" +msgstr "Zarovnanie udalostí" -#, fuzzy msgid "Alignment of service names" -msgstr "Vpravo od názvu stanice" +msgstr "Zarovnanie názvov služieb" -#, fuzzy msgid "Alignment of service numbers" -msgstr "Vpravo od názvu stanice" +msgstr "Zarovnanie čísiel staníc" msgid "Alignment of timeline date" -msgstr "" +msgstr "Zarovnanie dátumu časovej osi" msgid "All" msgstr "Všetky" @@ -2196,148 +2064,119 @@ msgstr "Všetky" msgid "All ages" msgstr "Všetky vekové kategórie" -#, fuzzy msgid "All frequency" -msgstr "Kmitocet" +msgstr "Všetky kmitočty" msgid "All resolutions" msgstr "Všetky rozlíšenia" -#, fuzzy msgid "All satellites 1 (USALS)" -msgstr "Všetky satelity" +msgstr "Všetky satelity 1 (USALS)" -#, fuzzy msgid "All satellites 2 (USALS)" -msgstr "Všetky satelity" +msgstr "Všetky satelity 2 (USALS)" -#, fuzzy msgid "All satellites 3 (USALS)" -msgstr "Všetky satelity" +msgstr "Všetky satelity 3 (USALS)" -#, fuzzy msgid "All satellites 4 (USALS)" -msgstr "Všetky satelity" +msgstr "Všetky satelity 4 (USALS)" -#, fuzzy msgid "All services provider" -msgstr "Priradené služby a poskytovatelia:" +msgstr "Všetky stanice poskytovateľa" -#, fuzzy msgid "All slots" -msgstr "Všetky rozlíšenia" +msgstr "Všetky sloty" msgid "Allocate" -msgstr "Pridelit" +msgstr "Prideliť" -msgid "" -"Allocate a number to the physical LNB you are configuring. You will be able " -"to select this LNB again for other satellites (e.g. motorised dishes) to " -"save setting up the same LNB multiple times." -msgstr "" +msgid "Allocate a number to the physical LNB you are configuring. You will be able to select this LNB again for other satellites (e.g. motorised dishes) to save setting up the same LNB multiple times." +msgstr "Prideľte číslo fyzickému LNB, ktorý konfigurujete. Tento LNB budete môcť vybrať znova pre iné satelity (napr. motorizované antény), aby ste nemuseli ten istý LNB nastavovať viackrát." msgid "Allocate unused memory index" -msgstr "Pridelit nepoužívanú pamät" +msgstr "Pridelenie indexu nevyužitej pamäte" msgid "Allow 10bit" -msgstr "" +msgstr "Povoliť 10bit" msgid "Allow 12bit" -msgstr "" +msgstr "Povoliť 12bit" msgid "Allow fast skin reload" -msgstr "" +msgstr "Povoliť rýchle načítanie vzhľadu" msgid "Allow reinitialisation of selected cam script." -msgstr "" +msgstr "Povoliť opätovnú inicializáciu vybraného softcam-ového skriptu." msgid "Allow subtitle language to equal audio language" -msgstr "Povolit titulky zhodné s jazykom zvuku" +msgstr "Povoliť titulky zhodné s jazykom zvuku" msgid "Allow subtitles for hearing impaired" -msgstr "Povolit titulky pre sluchovo postihnutých" +msgstr "Povoliť titulky pre sluchovo postihnutých" msgid "Allow unstable (experimental) updates" -msgstr "Povolit nestabilné (netestované) aktualizácie" +msgstr "Povoliť nestabilné (experimentálne) aktualizácie" -#, fuzzy msgid "Allows the %s %s to load the saved EPG data regularly." -msgstr "Umožnuje %s%s pravidelne nacítat uložené dáta EPG." +msgstr "Umožňuje %s %s pravidelne načítať uložené údaje EPG." -#, fuzzy msgid "Allows the %s %s to save the EPG data regularly." -msgstr "Umožnuje %s%s pravidelné ukladanie dát EPG." +msgstr "Umožňuje %s %s pravidelné ukladanie údajov EPG." msgid "Allows the TV remote to be used to control the receiver." -msgstr "" +msgstr "Umožňuje používať diaľkový ovládač televízora na ovládanie prijímača." -msgid "" -"Allows you to adjust the amount of time the resolution infomation display on " -"screen." -msgstr "" -"Umožnuje nastavit cas, pocas ktorého bude informácia o rozlíšení displeja " -"zobrazená na obrazovke." +msgid "Allows you to adjust the amount of time the resolution infomation display on screen." +msgstr "Umožňuje nastaviť čas zobrazenia informácií o rozlíšení na obrazovke." -#, fuzzy -msgid "" -"Allows you to enable the debug logs. They contain very detailed information " -"about everything the system does. Reboot required to enable this!" -msgstr "" -"Umožnuje povolit protokoly ladenia. Tie obsahujú velmi podrobné informácie o " -"všetkom, co systém robí." +msgid "Allows you to enable the debug logs. They contain very detailed information about everything the system does. Reboot required to enable this!" +msgstr "Umožňuje povoliť protokoly ladenia. Obsahujú veľmi podrobné informácie o všetkom, čo systém robí. Na povolenie tejto funkcie je potrebný reštart!" msgid "Allows you to enable/disable displaying icons on the front panel." -msgstr "Umožnuje povolit/zakázat zobrazovanie ikon na celnom paneli." +msgstr "Umožňuje povoliť/zakázať zobrazovanie ikon na prednom paneli." msgid "Allows you to hide the extensions of known file types." -msgstr "Umožnuje skryt prípony známych súborov." +msgstr "Umožňuje skryť prípony známych súborov." -msgid "" -"Allows you to set a schedule to import the EPG and channels list. The EPG " -"and channels list will always be imported on reboot or GUI restart." -msgstr "" +msgid "Allows you to set a schedule to import the EPG and channels list. The EPG and channels list will always be imported on reboot or GUI restart." +msgstr "Umožňuje nastaviť plán importu EPG a zoznamu kanálov. Zoznam EPG a kanálov sa importuje vždy pri reštarte alebo reštarte grafického rozhrania." -#, fuzzy -msgid "" -"Allows you to set the maximum size (MB) of the individual debug logs. When " -"that size is reached, the log file will be truncated to the maximum size " -"every 60 minutes." -msgstr "" -"Umožnuje nastavit maximálnu velkost (MB) jednotlivých protokolov ladenia. " -"Ked sa dosiahne táto velkost, vytvorí sa nový súbor." +msgid "Allows you to set a schedule to perform an EPG update." +msgstr "Umožňuje nastaviť plán vykonávania aktualizácie EPG." + +msgid "Allows you to set the maximum size (MB) of the individual debug logs. When that size is reached, the log file will be truncated to the maximum size every 60 minutes." +msgstr "Umožňuje nastaviť maximálnu veľkosť (MB) jednotlivých protokolov ladenia. Po dosiahnutí tejto veľkosti sa súbor protokolu každých 60 minút skráti na maximálnu veľkosť." msgid "Allows you to setup the button to do what you choose." -msgstr "Umožnuje nastavit funkciu tlacidla na akciu ktorú si vyberiete." +msgstr "Umožňuje nastaviť funkciu tlačidla na akciu ktorú si vyberiete." -#, fuzzy msgid "Allows you to show/hide CCcam Info in extensions -blue button." -msgstr "Umožnuje zobrazit/skryt CCcam v rozšíreniach (modré tlacidlo)." +msgstr "Umožňuje zobraziť/skryť CCcam Info v rozšíreniach (modré tlačidlo)." msgid "Allows you to show/hide Log Manager in extensions (blue button)." -msgstr "" -"Umožnuje zobrazit/skryt Manažér súborov ladenia v rozšíreniach (modré " -"tlacidlo)." +msgstr "Umožňuje zobraziť/skryť Manažér protokolov ladenia v rozšíreniach (modré tlačidlo)." -#, fuzzy msgid "Allows you to show/hide OScam/Ncam Info in extensions -blue button." -msgstr "" -"Umožnuje zobrazit/skryt OScam informácie v rozšíreniach (modré tlacidlo)." +msgstr "Umožňuje zobraziť/skryť OScam/Ncam Info v rozšíreniach (modré tlačidlo)." msgid "Alpha" -msgstr "Alfa" +msgstr "Abeceda" + +msgid "Alphabetical under headings" +msgstr "Abecedné zoradenie podľa nadpisov" msgid "Alphanumeric" -msgstr "Alfanumerická" +msgstr "Alfanumericky" -#, fuzzy msgid "Also on standby" -msgstr "prejst do pohotovostného režimu" +msgstr "Tiež v pohotovostnom režime" msgid "Alternative" msgstr "Alternatívne" msgid "Alternative numbering mode" -msgstr "Alternatívny režim císlovania" +msgstr "Alternatívny režim číslovania" msgid "Alternative radio mode" msgstr "Alternatívny režim rádia" @@ -2349,23 +2188,28 @@ msgid "Always ask" msgstr "Vždy sa spýtat" msgid "Always hide infobar" -msgstr "Vždy skryt informacný panel" +msgstr "Vždy skryť informačnú lištu" -#, fuzzy msgid "Always select OK" -msgstr "Vždy sa spýtat" +msgstr "Vždy vyberte OK" msgid "Always show bouquets" -msgstr "Vždy zobrazovat prehlady" +msgstr "Vždy zobrazovať prehľady" + +msgid "American Football" +msgstr "Americký futbal" msgid "American Samoa" -msgstr "" +msgstr "Americká Samoa" + +msgid "American Sports" +msgstr "Americké športy" msgid "An empty filename is illegal." msgstr "Prázdny názov súboru je nepovolený." msgid "An error occurred while downloading the packetlist. Please try again." -msgstr "Chyba pri stahovaní zoznamu balíckov. Prosím, skúste to znova." +msgstr "Chyba pri sťahovaní zoznamu balíčkov. Prosím, skúste to znova." msgid "An unknown error occurred!" msgstr "Objavila sa neznáma chyba!" @@ -2373,120 +2217,119 @@ msgstr "Objavila sa neznáma chyba!" msgid "Andorra" msgstr "" -#, fuzzy -msgid "Android Mode" -msgstr "3D režim" - msgid "Angola" msgstr "" msgid "Anguilla" msgstr "" -#, fuzzy +msgid "Animals" +msgstr "Zvieratá" + +msgid "Animated Movie" +msgstr "Animovaný film" + +msgid "Animation" +msgstr "Animácia" + msgid "Animation Speed" -msgstr "Rýchlosti spomalenia prehrávania" +msgstr "Rýchlosť animácie" -#, fuzzy msgid "Animations" -msgstr "Informácie" +msgstr "Animácie" -msgid "Antarctica" +msgid "Anime" msgstr "" +msgid "Antarctica" +msgstr "Antarktída" + msgid "Antigua and Barbuda" -msgstr "" +msgstr "Antigua a Barbuda" msgid "Any activity" -msgstr "Akákolvek aktivita" +msgstr "Akákoľvek činnosť" msgid "Arabic" -msgstr "Arabcina" +msgstr "Arabsky" + +msgid "Architektur" +msgstr "Architektúra" msgid "Are You Sure ?" -msgstr "" +msgstr "Ste si istý ?" -#, fuzzy, python-format +#, python-format msgid "Are you ready to install %s ?" -msgstr "Pripravený na inštaláciu \"%s\"?" +msgstr "Ste pripravení na inštaláciu %s ?" -#, fuzzy, python-format +#, python-format msgid "Are you ready to remove %s ?" -msgstr "Chcete odstránit \"%s\" ?" +msgstr "Ste pripravení na odstránenie %s ?" msgid "Are you sure to remove this entry?" -msgstr "Naozaj chcete odstránit túto položku?" +msgstr "Naozaj chcete odstrániť túto položku?" msgid "" "Are you sure you want to activate this network configuration?\n" "\n" msgstr "" -"Naozaj chcete aktivovat túto konfiguráciu siete?\n" +"Naozaj chcete aktivovať túto konfiguráciu siete?\n" "\n" msgid "" "Are you sure you want to delete\n" "the following backup:\n" msgstr "" -"Naozaj chcete zmazat\n" +"Naozaj chcete zmazať\n" "túto zálohu:\n" -#, fuzzy msgid "Are you sure you want to delete all the selected logs:\n" -msgstr "" -"Ste si istí, že chcete zmazat všetky vybrané súbory protokolov ladenia:\n" +msgstr "Ste si istý, že chcete zmazať všetky vybrané súbory protokolov ladenia:\n" -#, fuzzy msgid "Are you sure you want to delete image:" -msgstr "Naozaj chcete zmazat túto položku:" +msgstr "Ste si istý, že chcete zmazať systémový obraz:" -#, fuzzy msgid "Are you sure you want to delete the EPG data from:\n" -msgstr "Ste si istí, že chcete znova nacítat dáta EPG z:\n" +msgstr "Ste si istý, že chcete zmazať údaje EPG z:\n" msgid "Are you sure you want to delete this log:\n" -msgstr "Ste si istý, že chcete odstránit tento súbor s protokolom ladenia:\n" +msgstr "Ste si istý, že chcete zmazať tento súbor s protokolom ladenia:\n" msgid "" "Are you sure you want to delete this:\n" " " -msgstr "Naozaj chcete zmazat túto položku:" +msgstr "" +"Ste si istý, že chcete zmazať toto:\n" +" " msgid "Are you sure you want to exit this wizard?" -msgstr "Naozaj chcete ukoncit tohto spirevodcu?" +msgstr "Ste si istý, že chcete ukončiť tohto sprievodcu?" -#, fuzzy msgid "Are you sure you want to purge all deleted user bouquets?" -msgstr "" -"Ste si istí, že chcete zmazat všetky vybrané súbory protokolov ladenia:\n" +msgstr "Ste si istý, že chcete odstrániť všetky vymazané používateľské prehľady?" msgid "Are you sure you want to reload the EPG data from:\n" -msgstr "Ste si istí, že chcete znova nacítat dáta EPG z:\n" +msgstr "Ste si istý, že chcete znova načítať dáta EPG z:\n" -#, fuzzy, python-format +#, python-format msgid "Are you sure you want to remove all %d.%d%s%s services?" -msgstr "" -"Ste si istí, že chcete zmazat všetky vybrané súbory protokolov ladenia:\n" +msgstr "Ste si istý, že chcete odstrániť všetky stanice %d.%d%s%s?" -#, fuzzy msgid "Are you sure you want to remove all cable services?" -msgstr "" -"Ste si istí, že chcete zmazat všetky vybrané súbory protokolov ladenia:\n" +msgstr "Ste si istý, že chcete odstrániť všetky káblové stanice?" -#, fuzzy msgid "Are you sure you want to remove all terrestrial services?" -msgstr "" -"Ste si istí, že chcete zmazat všetky vybrané súbory protokolov ladenia:\n" +msgstr "Ste si istý, že chcete odstrániť všetky pozemné stanice?" -#, fuzzy msgid "Are you sure you want to remove this entry?" -msgstr "Naozaj chcete odstránit túto položku?" +msgstr "Naozaj chcete odstrániť toto zadanie?" msgid "" "Are you sure you want to restart your network interfaces?\n" "\n" msgstr "" -"Naozaj chcete reštartovat sietové rozhrania?\n" +"Naozaj chcete reštartovať sieťové rozhrania?\n" "\n" #, python-format @@ -2496,24 +2339,24 @@ msgid "" "%s\n" "Your receiver will restart after the backup has been restored!" msgstr "" -"Ste si istí, že chcete obnovit\n" +"Ste si istý, že chcete obnoviť\n" "nasledujúcu zálohu:\n" "%s\n" -"Prijímac sa po obnovení zo zálohy reštartuje!" +"Prijímač sa po obnovení zo zálohy reštartuje!" msgid "" "Are you sure you want to restore the backup?\n" "Your receiver will restart after the backup has been restored!" msgstr "" -"Ste si istí, že chcete obnovit zálohu?\n" -"Prijímac sa po obnovení zo zálohy reštartuje!" +"Ste si istý, že chcete obnoviť zálohu?\n" +"Prijímač sa po obnovení zo zálohy reštartuje!" msgid "Are you sure you want to save the EPG Cache to:\n" -msgstr "Ste si istí, že chcete uložit EPG cache do:\n" +msgstr "Ste si istý, že chcete uložiť vyrovnávaciu pamäť (cache) EPG do:\n" #, python-format msgid "Are you sure you want to update your %s %s ?" -msgstr "Ste si istí, že chcete aktualizovat váš %s %s ?" +msgstr "Ste si istý, že chcete aktualizovať Váš %s %s ?" msgid "Argentina" msgstr "" @@ -2524,68 +2367,84 @@ msgstr "" msgid "Artist" msgstr "Umelec" +msgid "Arts & Culture" +msgstr "Umenie a Kultúra" + msgid "Arts/Culture" -msgstr "Umenie/kultúra" +msgstr "Umenie/Kultúra" + +msgid "Arts/Culture (without music)" +msgstr "Umenie/Kultúra (bez hudby)" msgid "Aruba" msgstr "" +msgid "Arzt" +msgstr "" + msgid "Ask user" -msgstr "Opýtat sa užívatela" +msgstr "Opýtať sa užívateľa" msgid "Ask user (with default as 'no')" -msgstr "" +msgstr "Opýtať sa užívateľa (s predvoleným nastavením 'nie')" msgid "Ask user (with default as 'yes')" -msgstr "" +msgstr "Opýtať sa užívateľa (s predvoleným nastavením 'áno')" -#, fuzzy msgid "Ask whether to stop movie" -msgstr "Zopakovat test" +msgstr "Opýtať sa, či zastaviť film" msgid "Aspect ratio" msgstr "Pomer strán" msgid "Assigned CAIds:" -msgstr "Priradené CAIdy:" +msgstr "Priradené CAid-y:" msgid "Assigned services/provider:" -msgstr "Priradené služby a poskytovatelia:" +msgstr "Priradené stanice/poskytovatelia:" msgid "At End:" -msgstr "Na konci" +msgstr "Na koniec:" + +msgid "At least one day of the week must be selected" +msgstr "Musí byť vybraný aspoň jeden deň v týždni" + +msgid "Athletics" +msgstr "Atletika" msgid "Attention, this is repeated timer!\n" -msgstr "" +msgstr "Pozor, tento časovač sa opakuje!\n" -#, fuzzy msgid "Audio" -msgstr "Zvukový PID" +msgstr "Zvuk" msgid "Audio & Video" -msgstr "" +msgstr "Zvuk a Obraz" msgid "Audio PID" msgstr "Zvukový PID" -#, fuzzy +#, python-format +msgid "Audio PID%s, codec & lang" +msgstr "Zvukový PID%s, kodek a jazyk" + msgid "Audio channel" -msgstr "Inštalovat zoznam staníc" +msgstr "Zvukový kanál" msgid "Audio language selection 1" -msgstr "Volba jazyka zvukovej stopy 1" +msgstr "Výber jazyka zvuku 1" msgid "Audio language selection 2" -msgstr "Volba jazyka zvukovej stopy 2" +msgstr "Výber jazyka zvuku 2" msgid "Audio language selection 3" -msgstr "Volba jazyka zvukovej stopy 3" +msgstr "Výber jazyka zvuku 3" msgid "Audio language selection 4" -msgstr "Volba jazyka zvukovej stopy 4" +msgstr "Výber jazyka zvuku 4" -msgid "Audio options..." -msgstr "Volby zvuku..." +msgid "Audio options" +msgstr "Možnosti zvuku" #, python-format msgid "Audio track (%s) format" @@ -2596,19 +2455,16 @@ msgid "Audio track (%s) language" msgstr "Jazyk zvukovej stopy (%s)" msgid "Audio track selection, downmix and other audio options" -msgstr "" +msgstr "Výber zvukovej stopy, zmena kvality a ďalšie možnosti zvuku" -#, fuzzy msgid "Australia" -msgstr "Taliancina" +msgstr "Austrália" -#, fuzzy msgid "Australian" -msgstr "Taliancina" +msgstr "Austrálsky" -#, fuzzy msgid "Austria" -msgstr "jazdectvo" +msgstr "Rakúsko" msgid "Author: " msgstr "Autor: " @@ -2616,35 +2472,33 @@ msgstr "Autor: " msgid "Authoring mode" msgstr "Režim autorizácie" +msgctxt "alebo prázne 4 znaky" msgid "Auto" -msgstr "Auto" +msgstr "Automaticky" msgid "Auto Deep Standby" msgstr "Automatické vypnutie" -#, fuzzy msgid "Auto Detect" -msgstr "Automatické vypnutie" +msgstr "Automatické rozpoznanie" -#, fuzzy msgid "Auto Diseqc" -msgstr "Automaticky" +msgstr "Automatický DiSEqC" msgid "Auto EXIF Orientation rotation/flipping" -msgstr "" +msgstr "Automatické otáčanie/prevracanie orientácie EXIF" msgid "Auto Standby" msgstr "Automaticky pohotovostný režim" -#, fuzzy msgid "Auto Timers" -msgstr "Pridat automatický casovac" +msgstr "Automatický časovač" msgid "Auto Volume Level" -msgstr "Automatická hlasitost" +msgstr "Automatická hlasitosť" msgid "Auto chapter split every ? minutes (0=never)" -msgstr "Automaticky rozdelovat kapitoly každých ? minút (0 = nikdy)" +msgstr "Automaticky rozdeľovať kapitoly každých ? minút (0 = nikdy)" msgid "Auto flesh" msgstr "Automatické flešovanie" @@ -2653,42 +2507,37 @@ msgid "Auto focus" msgstr "Automatické zaostrenie" msgid "Auto focus commencing ..." -msgstr "Automatické zaostrenie spustením ..." +msgstr "Automatické zaostrenie začína ..." msgid "Auto play blu-ray file" -msgstr "" +msgstr "Automatické prehrávanie súboru blu-ray" msgid "Auto scart switching" msgstr "Automatické prepnutie scartu" -#, fuzzy msgid "Auto volume level" -msgstr "Automatická hlasitost" +msgstr "Automatická hlasitosť" -#, fuzzy msgid "AutoTimer List" -msgstr "Zoznam casovacov" +msgstr "Zoznam automatického časovača" msgid "Automatic" msgstr "Automaticky" -#, fuzzy msgid "Automatic Language" -msgstr "Automatické vyhladávanie" +msgstr "Jazyk automaticky" msgid "Automatic Scan" -msgstr "Automatické vyhladávanie" +msgstr "Automatické vyhľadávanie" msgid "Automatic image backup" -msgstr "Automatické zálohovanie image" +msgstr "Automatické zálohovanie systémového obrazu" -#, fuzzy msgid "Automatic language" -msgstr "Automatické vyhladávanie" +msgstr "Jazyk automaticky" -#, fuzzy msgid "Automatic reload" -msgstr "Automatické rozlíšenie" +msgstr "Automatické opätovné načítanie" msgid "Automatic resolution" msgstr "Automatické rozlíšenie" @@ -2700,53 +2549,64 @@ msgid "Automatic save" msgstr "Automatické ukladanie" msgid "Automatic scan" -msgstr "Automatické vyhladávanie" +msgstr "Automatické vyhľadávanie" msgid "Automatic settings backup" -msgstr "Automatické zálohovanie nastavení" +msgstr "Automatická záloha nastavení" -msgid "" -"Automatically put the TV in standby whenever the receiver goes into standby " -"or deep standby." -msgstr "" +msgid "Automatic update interval" +msgstr "Automatický interval aktualizácie" + +msgid "Automatically put the TV in standby whenever the receiver goes into standby or deep standby." +msgstr "Automatické prepnutie televízora do pohotovostného režimu vždy, keď prijímač prejde do pohotovostného alebo vypínacieho režimu." msgid "Automatically start timeshift after" -msgstr "Automaticky spustí casový posun po" +msgstr "Automatické spustenie časového posunu po" msgid "Automatically turn on external subtitles" -msgstr "Automaticky aktivovat externé titulky" +msgstr "Automatické zapnutie externých titulkov" + +msgid "Automatically update Client/Server View" +msgstr "Automatická aktualizácia zobrazenia klienta/servera" msgid "Automatically update Client/Server View?" -msgstr "Automaticky aktualizovat zobrazenie klient/server" +msgstr "Automatická aktualizácia zobrazenia klienta/servera?" + +msgid "Automobil" +msgstr "" msgid "Autostart" -msgstr "Automštart" +msgstr "Autoštart" msgid "Autostart:" msgstr "Autoštart:" -#, fuzzy msgid "Autotimer overview" -msgstr "Prehlad casovacov" +msgstr "Prehľad automatického časovača" msgid "Available format variables" -msgstr "Dostupné premenné formátu" +msgstr "Dostupný rôzny formát" -#, fuzzy msgid "Available locales are:" -msgstr "Dostupné zdielania:" +msgstr "Dostupné lokality sú:" msgid "Available shares:" -msgstr "Dostupné zdielania:" +msgstr "Dostupné zdieľania:" msgid "Axas E4HD Ultra" msgstr "" msgid "Azerbaijan" -msgstr "" +msgstr "Azerbajdžan" msgid "B" -msgstr "B" +msgstr "" + +msgid "B-Movie" +msgstr "B-Film" + +msgid "BACK" +msgstr "SPäŤ" #, python-format msgid "BC%d" @@ -2755,6 +2615,15 @@ msgstr "" msgid "BER:" msgstr "" +msgid "BLUE" +msgstr "MODRÉ" + +msgid "BOUQUET+" +msgstr "PREHĽAD+" + +msgid "BOUQUET-" +msgstr "PREHĽAD-" + msgid "BT 2020 CL" msgstr "" @@ -2768,7 +2637,7 @@ msgid "Back" msgstr "Spät" msgid "Back/Recall" -msgstr "" +msgstr "Späť/Vyvolať" msgid "Background" msgstr "Pozadie" @@ -2779,14 +2648,8 @@ msgstr "Kontrola na pozadí" msgid "Background color" msgstr "Farba pozadia" -msgid "Background delete option" -msgstr "Možnosti odstranovania na pozadí" - -msgid "Background delete speed" -msgstr "Rýchlost odstranovania na pozadí" - msgid "Backup completed." -msgstr "Záloha dokoncená." +msgstr "Záloha dokončená." msgid "Backup failed." msgstr "Zálohovanie zlyhalo." @@ -2794,18 +2657,23 @@ msgstr "Zálohovanie zlyhalo." msgid "Backup is running..." msgstr "Zálohovanie beží..." -#, fuzzy msgid "Backup manager" -msgstr "Správa záloh" +msgstr "Správca zálohovania" msgid "Backup system settings" -msgstr "Zálohovat nastavenia systému" +msgstr "Zálohovať nastavenia systému" + +msgid "Badminton" +msgstr "Bedminton" msgid "Bahamas" -msgstr "" +msgstr "Bahamy" msgid "Bahrain" -msgstr "" +msgstr "Bahrajn" + +msgid "Ballet" +msgstr "Balet" msgid "Band" msgstr "Pásmo" @@ -2814,55 +2682,64 @@ msgid "Bandwidth" msgstr "Šírka pásma" msgid "Bangladesh" -msgstr "" +msgstr "Bangladéš" msgid "Barbados" msgstr "" msgid "Base time" -msgstr "Casová základna" +msgstr "Časová základňa" + +msgid "Baseball" +msgstr "Bejzbal" + +msgid "Basic PID info" +msgstr "Základné údaje o PID" -#, fuzzy msgid "Basic functions" -msgstr "Zoznam funkcií EPG..." +msgstr "Základné funkcie" + +msgid "Basic info" +msgstr "Základné údaje" + +msgid "Basketball" +msgstr "Basketbal" msgid "Basque" msgstr "Baskicky" -msgid "" -"Before sending the command to switch the TV to standby, the receiver tests " -"if all the other devices plugged into TV are in standby. If they are not, " -"the 'sourceactive' command will be sent to the TV instead of the 'standby' " -"command." -msgstr "" +msgid "Before sending the command to switch the TV to standby, the receiver tests if all the other devices plugged into TV are in standby. If they are not, the 'sourceactive' command will be sent to the TV instead of the 'standby' command." +msgstr "Pred odoslaním príkazu na prepnutie televízora do pohotovostného režimu prijímač otestuje, či sú všetky ostatné zariadenia pripojené k televízoru v pohotovostnom režime. Ak nie sú, namiesto príkazu 'standby' sa do televízora odošle príkaz 'sourceactive'." msgid "Begin time" -msgstr "Cas zaciatku" +msgstr "Čas začiatku" + +msgid "Behave like stop-button" +msgstr "Chovať sa ako tlačidlo Stop" msgid "Behavior of 'pause' when paused" -msgstr "Funkcia tlacidla Pauza pocas pauzy" +msgstr "Funkcia tlačidla 'Pauza' počas pauzy" msgid "Behavior of 0 key in PiP-mode" -msgstr "Funkcia tlacidla 0 v režime obraz v obraze" +msgstr "Funkcia tlačidla 0 v režime Obraz v Obraze" msgid "Behavior when a movie is started" -msgstr "Cinnost po spustení filmu" +msgstr "Činnosť po spustení filmu" msgid "Behavior when a movie is stopped" -msgstr "Cinnost po zastavení filmu" +msgstr "Činnosť po zastavení filmu" msgid "Behavior when a movie reaches the end" -msgstr "Cinnost po skoncení filmu" +msgstr "Činnosť po skončení filmu" msgid "Belarus" -msgstr "" +msgstr "Bielorusko" -#, fuzzy msgid "Belgian" -msgstr "Nórcina" +msgstr "Belgicky" msgid "Belgium" -msgstr "" +msgstr "Belgicko" msgid "Belize" msgstr "" @@ -2870,101 +2747,142 @@ msgstr "" msgid "Benin" msgstr "" -msgid "Bermuda" +msgid "Bericht" msgstr "" +msgid "Bermuda" +msgstr "Bermudy" + +msgid "Berufe" +msgstr "Povolania" + +msgid "Beziehung" +msgstr "Vzťah" + msgid "Bhutan" -msgstr "" +msgstr "Bhután" msgid "Big PiP" -msgstr "" +msgstr "Veľký PiP" + +msgid "Bildung" +msgstr "Vzdelávanie" + +msgid "Biografie" +msgstr "Biografia" + +msgid "Biography" +msgstr "Životopis" msgid "Bitrate:" msgstr "Dátový tok:" msgid "Black" -msgstr "Cierna" +msgstr "Čierna" msgid "Black screen" -msgstr "Cierna obrazovka" +msgstr "Čierna obrazovka" msgid "Black screen till locked" -msgstr "Cierna obrazovka po uzamknutí" +msgstr "Čierna obrazovka po uzamknutí" msgid "Blindscan" -msgstr "" +msgstr "Vyhľadávanie naslepo" msgid "Blindscan terrestrial (if possible)" -msgstr "" +msgstr "Pozemné Vyhľadávanie naslepo (ak je to možné)" msgid "Blinking REC" -msgstr "" +msgstr "Blikajúci REC" msgid "Blinking REC Symbol" -msgstr "" +msgstr "Blikajúci REC symbol" msgid "Block noise reduction" -msgstr "Potlacenie blokového šumu" +msgstr "Redukcia potlačovača šumu" msgid "Blue" msgstr "Modrá" -#, fuzzy msgid "Blue button (long)" -msgstr "Tlacidlo OK (dlho)" +msgstr "Modré tlačidlo (dlho)" -#, fuzzy msgid "Blue button (short)" -msgstr "Tlacidlo OK (krátko)" +msgstr "Modré tlačidlo (krátko)" -#, fuzzy msgid "Blue long" -msgstr "Modrá" +msgstr "Modré dlho" msgid "Bolivia (Plurinational State of)" +msgstr "Bolívia" + +msgid "Bollywood" msgstr "" msgid "Bonaire, Sint Eustatius and Saba" -msgstr "" +msgstr "Bonaire, Sint Eustatius a Saba" msgid "Bookmarks" msgstr "Záložky" msgid "Boost blue" -msgstr "Zosilnit modrú" +msgstr "Zosilniť modrú" msgid "Boost green" -msgstr "Zosilnit zelenú" +msgstr "Zosilniť zelenú" -#, fuzzy, python-format +#, python-format +msgid "Boot Device:\t%s%s\n" +msgstr "Zavádzacie zariadenie:\t%s%s\n" + +msgid "Boot Device: \tRecovery Slot\n" +msgstr "Zavádzacie zariadenie: \tSlot na obnovu\n" + +msgid "Boot Logo Identification" +msgstr "Boot Logo Identifikácia" + +#, python-format msgid "Bootloader:\t%s\n" -msgstr "Stream" +msgstr "Zavádzač:\t%s\n" -#, fuzzy msgid "Bootup time" -msgstr "Casová základna" +msgstr "Čas spúšťania" msgid "Bosnia and Herzegovina" -msgstr "" +msgstr "Bosna a Hercegovina" msgid "Botswana" msgstr "" +msgid "Boulevard" +msgstr "Bulvár" + msgid "Bouquet List" -msgstr "Zoznam prehladov" +msgstr "Zoznam prehľadov" msgid "Bouvet Island" -msgstr "" +msgstr "Bouvetov ostrov" + +msgid "BoxInfo" +msgstr "Informácie o boxe" + +msgid "Boxen" +msgstr "Boxer" + +msgid "Boxing" +msgstr "Box" msgid "Brazil" -msgstr "" +msgstr "Brazília" + +msgid "Brief help information for buttons in your current context." +msgstr "Stručné informácie o nápovede pre tlačidlá v aktuálnom kontexte." msgid "Brightness" msgstr "Jas" -#, fuzzy msgid "Brightness (Dimmed)" -msgstr "Jas (normálny režim)" +msgstr "Jas (stlmený režim)" msgid "Brightness (Normal)" msgstr "Jas (normálny režim)" @@ -2973,71 +2891,72 @@ msgid "Brightness (Standby)" msgstr "Jas (pohotovostný režim)" msgid "British Indian Ocean Territory" -msgstr "" +msgstr "Britské teritórium v Indickom oceáne" + +msgid "Broadcasters sometimes prefix event names with 'New: ' or 'Live: '. Choose what to do with these prefixes." +msgstr "Vysielatelia niekedy pred názvy udalostí pridávajú prívlastok 'New: ' alebo 'Live: '. Vyberte si, čo s týmito predponami urobíte." + +msgid "Broadcasters sometimes split long event names into the event description using ... Choose whether to prevent this behaviour." +msgstr "Vysielatelia niekedy rozdeľujú dlhé názvy podujatí do opisu podujatia pomocou ... Vyberte, či chcete tomuto správaniu zabrániť." msgid "Brunei Darussalam" msgstr "" #, python-format msgid "Buffering %d%%" -msgstr "" +msgstr "Vyrovnávanie pamäte %d%%" msgid "Buffers:" msgstr "Zásobníky:" -#, python-format -msgid "Build: %s" -msgstr "Zostavenie: %s" - -#, fuzzy msgid "Bulgaria" -msgstr "Bulharcina" +msgstr "Bulharsko" msgid "Bulgarian" -msgstr "Bulharcina" +msgstr "Bulharsky" msgid "Burkina Faso" msgstr "" msgid "Burn DVD" -msgstr "Napálit DVD" +msgstr "Napáliť DVD" #, python-format msgid "Burn audio track (%s)" -msgstr "Napálit zvukovú stopu (%s)" +msgstr "Napáliť zvukovú stopu (%s)" msgid "Burn existing image to DVD" -msgstr "Napálit existujúci image na DVD" +msgstr "Napáliť existujúci súborový obraz na DVD" msgid "Burn to DVD" -msgstr "Napálit na DVD..." +msgstr "Napáliť na DVD" msgid "Burundi" msgstr "" msgid "Bus: " -msgstr "Zbernica:" +msgstr "Zbernica: " + +msgid "Business & Finance" +msgstr "Podnikanie a Financie" -#, fuzzy msgid "Button Setup" -msgstr "Nastavenia tlacidla" +msgstr "Nastavenie tlačidla" msgid "Button setup" -msgstr "Nastavenia tlacidla" +msgstr "Nastavenia tlačidiel" -#, fuzzy msgid "Button setup for" -msgstr "Nastavenia tlacidla" +msgstr "Nastavenie tlačidla pre" -#, fuzzy msgid "ButtonSetup" -msgstr "Nastavenia tlacidla" +msgstr "Konfigurácia tlačidla" msgid "By Team ViX" -msgstr "Od teamu ViX" +msgstr "Od kolektívu ViX" msgid "Bypass HDMI EDID Check" -msgstr "Obíst kontrolu HDMI EDID" +msgstr "Obísť kontrolu HDMI EDID" msgid "Bytes received:" msgstr "Prijaté bajty:" @@ -3045,14 +2964,18 @@ msgstr "Prijaté bajty:" msgid "Bytes sent:" msgstr "Odoslané bajty:" +msgctxt "Abbreviation of \"Configurable\"" +msgid "C" +msgstr "" + msgid "C-Band" -msgstr "Pásmo C" +msgstr "C-Pásmo" msgid "CCcam Client Info" msgstr "CCcam klient info" msgid "CCcam Config Switcher" -msgstr "CCcam prepínac konfigurácie" +msgstr "CCcam prepínač konfigurácie" msgid "CCcam ECM Info" msgstr "CCcam ECM info" @@ -3060,7 +2983,7 @@ msgstr "CCcam ECM info" msgid "CCcam Info" msgstr "CCcam Info" -#, fuzzy, python-format +#, python-format msgid "" "CCcam Info %s\n" "by AliAbdul %s\n" @@ -3068,18 +2991,18 @@ msgid "" "This screen shows you the status of CCcam." msgstr "" "CCcam Info %s\n" -"by AliAbdul %s\n" +"od AliAbdul %s\n" "\n" -"Tento modul zobrazuje stav CCcam." +"Táto obrazovka zobrazuje stav CCcam." msgid "CCcam Info Config" -msgstr "CCcam Info o konfigurácii" +msgstr "CCcam Info - Konfigurácia" msgid "CCcam Info Setup" -msgstr "CCcam Info o nastavení" +msgstr "CCcam Info - Nastavenie" msgid "CCcam Provider Info" -msgstr "CCcam Info o poskytovatelovi" +msgstr "CCcam Info o poskytovateľovi" msgid "CCcam Remote Info" msgstr "CCcam Info o vzdialených" @@ -3094,47 +3017,56 @@ msgid "CCcam Shares Info" msgstr "CCcam Info o zdielaniach" msgid "CH" -msgstr "CH" +msgstr "" #, python-format msgid "CH%s" msgstr "" msgid "CHANGE BOUQUET" -msgstr "ZMENIT PREHLAD" +msgstr "ZMENIŤ PREHĽAD" + +#, python-format +msgid "CI %s enabled" +msgstr "CI %s povolené" -#, fuzzy msgid "CI (Common Interface) Setup" -msgstr "Common Interface" +msgstr "Nastavenie CI (Common Interface)" msgid "CI assignment" msgstr "Priradenie CI" -#, fuzzy msgid "CI slot: " -msgstr "nenájdené sloty CI" +msgstr "" -#, fuzzy, python-format +msgid "CONTEXT" +msgstr "KONTEXT" + +#, python-format msgid "CPU:\t%s %s %s\n" -msgstr "Procesor: %s" +msgstr "" msgid "CVBS" msgstr "CVBS" msgid "CaID: " -msgstr "CaID: " +msgstr "" msgid "Cable" -msgstr "Kábel" +msgstr "Káblové" msgid "Cable Scan" -msgstr "Prehladat káblový rozvod" +msgstr "Prehľadať káblovku" + +#, python-format +msgid "Cable scan executable utility not found '%s'!" +msgstr "Spustiteľný nástroj na prehľadávanie káblovky nebol nájdený '%s'!" msgid "Cabo Verde" msgstr "" msgid "Cache thumbnails" -msgstr "Uchovat zmenšeniny" +msgstr "Uchovať zmenšeniny" msgid "Cached:" msgstr "V medzipamäti:" @@ -3146,97 +3078,85 @@ msgid "Caid:Srvid" msgstr "" msgid "Calculate" -msgstr "Prepocítat" +msgstr "Prepočítať" msgid "Calculate all positions" -msgstr "Prepocítat všetky pozície" +msgstr "Prepočítať všetky pozície" msgid "Calculation complete" -msgstr "Prepocítanie dokoncené" +msgstr "Prepočítanie dokončené" msgid "Calibrate" -msgstr "Kalibrovat" +msgstr "Kalibrovať" + +msgid "Call-in" +msgstr "Volajte na" msgid "Cambodia" -msgstr "" +msgstr "Kambodža" msgid "Cameroon" -msgstr "" +msgstr "Kamerun" msgid "Can be used for different fps between external subtitles and video." msgstr "Môže byt použitý pre rôzne fps medzi externými titulkami a videom." msgid "Canada" -msgstr "" +msgstr "Kanada" msgid "Cancel" -msgstr "Zrušit" +msgstr "Zrušiť" msgid "Cancel any changed settings and exit" -msgstr "" +msgstr "Zrušiť všetky zmenené nastavenia a ukončiť" msgid "Cancel any changed settings and exit all menus" -msgstr "" +msgstr "Zrušiť všetky zmenené nastavenia a ukončiť všetky ponuky" msgid "Cancel any changes to the currently active skin" -msgstr "" +msgstr "Zrušiť všetky zmeny v aktuálne aktívnom vzhľade" msgid "Cancel any changes to the currently active skin and exit all menus" -msgstr "" +msgstr "Zrušiť všetky zmeny v aktuálne aktívnom vzhľade a ukončiť všetky ponuky" msgid "Cancel any text changes and exit" -msgstr "" +msgstr "Zrušiť všetky zmeny textu a ukončiť" msgid "Cancel save timeshift as movie" -msgstr "Zrušit uloženie casového posunu ako filmu" +msgstr "Zrušiť uloženie časového posunu ako filmu" -#, fuzzy msgid "Cancel the image selection and exit" -msgstr "Volba stanice" +msgstr "Zrušiť výber systémového obrazu a ukončiť" -#, fuzzy msgid "Cancel the image selection and exit all menus" -msgstr "Volba stanice" +msgstr "Zrušiť výber systémového obrazu a ukončiť všetky ponuky" -#, fuzzy msgid "Cancel the selection" -msgstr "Volba stanice" +msgstr "Zrušiť výber" -#, fuzzy msgid "Cancel timer creation / changes" -msgstr "Volba stanice" +msgstr "Zrušiť časovač - vytvorenie / zmeny" msgid "Cancelled upon user request" -msgstr "" - -#, fuzzy -msgid "Cannot delete current image" -msgstr "Súbor sa nedá odstránit" +msgstr "Zrušené na žiadosť užívateľa" msgid "Cannot determine" -msgstr "Nedá sa urcit" +msgstr "Nemožno určiť" msgid "Cannot find any signal ..., aborting !" -msgstr "Nedá sa nájst žiadny signál ..., prerušujem!" +msgstr "Nedá sa nájsť žiadny signál ..., prerušujem!" -#, fuzzy msgid "Cannot move to the trash can" -msgstr "Nedá sa presunút do koša" +msgstr "Nedá sa presunúť do koša" -#, fuzzy -msgid "Cannot reboot to deleted image" -msgstr "Súbor sa nedá odstránit" - -#, fuzzy msgid "Capabilities: " -msgstr "Kapacita:" +msgstr "Schopnosti: " msgid "Capacity: " -msgstr "Kapacita:" +msgstr "Kapacita: " -#, fuzzy msgid "Card info (CCcam-Reader)" -msgstr "Info o karte (cítacka CCcam)" +msgstr "Info o karte (čítačka CCcam)" msgid "Cards:" msgstr "Karty:" @@ -3248,146 +3168,139 @@ msgid "Cards: 0" msgstr "Karty: 0" msgid "Cardserial" -msgstr "Sériové císlo karty" +msgstr "Sériové číslo karty" + +msgid "Cartoon" +msgstr "Kreslený film" + +msgid "Cartoons" +msgstr "Kreslené seriály" -#, fuzzy msgid "Cascade PiP" -msgstr "Aktivovat PiP" +msgstr "Kaskádové PiP" + +msgid "Casting" +msgstr "Obsadenie" msgid "Cayman Islands" -msgstr "" +msgstr "Kajmanské ostrovy" -#, fuzzy msgid "Center DVB subs on this service" -msgstr "Centrovat DVB titulky" +msgstr "Centrovať DVB titulky na tejto stanici" msgid "Center DVB subtitles" -msgstr "Centrovat DVB titulky" +msgstr "Centrovať DVB titulky" msgid "Central African Republic" -msgstr "" +msgstr "Stredoafrická republika" -#, fuzzy msgid "Ch+ button" -msgstr "Tlacidlo" +msgstr "Tlačidlo CH+" -#, fuzzy msgid "Ch- button" -msgstr "Tlacidlo" +msgstr "Tlačidlo CH-" msgid "Chad" -msgstr "" +msgstr "Čad" + +msgid "Challenge" +msgstr "Výzva" -#, fuzzy msgid "Change PIN" -msgstr "Zmenit PIN nastavení" +msgstr "Zmeniť PIN" -#, fuzzy msgid "Change Timer" -msgstr "Zmenit casovac" +msgstr "Zmeniť časovač" msgid "Change bouquets in quickzap" -msgstr "Zmenit prehlady pri rýchlom prepínaní" +msgstr "Zmeniť prehľady pri rýchlom prepínaní" msgid "Change next timer" -msgstr "Zmena další casovac" +msgstr "Zmeniť ďalší časovač" -#, fuzzy msgid "Change recording (add time)" -msgstr "Zmenit nahrávanie (cas ukoncenia)" +msgstr "Zmeniť nahrávanie (pridať čas)" msgid "Change recording (duration)" -msgstr "Zmenit nahrávanie (trvanie)" +msgstr "Zmeniť nahrávanie (trvanie)" -#, fuzzy msgid "Change recording (end time)" -msgstr "Zmenit nahrávanie (cas ukoncenia)" +msgstr "Zmeniť nahrávanie (čas ukončenia)" msgid "Change repeat and delay settings?" -msgstr "Zmenit nastavenia opakovania a oneskorenia?" +msgstr "Zmeniť nastavenia opakovania a oneskorenia?" msgid "Change step size" -msgstr "Zmenit velkost kroku" +msgstr "Zmeniť veľkosť kroku" msgid "Change the Colordepth for UHD" -msgstr "" +msgstr "Zmena farebnej hĺbky pre UHD" msgid "Change the Colorimetry for HDR" -msgstr "" +msgstr "Zmena farebnosti pre HDR" -#, fuzzy msgid "Change the Colorspace from Auto to RGB" -msgstr "" -"Táto volba Vám umožní vybrat, ako sa zobrazí uplynulý cas. Ako + alebo -" +msgstr "Zmena farebného priestoru z Auto na RGB" msgid "Channel" -msgstr "Stanica" +msgstr "Kanál" -#, fuzzy msgid "Channel EPG" -msgstr "Stanica" +msgstr "EPG kanálu" msgid "Channel List" -msgstr "Zotnam staníc" +msgstr "Zoznam kanálov" -#, fuzzy msgid "Channel List Context Menu" -msgstr "Kontextové menu zoznamu staníc" +msgstr "Kontextová ponuka zoznamu kanálov" -#, fuzzy msgid "Channel Name" -msgstr "Stanica" +msgstr "Názov kanálu" -#, fuzzy msgid "Channel Selection" -msgstr "Volba stanice" +msgstr "Výber kanálu" -#, fuzzy msgid "Channel down" -msgstr "Informácie o stanici" +msgstr "Kanál nadol" -#, fuzzy msgid "Channel info" -msgstr "Informácie o stanici" +msgstr "Informácie o kanáli" msgid "Channel list cursor behavior" -msgstr "Prispôsobenie správania kurzoru v zozname staníc" +msgstr "Správanie kurzora v zozname kanálov" msgid "Channel list on mode change" -msgstr "Zoznam staníc pri zmene režimu" +msgstr "Zoznam kanálov pri zmene režimu" msgid "Channel list preview" -msgstr "Náhlad zvolenej stanice" +msgstr "Náhľad zoznamu kanálov" msgid "Channel list service mode*" -msgstr "Servisný režim zoznamu staníc*" +msgstr "Servisný režim zoznamu kanálov*" msgid "Channel list type" -msgstr "Typ zoznamu staníc" +msgstr "Typ zoznamu kanálov" msgid "Channel not in services list" -msgstr "Stanica nie je v zozname staníc" +msgstr "Kanál nie je v zozname staníc" msgid "Channel preview mode" -msgstr "Režim náhladu stanice" +msgstr "Režim náhľadu kanálu" msgid "Channel selection" -msgstr "Volba stanice" +msgstr "Výber kanála" -#, fuzzy msgid "Channel up" -msgstr "Stanica" +msgstr "Kanál nahor" msgid "Channel:" -msgstr "Stanica:" +msgstr "Kanál:" -#, fuzzy msgid "Channelname" -msgstr "Stanica" +msgstr "Názov kanála" -#, fuzzy msgid "Channels" -msgstr "Stanica" +msgstr "Kanály" msgid "Chap." msgstr "Kap." @@ -3399,315 +3312,278 @@ msgid "Chapter:" msgstr "Kapitola:" msgid "Check" -msgstr "Skontrolovat" +msgstr "Skontrolovať" msgid "Check every (hours)" -msgstr "Skontrolovat každých (... hodín)" +msgstr "Skontrolovať každých (hodín)" msgid "Check the internet connection" -msgstr "Skontrolujte pripojenie k internetu" +msgstr "Skontrolovať pripojenie k internetu" msgid "Check the internet connection again" -msgstr "Znovu skontrolujte pripojenie k internetu" +msgstr "Znovu skontrolovať pripojenie k internetu" msgid "Checking Logs..." -msgstr "Kontrolujem systémové záznamy ..." +msgstr "Kontrola protokolov..." msgid "Checking ONID/TSID" -msgstr "" +msgstr "Kontrola ONID/TSID" -#, fuzzy msgid "Checking disk." -msgstr "Kontrolujem zdroje" +msgstr "Kontrola disku." msgid "Checking filesystem..." -msgstr "Kontrolujem systém súborov..." +msgstr "Kontrola súborového systému..." msgid "Checking for Updates..." -msgstr "Hladám aktualizácie..." +msgstr "Kontrola aktualizácií..." msgid "Checking the internet connection" msgstr "Kontrola pripojenia k internetu" -#, fuzzy, python-format +#, python-format msgid "" "Checking tuner %s\n" "DiSEqC port %s for %s" msgstr "" -"Kontrola tuneru %d\n" +"Kontrola tuneru %s\n" "DiSEqC port %s pre %s" -#, fuzzy msgid "Children" -msgstr "Deti/mládež" +msgstr "Deti" msgid "Children/Youth" -msgstr "Deti/mládež" +msgstr "Deti/Mládež" + +msgid "Children/Youth/Education/Science" +msgstr "Deti/Mládež/Vzdelávanie/Veda" -#, fuzzy msgid "Childrens" -msgstr "Deti/mládež" +msgstr "Deti" msgid "Chile" -msgstr "" +msgstr "Čile" msgid "China" -msgstr "" +msgstr "Čína" -#, fuzzy, python-format +#, python-format msgid "Chipset:\t%s\n" -msgstr "Cipset: BCM%s" +msgstr "Čipset:\t%s\n" -#, fuzzy, python-format +#, python-format msgid "Chipset:\tBroadcom %s\n" -msgstr "Cipset: BCM%s" +msgstr "Čipset:\tBroadcom %s\n" -#, fuzzy, python-format +#, python-format msgid "Chipset:\tHiSilicon %s\n" -msgstr "Cipset: BCM%s" +msgstr "Čipset:\tHiSilicon %s\n" -#, fuzzy, python-format +#, python-format msgid "Chipset: %s" -msgstr "Cipset: BCM%s" +msgstr "Čipset: %s" msgid "Choose Bouquet" -msgstr "Zvolte prehlad" +msgstr "Vyberte prehľad" + +msgid "Choose CCcam-Reader" +msgstr "Vyberte čítačku CCcam" msgid "Choose a country scheme for decoding genre information in EPG events." -msgstr "" +msgstr "Výber schémy krajiny na dekódovanie informácií o žánroch v udalostiach EPG." msgid "Choose a country scheme for decoding rating information in EPG events." -msgstr "" +msgstr "Výber schémy krajiny na dekódovanie informácií o ratingu v udalostiach EPG." msgid "Choose a tag for easy finding a recording." msgstr "Vyberte popis pre jednoduchšie nájdenie nahrávky." msgid "Choose between Daily, Weekly, Weekdays or user defined." -msgstr "" -"Vyberte medzi denne, týždenne, v pracovné dni alebo používatelom definované." +msgstr "Vyberte medzi denne, týždenne, v pracovné dni alebo dni definované užívateľom." -msgid "" -"Choose between High Dynamic Range (HDR) or Picture in Picture (PIP). Both " -"are not possible at the same time. A FULL REBOOT is required for it to take " -"effect" -msgstr "" +msgid "Choose between High Dynamic Range (HDR) or Picture in Picture (PIP). Both are not possible at the same time. A FULL REBOOT is required for it to take effect" +msgstr "Vyberte si medzi vysokým dynamickým rozsahom (HDR) alebo obrazom v obraze (PiP). Obe možnosti nie sú možné súčasne. Na to, aby sa to prejavilo, je potrebné ÚPLNĚ REŠTARTOVANIE" -msgid "" -"Choose the display formatting style for dates. 'D' / 'DD' is the date and " -"'M' / 'MM' is the month in digits. ('DD' and 'MM' have leading zeros for " -"single digit values.) The screen display will be based on your choice but " -"can be influenced by the skin." -msgstr "" +msgid "Choose reader" +msgstr "Vyberte čítačku" -msgid "" -"Choose the display formatting style for times. 'H' / 'HH' is the hour for a " -"24 hour clock, 'h' / 'hh' is the hour for a 12 hour clock, 'mm' is the " -"minutes and 'ss' is the seconds. ('HH' and 'hh' have leading zeros for " -"single digit values.) The screen display will be based on your choice but " -"can be influenced by the skin." -msgstr "" +msgid "Choose the display formatting style for dates. 'D' / 'DD' is the date and 'M' / 'MM' is the month in digits. ('DD' and 'MM' have leading zeros for single digit values.) The screen display will be based on your choice but can be influenced by the skin." +msgstr "Vyberte štýl formátovania zobrazenia dátumov. 'D' / 'DD' je dátum a 'M' / 'MM' je mesiac v čísliciach. ('DD' a 'MM' majú úvodné nuly pre jednociferné hodnoty.) Zobrazenie na obrazovke bude založené na vašej voľbe, ale môže byť ovplyvnené vzhľadom." -msgid "" -"Choose the front panel display formatting style for dates. 'D' / 'DD' is the " -"date and 'M' / 'MM' is the month in digits. ('DD' and 'MM' have leading " -"zeros for single digit values.) The screen display will be based on your " -"choice but can be influenced by the skin." -msgstr "" +msgid "Choose the display formatting style for times. 'H' / 'HH' is the hour for a 24 hour clock, 'h' / 'hh' is the hour for a 12 hour clock, 'mm' is the minutes and 'ss' is the seconds. ('HH' and 'hh' have leading zeros for single digit values.) The screen display will be based on your choice but can be influenced by the skin." +msgstr "Vyberte štýl formátovania zobrazenia časov. 'H' / 'HH' je hodina pre 24-hodinové hodiny, 'h' / 'hh' je hodina pre 12-hodinové hodiny, mm sú minúty a ss sú sekundy. ('HH' a 'hh' majú úvodné nuly pre jednociferné hodnoty.) Zobrazenie na obrazovke bude založené na vašej voľbe, ale môže byť ovplyvnené vzhľadom." -msgid "" -"Choose the front panel display formatting style for times. 'H' / 'HH' is the " -"hour for a 24 hour clock, 'h' / 'hh' is the hour for a 12 hour clock, 'mm' " -"is the minutes. ('HH' and 'hh' have leading zeros for single digit values.) " -"The front panel display will be based on your choice but can be influenced " -"any applicable skin." +msgid "Choose the front panel display formatting style for dates. 'D' / 'DD' is the date and 'M' / 'MM' is the month in digits. ('DD' and 'MM' have leading zeros for single digit values.) The screen display will be based on your choice but can be influenced by the skin." +msgstr "Vyberte štýl formátovania zobrazenia dátumov na prednom paneli. 'D' / 'DD' je dátum a 'M' / 'MM' je mesiac v čísliciach. ('DD' a 'MM' majú úvodné nuly pre jednociferné hodnoty.) Zobrazenie na obrazovke bude založené na vašej voľbe, ale môže byť ovplyvnené vzhľadom." + +msgid "Choose the front panel display formatting style for times. 'H' / 'HH' is the hour for a 24 hour clock, 'h' / 'hh' is the hour for a 12 hour clock, 'mm' is the minutes. ('HH' and 'hh' have leading zeros for single digit values.) The front panel display will be based on your choice but can be influenced any applicable skin." msgstr "" +"Vyberte štýl formátovania zobrazenia časov na prednom paneli. 'H' / 'HH' je hodina pre 24-hodinové hodiny, 'h' / 'hh' je hodina pre 12-hodinové hodiny, 'mm' sú minúty. ('HH' a 'hh' majú úvodné nuly pre jednociferné hodnoty.) Zobrazenie na prednom paneli bude založené na vašej voľbe, ale môže byť ovplyvnené akoukoľvek " +"použiteľnou vzhľadom." msgid "Choose the layout. Single channel, Graphics Grid EPG or Text Grid EPG." -msgstr "" +msgstr "Vyberte si rozloženie. Jeden kanál, grafická mriežka EPG alebo textová mriežka EPG." -#, fuzzy msgid "Choose the location for crash and debug logs folder." -msgstr "Vyberte umiestnenie pre denníky pádu a ladenia systému." +msgstr "Vyberte umiestnenie adresára pre protokoly pádu a ladenia." -#, fuzzy -msgid "" -"Choose the location where the EPG data will be saved when the %s %s is shut " -"down. The location must be available at boot time." -msgstr "" -"Vyberte umiestnenie, do ktorého sa budú ukladat dáta, pri vypnutí %s %s. " -"Umiestnenie musí byt k dispozícii pri štarte." +msgid "Choose the location where the EPG data will be saved when the %s %s is shut down. The location must be available at boot time." +msgstr "Vyberte umiestnenie, kam sa uložia údaje EPG po vypnutí %s %s. Umiestnenie musí byť dostupné v čase spustenia systému." -msgid "" -"Choose the name of the file that holds the EPG data when the %s %s is shut " -"down. This can be handy to differentiate between several boxes." -msgstr "" -"Vyberte názov súboru obsahujúci dáta EPG, ked je %s %s vypnutý - užitocné " -"pre odlíšenie medzi viacerými prijímacmi." +msgid "Choose the name of the file that holds the EPG data when the %s %s is shut down. This can be handy to differentiate between several boxes." +msgstr "Vyberte názov súboru, v ktorom sú uložené údaje EPG pri vypnutí %s %s. Môže to byť užitočné na rozlíšenie viacerých príjímačov." -msgid "" -"Choose the style of the second infobar. The 'Standard' view normally " -"includes technical data. The 'Simple' view shows minimal technical data." -msgstr "" +msgid "Choose the option to correct invalid EPG data." +msgstr "Vyberte možnosť opraviť neplatné údaje EPG." + +msgid "Choose the order in which items are displayed in Help windows" +msgstr "Výber poradia zobrazenia položiek v oknách Pomocníka" + +msgid "Choose the style of the second infobar. The 'Standard' view normally includes technical data. The 'Simple' view shows minimal technical data." +msgstr "Vyberte štýl druhej informačnej lišty. Zobrazenie 'Štandardné' zvyčajne obsahuje technické údaje. V zobrazení 'Jednoduché' (Simple) sa zobrazuje minimum technických údajov." msgid "Choose time interval to which the graphics will be rounded off." -msgstr "Vyberte casový interval, ku ktorému grafika vykoná cyklus." +msgstr "Vyberte časový interval, ku ktorému grafika vykoná cyklus." msgid "Choose what channel to select when the EPG opens." -msgstr "" +msgstr "Vyberte, ktorý kanál sa má vybrať po otvorení EPG." msgid "Choose what will be displayed when the 'EPG' button is pressed." -msgstr "" +msgstr "Vyberte, čo sa zobrazí po stlačení tlačidla 'EPG'." msgid "Choose what will be displayed when the 'INFO' button is pressed." -msgstr "" +msgstr "Vyberte, čo sa zobrazí po stlačení tlačidla 'INFO'." msgid "Choose what you want the '0' button to do when PIP is active." -msgstr "Vyberte funkciu tlacidla \"0\" pri aktívnom PiP." +msgstr "Vyberte funkciu tlačidla \"0\" pri aktívnom PiP." -#, fuzzy msgid "Choose whether AAC sound tracks should be transcoded." -msgstr "Vyberte, ci sa má multi kanálový zvuk zmiešavat do sterea (downmix)." +msgstr "Vyberte, či sa majú transkódovať zvukové stopy AAC." -#, fuzzy msgid "Choose whether WMA Pro sound tracks should be downmixed." -msgstr "Vyberte, ci sa má multi kanálový zvuk zmiešavat do sterea (downmix)." +msgstr "Vyberte, či sa majú zvukové stopy WMA Pro downmixovať." -#, fuzzy -msgid "" -"Choose whether multi channel aac sound tracks should be downmixed to stereo." -msgstr "Vyberte, ci sa má multi kanálový zvuk zmiešavat do sterea (downmix)." +msgid "Choose whether multi channel aac sound tracks should be downmixed to stereo." +msgstr "Vyberte, či sa má multi kanálový zvuk aac zmiešavať do sterea (downmix)." -#, fuzzy -msgid "" -"Choose whether multi channel aac+ sound tracks should be downmixed to stereo." -msgstr "Vyberte, ci sa má multi kanálový zvuk zmiešavat do sterea (downmix)." +msgid "Choose whether multi channel aac+ sound tracks should be downmixed to stereo." +msgstr "Vyberte, či sa má multi kanálový zvuk aac+ zmiešavať do sterea (downmix)." -#, fuzzy -msgid "" -"Choose whether multi channel ac3 sound tracks should be downmixed to stereo." -msgstr "Vyberte, ci sa má multi kanálový zvuk zmiešavat do sterea (downmix)." +msgid "Choose whether multi channel ac3 sound tracks should be downmixed to stereo." +msgstr "Vyberte, či sa má multi kanálový zvuk ac3 zmiešavať do sterea (downmix)." -#, fuzzy -msgid "" -"Choose whether multi channel dts sound tracks should be downmixed to stereo." -msgstr "Vyberte, ci sa má multi kanálový zvuk zmiešavat do sterea (downmix)." +msgid "Choose whether multi channel dts sound tracks should be downmixed to stereo." +msgstr "Vyberte, či sa má multi kanálový zvuk dts zmiešavať do sterea (downmix)." -#, fuzzy msgid "Choose whether multi channel sound tracks should be output as PCM." -msgstr "Vyberte, ci sa má multi kanálový zvuk zmiešavat do sterea (downmix)." +msgstr "Vyberte, či sa majú viackanálové zvukové stopy vysielať ako PCM." msgid "Choose whether or not to show an icon when a motorised dish is moving." -msgstr "Vyberte ci sa má zobrazit ikona pocas pohybu motora." +msgstr "Vyberte, či sa má alebo nemá zobrazovať ikona, keď sa pohybuje motorizovaná parabola." -msgid "" -"Choose whether to scan a single transponder, one satellite or multiple " -"satellites." -msgstr "" +msgid "Choose whether to scan a single transponder, one satellite or multiple satellites." +msgstr "Vyberte, či chcete prehľadávať jeden transpondér, jeden satelit alebo viac satelitov." -msgid "" -"Choose whether to scan for free services only or whether to include paid/" -"encrypted services too." -msgstr "" +msgid "Choose whether to scan for free services only or whether to include paid/encrypted services too." +msgstr "Vyberte, či chcete vyhľadávať len bezplatné stanice, alebo či chcete zahrnúť aj platené/kódované stanice." -msgid "" -"Choose which level of menu/settings to display. 'Expert' level shows all " -"items." -msgstr "" -"Vyberte aká úroven menu/nastavenia sa má zobrazit. \"Expert\" úroven " -"zobrazuje všetky položky." +msgid "Choose which level of menu/settings to display. 'Expert' level shows all items." +msgstr "Vyberte, ktorá úroveň ponuky/nastavení sa má zobraziť. Úroveň 'Expert' zobrazuje všetky položky." msgid "Choose which tuner to configure." -msgstr "Zvolte, ktorý tuner chcete konfigurovat." +msgstr "Vyberte, ktorý tuner chcete konfigurovať." msgid "Chose between record and ZAP." -msgstr "Vybrat medzi záznamom a prepnutím." +msgstr "Vybrať medzi nahrávaním a prepnutím." msgid "Christmas Island" +msgstr "Vianočný ostrov" + +msgid "Chronik" msgstr "" -#, fuzzy +msgid "Cinema" +msgstr "Kino" + msgid "Circular LNB" -msgstr "Kruhová lavá" +msgstr "Kruhové LNB" msgid "Circular left" -msgstr "Kruhová lavá" +msgstr "Kruhová ľavá" msgid "Circular right" msgstr "Kruhová pravá" +msgid "Classical Music" +msgstr "Klasická hudba" + msgid "Clean network trash cans" -msgstr "Vyprázdnit sietové odpadkové koše" +msgstr "Vyprázdniť sieťové odpadkové koše" msgid "Cleaning Trashes" -msgstr "Vyprázdnenie košov" +msgstr "Vyčistenie košov" msgid "Cleanup" -msgstr "Vycistit" +msgstr "Čistenie" msgid "Clear" -msgstr "Vycistit" - -msgid "Clear HDMI-CEC fixed address" -msgstr "" +msgstr "Vyčistiť" msgid "Clear before scan" -msgstr "Vymazat pred skenovaním" - -msgid "Clear fixed" -msgstr "Vymazat fixné" +msgstr "Vyčistiť pred vyhľadávaním" msgid "Clear log" -msgstr "Vymazat log" +msgstr "Vyčistiť protokol" -#, fuzzy msgid "Clear marks" -msgstr "vymazat zoznam prehrávania" +msgstr "Vyčistiť značky" msgid "Clear playlist" -msgstr "vymazat zoznam prehrávania" +msgstr "Vyčistiť zoznam prehrávania" #, python-format -msgid "Client Info ( %s-Version: %s )" -msgstr "" +msgid "Client %s-%s" +msgstr "Klient %s-%s" -#, fuzzy msgid "Client Mode setup" -msgstr "inic. modul" +msgstr "Nastavenie režimu klienta" -#, fuzzy msgid "Client mode" -msgstr "inic. modul" +msgstr "Režim klienta" msgid "Clients" msgstr "Klienti" msgid "Clone TV screen to LCD" -msgstr "" +msgstr "Klonovanie TV obrazovky na LCD" msgid "Close" -msgstr "Zatvorit" +msgstr "Zatvoriť" msgid "Close PiP on exit" -msgstr "Zatvorit PiP pri stlacení exit" +msgstr "Zatvoriť PiP pri stlačení exit" -#, fuzzy msgid "Close screen" -msgstr "Celá obrazovka" +msgstr "Zavrieť obrazovku" msgid "Close title selection" -msgstr "Zatvorit výber titulkov" +msgstr "Zatvoriť výber titulkov" msgid "Cocos (Keeling) Islands" -msgstr "" +msgstr "Kokosové (Keelingove) ostrovy" msgid "Code R. LP-HP & Guard Int" -msgstr "" +msgstr "Kódový pomer LP-HP a Ochranný interval" msgid "Code rate HP" -msgstr "Rýchlost HP" +msgstr "Kódový pomer HP" msgid "Code rate LP" -msgstr "Rýchlost LP" +msgstr "Kódový pomer LP" + +#, python-format +msgid "Codec & lang%s" +msgstr "Kodek a jazyk%s" msgid "Collection name" msgstr "Názov zostavy" @@ -3715,386 +3591,283 @@ msgstr "Názov zostavy" msgid "Collection settings" msgstr "Nastavenia zostavy" -#, fuzzy msgid "Colombia" -msgstr "Formát farieb" +msgstr "Kolumbia" msgid "Color format" -msgstr "Formát farieb" +msgstr "Farebný formát" msgid "Color space" -msgstr "Farebný priestor:" +msgstr "Farebný priestor" + +msgid "Combat Sports (without own category)" +msgstr "Bojové športy (bez samostatnej kategórie)" msgid "Combined" -msgstr "" +msgstr "Kombinované" msgid "Combo" msgstr "" -#, fuzzy msgid "Comedy" -msgstr "komédia" +msgstr "Komédia" + +msgid "Comic" +msgstr "Komiks" msgid "Command order" msgstr "Poradie príkazov" -msgid "" -"Command the TV to switch to the correct HDMI input when zap timers activate." -msgstr "" +msgid "Command the TV to switch to the correct HDMI input when zap timers activate." +msgstr "Pri aktivácii časovača zapnutia prikáže televízoru prepnúť na správny vstup HDMI." -#, fuzzy msgid "Command to run" -msgstr "Spustit príkaz" +msgstr "Spustenie príkazu" msgid "Command type" msgstr "Typ príkazu" msgid "Common Interface" -msgstr "Common Interface" +msgstr "" -#, fuzzy msgid "Common Menu Actions" -msgstr "Komunikácia" +msgstr "Bežné akcie ponuky" -#, fuzzy msgid "Common Setup Actions" -msgstr "Komunikácia" +msgstr "Bežné akcie nastavenia" -#, fuzzy msgid "Common interface assignment" msgstr "Priradenie CI" -#, fuzzy msgid "Common options" -msgstr "Rozšírené volby" +msgstr "Bežné možnosti" msgid "Communication" msgstr "Komunikácia" msgid "Comoros" -msgstr "" +msgstr "Komory" msgid "Complete" msgstr "Kompletné" msgid "Complex (allows mixing audio tracks and aspects)" -msgstr "Komplexné (umožnuje miešanie rôznych zvukových a obrazových formátov)" +msgstr "Komplexné (umožňuje miešanie rôznych zvukových stôp a aspektov)" msgid "Composition of the recording filenames" msgstr "Zloženie názvov súborov nahrávok" +msgid "Computer" +msgstr "Počítač" + msgid "Config Scan Details" -msgstr "" +msgstr "Podrobnosti o konfigurácii prehľadávania" #, python-format msgid "Configfile %s saved." -msgstr "Konfiguracný súbor %s uložený." +msgstr "Konfiguračný súbor %s uložený." msgid "Configuration mode" -msgstr "Konfiguracný režim" +msgstr "Konfiguračný režim" #, python-format msgid "Configuration mode: %s" -msgstr "Možnosti nastavenia: %s" +msgstr "Konfiguračný režim: %s" -#, fuzzy msgid "Configuration..." -msgstr "Konfiguracný režim" +msgstr "Konfigurovanie..." -#, fuzzy msgid "Configure ATSC" -msgstr "Konfigurujem" +msgstr "Nastavenie ATSC" -#, fuzzy msgid "Configure DVB-C" -msgstr "Konfigurujem" +msgstr "Nastavenie DVB-C" -#, fuzzy msgid "Configure DVB-S" -msgstr "Konfigurujem" +msgstr "Nastavenie DVB-S" -#, fuzzy msgid "Configure DVB-T" -msgstr "Konfigurujem" +msgstr "Nastavenie DVB-T" + +msgid "Configure Vu Multiboot interface" +msgstr "Nastavenie Vu Multiboot rozhrania" -#, fuzzy msgid "Configure alignment of service events." -msgstr "Nastavte názvy serverov" +msgstr "Nastavenie zarovnania udalostí stanice." -#, fuzzy msgid "Configure alignment of the service names." -msgstr "Konfigurácia šírky názvu stanice." +msgstr "Nastavenie zarovnania názvov sltanice." -#, fuzzy msgid "Configure alignment of the service numbers." -msgstr "Nastavenie horizontálnej pozície titulkov." +msgstr "Nastavenie zarovnania čísel služieb." -#, fuzzy msgid "Configure alignment of the timeline date." -msgstr "Nastavenie horizontálnej pozície titulkov." +msgstr "Nastavenie zarovnania dátumu na časovej osi." -msgid "" -"Configure an additional delay to improve external subtitle synchronisation." -msgstr "" -"Nakonfigurovat dalšie oneskorenie na zlepšenie synchronizácie externých " -"titulkov." +msgid "Configure an additional delay to improve external subtitle synchronisation." +msgstr "Nastavenie dodatočného oneskorenia na zlepšenie synchronizácie externých titulkov." msgid "Configure an additional delay to improve subtitle synchronisation." -msgstr "" -"Nakonfigurovat dalšie oneskorenie na zlepšenie synchronizácie titulkov." +msgstr "Nastavenie dodatočného oneskorenia na zlepšenie synchronizácie titulkov." -msgid "" -"Configure duration of inactivity before the hard disk drive goes to standby" -msgstr "" -"Nastavenie doby necinnosti pred prepnutím pevného disku do pohotovostného " -"režimu" +msgid "Configure duration of inactivity before the hard disk drive goes to standby" +msgstr "Nastavenie trvania nečinnosti pred prechodom jednotky pevného disku do pohotovostného režimu" -msgid "" -"Configure for how many minutes finished events should remain visible in the " -"EPG. Useful when you need information about an event which has just " -"finished, or has been delayed." -msgstr "" -"Kolko minút majú ostat v EPG viditelné ukoncené relácie. Užitocné, ak " -"potrebujete informácie o relácii, ktorá práve skoncila, alebo bola odložená." +msgid "Configure for how many minutes finished events should remain visible in the EPG. Useful when you need information about an event which has just finished, or has been delayed." +msgstr "Nastavenie toho, koľko minút majú zostať dokončené udalosti viditeľné v EPG. Užitočné, ak potrebujete informácie o práve skončenej udalosti alebo o udalosti, ktorá bola odložená." msgid "Configure how recording filenames are constructed." -msgstr "Nastavenie, ako budú zostavené názvy súborov nahrávok." +msgstr "Nastavenie spôsobu vytvárania názvov nahrávacích súborov." -#, fuzzy -msgid "" -"Configure if and how crypto icons will be shown in the channel selection " -"list." -msgstr "Nastavit, ci sa majú zobrazovat picony v zozname staníc." +msgid "Configure if and how crypto icons will be shown in the channel selection list." +msgstr "Nastavenie toho, či a ako sa bude zobrazovať ikona kódovania v zozname výberu kanálov." msgid "Configure if and how service type icons will be shown." -msgstr "" -"Nastavit, ci a ako sa majú zobrazovat ikony druhu stanice v zozname staníc." +msgstr "Nastavenie, či a ako sa bude zobrazovať ikona typu služby." -#, fuzzy -msgid "" -"Configure if and how the record indicator will be shown in the channel " -"selection list." -msgstr "Nastavit, ci sa majú zobrazovat picony v zozname staníc." +msgid "Configure if and how the record indicator will be shown in the channel selection list." +msgstr "Nastavenie, či a ako sa bude zobrazovať indikátor nahrávania v zozname výberu kanálov." -#, fuzzy -msgid "" -"Configure if and how wide the service name column will be shown in the " -"channel selection list." -msgstr "" -"Nastavit, ci a ako sa majú zobrazovat ikony druhu stanice v zozname staníc." +msgid "Configure if and how wide the service name column will be shown in the channel selection list." +msgstr "Nastavenie, či a aký bude široký zobrazený stĺpec s názvom služby v zozname výberu kanálov." -#, fuzzy msgid "Configure if behind the subtitles a background is shown." -msgstr "Nastavit pocet riadkov, ktoré sa zobrazia." +msgstr "Nastavenie, či sa za titulkami zobrazí pozadie." msgid "Configure if picons will be shown in the service list." -msgstr "Nastavit, ci sa majú zobrazovat picony v zozname staníc." +msgstr "Nastavenie, či sa budú v zozname služieb zobrazovať piktogramy." -#, fuzzy msgid "Configure if picons will be shown in the timer list." -msgstr "Nastavit, ci sa majú zobrazovat picony v zozname staníc." +msgstr "Nastavenie, či sa v zozname časovača budú zobrazovať piktogramy." -#, fuzzy -msgid "" -"Configure if service picons will be shown in the channel selection list." -msgstr "Nastavit, ci sa majú zobrazovat picony v zozname staníc." +msgid "Configure if service picons will be shown in the channel selection list." +msgstr "Nastavenie, či sa budú v zozname výberu kanálov zobrazovať piktogramy stanice." -msgid "" -"Configure if the subtitle should switch between normal, italic, bold and " -"bolditalic" -msgstr "" +msgid "Configure if the subtitle should switch between normal, italic, bold and bolditalic" +msgstr "Nastavenie, či sa majú titulky prepínať medzi normálnym písmom, kurzívou, tučným písmom a tučnou kurzívou" msgid "Configure interface" -msgstr "Nakonfigurujte rozhranie" +msgstr "Nastavenie rozhrania" msgid "Configure nameservers" -msgstr "Nastavte názvy serverov" - -msgid "Configure on which devices the background delete option should be used." -msgstr "Nastavit, na ktorých zariadeniach má byt použité mazanie na pozadí." +msgstr "Nastavenie názvu serverov" msgid "Configure the DiSEqC mode for this LNB." -msgstr "Nastavenie DiSEqC módu pre toto LNB." +msgstr "Nastavenie DiSEqC režimu pre tento LNB." msgid "Configure the IP address." -msgstr "Nastavte IP adresu." +msgstr "Nastavenie IP adresy." msgid "Configure the amount of time that will be presented." -msgstr "Nastavit množstvo casu, ktorý bude predložený." +msgstr "Nastavenie čas, ktorý sa bude zobrazovať." -msgid "" -"Configure the behavior of the 'pause' key when movie playback is already " -"paused." -msgstr "" -"Nastavenie správania tlacidla 'pauza', ked je prehrávanie filmu už " -"pozastavené." +msgid "Configure the behavior of the 'pause' key when movie playback is already paused." +msgstr "Nastavenie správania tlačidla 'pauza', ked je prehrávanie filmu už pozastavené." msgid "Configure the behavior when movie playback is manually stopped." -msgstr "Cinnost po manuálnom zastavení filmu." +msgstr "Nastavenie činnosti po ručnom zastavení filmu." msgid "Configure the behavior when movie playback is started." -msgstr "Cinnost po spustení filmu." +msgstr "Nastavenie činnosti po spustení filmu." -msgid "" -"Configure the behavior when reaching the end of a movie, during movie " -"playback." -msgstr "Cinnost po dosiahnutí konca filmu, pocas prehrávania." +msgid "Configure the behavior when reaching the end of a movie, during movie playback." +msgstr "Nastavenie činnosti po dosiahnutí konca filmu, počas prehrávania." -msgid "" -"Configure the border width of the subtitles. The dark border makes the " -"subtitles easier to read on a light background." -msgstr "" -"Nastavenie šírky rámceka titulkov. Tmavý rámcek ulahcuje cítanie titulkov na " -"svetlom pozadí." +msgid "Configure the border width of the subtitles. The dark border makes the subtitles easier to read on a light background." +msgstr "Nastavenie šírky okraja titulkov. Tmavý okraj uľahčuje čítanie titulkov na svetlom pozadí." -#, fuzzy -msgid "" -"Configure the brightness level of the front panel display for dimmed " -"operation." -msgstr "" -"Nastavenie úrovne jasu displeja predného panelu pre normálnu prevádzku." +msgid "Configure the brightness level of the front panel display for dimmed operation." +msgstr "Nastavenie úrovne jasu displeja predného panelu pre stlmenú prevádzku." -msgid "" -"Configure the brightness level of the front panel display for normal " -"operation." -msgstr "" -"Nastavenie úrovne jasu displeja predného panelu pre normálnu prevádzku." +msgid "Configure the brightness level of the front panel display for normal operation." +msgstr "Nastavenie úrovne jasu displeja predného panelu pre normálnu prevádzku." msgid "Configure the brightness level of the front panel display for standby." -msgstr "Nastavenie jasu predného panela pocas pohotovostného režimu." +msgstr "Nastavenie úrovne jasu displeja predného panelu počas pohotovostného režimu." -msgid "" -"Configure the color of the external subtitles, alternative (normal in white, " -"italic in yellow, bold in cyan, underscore in green), white or yellow." -msgstr "" -"Nastavit farbu externých titulkov, alternatívy (normálne bielou farbou, " -"kurzíva žltou farbou , tucným písmom azúrová, podciarknutia zelenou), biela " -"alebo žltá." +msgid "Configure the color of the external subtitles, alternative (normal in white, italic in yellow, bold in cyan, underscore in green), white or yellow." +msgstr "Nastavenie farby externých titulkov, alternatívne (normálne bielou farbou, kurzíva žltou farbou, tučné písmo azúrovou, podčiarknutie zelenou), biele alebo žlté." msgid "Configure the color of the teletext subtitles." msgstr "Nastavenie farby teletextových titulkov." msgid "Configure the contrast level of the front panel display." -msgstr "Nastavenie kontrastu predného panelu prijímaca." +msgstr "Nastavenie úrovne kontrastu displeja predného panelu." -msgid "" -"Configure the cursor behavior in the channel selection list. When opening " -"the channel selection list you can remain on the current service or already " -"select up/down and you are able to revert the B+/B- buttons." -msgstr "" -"Konfigurovat správanie kurzora v zozname výberu stanice. Pri otvorení " -"zoznamu staníc môžete zostat na súcasnej stanici, alebo priamo prejst hore/" -"dole a môžete prehodit B+/B- tlacidlá." +msgid "Configure the cursor behavior in the channel selection list. When opening the channel selection list you can remain on the current service or already select up/down and you are able to revert the B+/B- buttons." +msgstr "Nastavenie správania kurzora v zozname výberu kanálov. Pri otvorení zoznamu výberu kanálov môžete zostať na súčasnej stanici, alebo priamo vyberať nahor/nadol a môžete prehodiť P+/P- tlačidlá." msgid "Configure the duration (in minutes) for the screensaver." -msgstr "Nastavenie dlžky v minútach pre šetric obrazovky." +msgstr "Nastavenie trvania (v minútach) pre šetrič obrazovky." msgid "Configure the first audio language (highest priority)." -msgstr "Nastavenie primárnej jazykovej audio stopy (najvyššia priorita)." +msgstr "Nastavenie prvého jazyka zvuku (najvyššia priorita)." msgid "Configure the first subtitle language (highest priority)." -msgstr "Nastavenie primárnej jazykovej stopy titulkov (najvyššia priorita)." +msgstr "Nastavenie prvého jazyka titulkov (najvyššia priorita)." msgid "Configure the font size of the subtitles." -msgstr "Nastavenie velkosti titulkov." +msgstr "Nastavenie veľkosti písma titulkov." -msgid "" -"Configure the font size relative to skin size, so 1 increases by 1 point " -"size, and -1 decreases by 1 point size." -msgstr "" -"Nastavit velkost písma v pomere k velkosti grafickej témy, 1 zväcšuje " -"velkost o 1 bod, -1 zmenšuje velkost o 1 bod." +msgid "Configure the font size relative to skin size, so 1 increases by 1 point size, and -1 decreases by 1 point size." +msgstr "Nastavenie veľkosti písma v pomere k veľkosti vzhľadu, 1 zväčšuje veľkosť o 1 bod, -1 zmenšuje veľkosť o 1 bod." msgid "Configure the fourth audio language." -msgstr "Štvrtý jazyk audio stopy." +msgstr "Nastavenie štvrtého jazyka zvuku." msgid "Configure the fourth subtitle language." -msgstr "Štvrtý jazyk titulkov." +msgstr "Nastavenie štvrtého jazyka titulkov." msgid "Configure the function of the < > buttons." -msgstr "Nastavit funkciu tlacidiel < >." +msgstr "Nastavenie funkcie tlačidiel < >." msgid "Configure the gateway." -msgstr "Konfigurácia brány." +msgstr "Nastavenie brány." msgid "Configure the horizontal alignment of the subtitles." -msgstr "Nastavenie horizontálnej pozície titulkov." +msgstr "Nastavenie horizontálneho zarovnania titulkov." -#, fuzzy msgid "Configure the infobar fading speed" -msgstr "Nastavit rýchlost spomalene." +msgstr "Nastavenie rýchlosti blednutia informačnej lišty" -msgid "" -"Configure the initial fast forward speed. When you press the fast forward " -"button, winding will start at this speed." -msgstr "" -"Nastavit pociatocnú rýchlost prevíjania vpred. Ked stlacíte tlacidlo " -"prevíjania, prevíjanie zacne touto rýchlostou." +msgid "Configure the initial fast forward speed. When you press the fast forward button, winding will start at this speed." +msgstr "Nastavenie počiatočnej rýchlosti prevíjania vpred. Keď stlačíte tlačidlo previnúť vpred, prevíjanie začne touto rýchlosťou." -msgid "" -"Configure the initial rewind speed. When you press the rewind button, " -"rewinding will start at this speed." -msgstr "" -"Nastavit pociatocnú rýchlost prevíjania vzad. Ked stlacíte tlacidlo previnút " -"vzad, prevíjanie zacne touto rýchlostou." +msgid "Configure the initial rewind speed. When you press the rewind button, rewinding will start at this speed." +msgstr "Nastavenie počiatočnej rýchlosti prevíjania vzad. Keď stlačíte tlačidlo previnúť vzad, prevíjanie začne touto rýchlosťou." msgid "Configure the latitude of your location." -msgstr "Konfigurácia zemepisnej šírky vašej polohy." +msgstr "Nastavenie zemepisnej šírky vašej polohy." msgid "Configure the longitude of your location." -msgstr "Konfigurácia zemepisnej dlžky vašej polohy." +msgstr "Nastavenie zemepisnej dĺžky vašej polohy." -msgid "" -"Configure the minimum amount of disk space to be available for recordings. " -"When the amount of space drops below this value, deleted items will be " -"removed from the trash can." -msgstr "" -"Nastavit minimálne množstvo miesta na disku k dispozícii pre nahrávky. Ak " -"množstvo miesta klesne pod túto hodnotu, odstránené položky budú odstránené " -"z koša." +msgid "Configure the minimum amount of disk space to be available for recordings. When the amount of space drops below this value, deleted items will be removed from the trash can." +msgstr "Nastavenie minimálneho priestoru miesta na disku k dispozícii pre nahrávky. Ak množstvo miesta klesne pod túto hodnotu, odstránené položky budú odstránené z koša." -msgid "" -"Configure the minimum width before showing the 'i' icon, '0' is equal to not " -"showing the icon at all." -msgstr "" +msgid "Configure the minimum width before showing the 'i' icon, '0' is equal to not showing the icon at all." +msgstr "Nastavenie minimálnej šírky pred zobrazením ikony 'i', '0' znamená nezobrazenie ikony vôbec." msgid "Configure the nameserver (DNS)." -msgstr "Nastavte DNS server." +msgstr "Nastavenie menotvorného serveru (DNS)." msgid "Configure the netmask." -msgstr "Nakonfigurujte masku siete." +msgstr "Nastavenie masky siete." -#, fuzzy -msgid "" -"Configure the number of days after which items are automatically removed " -"from the trash can.\n" -"A setting of 0 disables this." -msgstr "Po kolkých dnoch sa obsah koša automaticky odstráni." +msgid "Configure the number of days after which items are automatically removed from the trash can. A setting of 0 disables this." +msgstr "Nastavenie počtu dní, po ktorých sa položky automaticky odstránia z koša. Nastavenie 0 túto funkciu vypína." -msgid "" -"Configure the number of days old timers are kept before they are " -"automatically removed from the timer list." -msgstr "" -"Nastavit pocet dní, pocas ktorých sú staré casovace uchované pred ich " -"automatickým odstránením zo zoznamu casovacov." +msgid "Configure the number of days old timers are kept before they are automatically removed from the timer list." +msgstr "Nastavenie počtu dní, počas ktorých sa staré časovače uchovávajú pred ich automatickým odstránením zo zoznamu časovačov." -#, fuzzy -msgid "" -"Configure the number of days old timers' log details are kept before they're " -"automatically removed." -msgstr "" -"Nastavit pocet dní, pocas ktorých sú staré casovace uchované pred ich " -"automatickým odstránením zo zoznamu casovacov." +msgid "Configure the number of days old timers' log details are kept before they're automatically removed." +msgstr "Nastavenie počtu dní, počas ktorých sa majú uchovávať údaje protokolov starých časovačov pred ich automatickým odstránením." msgid "Configure the number of rows shown." -msgstr "Nastavit pocet riadkov, ktoré sa zobrazia." +msgstr "Nastavenie počtu zobrazených riadkov." -msgid "" -"Configure the offline decoding delay (in milliseconds). The configured delay " -"is observed at each control word parity change." -msgstr "" -"Nastavenie oneskorenia (v milisekundách) pre dekódovanie v režime offline. " -"Nastavené oneskorenie je použité pri každej zmene parity kontrolného slova." +msgid "Configure the offline decoding delay (in milliseconds). The configured delay is observed at each control word parity change." +msgstr "Nastavenie oneskorenia (v milisekundách) pre dekódovanie v režime offline. Nastavené oneskorenie je použité pri každej zmene parity kontrolného slova." msgid "Configure the possible fast forward speeds." msgstr "Nastavenie možných rýchlostí prevíjania vpred." @@ -4103,202 +3876,151 @@ msgid "Configure the possible rewind speeds." msgstr "Nastavenie možných rýchlostí prevíjania vzad." msgid "Configure the primary EPG language." -msgstr "Primárny jazyk EPG." +msgstr "Nastavenie hlavného jazyka EPG." -msgid "" -"Configure the refresh rate of the screen. Multi means refresh rate depends " -"on the source 24/50/60Hz" -msgstr "" +msgid "Configure the refresh rate of the screen. Multi means refresh rate depends on the source 24/50/60Hz" +msgstr "Nastavenie obnovovacej frekvencie obrazovky. Multi znamená, že obnovovacia frekvencia závisí od zdroja 24/50/60Hz" msgid "Configure the second audio language." -msgstr "Sekundárny jazyk audio stopy." +msgstr "Nastavenie druhého jazyka zvuku." msgid "Configure the second subtitle language." -msgstr "Sekundárny jazyk titulkov." +msgstr "Nastavenie druhého jazyka titulkov." msgid "Configure the secondary EPG language." -msgstr "Sekunárny jazyk EPG." +msgstr "Nastavenie záložného jazyka EPG." msgid "Configure the skip time interval for the 1 and 3 buttons." -msgstr "Nastavit casový interval skoku pre tlacidlá 1 a 3." +msgstr "Nastavenie časového intervalu skoku pre tlačidlá 1 a 3." msgid "Configure the skip time interval for the 4 and 6 buttons." -msgstr "Nastavit casový interval skoku pre tlacidlá 4 a 6." +msgstr "Nastavenie časového intervalu skoku pre tlačidlá 4 a 6." msgid "Configure the skip time interval for the 7 and 9 buttons." -msgstr "Nastavit casový interval skoku pre tlacidlá 7 a 9." +msgstr "Nastavenie časového intervalu skoku pre tlačidlá 7 a 9." msgid "Configure the slow motion speeds." -msgstr "Nastavit rýchlost spomalene." +msgstr "Nastavenie rýchlosti spomaleného pohybu." -msgid "" -"Configure the source of the frontend data as shown on the infobars. " -"'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." -msgstr "" - -msgid "" -"Configure the speed of the background deletion process. Lower speed will " -"consume less hard disk drive performance." -msgstr "" -"Nastavit rýchlost procesu mazania na pozadí. Nižšia rýchlost zaberie menej z " -"výkonu pevného disku." +msgid "Configure the source of the frontend data as shown on the infobars. 'Settings' is as stored on the settings. 'Tuner' is as reported by the tuner." +msgstr "Nastavenie zdroja údajov tuneru tak, ako sú zobrazované na informačných lištách. 'Nastavenia' sú také, ako sú uložené v súboroch. 'Tuner' sú také, aké ich nahlasuje tuner." msgid "Configure the subtitle delay when timing information is not available." -msgstr "" -"Konfigurácia oneskorenia titulkov ak nie je dostupná informácia o casovaní." +msgstr "Nastavenie oneskorenia titulkov ak nie je dostupná informácia o časovaní." msgid "Configure the third audio language." -msgstr "Terciárny jazyk audio stopy." +msgstr "Nastavenie tretieho jazyka zvuku." msgid "Configure the third subtitle language." -msgstr "Terciárny jazyk titulkov." +msgstr "Nastavenie tretieho jazyka titulkov." -msgid "" -"Configure the transparency of the black background of graphical DVB " -"subtitles." -msgstr "Konfigurácia priehladnosti cierneho pozadia grafických DVB titulkov." +msgid "Configure the transparency of the black background of graphical DVB subtitles." +msgstr "Nastavenie priehľadnosti čierneho pozadia grafických DVB titulkov." msgid "Configure the tuner mode." -msgstr "Konfigurácia režimu tunera." +msgstr "Nastavenie režimu tunera." -msgid "" -"Configure the vertical position of the subtitles, measured from the bottom " -"of the screen." -msgstr "" -"Konfigurácia vertikálnej pozície titulkov, meraná od spodnej casti obrazovky." +msgid "Configure the vertical position of the subtitles, measured from the bottom of the screen." +msgstr "Nastavenie vertikálnej pozície titulkov, meraná od spodnej časti obrazovky." msgid "Configure the width allocated to the picon." -msgstr "Konfigurácia šírky pridelenej picone." +msgstr "Nastavenie šírky pridelenej piktogramu." msgid "Configure the width allocated to the service name." -msgstr "Konfigurácia šírky názvu stanice." +msgstr "Nastavenie šírky pridelenej názvu stanice." -msgid "" -"Configure this tuner using simple or advanced options, or loop it through to " -"another tuner, or copy a configuration from another tuner, or disable it." -msgstr "" +msgid "Configure this tuner using simple or advanced options, or loop it through to another tuner, or copy a configuration from another tuner, or disable it." +msgstr "Nastavenie tohto tuneru môžete nakonfigurovať pomocou jednoduchých alebo rozšírených možností alebo ho prepojiť s iným tunerom, skopírovať konfiguráciu z iného tunera alebo ho vypnúť." msgid "Configure to show the channel names, picons, or both in the EPG." -msgstr "Nastavuje zobrazenie názvu staníc, picon, alebo oboch v EPG." +msgstr "Nastavenie zobrazenia názvov kanála , piktogramov, alebo oboch v EPG." -msgid "" -"Configure whether (and for how long) a second infobar will be shown when OK " -"is pressed twice. The second infobar contains additional information about " -"the current channel." -msgstr "" -"Konfigurovat, ci (a ako dlho) sa zobrazí druhý informacný panel, ked " -"stlacíte OK dvakrát. Druhý informacný panel obsahuje dalšie informácie o " -"aktuálnom kanáli." +msgid "Configure whether (and for how long) a second infobar will be shown when OK is pressed twice. The second infobar contains additional information about the current channel." +msgstr "Nastavenie, či (a ako dlho) sa zobrazí druhá informačná lišta, ked stlačíte OK dvakrát. Druhá informačná lišta obsahuje ďalšie informácie o aktuálnom kanáli." msgid "Configure whether or not an rotor position will be displayed on infobar" -msgstr "" +msgstr "Nastavenie zobrazenia alebo nezobrazenia polohy motora na informačnej lište" -#, fuzzy msgid "Configure whether service picons will be shown in number zap." -msgstr "" -"Nastavit, ci a ako sa majú zobrazovat ikony druhu stanice v zozname staníc." +msgstr "Nastavenie, či sa bude zobrazovať piktogram staníc v číselnom prepínaní." msgid "Configure which color format should be used on the SCART output." -msgstr "Nastavit aký farebný formát sa použije na výstupe SCART." +msgstr "Nastavenie farebného formátu použitého na výstupe SCART." -#, fuzzy -msgid "" -"Configure which tuner for recordings will be preferred, when more than one " -"tuner is available." -msgstr "" -"Konfigurovat, aký typ tunera bude uprednostnený , ak je dostupná rovnaká " -"stanica na rôznych tuneroch. Vyberte \"bez priority\", aby sa otestovala " -"každá alternatíva nezávisle na type tuneru." +msgid "Configure which tuner for recordings will be preferred, when more than one tuner is available." +msgstr "Nastavenie, ktorý tuner bude uprednostnený pre nahrávania, ak je dostupný viac ako jeden tuner." -msgid "" -"Configure which tuner type will be preferred, when the same service is " -"available on different types of tuners." -msgstr "" -"Konfigurovat, aký typ tunera bude uprednostnený , ak je dostupná rovnaká " -"stanica na rôznych tuneroch. Vyberte \"bez priority\", aby sa otestovala " -"každá alternatíva nezávisle na type tuneru." +msgid "Configure which tuner type will be preferred, when the same service is available on different types of tuners." +msgstr "Nastavenie, aký typ tunera bude uprednostnený, ak je dostupná rovnaká stanica na rôznych typoch tunerov." -msgid "" -"Configure which tuner will be preferred, when more than one tuner is " -"available. If set to 'auto' the system will give priority to the tuner " -"having the lowest number of channels/satellites." -msgstr "" -"Konfigurovat, ktorý tuner uprednostnený, pokial je k dispozícii viac ako " -"jeden tuner. Ak nastavené na \"auto\", systém uprednostní tuner s najnižším " -"poctom kanálov/satelitov." +msgid "Configure which tuner will be preferred, when more than one tuner is available. If set to 'auto' the system will give priority to the tuner having the lowest number of channels/satellites." +msgstr "Nastavenie, ktorý tuner bude uprednostnený, ak je k dispozícii viac ako jeden tuner. Ak je nastavené na 'auto', systém uprednostní tuner s najnižším počtom kanálov/satelitov." msgid "Configure your NTP server." msgstr "Nastavenie adresy NTP servera." msgid "Configure your internal LAN" -msgstr "Nakonfigurujte internú LAN" +msgstr "Nastavenie vašej internej siete LAN" msgid "Configure your network again" -msgstr "Znova nakonfigurujte siet" +msgstr "Opakované nastavenie vašej siete" msgid "Configure your network settings, and press OK to start the scan" -msgstr "Nakonfigurujte siet, a stlacte OK pre spustenie vyhladávania" +msgstr "Nastavenie nastavení siete, a stlačením OK sa spustí prehľadávanie" msgid "Configure your wireless LAN again" -msgstr "Znova nakonfigurujte bezdrôtovú siet" +msgstr "Opkakované nastavenie vašej bezdrôtovej siete" msgid "Configures which video output connector will be used." -msgstr "Volba video výstupu. " +msgstr "Nastavenie ktorý obrazový výstup sa bude používať." msgid "Configuring" -msgstr "Konfigurujem" +msgstr "Konfigurácia" msgid "Conflicting timer" -msgstr "Casovanie sa prekrýva" +msgstr "Konfliktný časovač" msgid "Congo" -msgstr "" +msgstr "Kongo" msgid "Congo (Democratic Republic of the)" -msgstr "" +msgstr "Konžská demokratická republika" msgid "Connect" -msgstr "Pripojit" +msgstr "Pripojiť" msgid "Connect to a wireless network" -msgstr "Pripojit k bezdrôtovej sieti" +msgstr "Pripojiť k bezdrôtovej sieti" -#, fuzzy msgid "Connected" -msgstr "Pripojené!" +msgstr "Pripojené" msgid "Connected clients" -msgstr "Pripojení klienti" +msgstr "Pripojený klienti" -#, fuzzy msgid "Connected satellites" -msgstr "Pripojení klienti" +msgstr "Pripojené satelity" msgid "Connected to" -msgstr "Pripojené k " +msgstr "Pripojené k" msgid "Connected transcoding, limit - no PiP!" -msgstr "" +msgstr "Pripojené transkódovanie, limit - žiadne PiP!" msgid "Connected: " -msgstr "Pripojené k:" +msgstr "Pripojené: " -msgid "" -"Connection using the supplied FTP parameters failed. Please recheck the " -"details and try again." -msgstr "" +msgid "Connection using the supplied FTP parameters failed. Please recheck the details and try again." +msgstr "Pripojenie pomocou zadaných parametrov FTP zlyhalo. Prosím, skontrolujte údaje znovu a skúste to znova." -#, fuzzy msgid "Constellation & FFT mode" -msgstr "Zostava" +msgstr "Konštelácia a režim FFT" msgid "Consult your SCR device spec sheet for this information." -msgstr "" +msgstr "Tieto informácie nájdete v technickom liste zariadenia SCR." -msgid "" -"Consult your motor's spec sheet for this information, or leave the default " -"setting." -msgstr "" +msgid "Consult your motor's spec sheet for this information, or leave the default setting." +msgstr "Tieto informácie nájdete v technickom liste motora alebo ponechajte predvolené nastavenie." msgid "Content" msgstr "Obsah" @@ -4306,205 +4028,217 @@ msgstr "Obsah" msgid "Content does not fit on DVD!" msgstr "Obsah sa nezmestí na DVD!" -#, fuzzy msgid "Context" -msgstr "Obsah" +msgstr "Kontext" msgid "Continue" -msgstr "Pokracovat" +msgstr "Pokračovať" msgid "Continue playback" -msgstr "Pokracovat v prehaávaní" +msgstr "Pokračovať v prehrávaní" msgid "Continue playing" -msgstr "Pokracovat v prehrávaní" +msgstr "Pokračovať v hraní" msgid "Continues" -msgstr "Pokracuje" +msgstr "Pokračuje" msgid "Continues play (loop)" -msgstr "Opakovane prehrávat v slucke" +msgstr "Pokračuje v prehrávaní (v slučke)" msgid "Contrast" msgstr "Kontrast" msgid "Control LED can be turned on or off here." -msgstr "" +msgstr "Kontrolka LED sa tu dá zapnúť alebo vypnúť." -#, fuzzy -msgid "" -"Control how finished timers are shown in the timer list. If set to hide, " -"disabled timers will still be shown" -msgstr "Kde budú umiestnené ukoncené casovace v zozname casovacov." +msgid "Control how finished timers are shown in the timer list. If set to hide, disabled timers will still be shown" +msgstr "Ovládanie spôsobu zobrazenia dokončených časovačov v zozname časovačov. Ak je nastavená možnosť Skryť, vypnuté časovače sa budú zobrazovať aj naďalej" msgid "Converting ext3 to ext4..." msgstr "Konvertujem ext3 na ext4..." msgid "Cook Islands" -msgstr "" +msgstr "Cookove ostrovy" + +msgid "Cooking" +msgstr "Varenie" msgid "Copy" -msgstr "Kopírovat" +msgstr "Kopírovať" -#, fuzzy msgid "Copy to bouquets" -msgstr "skopírovat do prehladov" +msgstr "Kopírovať do prehľadov" msgid "Copying files" msgstr "Kopírovanie súborov" +msgid "Core dumps are helpful for developers in case of a FATAL SIGNAL crash in the C++ code. Typical core dump size is 110 MB so adjust maximum space used and choose proper location." +msgstr "Výpisy jadra sú pre vývojárov užitočné v prípade havárie FATAL SIGNAL v C++ kóde. Typická veľkosť výpisu jadra je 110 MB, takže prispôsobte maximálnu veľkosť použitého priestoru a vyberte správne umiestnenie." + +msgid "Correct invalid EPG data" +msgstr "Oprava nesprávnych údajov EPG" + msgid "Costa Rica" -msgstr "" +msgstr "Kostarika" msgid "Cote d'Ivoire" -msgstr "" +msgstr "Pobrežie Slonoviny" msgid "Could not find installed channel list." -msgstr "Nemôžem nájst nainštalovaný zoznam staníc." +msgstr "Nepodarilo sa nájsť zoznam nainštalovaných kanálov." msgid "Could not load medium! No disc inserted?" -msgstr "Nemožno nacítat médium! Nie je vložený disk?" +msgstr "Nepodarilo sa načítať médium! Nie je vložený žiadny disk?" -#, fuzzy msgid "Could not open picture in picture" -msgstr "Nedá sa otvorit obraz v obraze" +msgstr "Nedá sa otvoriť obraz v obraze" #, python-format msgid "Could not open the file %s!" -msgstr "Nedá sa otvorit súbor %s!" +msgstr "Nedá sa otvoriť súbor %s!" -#, fuzzy, python-format +#, python-format msgid "Could not record due to a conflicting timer %s" -msgstr "Nedalo sa nahrávat - prekrýva sa casovac %s" +msgstr "Nepodarilo sa nahrávať kvôli konfliktnému časovaču %s" -#, fuzzy, python-format +#, python-format msgid "Could not record due to an invalid service %s" -msgstr "Nedalo sa nahrat - neplatná stanicu %s" +msgstr "Nepodarilo sa nahrávať z dôvodu neplatnej služby %s" #, python-format msgid "Could not save configfile %s!" -msgstr "Konfiguracný súbor %s sa nepodarilo uložit!" +msgstr "Konfiguračný súbor %s sa nepodarilo uložiť!" -#, fuzzy, python-format +#, python-format msgid "" "Couldn't copy %d items.\n" "%s" -msgstr "Nedá sa otvorit súbor %s!" +msgstr "" +"Nepodarilo sa skopírovať %d položiek.\n" +"%s" #, python-format msgid "" "Couldn't copy '%s'.\n" "%s" msgstr "" +"Nepodarilo sa skopírovať '%s'.\n" +"%s" -#, fuzzy, python-format +#, python-format msgid "Couldn't delete %d items." -msgstr "Odstránené položky" +msgstr "Nepodarilo sa odstrániť %d položiek." #, python-format msgid "Couldn't delete '%s'." -msgstr "" +msgstr "Nepodarilo sa odstrániť '%s'." #, python-format -msgid "" -"Couldn't move %d items to the trash can. Do you want to delete them instead?" -msgstr "" +msgid "Couldn't move %d items to the trash can. Do you want to delete them instead?" +msgstr "Nepodarilo sa presunúť %d položiek do koša. Chcete ich namiesto toho vymazať?" -#, fuzzy, python-format +#, python-format msgid "" "Couldn't move %d items.\n" "%s" -msgstr "Nedá sa otvorit súbor %s!" +msgstr "" +"Nepodarilo sa presunúť %d položiek.\n" +"%s" #, python-format msgid "Couldn't move '%s' to the trash can. Do you want to delete it instead?" -msgstr "" +msgstr "Nepodarilo sa presunúť '%s' do koša. Chcete ho namiesto toho vymazať?" -#, fuzzy, python-format +#, python-format msgid "" "Couldn't move '%s'.\n" "%s" -msgstr "Aktuálne zariadenie:" +msgstr "" +"Nepodarilo sa presunúť '%s'.\n" +"%s" -#, fuzzy msgid "Country" -msgstr "Prípojný bod" +msgstr "Krajina" -#, fuzzy msgid "Country for EPG event genre information" -msgstr "Informácie správcu softvéru" +msgstr "Krajina pre informácie o žánri udalosti EPG" msgid "Country for EPG event rating information" -msgstr "" +msgstr "Krajina pre informácie o hodnotení udalostí EPG" msgid "Cover dashed flickering line for this service" -msgstr "" +msgstr "Zakryte prerušovanú blikajúcu čiaru pre túto službu" msgid "Crash Logs" -msgstr "Protokoly kritických chý" +msgstr "Protokoly kritických chýb" msgid "Create DVD-ISO" -msgstr "Vytvorit disk DVD-ISO" +msgstr "Vytvoriť disk DVD-ISO" -#, fuzzy msgid "Create Timer" -msgstr "Zmazat casovac" +msgstr "Vytvoriť časovač" -#, fuzzy msgid "Create Zap Timer" -msgstr "Zmenit casovac" +msgstr "Vytvoriť časovač prepnutia" msgid "Create directory" -msgstr "Vytvorit adresár" +msgstr "Vytvoriť adresár" -#, fuzzy msgid "Create separate radio userbouquet" -msgstr "Nahrat nepriradené prehlady" +msgstr "Vytvorenie samostatného rádia prehľadu" msgid "Creating AP and SC Files" msgstr "Vytváranie AP a SC súborov" msgid "Creating Hardlink to Timeshift file failed!" -msgstr "Vytvorenie hardlinku pre súbor casového posunu zlyhalo!" +msgstr "Vytvárenie hardlinku pre súbor časového posunu zlyhalo!" #, python-format msgid "Creating directory %s failed." -msgstr "Nepodarilo sa vytvorit adresár %s." +msgstr "Vytváranie adresára %s zlyhalo." -#, fuzzy msgid "Creating filesystem." -msgstr "Vytváram systém súborov" +msgstr "Vytváranie súborového systému." -#, fuzzy msgid "Creating partition." -msgstr "Vytváram partíciu" +msgstr "Vytváranie partície." + +msgid "Cricket" +msgstr "Kriket" + +msgid "Crime" +msgstr "Krimi" -#, fuzzy msgid "Croatia" -msgstr "Chorvátcina" +msgstr "Chorvátsko" msgid "Croatian" -msgstr "Chorvátcina" +msgstr "Chorvátsky" msgid "Cron Manager" msgstr "Správca plánovaných úloh" -#, fuzzy +msgid "Cron Manager Setup" +msgstr "Nastavenie správcu plánovaných úloh" + msgid "Cron Timers" -msgstr "Casovace Cron" +msgstr "Časovače plánovaných úloh" msgid "Cuba" -msgstr "" +msgstr "Kuba" + +msgid "Cult" +msgstr "Kult" + +msgid "Culture" +msgstr "Kultúra" msgid "Curacao" msgstr "" -#, fuzzy msgid "Current Affairs" -msgstr "Spravodajstvo/Publicistika (všeobecne)" - -msgid "Current CEC address" -msgstr "Súcasná CEC adresa" +msgstr "Aktuálne udalosti" msgid "Current Event:" msgstr "Aktuálna relácia:" @@ -4513,31 +4247,29 @@ msgid "Current Status:" msgstr "Aktuálny stav:" msgid "Current device: " -msgstr "Aktuálne zariadenie:" +msgstr "Aktuálne zariadenie: " -#, fuzzy, python-format +#, python-format msgid "Current mode: %s \n" -msgstr "Aktuálne zariadenie:" +msgstr "Aktuálny režim: %s \n" -#, fuzzy msgid "Current rotor position: " -msgstr "Aktuálna verzia:" +msgstr "Aktuálna pozícia motora: " msgid "Current settings:" msgstr "Aktuálne nastavenia:" -#, fuzzy msgid "Current status:" -msgstr "Aktuálny stav:" +msgstr "Súčasný stav:" msgid "Current time" -msgstr "Aktuálny cas" +msgstr "Aktuálny čas" msgid "Current transponder" msgstr "Aktuálny transpondér" msgid "Current value: " -msgstr "Aktuálna hodnota:" +msgstr "Aktuálna hodnota: " msgid "Current version:" msgstr "Aktuálna verzia:" @@ -4545,22 +4277,20 @@ msgstr "Aktuálna verzia:" msgid "Custom" msgstr "Vlastné" -#, fuzzy msgid "Custom skip time for '1'/'3' buttons" -msgstr "Vlastný casový interval skoku pre tlacidlá \"1\"/\"3\"." +msgstr "Vlastný časový interval skoku pre tlačidlá '1'/'3'" msgid "Custom skip time for '4'/'6' buttons" -msgstr "Vlastný casový interval skoku pre tlacidlá \"4\"/\"6\"." +msgstr "Vlastný časový interval skoku pre tlačidlá '4'/'6'" msgid "Custom skip time for '7'/'9' buttons" -msgstr "Vlastný casový interval skoku pre tlacidlá \"7\"/\"9\"." +msgstr "Vlastný časový interval skoku pre tlačidlá '7'/'9'" msgid "Customize" -msgstr "Prispôsobit" +msgstr "Prispôsobiť" -#, fuzzy msgid "Customize settings" -msgstr "Nastavenia titulkov" +msgstr "Prispôsobiť nastavenia" msgid "Cut" msgstr "Strih" @@ -4572,50 +4302,56 @@ msgid "Cutlist editor..." msgstr "Editor strihov..." msgid "Cycle through infobar displays" -msgstr "" +msgstr "Cyklus zobrazenia informačnej lišty" + +msgid "Cycling" +msgstr "Cyklistika" msgid "Cyprus" msgstr "" msgid "Czech" -msgstr "Ceština" +msgstr "Česky" -#, fuzzy msgid "Czechia" -msgstr "Ceština" +msgstr "Česko" msgid "DAC" -msgstr "DAC" +msgstr "" + +msgid "DD-MM-YYYY" +msgstr "" msgid "DHCP" -msgstr "DHCP" +msgstr "" -#, fuzzy msgid "" "DHCP\n" "\n" -"This test checks whether your LAN adapter is set up for automatic IP address " -"configuration with DHCP.\n" +"This test checks whether your LAN adapter is set up for automatic IP address configuration with DHCP.\n" "\n" "If you get a \"disabled\" message:\n" "- Your LAN adapter is configured for manual IP setup.\n" -"- Verify that you have entered correct IP informations in the adapter setup " -"dialog.\n" +"- Verify that you have entered correct IP informations in the adapter setup dialog.\n" "\n" "If you get an \"enabled\" message:\n" "- Verify that you have a configured and working DHCP server in your network." msgstr "" -"Tento test overuje, ci máte sietovú kartu nastavenú na automatické " -"nastavenie IP adresy z DHCP.\n" +"DHCP\n" +"\n" +"Tento test overuje, či máte sieťovú kartu nastavenú na automatické nastavenie IP adresy z DHCP.\n" "Ak dostanete hlásenie „vypnuté“:\n" -"- máte sietovú kartu nakonfigurovanú na rucné nastavenie IP adresy\n" -"- skontrolujte, ci ste zadali správne IP údaje v nastavovacom dialógu " -"karty.\n" +"- máte sieťovú kartu nakonfigurovanú na ručné nastavenie IP adresy\n" +"- skontrolujte, či ste zadali správne IP údaje v nastavovacom dialógu karty.\n" +"\n" "Ak dostanete hlásenie „zapnuté“:\n" -"- skontrolujte, ci máte v sieti nakonfigurovaný a fungujúci server DHCP." +"- skontrolujte, či máte v sieti nakonfigurovaný a fungujúci server DHCP." + +msgid "DIY" +msgstr "" msgid "DLNA support" -msgstr "podpora DLNA" +msgstr "Podpora DLNA" msgid "DMM advanced" msgstr "Rozšírené DMM" @@ -4623,12 +4359,14 @@ msgstr "Rozšírené DMM" msgid "DMM normal" msgstr "Normálne DMM" +msgid "DOWN" +msgstr "NADOL" + msgid "DTS" msgstr "" -#, fuzzy msgid "DTS downmix" -msgstr "AAC downmix" +msgstr "" msgid "DTS-HD HR/DTS-HD MA/DTS" msgstr "" @@ -4637,47 +4375,49 @@ msgid "DUAL LAYER DVD" msgstr "DVOJVRSTVOVÉ DVD" msgid "DVB CI Delay" -msgstr "" +msgstr "DVB CI Oneskorenie" + +msgid "DVB Subtitles PID & lang" +msgstr "DVB titulky PID a jazyk" msgid "DVB subtitle black transparency" -msgstr "cierna priehladnost DVB titulkov" +msgstr "Čierna priehľadnosť DVB titulkov" msgid "DVB type" -msgstr "" +msgstr "Typ DVB" msgid "DVB-C" -msgstr "DVB-C" +msgstr "" -#, fuzzy msgid "DVB-C ANNEX B" -msgstr "DVB-C ANNEX C" +msgstr "" msgid "DVB-C ANNEX C" -msgstr "DVB-C ANNEX C" +msgstr "" msgid "DVB-S" -msgstr "DVB-S" +msgstr "" msgid "DVB-S2" -msgstr "DVB-S2" +msgstr "" msgid "DVB-T" -msgstr "DVB-T" +msgstr "" msgid "DVB-T2" -msgstr "DVB-T2" +msgstr "" msgid "DVD data format" -msgstr "Formát dát na DVD" +msgstr "Formát dát DVD" msgid "DVD file browser" -msgstr "Prehliadac súborov DVD" +msgstr "Prehliadač súborov DVD" msgid "DVD media toolbox" msgstr "Nástroje pre DVD" msgid "DVD player" -msgstr "Prehrávac DVD" +msgstr "Prehrávač DVD" msgid "DVD titlelist" msgstr "Zoznam titulov na DVD" @@ -4685,411 +4425,410 @@ msgstr "Zoznam titulov na DVD" msgid "Daily" msgstr "Denne" +msgid "Dance" +msgstr "Tanec" + msgid "Danish" -msgstr "Dáncina" +msgstr "Dánsky" + +msgid "Darts" +msgstr "Šípky" msgid "Date" msgstr "Dátum" -#, fuzzy msgid "Date first" -msgstr "Informácie o programe" +msgstr "Dátum prvého" + +msgid "Date format" +msgstr "Formát dátumu" msgid "Date style" -msgstr "" +msgstr "Štýl dátumu" + +msgid "Dating" +msgstr "Zoznámenie" msgid "Day D Mon" -msgstr "" +msgstr "Deň D Mes" msgid "Day D-Mon" -msgstr "" +msgstr "Deň D-Mes" msgid "Day D/M" -msgstr "" +msgstr "Deň D/M" msgid "Day D/MM" -msgstr "" +msgstr "Deň D/MM" msgid "Day DD Mon" -msgstr "" +msgstr "Deň DD Mes" msgid "Day DD-Mon" -msgstr "" +msgstr "Deň DD-Mes" -#, fuzzy msgid "Day DD/M" -msgstr "Prehrat DVD" +msgstr "Deň DD/M" msgid "Day DD/MM" -msgstr "" +msgstr "Deň DD/MM" msgid "Day M/D" -msgstr "" +msgstr "Deň M/D" msgid "Day M/DD" -msgstr "" +msgstr "Deň M/DD" msgid "Day MM/D" -msgstr "" +msgstr "Deň MM/D" msgid "Day MM/DD" -msgstr "" +msgstr "Deň MM/DD" msgid "Day Mon D" -msgstr "" +msgstr "Deň Mes D" msgid "Day Mon DD" -msgstr "" +msgstr "Deň Mes DD" msgid "Day Mon-D" -msgstr "" +msgstr "Deň Mes-D" msgid "Day Mon-DD" -msgstr "" +msgstr "Deň Mes-DD" msgid "Dayname D Month Year" -msgstr "" +msgstr "Menovka D Mesiac Rok" msgid "Dayname D-Month-Year" -msgstr "" +msgstr "Menovka D-Mesiac Rok" msgid "Dayname D. Month Year" -msgstr "" +msgstr "Menovka D. Mesiac Rok" msgid "Dayname D.M.Year" -msgstr "" +msgstr "Menovka D.M.Rok" msgid "Dayname D.MM.Year" -msgstr "" +msgstr "Menovka D.MM.Rok" msgid "Dayname D/M/Year" -msgstr "" +msgstr "Menovka D/M/Rok" msgid "Dayname D/MM/Year" -msgstr "" +msgstr "Menovka D/MM/Rok" msgid "Dayname DD Month Year" -msgstr "" +msgstr "Menovka DD Mesiac Rok" msgid "Dayname DD-Month-Year" -msgstr "" +msgstr "Menovka DD-Mesiac-Rok" msgid "Dayname DD. Month Year" -msgstr "" +msgstr "Menovka DD. Mesiac Rok" msgid "Dayname DD.M.Year" -msgstr "" +msgstr "Menovka DD.M.Rok" msgid "Dayname DD.MM.Year" -msgstr "" +msgstr "Menovka DD.MM.Rok" msgid "Dayname DD/M/Year" -msgstr "" +msgstr "Menovka DD/M/Rok" msgid "Dayname DD/MM/Year" -msgstr "" +msgstr "Menovka DD/MM/Rok" msgid "Dayname M/D/Year" -msgstr "" +msgstr "Menovka M/D/Rok" msgid "Dayname M/DD/Year" -msgstr "" +msgstr "Menovka M/DD/Rok" msgid "Dayname MM/D/Year" -msgstr "" +msgstr "Menovka MM/D/Rok" msgid "Dayname MM/DD/Year" -msgstr "" +msgstr "Menovka MM/DD/Rok" msgid "Dayname Month D Year" -msgstr "" +msgstr "Menovka Mesiac D Rok" msgid "Dayname Month DD Year" -msgstr "" +msgstr "Menovka Mesiac DD Rok" msgid "Dayname Month-D-Year" -msgstr "" +msgstr "Menovka Mesiac-D-Rok" msgid "Dayname Month-DD-Year" -msgstr "" +msgstr "Menovka Mesiac-DD-Rok" msgid "Dayname Year Month D" -msgstr "" +msgstr "Menovka Rok Mesiac D" msgid "Dayname Year Month DD" -msgstr "" +msgstr "Menovka Rok Mesiac DD" msgid "Dayname Year-Month-D" -msgstr "" +msgstr "Menovka Rok-Mesiac-D" msgid "Dayname Year-Month-DD" -msgstr "" +msgstr "Menovka Rok-Mesiac-DD" msgid "Dayname Year/M/D" -msgstr "" +msgstr "Menovka Rok/M/D" msgid "Dayname Year/M/DD" -msgstr "" +msgstr "Menovka Rok/M/DD" msgid "Dayname Year/MM/D" -msgstr "" +msgstr "Menovka Rok/MM/D" msgid "Dayname Year/MM/DD" -msgstr "" +msgstr "Menovka Rok/MM/DD" -#, fuzzy msgid "De-select" -msgstr "Zrušit výber" +msgstr "Zrušiť výber" + +msgid "Debate" +msgstr "Diskusia" + +msgid "Debug" +msgstr "Ladenie systému (Debug)" msgid "Debug Logs" -msgstr "Vyberte umiestnenie pre denníky ladenia systému." +msgstr "Protokoly ladenia systému" msgid "Debug log time format *" -msgstr "" +msgstr "Formát času protokolu ladenia systému *" -#, fuzzy msgid "Debug to file" -msgstr "Zmazat súbor" +msgstr "Ladenie systému do súboru" -#, fuzzy msgid "Debug+ Logs" -msgstr "Vyberte umiestnenie pre denníky ladenia systému." +msgstr "Protokoly podrobnejšieho ladenia systému" -#, fuzzy msgid "Decrement end time" -msgstr "Nastavenie casu ukoncenia" +msgstr "Skrátenie času ukončenia" -#, fuzzy msgid "Decrement start time" -msgstr "Zaciatok" +msgstr "Skrátenie času spustenia" msgid "Deep Standby" -msgstr "Vypnút" +msgstr "Vyčkávací režim" -#, fuzzy msgid "Deep Standby LED" -msgstr "Vypnút" +msgstr "LED vyčkávacieho režimu" msgid "Deep standby" -msgstr "Hlboký spánok" +msgstr "Vyčkávací režim" msgid "Default" -msgstr "Predvolené" +msgstr "Predvolene" msgid "Default movie location" msgstr "Predvolené umiestnenie filmov" #, python-format msgid "Default port is '%d'. Change if required." -msgstr "" +msgstr "Predvolený port je '%d'. V prípade potreby ho zmeňte." msgid "Default recording type" -msgstr "Typ nahrávky" +msgstr "Predvolený typ nahrávky" msgid "Default settings" msgstr "Predvolené nastavenia" -#, fuzzy, python-format +#, python-format msgid "Default: '%s'." -msgstr "Predvolené" +msgstr "Predvolené: '%s'." msgid "Defaults" msgstr "Predvolené" +msgid "Define additional delay in milliseconds before start of http(s) streams, e.g. to connect a remote tuner, you use a complex system of DiSEqC." +msgstr "Definujte dodatočné oneskorenie v milisekundách pred spustením streamov http(s), napr. na pripojenie vzdialeného tunera, používate komplexný systém DiSEqC." + msgid "Delay after change voltage before switch command" -msgstr "" +msgstr "Oneskorenie po zmene napätia pred príkazom na prepnutie" msgid "Delay after continuous tone disable before diseqc" -msgstr "" +msgstr "Oneskorenie po vypnutí nepretržitého tónu pred DiSEqC" msgid "Delay after diseqc peripherial poweron command" -msgstr "" +msgstr "Oneskorenie po príkaze zapnutia periférneho DiSEqC" msgid "Delay after diseqc reset command" -msgstr "" +msgstr "Oneskorenie po príkaze reset DiSEqC" msgid "Delay after enable voltage before motor command" -msgstr "" +msgstr "Oneskorenie po povolení napätia pred príkazom motora" msgid "Delay after enable voltage before switch command" -msgstr "" +msgstr "Oneskorenie po zapnutí napätia pred príkazom na prepnutie" msgid "Delay after final continuous tone change" -msgstr "" +msgstr "Oneskorenie po poslednej nepretržitej zmene tónu" msgid "Delay after last diseqc command" -msgstr "" +msgstr "Oneskorenie po poslednom príkaze DiSEqC" msgid "Delay after last voltage change" -msgstr "" +msgstr "Oneskorenie po poslednej zmene napätia" msgid "Delay after motor stop command" -msgstr "" +msgstr "Oneskorenie po príkaze na zastavenie motora" msgid "Delay after set voltage before measure motor power" -msgstr "" +msgstr "Oneskorenie po nastavení napätia pred meraním výkonu motora" msgid "Delay after toneburst" -msgstr "" +msgstr "Oneskorenie po prepnutí tónu (toneburst)" msgid "Delay after voltage change before motor command" -msgstr "" +msgstr "Oneskorenie po zmene napätia pred povelom motora" msgid "Delay before key repeat starts:" -msgstr "Oneskorenie pred opakovaním sekvencie stlaceného tlacidla:" +msgstr "Oneskorenie pred spustením opakovania tlačidla:" -#, fuzzy msgid "Delay before sequence repeat" -msgstr "Oneskorenie pred opakovaním sekvencie stlaceného tlacidla:" +msgstr "Oneskorenie pred opakovaním sekvencie" -msgid "" -"Delay between CEC commands when sending a series of commands. Some devices " -"require this delay for correct functioning, usually between 50-150ms." -msgstr "" +msgid "Delay between CEC commands when sending a series of commands. Some devices require this delay for correct functioning, usually between 50-150ms." +msgstr "Oneskorenie medzi príkazmi CEC pri odosielaní série príkazov. Niektoré zariadenia vyžadujú toto oneskorenie pre správne fungovanie, zvyčajne v rozmedzí 50-150 ms." msgid "Delay between diseqc commands" -msgstr "" +msgstr "Oneskorenie medzi príkazmi DiSEqC" msgid "Delay between switch and motor command" -msgstr "" +msgstr "Oneskorenie medzi prepínačom a povelom motora" msgid "Delay for external subtitles" msgstr "Oneskorenie externých titulkov" msgid "Delay in milliseconds after finish scrolling text on display." -msgstr "" +msgstr "Oneskorenie v milisekundách po dokončení posúvania textu na displeji." msgid "Delay in milliseconds before start of scrolling text on display." -msgstr "" +msgstr "Oneskorenie v milisekundách pred začiatkom posúvania textu na displeji." msgid "Delay time" -msgstr "Casové oneskorenie" +msgstr "Čas oneskorenia" msgid "Delay:" msgstr "Oneskorenie:" msgid "Delete" -msgstr "Vymazat" +msgstr "Vymazať" #, python-format msgid "Delete %s?" -msgstr "Zmazat %s?" +msgstr "Zmazať %s?" msgid "Delete Confirmation" -msgstr "Potvrdit odstránenie" +msgstr "Potvrdiť odstránenie" -#, fuzzy msgid "Delete EPG Cache" -msgstr "Vymazat" +msgstr "Vymazanie vyrovnávacej pamäte EPG" -#, fuzzy msgid "Delete Language(s)" -msgstr "Jazyk" +msgstr "Vymazať jazyk(y)" -#, fuzzy msgid "Delete Timer" -msgstr "Zmazat casovac" +msgstr "Odstrániť časovač" -#, fuzzy msgid "Delete all log entries" -msgstr "Zmazat položku v zozname prehrávok" +msgstr "Vymazanie všetkých protokolov záznomov" -#, fuzzy msgid "Delete all the text" -msgstr "Zmazat položku v zozname prehrávok" +msgstr "Odstránenie celého textu" + +msgid "Delete backwards" +msgstr "Vymazať dozadu" msgid "Delete character to left of cursor or select AM times" -msgstr "" +msgstr "Odstránenie znaku naľavo od kurzora alebo výber AM časov" msgid "Delete character under cursor or select PM times" -msgstr "" +msgstr "Odstránenie znaku pod kurzorom alebo výber PM časov" msgid "Delete entry" -msgstr "Vymazat zadanie" +msgstr "Vymazať zadanie" msgid "Delete failed!" msgstr "Vymazanie zlyhalo!" msgid "Delete file" -msgstr "Zmazat súbor" +msgstr "Zmazať súbor" + +msgid "Delete forwards" +msgstr "Vymazať dopredu" -#, fuzzy msgid "Delete log entry" -msgstr "Vymazat zadanie" +msgstr "Odstránenie záznamu protokolu" msgid "Delete playlist entry" -msgstr "Zmazat položku v zozname prehrávok" +msgstr "Zmazať položku v zozname prehrávok" msgid "Delete saved playlist" -msgstr "Zmazat uložený zoznam prehrávok" +msgstr "Zmazať uložený zoznam prehrávok" msgid "Delete the character to the left of text cursor" -msgstr "" +msgstr "Odstránenie znaku naľavo od textového kurzora" msgid "Delete the character under the text cursor" -msgstr "" +msgstr "Odstránenie znaku pod textovým kurzorom" -#, fuzzy, python-format +#, python-format msgid "Deleted %d items" -msgstr "Odstránené položky" +msgstr "Odstránené %d položky" #, python-format msgid "Deleted %s!" msgstr "Odstránené %s!" -#, fuzzy, python-format +#, python-format msgid "Deleted '%s'" -msgstr "Odstránené %s!" +msgstr "Odstránené '%s'!" -#, fuzzy msgid "Deleted image" -msgstr "Zmazat casovac" +msgstr "Odstránený systémový obraz" msgid "Deleted items" msgstr "Odstránené položky" msgid "Deleting files" -msgstr "Mažem súbory" +msgstr "Odstraňovanie súborov" msgid "Denmark" -msgstr "" +msgstr "Dánsko" msgid "Depth" -msgstr "Hlbka" +msgstr "Hĺbka" -msgid "" -"Descramble & record ECM' gives the option to descramble afterwards if " -"descrambling on recording failed. 'Don't descramble, record ECM' save a " -"scramble recording that can be descrambled on playback. 'Normal' means " -"descramble the recording and don't record ECM." -msgstr "" -"\"Dekódovat a zaznamenávat ECM\" ponúka dodatocnú možnost dekódovat nahrávku " -"ak predchádzajúce dekódovanie zlyhalo. \"Nepoužit dekódovanie, zaznamenávat " -"ECM\" uloží kódovaný záznam, ktorý môže byt dekódovaný pocas prehrávania. " -"\"Normálny\" znamená dekódovat nahrávku a nezaznamenávat ECM." +msgid "Descramble & record ECM' gives the option to descramble afterwards if descrambling on recording failed. 'Don't descramble, record ECM' save a scramble recording that can be descrambled on playback. 'Normal' means descramble the recording and don't record ECM." +msgstr "'Dekódovať a nahrávať ECM' ponúka dodatočnú možnosť dekódovať nahrávku ak predchádzajúce dekódovanie zlyhalo. 'Nepoužiť dekódovanie, nahrávať ECM' uloží kódovaný záznam, ktorý môže byt dekódovaný počas prehrávania. 'Normálny' znamená dekódovať nahrávku a nenahrávať ECM." msgid "Descramble receiving http streams" -msgstr "Dekódovat prichádzajúce http streamy" +msgstr "Dekódovať prichádzajúce http streamy" msgid "Descramble sending http streams" -msgstr "Dekódovat odchádzajúce http streamy" +msgstr "Dekódovať odchádzajúce http streamy" msgid "Description" msgstr "Popis" msgid "Deselect" -msgstr "Zrušit výber" +msgstr "Zrušiť výber" msgid "Details for plugin: " -msgstr "Podrobnosti modulu: " +msgstr "Podrobnosti doplnku: " msgid "Detect next boxes before standby" -msgstr "" +msgstr "Zisťovanie ďalších prijímačov pred pohotovostným režimom" -msgid "" -"Detect programs split by news bulletins. Choose the maximum duration in " -"minutes to consider as a bulletin, or 0 to disable." -msgstr "" +msgid "Detect programs split by news bulletins. Choose the maximum duration in minutes to consider as a bulletin, or 0 to disable." +msgstr "Zistiť programy rozdelené podľa spravodajských bulletinov. Zvoľte maximálnu dĺžku trvania v minútach, ktorú chcete považovať za bulletin, alebo 0, aby ste to zakázali." msgid "Detected devices:" msgstr "Rozpoznané zariadenia:" @@ -5097,16 +4836,21 @@ msgstr "Rozpoznané zariadenia:" msgid "Detected tuners:" msgstr "Rozpoznané tunery:" -#, fuzzy +msgid "Detective" +msgstr "Detektívka" + +msgid "Detektiv" +msgstr "Detektív" + msgid "Device" -msgstr "Zariadenia" +msgstr "Zariadenie" -#, fuzzy, python-format +#, python-format msgid "Device %s" -msgstr "Zariadenia" +msgstr "Zariadenie %s" msgid "Device mounts" -msgstr "Prípojné body" +msgstr "Pripojené zariadenia" msgid "Devicename:" msgstr "Názov zariadenia:" @@ -5117,23 +4861,20 @@ msgstr "Zariadenia" msgid "DiSEqC" msgstr "DiSEqC" -#, fuzzy msgid "DiSEqC 1.0 command" -msgstr "Potvrdený príkaz DiSEqC" +msgstr "DiSEqC 1.0 príkaz" -#, fuzzy msgid "DiSEqC 1.1 command" -msgstr "Potvrdený príkaz DiSEqC" +msgstr "DiSEqC 1.1 príkaz" -#, fuzzy msgid "DiSEqC 1.1 repeats" -msgstr "Opakovania DiSEqC" +msgstr "DiSEqC 1.1 opakovania" msgid "DiSEqC A/B" -msgstr "DiSEqC A/B" +msgstr "" msgid "DiSEqC A/B/C/D" -msgstr "DiSEqC A/B/C/D" +msgstr "" msgid "DiSEqC mode" msgstr "Režim DiSEqC" @@ -5148,22 +4889,20 @@ msgstr "Nastavenia skúšaca DiSEqC" msgid "Digital contour removal" msgstr "Odstránenie digitálnych obrysov" -#, fuzzy msgid "Dim delay" -msgstr "Bez oneskorenia" +msgstr "Oneskorenie stlmenia" msgid "Dim the LCD after specified time." -msgstr "" +msgstr "Stlmenie LCD displeja po uplynutí zadaného času." -#, fuzzy msgid "Direct menu item selection" -msgstr "Ukoncit výber vstupného zariadenia." +msgstr "Priamy výber položky ponuky" msgid "Direct playback of linked titles without menu" -msgstr "Priame prehrávanie prepojených titulov bez menu" +msgstr "Priame prehrávanie prepojených titulov bez ponuky" msgid "Directories cannot be bulk renamed" -msgstr "" +msgstr "Adresáre nie je možné hromadne premenovať" msgid "Directory" msgstr "Adresár" @@ -5172,461 +4911,449 @@ msgstr "Adresár" msgid "Directory %s does not exist." msgstr "Adresár %s neexistuje." -#, fuzzy, python-format +#, python-format msgid "Directory '%s' does not exist!" -msgstr "Adresár %s neexistuje." +msgstr "Adresár '%s' neexistuje!" -#, fuzzy, python-format +#, python-format msgid "Directory '%s' is not hard links capable!" -msgstr "Adresár %s neexistuje." +msgstr "Adresár '%s' neumožňuje pevné odkazy!" #, python-format msgid "Directory '%s' not valid. Partition must be ext or nfs" -msgstr "" +msgstr "Adresár '%s' nie je platný. Partícia musí byť ext alebo nfs" -#, fuzzy, python-format +#, python-format msgid "Directory '%s' not writable!" -msgstr "Adresár %s neexistuje." +msgstr "Adresár '%s' nie je zapisovateľný!" -#, fuzzy, python-format +#, python-format msgid "Directory '%s' not writeable!" -msgstr "Adresár %s neexistuje." +msgstr "Adresár '%s' nie je možné zapísať!" msgid "Directory browser" -msgstr "Prehladávac adresárov" +msgstr "Prehliadač adresárov" msgid "Disable" -msgstr "Vypnút" +msgstr "Zakázať" -#, fuzzy msgid "Disable Animations" -msgstr "Potvrdit odstránenie" +msgstr "Zakázať animácie" + +msgid "Disable FCC during recordings" +msgstr "Zakázať FCC počas nahrávania" + +msgid "Disable Fast Channel Change" +msgstr "Zakázať rýchlu zmenu kanálu (FCC)" msgid "Disable Picture in Picture" -msgstr "Vypnút obraz v obraze" +msgstr "Vypnúť Obraz v Obraze" -#, fuzzy msgid "Disable Timer" -msgstr "Vypnút casovac" +msgstr "Vypnúť časovač" msgid "Disable background scanning" -msgstr "Vypnút skenovanie na pozadí" +msgstr "Zakázať vyhľadávanie na pozadí" -#, fuzzy msgid "Disable move mode" -msgstr "zrušit presun" +msgstr "Vypnúť režim presunu" msgid "Disabled" msgstr "Vypnuté" +msgid "Discussion" +msgstr "Diskusia" + msgid "Disk space to reserve for recordings (in GB)" msgstr "Miesto na disku vyhradené pre nahrávky (v GB)" +msgid "Disk state: " +msgstr "Stav disku: " + msgid "Display 16:9 content as" -msgstr "Obraz 16:9 zobrazit ako" +msgstr "Obraz 16:9 zobraziť ako" msgid "Display 4:3 content as" -msgstr "Obraz 4:3 zobrazit ako" +msgstr "Obraz 4:3 zobraziť ako" msgid "Display >16:9 content as" -msgstr "Obraz >16:9 zobrazit ako" +msgstr "Obraz >16:9 zobraziť ako" -#, fuzzy msgid "Display Skin" -msgstr "Zobrazenie" +msgstr "Zobrazenie vzhľadu" msgid "Display and user interface" -msgstr "Displej a užívatelské rozhranie" +msgstr "Displej a užívateľské rozhranie" msgid "Display message before playing next movie" -msgstr "Zobrazit správu pred zacatím prehrávania nasl. filmu" +msgstr "Zobraziť správu pred začatím prehrávania nasledujúceho filmu" -#, fuzzy msgid "Display oscam information." -msgstr "zobrazit informácie o programe..." +msgstr "Zobrazenie oscam informácie." msgid "Display selection list as a selection menu" -msgstr "" +msgstr "Zobrazenie zoznamu výberu ako výberovej ponuky" -#, fuzzy msgid "Display the EIT now/next event data in infobar." -msgstr "Zobrazit EIT aktuálny/nasledujúci v infopaneli." +msgstr "Zobrazenie údajov o aktuálnej/nasledujúcej udalosti EIT v informačnej lište." msgid "Display the virtual keyboard for data entry" -msgstr "" +msgstr "Zobrazenie virtuálnej klávesnice na zadávanie údajov" -#, fuzzy msgid "Djibouti" -msgstr "O prijímaci" +msgstr "Džibutsko" msgid "Do not center DVB subs on this service" -msgstr "" +msgstr "Necentrovať DVB titulky na tejto stanici" msgid "Do not change" -msgstr "Nemente" +msgstr "Nemeniť" msgid "Do not record" -msgstr "Nenahrat" +msgstr "Nenahrať" -#, fuzzy msgid "Do nothing" -msgstr "žiadna akcia" +msgstr "Nič nerobiť" msgid "" "Do you really want to check the filesystem?\n" "This could take a long time!" msgstr "" -"Naozaj chcete skontrolovat systém súborov?\n" -"Môže to trvat dost dlho!" +"Naozaj chcete skontrolovať systém súborov?\n" +"Môže to trvať dosť dlho!" #, python-format msgid "Do you really want to delete %s?" -msgstr "Naozaj chcete zmazat %s?" +msgstr "Naozaj chcete zmazať %s?" -#, fuzzy msgid "" "Do you really want to delete selected language:\n" "\n" -msgstr "Naozaj chcete zmazat %s ?" +msgstr "" +"Naozaj chcete odstrániť vybraný jazyk:\n" +"\n" msgid "Do you really want to delete this timer ?" -msgstr "Naozaj chcete zmazat tento casovac?" +msgstr "Naozaj chcete zmazať tento časovač?" #, python-format msgid "Do you really want to download the plugin \"%s\"?" -msgstr "Naozaj chcete stiahnut modul \"%s\"?" +msgstr "Naozaj chcete stiahnuť doplnok \"%s\"?" msgid "Do you really want to exit?" -msgstr "Naozaj chcete skoncit?" +msgstr "Naozaj chcete ukončiť?" -#, fuzzy msgid "" "Do you really want to initialize this device?\n" "All the data on the device will be lost!" msgstr "" -"Naozaj chcete inicializovat zariadenie?\n" +"Naozaj chcete inicializovať zariadenie?\n" "Všetky údaje na disku budú stratené!" -#, fuzzy, python-format +#, python-format msgid "Do you really want to move '%s' to the trash can?" -msgstr "Naozaj chcete odstránit casovac pre %s?" +msgstr "Naozaj chcete presunúť '%s' do koša?" -#, fuzzy, python-format +#, python-format msgid "Do you really want to move these %d items to the trash can?" -msgstr "Naozaj chcete odstránit casovac pre %s?" +msgstr "Naozaj chcete tieto %d položieky presunúť do koša?" -#, fuzzy, python-format +#, python-format msgid "Do you really want to permanently delete '%s' from the trash can?" -msgstr "Naozaj chcete natrvalo odstránit \"%s\" z koša?" +msgstr "Naozaj chcete natrvalo odstrániť '%s' z koša?" -#, fuzzy, python-format +#, python-format msgid "Do you really want to permanently delete '%s'?" -msgstr "Naozaj chcete zmazat %s?" +msgstr "Naozaj chcete natrvalo odstrániť '%s'?" -#, fuzzy, python-format -msgid "" -"Do you really want to permanently delete these %d items from the trash can?" -msgstr "Naozaj chcete natrvalo odstránit z koša?" +#, python-format +msgid "Do you really want to permanently delete these %d items from the trash can?" +msgstr "Naozaj chcete natrvalo odstrániť tieto %d položieky z koša?" -#, fuzzy, python-format +#, python-format msgid "Do you really want to permanently delete these %d items?" -msgstr "Naozaj chcete natrvalo odstránit z koša?" +msgstr "Naozaj chcete natrvalo odstrániť tieto %d položieky?" #, python-format msgid "Do you really want to remove directory %s from the disk?" -msgstr "Naozaj chcete z disku odstránit adresár %s?" +msgstr "Naozaj chcete odstrániť adresár %s z disku?" #, python-format msgid "Do you really want to remove the plugin \"%s\"?" -msgstr "Naozaj chcete odstránit modul \"%s\"?" +msgstr "Naozaj chcete odstrániť doplnok \"%s\"?" #, python-format msgid "Do you really want to remove the timer for %s?" -msgstr "Naozaj chcete odstránit casovac pre %s?" +msgstr "Naozaj chcete odstrániť časovač pre %s?" #, python-format msgid "Do you really want to remove your bookmark of %s?" -msgstr "Naozaj chcete odstránit záložku %s?" +msgstr "Naozaj chcete odstrániť záložku %s?" -#, fuzzy, python-format +#, python-format msgid "Do you really want to stop the current recording and delete timer %s?" -msgstr "Naozaj chcete odstránit casovac pre %s?" +msgstr "Naozaj chcete zastaviť aktuálne nahrávanie a vymazať časovač %s?" msgid "Do you want to burn this collection to DVD medium?" -msgstr "Chcete túto zostavu napálit na DVD?" +msgstr "Naozaj chcete túto zostavu napáliť na DVD médium?" -#, fuzzy msgid "Do you want to change the default skin" -msgstr "Chcete urobit dalšie rucné vyhladávanie staníc?" +msgstr "Chcete zmeniť predvolený skin" -#, fuzzy msgid "Do you want to continue?" -msgstr "Co chcete vyhladat?" +msgstr "Chcete pokračovať?" -#, fuzzy msgid "" "Do you want to delete all the selected files:\n" "(choose 'No' to only delete the currently selected file.)" msgstr "" -"Chcete odstránit všetky vybrané súbory:\n" -"(zvolte \"Nie\" aby sa odstránil len aktuálne oznacený súbor.)" +"Chcete odstrániť všetky vybrané súbory:\n" +"(vyberte 'Nie' aby sa odstránil len aktuálne označený súbor.)" msgid "Do you want to do a service scan?" -msgstr "Chcete vyhladat stanice?" +msgstr "Chcete vykonať vyhľadávanie staníc?" msgid "Do you want to do another manual service scan?" -msgstr "Chcete urobit dalšie rucné vyhladávanie staníc?" +msgstr "Chcete vykonať ďalšie ručné vyhľadávanie staníc?" -#, fuzzy msgid "Do you want to install plugins" -msgstr "Chcete nainštalovat balícek:\n" +msgstr "Chcete nainštalovať doplnky" msgid "Do you want to install the package:\n" -msgstr "Chcete nainštalovat balícek:\n" +msgstr "Chcete nainštalovať balíček:\n" msgid "Do you want to play DVD in drive?" -msgstr "Chcete prehrat DVD v mechanike?" +msgstr "Chcete prehrať DVD v mechanike?" msgid "Do you want to preview this DVD before burning?" -msgstr "Chcete si toto DVD prezriet pred napálením?" +msgstr "Chcete si toto DVD prezrieť pred napálením?" #, python-format msgid "Do you want to reboot your %s %s" -msgstr "Chcete reštartovat Váš %s %s ?" +msgstr "Chcete reštartovať Váš %s %s" msgid "Do you want to reboot your receiver?" -msgstr "Chcete reštartovat prijímac?" +msgstr "Chcete reštartovať Váš prijímač?" msgid "Do you want to remove the package:\n" -msgstr "Chcete odstránit balícek:\n" +msgstr "Chcete odstrániť balíček:\n" msgid "Do you want to restore your settings?" -msgstr "Chcete obnovit nastavenia?" +msgstr "Chcete obnoviť Vaše nastavenia?" -#, fuzzy msgid "Do you want to resume playback?" -msgstr "Chcete pokracovat v prehrávaní?" +msgstr "Chcete pokračovať v prehrávaní?" #, python-format msgid "Do you want to update your %s %s ?" -msgstr "Chcete aktualizovat Váš %s %s ?" +msgstr "Chcete aktualizovať Váš %s %s ?" msgid "Do you want to upgrade the package:\n" -msgstr "Chcete aktualizovat balícek:\n" - -#, fuzzy -msgid "Dobly Digital downmix is now" -msgstr "Dolby Digital / DTS downmix" +msgstr "Chcete aktualizovať balíček:\n" -#, fuzzy msgid "Documentary" -msgstr "dokumentárny" +msgstr "Dokumentárny film" + +msgid "Dokumentation" +msgstr "Dokumentácia" + +#, python-format +msgid "Dolby Digital downmix is now %s" +msgstr "Dolby Digital downmix je teraz %s" msgid "Domain" -msgstr "" +msgstr "Doména" msgid "Dominica" -msgstr "" +msgstr "Dominika" msgid "Dominican Republic" -msgstr "" +msgstr "Dominikánska republika" -#, fuzzy msgid "Don't restart" -msgstr "Neuložit" +msgstr "Nereštartovať" msgid "Don't save" -msgstr "Neuložit" +msgstr "Neuložiť" -#, fuzzy msgid "Don't show default" -msgstr "Predvolené" +msgstr "Nezobrazovať predvolené" -#, fuzzy msgid "Don't stop current event but disable future events" -msgstr "Nezastavit aktuálny záznam, ale vypnút nasledujúce záznamy." +msgstr "Nezastaviť aktuálnu udalosť, ale zakázať budúce udalosti" -#, fuzzy msgid "Don't zap" -msgstr "Neuložit" +msgstr "Neprepnúť" -#, fuzzy msgid "Don't zap and disable timer" -msgstr "Vypnút casovac" +msgstr "Neprepnúť a vypnúť časovač" -#, fuzzy msgid "Don't zap and remove timer" -msgstr "prepnút a nahrat" +msgstr "Neprepnúť a odsrániť časovač" msgid "Done" -msgstr "" +msgstr "Hotovo" #, python-format msgid "Done - Installed, upgraded or removed %d package (%s)" msgid_plural "Done - Installed, upgraded or removed %d packages (%s)" -msgstr[0] "" -"Hotovo - %d nainštalovaný, aktualizovaný alebo odstránený balícek s %s chybou" -msgstr[1] "" -"Hotovo - %d nainštalované, aktualizované alebo odstránené balícky s %s " -"chybami" -msgstr[2] "" -"Hotovo - %d nainštalovaných, aktualizovaných alebo odstránených balíckov s " -"%s chybami" +msgstr[0] "Hotovo - %d nainštalovaný, aktualizovaný alebo odstránený balíček s %s chybou" +msgstr[1] "Hotovo - %d nainštalované, aktualizované alebo odstránené balíčky s %s chybami" +msgstr[2] "Hotovo - %d nainštalovaných, aktualizovaných alebo odstránených balíčkov s %s chybami" -#, fuzzy msgid "Down" -msgstr "Stiahnut" +msgstr "Nadol" msgid "Download plugins" -msgstr "Stiahnut moduly" +msgstr "Stiahnuť doplnky" msgid "Downloading" -msgstr "Stahovanie" +msgstr "Sťahovanie" msgid "Downloading plugin information. Please wait..." -msgstr "Stahujem informácie o moduloch. Cakajte..." +msgstr "Stiahnutie informácie o doplnku. Počkajte prosím..." -#, fuzzy msgid "Downmix" -msgstr "Stiahnut" +msgstr "" -#, fuzzy msgid "Drama" -msgstr "film/dráma" +msgstr "Dráma" -#, fuzzy, python-format +msgid "Drama and Films" +msgstr "Dráma a Filmy" + +#, python-format msgid "Drivers:\t%s\n" -msgstr "Ovládace: %s" +msgstr "Ovládače:\t%s\n" #, python-format msgid "Drivers: %s" -msgstr "Ovládace: %s" +msgstr "Ovládače: %s" + +msgid "Drogen" +msgstr "" -#, fuzzy msgid "Drop unconfigured satellites" -msgstr "Pripojení klienti" +msgstr "Odstránenie nekonfigurovaných satelitov" msgid "Dual core" -msgstr "" +msgstr "Dvojité jadro" msgid "Dutch" -msgstr "Holandcina" +msgstr "Holandsky" msgid "Dynamic contrast" msgstr "Dynamický kontrast" msgid "E" -msgstr "E" +msgstr "" -#, fuzzy, python-format +#, python-format msgid "E2 (re)starts:\t%s\n" -msgstr "Ovládace: %s" +msgstr "E2 (re)štartov:\t%s\n" -#, fuzzy msgid "ECM Info" -msgstr "CCcam ECM info" +msgstr "Informácia ECM" -msgid "" -"ECM data will be included in the stream. This enables a client receiver to " -"decode it." -msgstr "" -"ECM údaje budú zahrnuté v streame. To umožnuje, aby prijímac klienta " -"dekódoval." +msgid "ECM data will be included in the stream. This enables a client receiver to decode it." +msgstr "ECM údaje budú zahrnuté v streame. To umožňuje, aby prijímač klienta dekódoval." + +msgid "EJECTCD" +msgstr "VYBRAŤ CD" + +msgid "END" +msgstr "KONIEC" + +msgid "ENTER" +msgstr "VSTÚPIŤ" msgid "EPG" -msgstr "EPG - programový sprievodca" +msgstr "EPG" msgid "EPG Cache Check" msgstr "Kontrola vyrovnávacej pamäte EPG" msgid "EPG Commands" -msgstr "" +msgstr "Príkazy EPG" -#, fuzzy msgid "EPG Search" -msgstr "Hladanie v EPG" +msgstr "Hľadanie v EPG" -#, fuzzy msgid "EPG access" -msgstr "Hladanie v EPG" +msgstr "Prístup k EPG" -#, fuzzy msgid "EPG button (long)" -msgstr "Tlacidlo OK (dlho)" +msgstr "Tlačidlo EPG (dlho)" -#, fuzzy msgid "EPG button (short)" -msgstr "Tlacidlo OK (krátko)" +msgstr "Tlačidlo EPG (krátko)" -#, fuzzy msgid "EPG button action" -msgstr "Umiestnenie EPG" +msgstr "Činnosť tlačidla EPG" + +msgid "EPG event name prefixes to remove" +msgstr "Odstránenie predpôn názvov udalostí EPG" msgid "EPG filename" msgstr "Názov súboru s EPG" msgid "EPG language selection 1" -msgstr "Volba primárneho jazyka EPG" +msgstr "Výber hlavného jazyka EPG 1" msgid "EPG language selection 2" -msgstr "Volba sekundárneho jazyka EPG" +msgstr "Výber záložného jazyka EPG 2" msgid "EPG location" msgstr "Umiestnenie EPG" msgid "EPG settings" -msgstr "Nastavenie EPG" +msgstr "Nastavenia EPG" -msgid "ERROR" -msgstr "" +msgid "EPGSETUP" +msgstr "EPG NASTAVENIE" #, python-format msgid "ERROR - failed to scan (%s)!" -msgstr "CHYBA - zlyhalo vyhladávanie (%s)!" +msgstr "CHYBA - zlyhalo vyhľadávanie (%s)!" -#, fuzzy -msgid "" -"ERROR: Check is already running in background, please wait a few minutes and " -"try again" -msgstr "" -"Kontrola aktualizácií prebieha na pozadí, prosím pockajte niekolko minút a " -"skúste to znovu." +msgid "ERROR: Check is already running in background, please wait a few minutes and try again" +msgstr "CHYBA: Kontrola už prebieha na pozadí, počkajte prosím niekoľko minút a skúste to znova" -#, fuzzy msgid "ERROR: No internet found" -msgstr "Nenájdená žiadna siet" +msgstr "CHYBA: Nenašiel sa internet" -#, fuzzy msgid "ERROR: No network found" -msgstr "Nenájdená žiadna siet" +msgstr "CHYBA: Nenájdená sieť" msgid "ERROR: Response 403 Forbidden" -msgstr "" +msgstr "CHYBA: Odpoveď 403 Zakázané" -#, fuzzy msgid "ERROR: Response 404 Not Found" -msgstr "Nenájdená žiadna siet" +msgstr "CHYBA: Odpoveď 403 Nenájdené" msgid "ET8500 Multiboot: Installed\n" +msgstr "ET8500 Multiboot: Nainštalované\n" + +msgid "EXIT" msgstr "" msgid "East" -msgstr "východne" +msgstr "Východne" msgid "East limit set" msgstr "Východný limit nastavený" -#, fuzzy +msgid "Eastern" +msgstr "Východný" + msgid "Ecm Info" -msgstr "CCcam Info" +msgstr "Informácia Ecm" -#, fuzzy msgid "Ecm Statistics" -msgstr "Štatistika ECM" +msgstr "Štatistiky ECM" -#, fuzzy msgid "Ecm Time" -msgstr "Cas ECM" +msgstr "Čas ECM" #, fuzzy msgid "Ecm avg" @@ -5637,411 +5364,391 @@ msgid "Ecm last" msgstr "posledná ECM" msgid "Ecm:" -msgstr "Ecm:" +msgstr "" + +msgid "Economics" +msgstr "Ekonomika" msgid "Ecuador" -msgstr "" +msgstr "Ekvádor" msgid "Edit" -msgstr "Upravit" +msgstr "Upraviť" -#, fuzzy msgid "Edit AutoTimer" -msgstr "Upravit casovac" +msgstr "Upraviť automatický časovač" msgid "Edit DNS" -msgstr "Upravit DNS" +msgstr "Upraviť DNS" -#, fuzzy msgid "Edit Timer" -msgstr "Upravit casovac" +msgstr "Upraviť časovač" -#, fuzzy msgid "Edit alternatives" -msgstr "upravit alternatívy" +msgstr "Upraviť alternatívy" msgid "Edit chapters of current title" -msgstr "Upravit kapitoly aktuálneho titulu" +msgstr "Upraviť kapitoly aktuálneho titulu" -#, fuzzy msgid "Edit menu" -msgstr "Hlavné menu" +msgstr "Upraviť ponuku" -#, fuzzy msgid "Edit new entry" -msgstr "Položka casovaca" +msgstr "Upraviť novú položku" msgid "Edit settings" -msgstr "Upravit nastavenia" +msgstr "Upraviť nastavenia" #, python-format msgid "Edit the Nameserver configuration of your %s %s.\n" -msgstr "Upravit nastavenie DNS Vášho %s %s.\n" +msgstr "" +"Upraviť konfiguráciu menného servera Vášho %s %s.\n" +"\n" #, python-format msgid "Edit the network configuration of your %s %s.\n" -msgstr "Upravit sietovú konfiguráciu Vášho %s %s.\n" +msgstr "Upraviť sieťovú konfiguráciu Vášho %s %s.\n" msgid "Edit title" -msgstr "Upravit titul" +msgstr "Upraviť titul" msgid "Edit upgrade source url." -msgstr "Upravit URL zdroja aktualizácie." +msgstr "Upraviť URL zdroja aktualizácie." + +msgid "Education" +msgstr "Vzdelávanie" -#, fuzzy msgid "Education/Information" -msgstr "Informácie" +msgstr "Vzdelávanie/Informácie" -#, fuzzy msgid "Education/Science/Factual" -msgstr "Vzdelávanie/veda/..." +msgstr "Vzdelávanie/Veda/Skutočnosti" msgid "Egypt" msgstr "" +msgid "Einzelsportart" +msgstr "Individuálny šport" + msgid "El Salvador" -msgstr "" +msgstr "Salvádor" msgid "Elapsed" -msgstr "Uplynulý cas" +msgstr "Uplynulý" msgid "Elapsed & Remaining" -msgstr "Uplynulý a zostávajúci cas" +msgstr "Uplynulý a zostávajúci" msgid "Electronic Program Guide" msgstr "Elektronický programový sprievodca" msgid "Empty slot" -msgstr "" +msgstr "Prázdny slot" -#, fuzzy msgid "Empty trash can" -msgstr "Odpadkový kôš" +msgstr "Prázdny odpadkový kôš" msgid "Enable" -msgstr "Zapnút" +msgstr "Povoliť" msgid "Enable 5V for active antenna" -msgstr "Zapnút 5 V pre aktívnu anténu" +msgstr "Povoliť 5V pre aktívnu anténu" -#, fuzzy msgid "Enable Bluetooth Audio" -msgstr "zapnút úpravu prehladu" +msgstr "Povoliť technológiu Bluetooth Zvuk" msgid "Enable EIT EPG" -msgstr "Povolit EIT EPG" +msgstr "Povoliť EIT EPG" + +msgid "Enable EPG event name abbreviation removal" +msgstr "Povoliť odstrániť skratky názvu udalosti EPG" + +msgid "Enable Fast Channel Change" +msgstr "Povoliť rýchlu zmenu kanálu (FCC)" msgid "Enable FreeSat EPG" -msgstr "Povolit freesat EPG" +msgstr "Povoliť FreeSat EPG" msgid "Enable MHW EPG" -msgstr "Povolit EIT EPG" +msgstr "Povoliť MHW EPG" msgid "Enable Netmed EPG" -msgstr "Povolit Netmed EPG" +msgstr "Povoliť Netmed EPG" -#, fuzzy msgid "Enable OpenTV EPG" -msgstr "Povolit EIT EPG" +msgstr "Povoliť OpenTV EPG" -#, fuzzy msgid "Enable OpenTV download" -msgstr "Povolit EIT EPG" +msgstr "Povoliť OpenTV sťahovanie" msgid "Enable ViaSat EPG" -msgstr "Zapnút ViaSat EPG" +msgstr "Povoliť ViaSat EPG" -#, fuzzy msgid "Enable Virgin EPG" -msgstr "Zapnút ViaSat EPG" +msgstr "Povoliť Virgin EPG" -#, fuzzy msgid "Enable auto cable scan" -msgstr "Povolit automatický fastscan" +msgstr "Povoliť automatické prehľadávanie káblovky" -#, fuzzy msgid "Enable auto fastscan" -msgstr "Povolit automatický fastscan" +msgstr "Povoliť automatické rýchle vyhľadávanie (FastScan)" -#, fuzzy, python-format +#, python-format msgid "Enable auto fastscan for %s" -msgstr "Povolit automatický fastscan" +msgstr "Povoliť automatické rýchle vyhľadávanie pre %s" -msgid "" -"Enable automated downloading of OpenTV EPG data. If only one tuner is " -"available the download will be done when the reciever is in standby." -msgstr "" +msgid "Enable automated downloading of OpenTV EPG data. If only one tuner is available the download will be done when the reciever is in standby." +msgstr "Povoliť automatické sťahovanie údajov OpenTV EPG. Ak je k dispozícii len jeden tuner, sťahovanie sa vykoná, keď je prijímač v pohotovostnom režime." -#, fuzzy msgid "Enable automatic collections" -msgstr "Povolit automatický fastscan" +msgstr "Povoliť automatické zostavy" msgid "Enable blinking rec symbol on the LCD Display" -msgstr "" +msgstr "Povoliť blikanie symbolu nahrávanie na LCD displeji" -#, fuzzy msgid "Enable bouquet edit" -msgstr "zapnút úpravu prehladu" +msgstr "Povoliť úpravu prehľadu" -#, fuzzy msgid "Enable client mode" -msgstr "zapnút presun" +msgstr "Povoliť režim klienta" + +msgid "Enable core dumps *" +msgstr "Povoliť výpisy jadra *" -#, fuzzy msgid "Enable debug logs *" -msgstr "Povolit protokoly ladenia" +msgstr "Povoliť protokoly ladenia *" -#, fuzzy msgid "Enable fallback remote receiver" -msgstr "Povolit záložný vzdialený prijímac" +msgstr "Povoliť záložný vzdialený prijímač" -#, fuzzy msgid "Enable favourite edit" -msgstr "zapnút úpravu oblúbených" +msgstr "Povoliť úpravu obľúbených" msgid "Enable infobar fade-out" -msgstr "" +msgstr "Povoliť miznutie informačnej lišty" -#, fuzzy msgid "Enable move mode" -msgstr "zapnút presun" +msgstr "Povoliť režim presunu" msgid "Enable multiple bouquets" -msgstr "Zapnút viacnásobné prehlady" +msgstr "Povoliť viacnásobné prehľady" + +msgid "Enable new GStreamer playback" +msgstr "Povoliť nové GStreamer prehrávanie" + +msgid "Enable or disable client mode." +msgstr "Povoliť alebo zakázať režim klienta." msgid "Enable or disable the 10 Bit Color Mode" -msgstr "" +msgstr "Povoliť alebo zakázať režim 10 bitových farieb" msgid "Enable or disable the 12 Bit Color Mode" -msgstr "" +msgstr "Povoliť alebo zakázať režim 12 bitových farieb" msgid "Enable or disable to force HDR Modes for UHD" -msgstr "" +msgstr "Povoliť alebo zakázať vynútenie režimov HDR pre UHD" msgid "Enable or disable to force HDR10 Modes for UHD" -msgstr "" +msgstr "Povoliť alebo zakázať vynútenie režimov HDR10 pre UHD" msgid "Enable or disable to force HLG Modes for UHD" -msgstr "" +msgstr "Povoliť alebo zakázať vynútenie režimov HLG pre UHD" msgid "Enable or disable using HDMI-CEC." -msgstr "" +msgstr "Povoliť alebo zakázať používanie HDMI-CEC." msgid "Enable panic button" -msgstr "Povolit núdzové tlacidlo" +msgstr "Povoliť núdzové tlačidlo" msgid "Enable parental protection" -msgstr "Aktivovat rodicovskú ochranu" +msgstr "Povoliť rodičovskú ochranu" msgid "Enable teletext caching" -msgstr "Povolit ukladanie teletextu do medzipamäte (caching)" +msgstr "Povoliť ukladanie teletextu do medzipamäte (caching)" msgid "Enable this setting if your aerial system needs power" -msgstr "" +msgstr "Toto nastavenie povoľte, ak váš anténny systém potrebuje napájanie" msgid "Enable timer conflict detection" -msgstr "Povolit detekciu konfliktov casovaca" +msgstr "Povoliť detekciu konfliktu časovača" -msgid "" -"Enable to display all true/false, yes/no, on/off and enable/disable set up " -"options as a graphical switch." -msgstr "" +msgid "Enable to display all true/false, yes/no, on/off and enable/disable set up options as a graphical switch." +msgstr "Umožňuje zobraziť všetky možnosti pravdivé/nepravdivé, áno/nie, zap/vyp a enable/disable nastavení ako grafický prepínač." msgid "Enable to highlight events that are currently in progress." -msgstr "" +msgstr "Umožňuje zvýrazniť práve prebiehajúce udalosti." -msgid "" -"Enable usage of tuners from another Enigma2 receiver on the local network. " -"Remote tuners will be used when tuners are not available on this receiver. " -"(No free tuner or service type is not available.)" -msgstr "" +msgid "Enable usage of tuners from another Enigma2 receiver on the local network. Remote tuners will be used when tuners are not available on this receiver. (No free tuner or service type is not available.)" +msgstr "Povolenie používania tunerov z iného prijímača Enigma2 v lokálnej sieti. Vzdialené tunery sa použijú, keď tunery nie sú k dispozícii na tomto prijímači. (Nie je k dispozícii žiadny voľný tuner alebo typ služby.)" msgid "Enabled" -msgstr "Zapnuté" +msgstr "Aktivované" -#, fuzzy msgid "Encrypted TV" -msgstr "Šifrované:" +msgstr "Kódovaná TV" msgid "Encrypted: " -msgstr "Šifrované:" +msgstr "Kódované: " msgid "Encryption" msgstr "Šifrovanie" -#, fuzzy msgid "Encryption Type:" -msgstr "Šifrovanie:" +msgstr "Typ šifrovania:" msgid "Encryption key" -msgstr "Šifrovací klúc" +msgstr "Šifrovací kľúč" msgid "Encryption key type" -msgstr "Typ šifrovacieho klúca" +msgstr "Typ šifrovacieho kľúča" msgid "Encryption:" msgstr "Šifrovanie:" -#, fuzzy msgid "End" -msgstr "Na konci" +msgstr "Koniec" -#, fuzzy msgid "End alternatives edit" -msgstr "skoncit úpravu alternatív" +msgstr "Ukončiť úpravu alternatív" -#, fuzzy msgid "End bouquet edit" -msgstr "skoncit úpravu prehladu" +msgstr "Ukončiť úpravu prehľadu" -#, fuzzy msgid "End favourites edit" -msgstr "skoncit úpravu oblúbených" +msgstr "Ukončiť úpravu obľúbených" msgid "End time" -msgstr "Koniec" +msgstr "Čas ukončenia" + +msgid "Energie" +msgstr "Energia" msgid "English" -msgstr "Anglictina" +msgstr "Anglicky" msgid "Enigma2 debug level." -msgstr "" +msgstr "Úroveň ladenia Enigmy2." -#, fuzzy, python-format +#, python-format msgid "Enigma2 uptime:\t%s\n" -msgstr "Posledná aktualizácia: %s" +msgstr "Čas prevádzky Enigmy2:\t%s\n" + +msgid "Enough Retries, delaying till next schedule." +msgstr "Dosť opakovaných pokusov, odklad do ďalšieho plánu." -#, fuzzy msgid "Enter" -msgstr "na stred" +msgstr "Vstúpiť" -#, fuzzy msgid "Enter PIN" -msgstr "Znova zadajte nový PIN" +msgstr "Zadajte PIN" -#, fuzzy msgid "Enter PIN Code" -msgstr "Znova zadajte nový PIN" +msgstr "Zadajte kód PIN" -#, fuzzy msgid "Enter a number to jump to a service/channel" -msgstr "zadajte císlo stanice, na ktorú chcete prepnút." +msgstr "Zadaním čísla prejdete na stanicu/kanál" msgid "Enter if you are in the east or west hemisphere." -msgstr "" +msgstr "Zadajte, či sa nachádzate na východnej alebo západnej pologuli." msgid "Enter if you are north or south of the equator." -msgstr "" +msgstr "Zadajte, či sa nachádzate na sever alebo na juh od rovníka." -msgid "Enter main menu..." -msgstr "Otvorit hlavné menu..." +msgid "Enter main menu" +msgstr "Vstup do hlavnej ponuky" -#, fuzzy msgid "Enter persistent PIN code" -msgstr "Zadajte kód PIN" +msgstr "Zadajte trvalý kód PIN" msgid "Enter pin code" -msgstr "Zadajte kód PIN" +msgstr "Zadajte kód PIN-u" -#, fuzzy msgid "Enter service number" -msgstr "Zadajte PIN stanice" +msgstr "Zadajte číslo stanice" -msgid "" -"Enter the FTP password of the host receiver (required for any server running " -"OpenViX 5.4 or greater)." -msgstr "" +msgid "Enter the FTP password of the host receiver (required for any server running OpenViX 5.4 or greater)." +msgstr "Zadajte heslo FTP hostiteľského prijímača (vyžaduje sa pre každý server so systémom OpenViX 5.4 alebo vyšším)." msgid "Enter the FTP port of the host receiver (normally '21')." -msgstr "" +msgstr "Zadajte port FTP hostiteľského prijímača (zvyčajne '21')." msgid "Enter the FTP username of the host receiver (normally 'root')." -msgstr "" +msgstr "Zadajte používateľské meno FTP hostiteľského prijímača (zvyčajne 'root')." msgid "Enter the IP address of the host receiver." -msgstr "" +msgstr "Zadajte IP adresu hostiteľského prijímača." msgid "Enter the IP address of the receiver to use for fallback tuners." -msgstr "" +msgstr "Zadajte IP adresu prijímača, ktorý sa má použiť pre záložné tunery." -msgid "" -"Enter the URL/IP of the fallback remote receiver, e.g. '192.168.0.1'. The " -"other details such as 'http://' and port number will be filled in " -"automatically when you select save." -msgstr "" +msgid "Enter the URL/IP of the fallback remote receiver, e.g. '192.168.0.1'. The other details such as 'http://' and port number will be filled in automatically when you select save." +msgstr "Zadajte adresu URL/IP náhradného vzdialeného prijímača, napr. '192.168.0.1'. Ostatné údaje, ako napríklad 'http://' a číslo portu, sa vyplnia automaticky po výbere možnosti uložiť." -msgid "" -"Enter the domain of the host receiver. Do not include 'http://' or port " -"number." -msgstr "" +msgid "Enter the domain of the host receiver. Do not include 'http://' or port number." +msgstr "Zadajte doménu hostiteľského prijímača. Neuvádzajte 'http://' ani číslo portu." -msgid "" -"Enter the frequency at which you LNB switches between low band and high " -"band. For more information consult the spec sheet of your LNB." -msgstr "" +msgid "Enter the frequency at which you LNB switches between low band and high band. For more information consult the spec sheet of your LNB." +msgstr "Zadajte frekvenciu, pri ktorej LNB prepína medzi spodným a horným pásmom. Ďalšie informácie nájdete v technickom liste vášho LNB." -msgid "" -"Enter the frequency step size for the tuner to use when searching for cable " -"multiplexes. For more information consult your cable provider's " -"documentation." -msgstr "" +msgid "Enter the frequency step size for the tuner to use when searching for cable multiplexes. For more information consult your cable provider's documentation." +msgstr "Zadajte veľkosť kroku frekvencie, ktorú má tuner použiť pri vyhľadávaní káblových multiplexov. Ďalšie informácie nájdete v dokumentácii poskytovateľa káblovej televízie." -msgid "" -"Enter the number stored in the positioner that corresponds to this satellite." -msgstr "" +msgid "Enter the number stored in the positioner that corresponds to this satellite." +msgstr "Zadajte číslo uložené v polohovacom zariadení, ktoré zodpovedá tomuto satelitu." msgid "Enter the service pin" msgstr "Zadajte PIN stanice" msgid "Enter the streaming port of the host receiver (normally '8001')." -msgstr "" +msgstr "Zadajte streamovací port hostiteľského prijímača (zvyčajne '8001')." msgid "Enter valid ONID/TSID" -msgstr "" +msgstr "Zadajte platné ONID/TSID" -msgid "" -"Enter your current latitude. This is the number of degrees you are from the " -"equator as a decimal." -msgstr "" +msgid "Enter your current latitude. This is the number of degrees you are from the equator as a decimal." +msgstr "Zadajte svoju aktuálnu zemepisnú šírku. Ide o počet stupňov, ktoré vás delia od rovníka, vyjadrený desatinným číslom." -msgid "" -"Enter your current longitude. This is the number of degrees you are from " -"zero meridian as a decimal." -msgstr "" +msgid "Enter your current longitude. This is the number of degrees you are from zero meridian as a decimal." +msgstr "Zadajte svoju aktuálnu zemepisnú dĺžku. Ide o počet stupňov, ktoré vás delia od nultého poludníka, vyjadrený desatinným číslom." -msgid "" -"Enter your high band local oscillator frequency. For more information " -"consult the spec sheet of your LNB." -msgstr "" +msgid "Enter your high band local oscillator frequency. For more information consult the spec sheet of your LNB." +msgstr "Zadajte frekvenciu lokálneho oscilátora horného pásma. Ďalšie informácie nájdete v technickom liste vášho LNB." -msgid "" -"Enter your low band local oscillator frequency. For more information consult " -"the spec sheet of your LNB." -msgstr "" +msgid "Enter your low band local oscillator frequency. For more information consult the spec sheet of your LNB." +msgstr "Zadajte frekvenciu lokálneho oscilátora spodného pásma. Ďalšie informácie nájdete v technickom liste vášho LNB." -#, fuzzy msgid "Entertainment" -msgstr "Otvorit hlavné menu..." +msgstr "Zábava" msgid "Entitlements" msgstr "Oprávnenia" +msgid "Environment" +msgstr "Životné prostredie" + msgid "Epg/Guide" -msgstr "" +msgstr "Epg/Príručka" msgid "Epg/Guide long" +msgstr "Epg/Príručka dlho" + +msgid "Epos" msgstr "" -#, fuzzy msgid "Equal to" -msgstr "rovná sa" +msgstr "Rovná sa" msgid "Equatorial Guinea" -msgstr "" +msgstr "Rovníková Guinea" + +msgid "Equestrian" +msgstr "Jazdectvo" -#, fuzzy msgid "Eritrea" -msgstr "Stream" +msgstr "" + +msgid "Erotik" +msgstr "" msgid "Error" msgstr "Chyba" @@ -6050,14 +5757,22 @@ msgid "Error code" msgstr "Kód chyby" msgid "Error executing plugin" -msgstr "Chyba pri spustení modulu" +msgstr "Chyba pri spustení doplnku" msgid "Error reading webpage!" -msgstr "Chyba pri nacítaní webovej stránky!" +msgstr "Chyba pri načítaní webovej stránky!" -#, fuzzy, python-format +#, python-format msgid "Error renaming '%s'" -msgstr "Chyba pri nacítaní webovej stránky!" +msgstr "Chyba premenovania '%s'" + +#, python-format +msgid "" +"Error:\n" +"%s" +msgstr "" +"Chyba:\n" +"%s" #, python-format msgid "" @@ -6065,175 +5780,160 @@ msgid "" "Retry?" msgstr "" "Chyba: %s\n" -"Zopakovat?" +"Opakovať?" + +msgid "Esoterik" +msgstr "Ezoterik" + +msgid "Essen" +msgstr "" -#, fuzzy msgid "Estonia" -msgstr "Estóncina" +msgstr "Estónsko" msgid "Estonian" -msgstr "Estóncina" +msgstr "Estónsky" msgid "Ethernet network interface" msgstr "Rozhranie siete Ethernet" msgid "Ethiopia" -msgstr "" +msgstr "Etiópia" + +msgid "Event" +msgstr "Relácia" msgid "Event Info" -msgstr "Informácie o programe" +msgstr "Informácie o relácii" msgid "Event font size" -msgstr "Velkost písma relácie" +msgstr "Veľkosť písma relácie" -#, fuzzy msgid "Event name first" -msgstr "Informácie o programe" +msgstr "Najprv názov relácie" msgid "Event view" -msgstr "Zobrazenie programu" +msgstr "Zobrazenie relácie" -#, fuzzy msgid "Event view menu" -msgstr "Zobrazenie programu" +msgstr "Ponuka zobrazenia relácie" -#, fuzzy msgid "Every 12 hours" -msgstr "Uložit každých (v hodinách)" +msgstr "Každých 12 hodín" -#, fuzzy msgid "Every 2 hours" -msgstr "Uložit každých (v hodinách)" +msgstr "Každé 2 hodiny" -#, fuzzy msgid "Every 3 hours" -msgstr "Uložit každých (v hodinách)" +msgstr "Každé 3 hodiny" -#, fuzzy msgid "Every 6 hours" -msgstr "Uložit každých (v hodinách)" +msgstr "Každých 6 hodín" -#, fuzzy msgid "Every hour" -msgstr "Všade" +msgstr "Každú hodinu" msgid "Everyday" -msgstr "" - -msgid "Everywhere" -msgstr "Všade" +msgstr "Každý deň" msgid "Exceeds dual layer medium!" msgstr "Presahuje kapacitu dvojvrstvového DVD!" msgid "Execution finished!!" -msgstr "Skoncené!!" +msgstr "Vykonanie dokončené!!" msgid "Execution progress:" msgstr "Priebeh vykonávania:" msgid "Exif" -msgstr "Exif" +msgstr "" msgid "Exit" -msgstr "Ukoncit" +msgstr "Ukončiť" msgid "Exit EPG" -msgstr "Ukoncit EPG" - -#, fuzzy -msgid "Exit MAC address configuration" -msgstr "Ukoncit konfiguraciu MAC adresy" +msgstr "Ukončiť EPG" -#, fuzzy msgid "Exit Menusort" -msgstr "Hlavné menu" +msgstr "Ukončiť triedenie ponuky" msgid "Exit all menus" -msgstr "" +msgstr "Ukončiť všetky ponuky" -#, fuzzy msgid "Exit channel selection" -msgstr "Volba stanice" +msgstr "Ukončenie výberu kanála" msgid "Exit editor" -msgstr "Ukoncit editor" +msgstr "Ukončiť editor" msgid "Exit input device selection." -msgstr "Ukoncit výber vstupného zariadenia." +msgstr "Ukončiť výber vstupného zariadenia." msgid "Exit media player?" -msgstr "Ukoncit prehrávac médií?" +msgstr "Ukončiť prehrávač médií?" msgid "Exit mediaplayer" -msgstr "Ukoncit prehrávac médií" +msgstr "Ukončiť prehrávač médií" -#, fuzzy msgid "Exit menu" -msgstr "Hlavné menu" +msgstr "Ukončiť ponuku" -#, fuzzy msgid "Exit mounts setup menu" -msgstr "zatvorit menu nastavení prípojných bodov" +msgstr "Ukončiť ponuku nastavenia prípojení" msgid "Exit movie list" -msgstr "Zatvorit zoznam filmov" +msgstr "Ukončiť zoznam filmov" -#, fuzzy -msgid "Exit movie player..." -msgstr "Ukoncit prehrávac filmov?" +msgid "Exit movie player" +msgstr "Ukončiť prehrávač filmov" msgid "Exit movie player?" -msgstr "Ukoncit prehrávac filmov?" - -msgid "Exit nameserver configuration" -msgstr "Ukoncit konfiguraciu DNS" +msgstr "Ukončiť prehrávač filmov?" -#, fuzzy -msgid "Exit network adapter configuration" -msgstr "zatvorit nastavovanie sietového adaptéra" - -#, fuzzy msgid "Exit network adapter setup menu" -msgstr "zatvorit menu nastavení sietových rozhraní" +msgstr "Ukončiť ponuku nastavenia sieťového adaptéru" msgid "Exit network interface list" -msgstr "Zatvorit zoznam sietových adaptérov" +msgstr "Ukončiť zoznam sieťových rozhraní" msgid "Exit network wizard" -msgstr "Ukoncit sprievodcu sietou" +msgstr "Ukončiť sprievodcu sieťou" -#, fuzzy msgid "Exit networkadapter setup menu" -msgstr "zatvorit menu nastavení sietových rozhraní" +msgstr "Ukončiť ponuku nastavenia sieťového rozhrania" msgid "Exit the wizard" -msgstr "Ukoncit sprievodcu" +msgstr "Ukončiť sprievodcu" msgid "Expert" -msgstr "expertný" +msgstr "Expertný" -#, fuzzy msgid "Extended" -msgstr "Rozšírené zdielania" +msgstr "Rozšírené" msgid "Extended Networksetup Plugin..." -msgstr "Modul rozšíreného nastavenia siete..." +msgstr "Doplnok rozšíreného nastavenia siete..." + +msgid "Extended PID info" +msgstr "Rozšírené PID informácie" msgid "Extended Setup..." msgstr "Rozšírené nastavenie..." msgid "Extended Shares" -msgstr "Rozšírené zdielania" +msgstr "Rozšírené zdieľania" msgid "Extended Software" msgstr "Rozšírený softvér" msgid "Extended Software Plugin" -msgstr "Modul rozšíreného softvéru" +msgstr "Doplnok rozšíreného softvéru" + +msgid "Extended info" +msgstr "Rozšírené informácie" msgid "Extended network setup plugin..." -msgstr "Modul pre rozšírené nastavenie siete..." +msgstr "Doplnok pre rozšírené nastavenie siete..." msgid "Extended setup..." msgstr "Rozšírené nastavenie..." @@ -6247,30 +5947,32 @@ msgstr "Správa rozšírení" msgid "External" msgstr "Externý" -#, fuzzy msgid "External PiP" -msgstr "Externý" +msgstr "Externý PiP" msgid "External subtitle color" msgstr "Farba externých titulkov" -#, fuzzy msgid "External subtitle dialog colorisation" -msgstr "Farba externých titulkov" +msgstr "Farebnosť dialógového okna externých titulkov" -#, fuzzy msgid "External subtitle switch fonts" -msgstr "Farba externých titulkov" +msgstr "Externé písma prepínača titulkov" -#, fuzzy msgid "Externally powered" -msgstr "Externý" +msgstr "Externé napájanie" msgid "Extra motor options" -msgstr "" +msgstr "Ďalšie možnosti motora" + +msgid "Extreme" +msgstr "Extrémne" + +msgid "Extremsport" +msgstr "Extrémny šport" msgid "Extrude from left" -msgstr "" +msgstr "Vysunúť zľava" msgid "F1" msgstr "" @@ -6282,58 +5984,74 @@ msgid "F1/LAN" msgstr "" msgid "F1/LAN long" -msgstr "" +msgstr "F1/LAN dlho" msgid "F2" msgstr "" msgid "F2 long" -msgstr "" +msgstr "F2 dlho" msgid "F3" msgstr "" msgid "F3 long" +msgstr "F3 dlho" + +msgid "F4" msgstr "" +msgid "F4 long" +msgstr "F4 dlho" + msgid "FAILED" msgstr "ZLYHALO" -#, fuzzy +msgid "FASTFORWARD" +msgstr "PREVINÚŤ VPRED" + +msgid "FAV" +msgstr "" + +msgid "FAVORITES" +msgstr "OBĽÚBENÉ" + msgid "FBC SCR (Unicable/JESS)" -msgstr "Unicable" +msgstr "" -#, fuzzy msgid "FBC automatic" -msgstr "automatický" +msgstr "Automatické FBC" -#, fuzzy msgid "" "FBC automatic\n" "connected to" -msgstr "Pripojené k " +msgstr "" +"FBC automaticky\n" +"pripojený k" #, python-format msgid "" "FBC automatic\n" "connected to %s" msgstr "" +"FBC automaticky\n" +"pripojené k %s" -#, fuzzy msgid "" "FBC automatic\n" "inactive" -msgstr "Automatické ukladanie" - -#, python-format -msgid "FBC socket %s" msgstr "" +"FBC automaticky\n" +"neaktívne" -msgid "FBC virtual" -msgstr "" +msgid "FCC enabled" +msgstr "FCC povolené" + +msgid "FCCSetup" +msgstr "Nastavenie FCC" msgid "FEC" -msgstr "FEC" +msgstr "" msgid "FEC:" msgstr "" @@ -6344,82 +6062,97 @@ msgstr "" msgid "FLASH" msgstr "FLASH" -#, fuzzy, python-format +msgid "FORWARD" +msgstr "PRVINÚŤ VPRED" + +#, python-format msgid "FP version:\t%s" -msgstr "Verzia: %s" +msgstr "FP Verzia:\t%s" msgid "FTA TV" msgstr "" -#, fuzzy msgid "FTP" -msgstr "NTP" +msgstr "" msgid "FTP Setup" msgstr "Nastavenie FTP" -#, fuzzy msgid "FTP connection failure" -msgstr "Nie je spojenie" +msgstr "Zlyhanie FTP pripojenia" -#, fuzzy msgid "FTP passive mode" -msgstr "Režim prenosu" +msgstr "Pasívny režim FTP" -#, fuzzy msgid "Factory Reset" -msgstr "Továrenské nastavenia" +msgstr "Obnovenie továrenského nastavenia" -#, fuzzy msgid "Factory Reset: Clearing data" -msgstr "Továrenské nastavenia" +msgstr "Obnovenie továrenského nastavenia: Vymazanie údajov" + +msgid "Factual Topics" +msgstr "Faktické témy" msgid "Fade the infobar when hiding" -msgstr "" +msgstr "Blednutie informačnej lišty pri miznutí" msgid "Failed" msgstr "Zlyhalo" msgid "Failed to write /tmp/positionersetup.log: " -msgstr "Nepodarilo sa zapísat /tmp/positionersetup.log:" +msgstr "Nepodarilo sa zapísať /tmp/positionersetup.log: " msgid "Falkland Islands (Malvinas)" -msgstr "" +msgstr "Falklandské ostrovy (Malvíny)" -#, fuzzy msgid "Fallback Configuration" -msgstr "Rucná konfigurácia" +msgstr "Záložná konfigurácia" -#, fuzzy msgid "Fallback Tuner Setup" -msgstr "Stav tunera" +msgstr "Nastavenie náhradného tunera" msgid "Fallback address type" -msgstr "" +msgstr "Typ záložnej adresy" -#, fuzzy msgid "Fallback receiver IP address" -msgstr "URL vzdialeného záložného prijímaca" +msgstr "IP adresa náhradného prijímača" -#, fuzzy msgid "Fallback receiver streaming port" -msgstr "Port streamu vzdialeného záložného prijímaca" +msgstr "Náhradný prijímací port na streamovanie" msgid "Fallback remote receiver URL" -msgstr "URL vzdialeného záložného prijímaca" +msgstr "Náhradná adresa URL vzdialeného prijímača" msgid "False" -msgstr "Nie" +msgstr "Nepravdivé" + +msgid "Familie" +msgstr "Família" + +msgid "Family" +msgstr "Rodina" #, python-format msgid "Fan %d" msgstr "Ventilátor %d" +msgid "Fantasy" +msgstr "Fantázia" + msgid "Faroe Islands" -msgstr "" +msgstr "Faerské ostrovy" msgid "Fast" -msgstr "rýchlo" +msgstr "Rýchlo" + +msgid "Fast Channel Change" +msgstr "Rýchla zmena kanála (FCC)" + +msgid "Fast Channel Change Setup" +msgstr "Nastavenie rýchlej zmeny kanála" + +msgid "Fast Channel Change setup" +msgstr "Nastavenie rýchlej zmeny kanálu" msgid "Fast DiSEqC" msgstr "Rýchly DiSEqC" @@ -6428,67 +6161,75 @@ msgid "Fast epoch" msgstr "Rýchla doba" msgid "Fast forward speeds" -msgstr "Rýchlosti prevíjania vpred." +msgstr "Rýchlosti prevíjania vpred" -#, fuzzy msgid "FastScan" -msgstr "Rýchle vyhladávanie" +msgstr "Rýchle vyhľadávanie (FastScan)" -#, fuzzy msgid "Fastforward" -msgstr "Rýchlosti prevíjania vpred." +msgstr "Prevíjanie vpred" -#, fuzzy msgid "Fastscan" -msgstr "Rýchle vyhladávanie" +msgstr "Rýchle vyhľadávanie" msgid "Favourites" -msgstr "Oblúbené" +msgstr "Obľúbené" + +msgid "Feeds status: Official developer feeds" +msgstr "Stav zdrojov: Oficiálne kanály pre vývojárov" msgid "Feeds status: Stable" -msgstr "" +msgstr "Stav zdrojov: Stabilné" msgid "Feeds status: Unexpected" -msgstr "" +msgstr "Stav zdrojov: Neočakávané" msgid "Feeds status: Unknown" -msgstr "" +msgstr "Stav zdrojov: Neznáme" msgid "Feeds status: Unknown, user feeds url" -msgstr "" +msgstr "Stav zdrojov: Neznáme, užívateľské url zdrojov" msgid "Feeds status: Unstable" -msgstr "" +msgstr "Stav zdrojov: Nestabilné" msgid "Feeds status: Updating" -msgstr "" +msgstr "Stav zdrojov: Aktualizácia" msgid "Fiji" msgstr "" -#, fuzzy, python-format +#, python-format msgid "" "File %s.conf not found.\n" -"Please enter username/password manually." +"Enter username/password manually." msgstr "" -"Oscam.conf súbor nebol nájdený.\n" -"Prosím, zadajte manuálne používatelské meno a heslo." +"Súbor %s.conf nebol nájdený.\n" +"Zadajte ručne užívateľské meno/heslo." -#, fuzzy msgid "Filename" -msgstr "názov súboru" +msgstr "Názov súboru" msgid "Filesystem Check" msgstr "Kontrola systému súborov" +msgid "Film" +msgstr "" + +msgid "Film-Noir" +msgstr "Nočný film" + msgid "Final position at" -msgstr "Konecná pozícia na" +msgstr "Konečná pozícia na" msgid "Final position at index" -msgstr "Konecná pozícia na zaciatku" +msgstr "Konečná pozícia pri indexe" msgid "Final scroll delay" -msgstr "" +msgstr "Konečné oneskorenie posúvania" + +msgid "Finance" +msgstr "Financie" msgid "Fine movement" msgstr "Jemný pohyb" @@ -6497,184 +6238,239 @@ msgid "Finetune" msgstr "Jemné nastavenie" msgid "Finished" -msgstr "Skoncené" +msgstr "Skončené" msgid "Finished configuring your network" -msgstr "Nastavenie siete je skoncené" +msgstr "Nastavenie siete je skončené" msgid "Finland" -msgstr "" +msgstr "Fínsko" msgid "Finnish" -msgstr "Fíncina" +msgstr "Fínsky" msgid "FirstPage" -msgstr "" +msgstr "Prvá strana" + +msgid "Fishing" +msgstr "Rybolov" + +msgid "Fitness & Health" +msgstr "Fitnes a zdravie" + +msgid "Fix CEC address setting, default is 1.0.0.0" +msgstr "Oprava nastavenia adresy CEC, predvolená hodnota je 1.0.0.0" msgid "Fixed" -msgstr "Pevná" +msgstr "Pevne" msgid "Flashing" -msgstr "Flashujem" +msgstr "Blikanie" + +msgid "Flat alphabetical" +msgstr "Plošne abecedne" + +msgid "Flat by key group on remote" +msgstr "Plocha podľa skupiny kľúčov na diaľkovom ovládaní" + +msgid "Flat by position on remote" +msgstr "Plocha podľa polohy na diaľkovom ovládači" + +msgid "Folk" +msgstr "Ľudové" + +msgid "Folkloric" +msgstr "Folklórne" msgid "Following tasks will be done after you press OK!" -msgstr "Po stlacení OK sa vykonajú tieto úlohy." +msgstr "Po stlačení OK sa vykonajú tieto úlohy!" -#, fuzzy msgid "Font size" -msgstr "Velkost písma" +msgstr "Veľkost písma" + +msgid "Food/Wine" +msgstr "Jedlo/Víno" + +msgid "Football" +msgstr "Futbal" + +msgid "Football - Club" +msgstr "Futbal - Klubový" + +msgid "Football - International" +msgstr "Futbal - Medzinárodný" msgid "Force de-interlace" -msgstr "Vynútit odstranovanie prekladania" +msgstr "Vynútiť odstraňovanie prekladania" msgid "Force legacy signal stats" -msgstr "" +msgstr "Vynútiť staršie štatistiky signálu" + +msgid "Force receiver to send volume keys to all devices on hdmi when no response to audio channel request." +msgstr "Prinúti prijímač, aby posielal tlačidlá hlasitosti všetkým zariadeniam na hdmi, keď nereaguje na žiadosť o zvukový kanál." + +msgid "Force volume keys" +msgstr "Vynútenie tlačidiel hlasitosti" msgid "Format" msgstr "Formát" +msgid "Formula One" +msgstr "" + msgid "Forward volume keys" -msgstr "Preposielat tlacidlá hlasitosti" +msgstr "Preposielať tlačidlá hlasitosti" msgid "Frame size in full view" -msgstr "Velkost obrazu pri plnom zobrazení" +msgstr "Veľkosť obrazu pri plnom zobrazení" -#, fuzzy msgid "France" -msgstr "romantika" +msgstr "Francúzsko" + +msgid "Frauen" +msgstr "Ženy" msgid "Free To Air" msgstr "Nekódované" msgid "Free memory" -msgstr "Volná pamät" +msgstr "Voľná pamäť" msgid "Free memory:" -msgstr "Volná pamät:" +msgstr "Voľná pamäť:" msgid "Free swap:" -msgstr "Swap volné:" +msgstr "Swap voľné:" msgid "Free:" -msgstr "Volné: " +msgstr "Voľné:" msgid "Free: " -msgstr "Volné: " +msgstr "Voľné: " msgid "French" -msgstr "Francúzština" +msgstr "Francúzsky" -#, fuzzy msgid "French Guiana" -msgstr "Francúzština" +msgstr "Francúzska Guyana" msgid "French Polynesia" -msgstr "" +msgstr "Francúzska Polynézia" msgid "French Southern Territories" -msgstr "" +msgstr "Francúzska južná územia" msgid "Frequency" -msgstr "Kmitocet" +msgstr "Kmitočet" -#, fuzzy msgid "Frequency & Channel" -msgstr "Použit frekvenciu alebo kanál" +msgstr "Kmitočet a Kanál" -#, fuzzy msgid "Frequency & Polarization" -msgstr "Polarizácia" +msgstr "Kmitočet a Polarizácia" -#, fuzzy msgid "Frequency (kHz)" -msgstr "Kmitocet" +msgstr "Kmitočet (kHz)" -#, fuzzy msgid "Frequency Norm:" -msgstr "Kmitocet" +msgstr "Frekvenčná norma:" msgid "Frequency bands" -msgstr "Kmitoctové pásma" +msgstr "Kmitočtové pásma" msgid "Frequency scan step size(khz)" -msgstr "Kmitoctový krok pri vyhladávaní (kHz)" +msgstr "Kmitočtový krok pri vyhľadávaní (kHz)" msgid "Frequency steps" -msgstr "Kmitoctové kroky" +msgstr "Kmitočtové kroky" -#, fuzzy msgid "Frequency:" -msgstr "Kmitocet" +msgstr "Kmitočet:" msgid "Fri" -msgstr "Pi" +msgstr "Pia" msgid "Friday" msgstr "Piatok" -#, fuzzy msgid "From:" -msgstr "Od:" +msgstr "Z:" -#, fuzzy msgid "Front Panel Display" -msgstr "Predný display" +msgstr "Displej predného panela" -#, fuzzy msgid "Front panel settings" -msgstr "Nastavenie aktualizácie softvéru" +msgstr "Nastavenia predného panelu" -#, fuzzy msgid "Full factory reset" -msgstr "Továrenské nastavenia" +msgstr "Úplné obnovenie výrobných nastavení" msgid "Full screen" msgstr "Celá obrazovka" msgid "Full transparency" -msgstr "Úplne priehladné" +msgstr "Úplne priehľadné" -#, fuzzy msgid "Full view resolution" -msgstr "Rozlíšenie plného obrazu" +msgstr "Rozlíšenie celého zobrazenia" -msgid "GB" -msgstr "GB" +msgid "Fußball" +msgstr "Futbal" -#, fuzzy, python-format +msgid "Für Kinder" +msgstr "Pre deti" + +msgid "GREEN" +msgstr "ZELENÁ" + +#, python-format msgid "GStreamer:\t%s\n" -msgstr "Stream" +msgstr "" -#, fuzzy msgid "GUI Skin" -msgstr "Vzhlady" +msgstr "Vzhľad grafického rozhrania (GUI)" -#, fuzzy msgid "" "GUI needs a restart to apply a new language\n" "Do you want to restart the GUI now?" msgstr "" -"Pre použitie nového vzhladu sa musí reštartovat GUI\n" -"Chcete teraz reštartovat GUI?" +"Pre použitie nového jazyka sa musí reštartovať GUI\n" +"Chcete teraz reštartovať GUI?" -#, fuzzy msgid "" "GUI needs a restart to switch modes\n" "Do you want to restart the GUI now?" msgstr "" -"Pre použitie nového vzhladu sa musí reštartovat GUI\n" -"Chcete teraz reštartovat GUI?" +"Pre použitie nového režimu sa musí reštartovať GUI\n" +"Chcete teraz reštartovať GUI?" -#, fuzzy msgid "GUI settings" -msgstr "Nastavenie EPG" +msgstr "Nastavenia grafického rozhrania (GUI)" msgid "Gabon" msgstr "" +msgid "Gaelic Football" +msgstr "Galský futbal" + +msgid "Gaelic Games" +msgstr "Galské hry" + msgid "Gambia" msgstr "" +msgid "Game Show" +msgstr "Herná šou" + +msgid "Gangster" +msgstr "" + +msgid "Gardening" +msgstr "Záhradkárstvo" + +msgid "Garten" +msgstr "" + msgid "Gateway" msgstr "Brána" @@ -6682,16 +6478,41 @@ msgid "General" msgstr "Všeobecné" msgid "General AC3 delay" -msgstr "Oneskorenie AC3" +msgstr "Všeobecné oneskorenie AC3" + +msgid "General Arts" +msgstr "Všeobecné umenie" -#, fuzzy msgid "General Bluetooth Audio delay" -msgstr "Oneskorenie AC3" +msgstr "Všeobecné oneskorenie zvuku Bluetooth" + +msgid "General Children's" +msgstr "Všeobecné detské" + +msgid "General Education" +msgstr "Všeobecné vzdelávanie" + +msgid "General Movie" +msgstr "Všeobecný film" + +msgid "General Music" +msgstr "Všeobecná hudba" + +msgid "General News" +msgstr "Všeobecné správy" msgid "General PCM delay" -msgstr "Oneskorenie PCM" +msgstr "Všeobecné oneskorenie PCM" + +msgid "General Show" +msgstr "Všeobecná šou" + +msgid "General Social" +msgstr "Všeobecná sociálna" + +msgid "General Sports" +msgstr "Všeobecné športy" -#, fuzzy msgid "Generic" msgstr "Všeobecné" @@ -6699,169 +6520,160 @@ msgid "Genre" msgstr "Žáner" msgid "Geolocation does not contain time zone information." -msgstr "" +msgstr "Geolokácia neobsahuje informácie o časovom pásme." msgid "Geolocation has been used to set the time zone." -msgstr "" +msgstr "Na nastavenie časového pásma sa použila geografická lokalizácia." -#, fuzzy msgid "Geolocation is not available." -msgstr "Zdroj aktualizácií nie je k dispozícií." +msgstr "Geolokácia nie je k dispozícii." msgid "Georgia" -msgstr "" +msgstr "Gruzínsko" msgid "German" -msgstr "Nemcina" +msgstr "Nemecky" -#, fuzzy msgid "Germany" -msgstr "Nemcina" +msgstr "Nemecko" + +msgid "Geschichte" +msgstr "História" + +msgid "Gesellschaft" +msgstr "Spoločnosť" + +msgid "Gesundheit" +msgstr "Zdravie" msgid "Getting Event Info failed!" -msgstr "Získavanie informácií o programe zlyhalo!" +msgstr "Získavanie informácií o relácii zlyhalo!" msgid "Getting plugin information. Please wait..." -msgstr "Získavam informácie o module. Cakajte..." +msgstr "Získanie informácií o doplnku. Počkajte prosím..." msgid "Ghana" msgstr "" msgid "Gibraltar" -msgstr "" +msgstr "Gibraltár" -#, fuzzy msgid "Go back 24 hours" msgstr "Skok vzad o 24 hodín" msgid "Go down the list" -msgstr "Prechádzat v zozname nadol" +msgstr "Prechádzať v zozname nadol" -#, fuzzy msgid "Go forward 24 hours" msgstr "Skok vpred o 24 hodín" msgid "Go to current time, then the start service" -msgstr "" +msgstr "Prejsť na aktuálny čas a potom na štartovaciu stanicu" msgid "Go to current time, then the start service, then home of list" -msgstr "" +msgstr "Prejsť na aktuálny čas, potom na štartovaciu stanicu a potom na domovskú stránku zoznamu" msgid "Go to first movie or last item" -msgstr "Prejst na prvý film alebo na poslednú položku" +msgstr "Prejsť na prvý film alebo na poslednú položku" msgid "Go to first movie or top of list" -msgstr "Prejst na prvý film alebo na prvú položku zoznamu" +msgstr "Prejsť na prvý film alebo na prvú položku zoznamu" -#, fuzzy msgid "Go to next bouquet" -msgstr "Prejst na nasledujúci prehlad" +msgstr "Prejsť na nasledujúci prehľad" -#, fuzzy msgid "Go to next channel" -msgstr "Prejst na nasledujúcu stanicu" +msgstr "Prejsť na nasledujúcu stanicu" -#, fuzzy msgid "Go to next event" -msgstr "Prejst na nasledujúcu udalost" +msgstr "Prejsť na nasledujúcu reláciu" -#, fuzzy msgid "Go to previous bouquet" -msgstr "Prepnút na predchádzajúci prehlad" +msgstr "Prejsť na predchádzajúci prehľad" -#, fuzzy msgid "Go to previous channel" -msgstr "Prejst na predchádzajúcu stanicu" +msgstr "Prejsť na predchádzajúcu stanicu" -#, fuzzy msgid "Go to previous event" -msgstr "Prejst na predchádzajúci program" +msgstr "Prejsť na predchádzajúcu reláciu" -#, fuzzy msgid "Go to specific data/time" -msgstr "Prejst na konkrétny dátum/cas" +msgstr "Prejsť na konkrétny údaj/čas" -#, fuzzy msgid "Go to specific date/time" -msgstr "Prejst na konkrétny dátum/cas" +msgstr "Prejsť na konkrétny dátum/čas" msgid "Go up the list" -msgstr "Prechádzat v zozname nahor" +msgstr "Prechádzať v zozname nahor" msgid "Gold" msgstr "" +msgid "Golf" +msgstr "" + msgid "Goto" -msgstr "Otocit na" +msgstr "Otočiť na" msgid "Goto 0" -msgstr "Otocit na 0" +msgstr "Otočiť na 0" msgid "Goto X" -msgstr "Otocit na X" +msgstr "Otočiť na X" msgid "Goto index position" -msgstr "Prejst na východziu pozíciu" +msgstr "Otočiť na východiskovú pozíciu" msgid "Goto position" -msgstr "Otocit do pozície" +msgstr "Otočiť na pozíciu" -#, fuzzy msgid "Goto:" -msgstr "Íst:" +msgstr "Choď na:" msgid "GotoX calibration" -msgstr "Kalibrácia Otocit na X" +msgstr "Kalibrácia Otočiť na X" msgid "Graphics" msgstr "Grafika" -#, fuzzy msgid "Graphics Grid EPG" -msgstr "Grafické EPG" +msgstr "Grafická mriežka EPG" -#, fuzzy msgid "Greece" -msgstr "Gréctina" +msgstr "Grécko" msgid "Greek" -msgstr "Gréctina" +msgstr "Grécky" -#, fuzzy msgid "Green" -msgstr "Gréctina" +msgstr "Zelená" -#, fuzzy msgid "Green button (long)" -msgstr "Tlacidlo info (dlho)" +msgstr "Zelené tlačidlo (dlho)" -#, fuzzy msgid "Green button (short)" -msgstr "Tlacidlo info (krátko)" +msgstr "Zelené tlačidlo (krátko)" msgid "Green long" -msgstr "" +msgstr "Zelené tlačidlo dlho" -#, fuzzy msgid "Greenland" -msgstr "Gréctina" +msgstr "Grónsko" -#, fuzzy msgid "Grenada" -msgstr "premenovat" +msgstr "" msgid "Grey" msgstr "Sivá" -#, fuzzy msgid "Grid EPG" -msgstr "Grafické EPG" +msgstr "Mriežka EPG" msgid "Grow drop" -msgstr "" +msgstr "Pokles rastu" msgid "Grow from left" -msgstr "" +msgstr "Rastie zľava" msgid "Guadeloupe" msgstr "" @@ -6870,7 +6682,7 @@ msgid "Guam" msgstr "" msgid "Guard interval" -msgstr "Interval ochrany" +msgstr "Ochranný interval" msgid "Guatemala" msgstr "" @@ -6887,32 +6699,35 @@ msgstr "" msgid "Guyana" msgstr "" +msgid "Gymnastics" +msgstr "Gymnastika" + msgid "H7/H9/H9COMBO/H10 new Model" -msgstr "" +msgstr "H7/H9/H9COMBO/H10 nový model" msgid "H9 SDcard switch ERROR! - H9 root files not transferred to SD card" -msgstr "" +msgstr "CHYBA prepnutia H9 SD karty! - koreňové súbory H9 sa neprenášajú na kartu SD" msgid "H9 SDcard switch ERROR! - already on Nand" -msgstr "" +msgstr "CHYBA prepnutia H9 SD karty! - existuje už v Nand" msgid "H9 SDcard switch ERROR! - already on mmc" -msgstr "" +msgstr "CHYBA prepnutia H9 SD karty! - existuje už v mmc" msgid "H9 USB switch ERROR! - H9 root files not transferred to USB" -msgstr "" +msgstr "CHYBA prepnutia H9 USB! - koreňové súbory H9 sa neprenášajú na USB" msgid "H9 USB switch ERROR! - already on USB" -msgstr "" +msgstr "CHYBA prepnutia H9 USB! - existuje už na USB" msgid "H9 switch Nand and SDcard" -msgstr "" +msgstr "Prepínač H9 Nand a SD karty" msgid "H9SDroot" msgstr "" msgid "H: = Hourly / D: = Daily / W: = Weekly / M: = Monthly" -msgstr "H: = každú hodinu / D: = denne / W: = týždenne / M: = mesacne" +msgstr "H: = hodinové / D: = denné / W: = týždenné / M: = mesačné" msgid "H:mm" msgstr "" @@ -6920,9 +6735,8 @@ msgstr "" msgid "H:mm:ss" msgstr "" -#, fuzzy msgid "HD" -msgstr "HDMI" +msgstr "" msgid "HD list" msgstr "Zoznam HD" @@ -6936,52 +6750,44 @@ msgstr "" msgid "HD60" msgstr "" -#, fuzzy msgid "HDD settings" -msgstr "Nastavenia OSD" +msgstr "Nastavenia HDD" msgid "HDMI" msgstr "HDMI" -msgid "HDMI CEC" -msgstr "HDMI CEC" - -#, fuzzy msgid "HDMI Colordepth" -msgstr "Farebný priestor:" +msgstr "Hĺbka farieb HDMI" -#, fuzzy msgid "HDMI Colorimetry" -msgstr "Farebný priestor:" +msgstr "Farebnosť HDMI" -#, fuzzy msgid "HDMI Colorspace" -msgstr "Farebný priestor:" +msgstr "Farebný rozsah HDMI" msgid "HDMI HDR Type" -msgstr "" +msgstr "Typ HDMI HDR" -#, fuzzy msgid "HDMI input" -msgstr "HDMI" +msgstr "Vstup HDMI" -#, fuzzy -msgid "HDMI-CEC address editing actions" -msgstr "Nastavenie MAC adresy" +msgid "HDMI-CEC" +msgstr "" + +msgid "HDMI-CEC Setup" +msgstr "Nastavenie HDMI-CEC" -#, fuzzy msgid "HDMIin" -msgstr "HDMI" +msgstr "" msgid "HDR, 12bit 4:2:0/4:2:2, no PIP" -msgstr "" +msgstr "HDR, 12bitové 4:2:0/4:2:2, bez PIP" -#, fuzzy msgid "HDR10 Support" -msgstr "podpora DLNA" +msgstr "Podpora HDR10" msgid "HELP" -msgstr "" +msgstr "NÁPOVEDA" msgid "HH:mm" msgstr "" @@ -6989,36 +6795,50 @@ msgstr "" msgid "HH:mm:ss" msgstr "" -#, fuzzy +msgid "HI cleanup for external subtitles" +msgstr "Vyčistenie HI pre externé titulky" + +msgid "HISTORY" +msgstr "HISTÓRIA" + msgid "HLG Support" -msgstr "podpora DLNA" +msgstr "Podpora HLG" + +msgid "HOME" +msgstr "DOMOV" + +msgid "HOMEPAGE" +msgstr "DOMÁCA STRÁNKA" -#, fuzzy msgid "Haiti" -msgstr "Cakám" +msgstr "" + +msgid "Handball" +msgstr "Hádzaná" + +msgid "Handle ASCII" +msgstr "Spracovanie ASCII" msgid "Handle standby from TV" -msgstr "Uspat prijímac signálom z TV" +msgstr "Riadenie pohotovostného režimu z televízora" msgid "Handle wakeup from TV" -msgstr "Spracovat prebudenie signálom z TV" +msgstr "Spracovanie prebudenia z TV" msgid "Hard disk standby after" -msgstr "Uspat pevný disk po" +msgstr "Pohotovostný režim pevného disku po" -#, fuzzy msgid "Harddisk setup" msgstr "Nastavenie pevného disku" msgid "HbbTV" msgstr "" -#, fuzzy -msgid "Hdmi-CEC setup" -msgstr "Nastavenie pevného disku" +msgid "Health & Fitness" +msgstr "Zdravie a fitnes" msgid "Heard Island and McDonald Islands" -msgstr "" +msgstr "Ostrov Heard a McDonaldove ostrovy" msgid "Hebrew" msgstr "Hebrejsky" @@ -7026,100 +6846,119 @@ msgstr "Hebrejsky" msgid "Height" msgstr "Výška" -msgid "Help" +msgid "Heimat" msgstr "" +msgid "Heimwerker" +msgstr "Urob si sám" + +msgid "Help" +msgstr "Nápoveda" + +msgid "Help Screen" +msgstr "Obrazovka nápovedy" + msgid "Help long" -msgstr "" +msgstr "Nápoveda dlho" -#, fuzzy msgid "Helps setting up your antenna" -msgstr "Pomáha nastavit Vašu parabolu" +msgstr "Pomáha pri nastavovaní Vašej antény" -#, fuzzy msgid "Hidden / Blank" -msgstr "Skrytá siet" +msgstr "Skryté / Prázdne" msgid "Hidden network" -msgstr "Skrytá siet" +msgstr "Skrytá sieť" msgid "Hide" -msgstr "" +msgstr "Skryť" msgid "Hide CI messages" -msgstr "Skryt CI správy" +msgstr "Skryť CI správy" msgid "Hide any zap error messages." -msgstr "Skryt všetky chybové hlásenia prepínania staníc." +msgstr "Skryť všetky chybové hlásenia prepínania." msgid "Hide error messages from the Common Interface module." -msgstr "Skryt chybové hlásenia z modulu Common Interface." +msgstr "Skryť chybové hlásenia z Common Interface modulu." -#, fuzzy msgid "Hide infobar display" -msgstr "jemné nastavenie obrazu" +msgstr "Skryť zobrazenie informačnej lišty" msgid "Hide infobar display and ask whether to close PiP" -msgstr "" +msgstr "Skryť zobrazenie informačnej lišty a spýtať sa, či zavrieť PiP" msgid "Hide infobar display and close PiP" -msgstr "" +msgstr "Skryť zobrazenia informačnej lišty a zatvorenie PiP" msgid "Hide known extensions" -msgstr "Skryt známe prípony" +msgstr "Skryť známe prípony" -#, fuzzy msgid "Hide number markers" -msgstr "sem vložit znacku" +msgstr "Skrytie číselných značiek" msgid "Hide parental locked services" -msgstr "" +msgstr "Skrytie rodičovských uzamknutých staníc" msgid "Hide player" -msgstr "Skryt prehrávac" +msgstr "Skryť prehrávač" msgid "Hide sub-menu" -msgstr "" +msgstr "Skryť podponuku" msgid "Hide zap errors" -msgstr "Skryt chyby pri prepínaní staníc" +msgstr "Skryť chyby prepínania" msgid "Hierarchy info" msgstr "Info o hierarchii" +msgid "High" +msgstr "Vysoký" + msgid "High bitrate support" -msgstr "Spracuje vysoký dátový tok" +msgstr "Podpora vysokého dátového toku" msgid "Highlight current events" -msgstr "" +msgstr "Zvýraznenie aktuálnych relácií" + +msgid "Historical" +msgstr "Historické" + +msgid "History" +msgstr "História" + +msgid "History Prev/Next" +msgstr "História Predchádzajúce/Nasledujúce" -#, fuzzy msgid "History Zap" -msgstr "Prepnút z histórie..." +msgstr "História prepínania" -#, fuzzy msgid "History Zap Actions" -msgstr "Prepnút z histórie..." +msgstr "Činnosť histórie prepínania" -#, fuzzy msgid "History back" -msgstr "Prepnút z histórie..." +msgstr "História predchádzajúci" msgid "History buttons mode" -msgstr "Režim tlacidiel histórie" +msgstr "Režim tlačidiel histórie" -#, fuzzy msgid "History next" -msgstr "Režim tlacidiel histórie" +msgstr "História nasledujúci" + +msgid "Hobbys" +msgstr "Žáľuby" + +msgid "Hockey" +msgstr "Hokej" msgid "Hold screen" -msgstr "Držat obrazovku" +msgstr "Podržanie obrazovky" msgid "Hold till locked" -msgstr "Držat kým uzamknuté" +msgstr "Podržať, kým sa neuzamkne" msgid "Holy See" -msgstr "" +msgstr "Vatikán" msgid "Home" msgstr "Domov" @@ -7130,48 +6969,53 @@ msgstr "" msgid "Hong Kong" msgstr "" -#, fuzzy msgid "Hops" -msgstr "Pocet skokov:" +msgstr "Skoky" msgid "Hops:" -msgstr "Pocet skokov:" +msgstr "Skokov:" msgid "Horizontal" -msgstr "Vodorovná" +msgstr "Vodorovne" msgid "Horizontal turning speed" -msgstr "Vodorovná rýchlost otácania" +msgstr "Vodorovná rýchlosť otáčania" + +msgid "Horror" +msgstr "" + +msgid "Horse Racing" +msgstr "Konské dostihy" + +msgid "Horse racing" +msgstr "Dostihy" -#, fuzzy msgid "Host domain" -msgstr "vypnút" +msgstr "Doména hostiteľa" msgid "Host receiver FTP password" -msgstr "" +msgstr "Heslo FTP hostiteľského prijímača" msgid "Host receiver FTP port" -msgstr "" +msgstr "Port FTP hostiteľského prijímača" msgid "Host receiver FTP username" -msgstr "" +msgstr "Uživateľ FTP hostiteľského prijímača" -#, fuzzy msgid "Host receiver IP address" -msgstr "Nastavte IP adresu." +msgstr "IP adresa hostiteľského prijímača" msgid "Host receiver address type" -msgstr "" +msgstr "Typ adresy prijímača hostiteľa" -#, fuzzy msgid "Host receiver streaming port" -msgstr "Port streamu vzdialeného záložného prijímaca" +msgstr "Port pre streamovanie hostiteľského prijímača" msgid "Hostname:" -msgstr "Názov hostitela:" +msgstr "Názov hostiteľa:" msgid "Hostname: " -msgstr "Názov hostitela:" +msgstr "Názov hostiteľa: " msgid "Hotplug" msgstr "" @@ -7180,7 +7024,7 @@ msgid "Hour" msgstr "Hodina" msgid "Hourly" -msgstr "Každú hodinu" +msgstr "Hodinové" msgid "Hours Mins" msgstr "Hodín Minút" @@ -7188,56 +7032,60 @@ msgstr "Hodín Minút" msgid "Hours Mins Secs" msgstr "Hodín Minút Sekúnd" -#, fuzzy msgid "How many minutes do you want add to the recording?" -msgstr "Kolko minút chcete nahrávat?" +msgstr "Koľko minút chcete pridať k nahrávke?" -#, fuzzy msgid "How many minutes do you want to record for?" -msgstr "Kolko minút chcete nahrávat?" +msgstr "Koľko minút chcete nahrávať?" + +msgid "How to display the date format for date items in the About screen." +msgstr "Ako zobraziť formát dátumu pre položky dátumu na obrazovke Informácie." + +msgid "Http(s) stream start delay" +msgstr "Oneskorenie spustenia streamu http(s)" msgid "Hue" -msgstr "Odtien" +msgstr "Odtieň" msgid "Hungarian" -msgstr "Madarcina" +msgstr "Maďarsky" -#, fuzzy msgid "Hungary" -msgstr "Madarcina" +msgstr "Maďarsko" msgid "IDLE" -msgstr "" +msgstr "NEČINNOSŤ" msgid "IMDB search for current event" -msgstr "Nájst aktuálny program v IMDB" +msgstr "Nájsť aktuálnu reláciu v IMDB" -#, fuzzy msgid "IMDb Search" -msgstr "Vyhladávanie v IMDb" +msgstr "Vyhľadávanie v IMDb" + +msgid "IMDb search" +msgstr "Hľadanie v IMDb" + +msgid "IMDb search for highlighted event" +msgstr "Nájsť zvýraznenú reláciu v IMDB" msgid "INFO" -msgstr "" +msgstr "INFORMÁCIA" -#, fuzzy msgid "INFO button action" -msgstr "Tlacidlo OK (dlho)" +msgstr "Činnosť tlačidla INFO" msgid "INS" -msgstr "" +msgstr "VLOŽIŤ" -#, fuzzy msgid "IP" -msgstr "IP:" +msgstr "" -#, fuzzy msgid "IP Address" -msgstr "IP adresa" +msgstr "IP Adresa" msgid "IP address" msgstr "IP adresa" -#, fuzzy msgid "" "IP address\n" "\n" @@ -7247,13 +7095,13 @@ msgid "" "- No valid IP address was found.\n" "- Please check your DHCP server, cabling and adapter setup." msgstr "" -"Tento test overuje, ci je platná IP adresa sietovej karty.\n" -"Ak dostanete hlásenie „nepotvrdené“:\n" +"Tento test overuje, či je platná IP adresa sieťovej karty.\n" +"Ak dostanete hlásenie 'nepotvrdené':\n" "- nebola nájdená platná IP adresa\n" -"- skontrolujte DHCP, kabeláž a nastavenie karty" +"- skontrolujte DHCP, kabeláž a nastavenie karty." msgid "IP:" -msgstr "IP:" +msgstr "" msgid "ISO file is too large for this filesystem!" msgstr "Súbor ISO je pre tento súborový systém príliš velký!" @@ -7261,266 +7109,222 @@ msgstr "Súbor ISO je pre tento súborový systém príliš velký!" msgid "ISO path" msgstr "Cesta ISO" +msgid "Ice Hockey" +msgstr "Ľadový hokej" + +msgid "Ice Skating" +msgstr "Korčuľovanie" + msgid "Iceland" -msgstr "" +msgstr "Island" msgid "Icons" msgstr "Ikony" +msgid "Identify image version on bootlogo.mvi." +msgstr "Identifikácia verzie systémového obrazu na bootlogo.mvi." + msgid "Idle Time: " -msgstr "Doba necinnosti:" +msgstr "Čas nečinnosti: " -msgid "" -"If enabled and PiP is available, PiP will be used for the download. If " -"disabled or Pip is unavailable the download will be done as a fake recording." -msgstr "" +msgid "If an action is user-configurable, its help entry will be flagged (C)" +msgstr "Ak je akcia konfigurovateľná užívateľom, jej položka nápovedy bude označená (C)" -#, fuzzy -msgid "" -"If enabled the output resolution of the box will try to match the resolution " -"of the video content" -msgstr "" -"Ak je povolené, rozlíšenie prijímaca na výstupe sa pokúsi prispôsobit " -"rozlíšeniu obsahu videa." +msgid "If enabled and PiP is available, PiP will be used for the download. If disabled or Pip is unavailable the download will be done as a fake recording." +msgstr "Ak je táto funkcia povolená a PiP je k dispozícii, na sťahovanie sa použije PiP. Ak je vypnuté alebo PiP nie je k dispozícii, stiahnutie sa uskutoční ako falošná nahrávka." + +msgid "If enabled the output resolution of the box will try to match the resolution of the video content" +msgstr "Ak je táto možnosť zapnutá, výstupné rozlíšenie boxu sa bude snažiť prispôsobiť rozlíšeniu obsahu videa" msgid "If enabled the video will always be de-interlaced." -msgstr "" -"Ak je povolené, na videu bude vždy aplikovaný filter odstránenia prekladania." +msgstr "Ak je táto možnosť zapnutá, video bude vždy bez prelínania." msgid "If enabled, a log will be kept of CEC protocol traffic ('hdmicec.log')." -msgstr "" +msgstr "Ak je táto možnosť povolená, bude sa uchovávať protokol o prevádzke protokolu CEC ('hdmicec.log')." -msgid "" -"If enabled, display shows 12 chars instead 8, but in latin-1/translit only." -msgstr "" +msgid "If enabled, display shows 12 chars instead 8, but in latin-1/translit only." +msgstr "Ak je táto funkcia zapnutá, na displeji sa zobrazí 12 znakov namiesto 8, ale len v latin-1/translit." + +msgid "If enabled, the new GStreamer playback engine will be used." +msgstr "Ak je táto možnosť povolená, bude sa používať nový prehrávací engine GStreamer." msgid "If set to 'Standard' number buttons page up/down/left/right." -msgstr "" +msgstr "Ak je nastavené na 'Štandardné', číselné tlačidlá stránkujú nahor/nadol/doľava/doprava." msgid "If set to 'yes' channels without EPG will not be shown." -msgstr "Ak nastavené na \"áno\" kanály bez EPG sa nezobrazia." +msgstr "Ak je nastavené na 'áno' kanály bez EPG sa nezobrazia." msgid "If set to 'yes' it will show the 'PO' packages in browser." -msgstr "Ak nastavené na \"áno\" ukáže \"PO\" balíky v prehliadaci." +msgstr "Ak je nastavená na 'áno' zobrazí balíčky 'PO' v prehliadači." msgid "If set to 'yes' it will show the 'SRC' packages in browser." -msgstr "Ak nastavené na \"áno\" ukáže \"SRC\" balíky v prehliadaci." +msgstr "Ak je nastavené na 'áno' zobrazí balíčky 'SRC' v prehliadači." -#, fuzzy msgid "If set to 'yes' shows a small TV screen in the EPG." -msgstr "Ak nastavené na \"áno\" zobrazuje zmenšenú TV-obrazovku v EPG." +msgstr "Ak je nastavené na 'áno' zobrazí zmenšenú TV-obrazovku v EPG." -msgid "" -"If set to 'yes' signal values (SNR, etc) will be calculated from API V3. " -"This is an old API version that has now been superseded." -msgstr "" +msgid "If set to 'yes' signal values (SNR, etc) will be calculated from API V3. This is an old API version that has now been superseded." +msgstr "Ak je nastavené na 'áno' vypočítajú sa hodnoty signálu (SNR atď.) z API V3. Ide o starú verziu API, ktorá už bola nahradená." msgid "If set to 'yes' the bouquets will be shown each time you open the EPG." -msgstr "" -"Ak je nastavené na 'áno' prehlad prehladov sa zobrazí po každom otvorení EPG." +msgstr "Ak je nastavené na 'áno' prehľady sa zobrazia pri každom otvorení EPG." -msgid "" -"If set to 'yes' the channel list will be shown after switching between radio " -"and TV modes." -msgstr "" -"Ak je nastavené na 'áno' zobrazí sa zoznam staníc po prepnutí medzi Rádio a " -"TV režimom." +msgid "If set to 'yes' the channel list will be shown after switching between radio and TV modes." +msgstr "Ak je nastavené na 'áno' zobrazí sa zoznam kanálov po prepnutí medzi Rádio a TV režimom." msgid "If set to 'yes' the channel number will be displayed in the infobar." -msgstr "" -"Ak povolené, pri prepínaní staníc sa zobrazí v informacný panel císlo " -"stanice." +msgstr "Ak je nastavené na 'áno' pri prepínaní sa zobrazí v informačnej lište číslo stanice." msgid "If set to 'yes' the infobar will be displayed when a new event starts." -msgstr "Ak povolené, pri zacatí novej relácie sa zobrazí informacný panel." +msgstr "Ak je nastavené na 'áno' pri začatí novej relácie sa zobrazí informačná lišta." msgid "If set to 'yes' the infobar will be displayed when changing channels." -msgstr "Ak povolené, pri prepínaní staníc sa zobrazí informacný panel." +msgstr "Ak je nastavené na 'áno' pri prepínaní kanálov sa zobrazí informačná lišta." -msgid "" -"If set to 'yes' the same commands will be sent to the TV for deep standby " -"events, as are sent during regular standby events." -msgstr "" +msgid "If set to 'yes' the same commands will be sent to the TV for deep standby events, as are sent during regular standby events." +msgstr "Ak je nastavené na 'áno' pri udalostiach vyčkávacieho režimu sa do televízora budú posielať rovnaké príkazy ako pri bežných udalostiach pohotovostného režimu." msgid "If set to 'yes' you can preview channels in the EPG list." -msgstr "Ak nastavíte 'áno' bude možný náhlad stanice v zozname EPG." +msgstr "Ak je nastavené na 'áno' bude možný náhľad kanálov v zozname EPG." -msgid "" -"If set to 'yes' you can preview channels in the channel list. Press 'OK' to " -"preview the selected channel, press a 2nd 'OK' to exit and zap to that " -"channel, pressing 'EXIT' to return to the channel you started at." -msgstr "" -"Ak je nastavené na 'áno', môžete zobrazit náhlady staníc v zozname staníc. " -"Stlacte 'OK' k náhladu vybranej stanice, druhé 'OK' k ukonceniu a prepnutiu " -"na stanicu, stlacením 'EXIT' pre návrat na pôvodnú stanicu." +msgid "If set to 'yes' you can preview channels in the channel list. Press 'OK' to preview the selected channel, press a 2nd 'OK' to exit and zap to that channel, pressing 'EXIT' to return to the channel you started at." +msgstr "Ak je nastavené na 'áno' môžete zobraziť náhľady kanálov v zozname kanálov. Stlačte 'OK' k náhľadu vybraného kanálu, druhé 'OK' k ukončeniu a prepnutiu na kanál, stlačením 'EXIT' pre návrat na pôvodný kanál." -msgid "" -"If set to 'yes', allows you to use the seekbar to jump to a point within the " -"event." -msgstr "" -"Ak nastavíte na 'áno', umožnuje skok/presunutie sa do casového bodu v rámci " -"udalosti." +msgid "If set to 'yes', allows you to use the seekbar to jump to a point within the event." +msgstr "Ak je nastavené na 'áno' umožňuje použiť vyhľadávací panel na skok/presunutie do časového bodu v rámci relácie." -msgid "" -"If set to 'yes', the infobar will be displayed when Fast Forwarding or " -"Rewinding during media playback." -msgstr "" -"Ak nastavíte na 'áno', pri rýchlom pretácaní alebo pretácaní behom " -"prehrávania médií sa zobrazí informacný panel." +msgid "If set to 'yes', allows you to use timeshift with alternative audio plugins." +msgstr "Ak je nastavené na 'áno' umožňuje používať časový posun s alternatívnymi zvukovými doplnkami." -msgid "" -"If the text is too long to be displayed on the front panel, it will be " -"repeated (number of times):" -msgstr "" -"Ak je text príliš dlhý pre zobrazenie na celnom displeji prijímaca, bude " -"opakovaný (pocet kolkokrát preroluje):" +msgid "If set to 'yes', the infobar will be displayed when Fast Forwarding or Rewinding during media playback." +msgstr "Ak je nastavené na 'áno' pri rýchlom prevíjaní dopredu alebo dozadu sa behom prehrávania médií zobrazí informačná lišta." -msgid "" -"If using multiple uncommitted switches the DiSEqC commands must be sent " -"multiple times. Set to the number of uncommitted switches in the chain minus " -"one." -msgstr "" +msgid "If the receiver was woken from 'Deep Standby' and is currently in 'Standby' and no recordings are in progress return it to 'Deep Standby' once the EPG download has completed." +msgstr "Ak bol prijímač prebudený z 'Vyčkávacieho režimu' a momentálne je v 'Pohotovostnom režime' a neprebieha žiadne nahrávanie, vráti sa do 'Vyčkávacieho režimu' po dokončení sťahovania EPG." -msgid "" -"If you are using a Circular polarised LNB select 'yes', otherwise select " -"'no'." -msgstr "" +msgid "If the text is too long to be displayed on the front panel, it will be repeated (number of times):" +msgstr "Ak je text príliš dlhý pre zobrazenie na prednom displeji, bude opakovaný (počet koľkokrát preroluje):" -msgid "" -"If you are using a DiSEqC committed switch enter the port letter required to " -"access the LNB used for this satellite." -msgstr "" +msgid "If using multiple uncommitted switches the DiSEqC commands must be sent multiple times. Set to the number of uncommitted switches in the chain minus one." +msgstr "Ak sa používa viacero 'uncommitted' prepínačov, príkazy DiSEqC sa musia poslať viackrát. Nastavte na počet 'uncommitted' prepínačov v reťazci mínus jeden." -msgid "" -"If you are using a DiSEqC uncommitted switch enter the port number required " -"to access the LNB used for this satellite." -msgstr "" +msgid "If you are using a Circular polarised LNB select 'yes', otherwise select 'no'." +msgstr "Ak používate LNB s kruhovou polarizáciou, vyberte 'áno', inak vyberte 'nie'." + +msgid "If you are using a DiSEqC committed switch enter the port letter required to access the LNB used for this satellite." +msgstr "Ak používate 'committed' prepínač DiSEqC, zadajte písmeno portu potrebného na prístup k LNB, ktorý sa používa pre tento satelit." + +msgid "If you are using a DiSEqC uncommitted switch enter the port number required to access the LNB used for this satellite." +msgstr "Ak používate 'uncommitted' prepínač DiSEqC, zadajte číslo portu potrebné na prístup k LNB používanému pre tento satelit." -#, fuzzy msgid "" "If you can see this, something is wrong with\n" "your scart connection. Press OK to return." msgstr "" -"Ak vidíte toto, nieco nie je v poriadku\n" -"s pripojením scart. Vrátte sa stlacením tlacidla OK." +"Ak vidíte toto, niečo nie je v poriadku\n" +"s pripojením scart. Vráťte sa stlačením tlačidla OK." msgid "" -"If your TV has a brightness or contrast enhancement, disable it. If there is " -"something called \"dynamic\", set it to standard. Adjust the backlight level " -"to a value suiting your taste. Turn down contrast on your TV as much as " -"possible.\n" -"Then turn the brightness setting as low as possible, but make sure that the " -"two lowermost shades of gray stay distinguishable.\n" -"Do not care about the bright shades now. They will be set up in the next " -"step.\n" +"If your TV has a brightness or contrast enhancement, disable it. If there is something called \"dynamic\", set it to standard. Adjust the backlight level to a value suiting your taste. Turn down contrast on your TV as much as possible.\n" +"Then turn the brightness setting as low as possible, but make sure that the two lowermost shades of gray stay distinguishable.\n" +"Do not care about the bright shades now. They will be set up in the next step.\n" "If you are happy with the result, press OK." msgstr "" -"Ak máte na televízore zdôraznenie jasu alebo kontrastu, zrušte ho. Ak je v " -"nastaveniach nieco ako „dynamický režim“, nastavte ho na štandardnú hodnotu. " -"Podsvietenie nastavte na hodnotu, ktorá Vám vyhovuje. Stiahnite kontrast " -"televízora na najnižšiu hodnotu.\n" -"Potom nastavte jas na najnižšiu možnú hodnotu, ale tak, aby dva najtmavšie " -"odtiene sivej zostali rozlíšitelné.\n" -"V tejto chvíli sa nestarajte o svetlé odtiene. Tie nastavíte v dalšom " -"kroku.\n" -"Ak ste spokojní s výsledkom, stlacte tlacidlo OK." +"Ak máte na televízore zdôraznenie jasu alebo kontrastu, zrušte ho. Ak je v nastaveniach niečo ako 'dynamický režim', nastavte ho na štandardnú hodnotu. Podsvietenie nastavte na hodnotu, ktorá Vám vyhovuje. Stiahnite kontrast televízora na najnižšiu hodnotu.\n" +"Potom nastavte jas na najnižšiu možnú hodnotu, ale tak, aby dva najtmavšie odtiene sivej zostali rozlíšiteľné.\n" +"V tejto chvíli sa nestarajte o svetlé odtiene. Tie nastavíte v ďalšom kroku.\n" +"Ak ste spokojní s výsledkom, stlačte tlačidlo OK." msgid "Ignore DVB-C namespace sub network" -msgstr "" +msgstr "Ignorovať podsieť menného priestoru DVB-C" msgid "Ignore DVB-S namespace sub network" -msgstr "" +msgstr "Ignorovať podsieť menného priestoru DVB-S" msgid "Ignore DVB-T namespace sub network" -msgstr "" +msgstr "Ignorovať podsieť menného priestoru DVB-T" -#, fuzzy, python-format -msgid "Image Slot:\t%s" -msgstr "Typ image:" +#, python-format +msgid "Image Slot:\tStartup %s - %s %s" +msgstr "Slot sys.obrazu:\tSpúšťanie %s - %s %s" -#, fuzzy msgid "Image View On" -msgstr "Zobrazenie zdielania" +msgstr "Obrazové zobrazenie zapnuté" -#, fuzzy msgid "Image manager" -msgstr "Správca systémového softvéru" +msgstr "Správca systémového obrazu" -#, fuzzy, python-format +#, python-format msgid "Image:\t%s.%s%s (%s)\n" -msgstr "Zostavenie: %s" +msgstr "Sys.obraz:\t%s.%s%s (%s)\n" msgid "Immediate shutdown" -msgstr "Ihned vypnút" +msgstr "Ihneď vypnúť" msgid "Immediately restart selected cams." -msgstr "" +msgstr "Okamžite reštartujte vybrané softcamy." -msgid "" -"In Setup screens choose whether to show the default value of the selected " -"item in the description field." -msgstr "" +msgid "In Developer images only. Allows swapping between oe-alliance/branding or oe-alliance/remotes for button position mapping and rc graphic." +msgstr "Len na systémových obrazoch pre vývojárov. Umožňuje výmenu medzi oe-alliance/branding alebo oe-alliance/remotes pre mapovanie pozície tlačidiel a grafické DO." -msgid "" -"In live view wait this many seconds after a numeric key press before " -"assuming the required channel number has been entered. Default: 5 seconds. " -"Setting zero will require confirmation with 'OK'. " -msgstr "" +msgid "In Setup screens choose whether to show the default value of the selected item in the description field." +msgstr "Na obrazovkách nastavenia vyberte, či sa má v poli popisu zobrazovať predvolená hodnota vybranej položky." -msgid "" -"In order to record a timer, the TV was switched to the recording service!\n" -msgstr "" -"Aby sa mohol nahrat nacasovaný program, preplo sa na nahrávanú stanicu!\n" +msgid "In live view wait this many seconds after a numeric key press before assuming the required channel number has been entered. Default: 5 seconds. Setting zero will require confirmation with 'OK'. " +msgstr "V živom zobrazení počkajte toľko sekúnd po stlačení číselného tlačidla, kým sa predpokladá, že bolo zadané požadované číslo kanála. Predvolené nastavenie: 5 sekúnd. Nastavenie nuly bude vyžadovať potvrdenie pomocou 'OK'. " + +msgid "In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Aby sa mohol nahrať načasovaný program, preplo sa na nahrávanú stanicu!\n" msgid "In progress" msgstr "Prebieha" msgid "In the Standby Record on the LCD Display" -msgstr "" +msgstr "V pohotovostnom režime Nahrávanie na LCD displeji" -#, fuzzy msgid "Inadyn" -msgstr "Log súbor Inadyn" +msgstr "" msgid "Inadyn Setup" msgstr "Nastavenie Inadyn" msgid "Include AIT in http streams" -msgstr "Zahrnút AIT do http streamov" +msgstr "Zahrnúť AIT do http streamov" -#, fuzzy msgid "Include CI assignment" -msgstr "Priradenie CI" +msgstr "Zahrnúť priradenie CI" msgid "Include ECM in http streams" -msgstr "Zahrnút ECM do http streamov" +msgstr "Zahrnúť ECM do http streamov" msgid "Include EIT in http streams" -msgstr "Zahrnút EIT do http streamov" +msgstr "Zahrnúť EIT do http streamov" #, python-format msgid "" "Incorrect format for skip value: '%s'\n" "Skip cancelled." msgstr "" +"Nesprávny formát hodnoty preskočenia: '%s'\n" +"Preskočenie zrušené." -#, fuzzy msgid "Incorrect service type for PiP!" msgstr "Nesprávny typ služby pre PiP!" msgid "Increase time scale" -msgstr "Zväcšit casovú mierku" +msgstr "Zväčšiť časovú mierku" msgid "Increased voltage" -msgstr "Zvýšené napätie" +msgstr "Zvýšiť napätie" -#, fuzzy msgid "Increment end time" -msgstr "Nastavenie casu ukoncenia" +msgstr "Zvýšenie času ukončenia" -#, fuzzy msgid "Increment start time" -msgstr "Zaciatok" +msgstr "Zvýšenie času spustenia" + +msgid "Independent" +msgstr "Nezávislé" msgid "Index allocated:" msgstr "Index pridelený:" @@ -7529,95 +7333,85 @@ msgid "India" msgstr "" msgid "Indonesia" -msgstr "" +msgstr "Indonézia" msgid "Info" -msgstr "Informacná lišta" +msgstr "Informácia" -#, fuzzy msgid "Info (EPG)" -msgstr "Informacný panel EPG" +msgstr "Informácia (EPG)" -#, fuzzy msgid "Info (EPG) Long" -msgstr "Režim EPG v informacnom paneli" +msgstr "Informácia (EPG) dlho" msgid "Info button (long)" -msgstr "Tlacidlo info (dlho)" +msgstr "Tlačidlo INFO (dlho)" msgid "Info button (short)" -msgstr "Tlacidlo info (krátko)" +msgstr "Tlačidlo INFO (krátko)" -#, fuzzy msgid "Info icon width" -msgstr "Šírka picon" +msgstr "Šírka ikony Info" msgid "InfoBar EPG" -msgstr "Informacný panel EPG" +msgstr "Informačný panel EPG" msgid "Infobar EPG" -msgstr "Informacný panel EPG" +msgstr "Informačný panel EPG" -#, fuzzy msgid "Infobar EPG activation" -msgstr "Nastavenia InfobarEPG" +msgstr "Aktivácia EPG informačného panela" -#, fuzzy msgid "Infobar Grid EPG" -msgstr "Informacný panel EPG" +msgstr "Mriežka informačného panelu EPG" -#, fuzzy msgid "Infobar Single EPG" -msgstr "Informacný panel EPG" +msgstr "Jednoduchý informačný panel EPG" msgid "Infobar fade-out speed" -msgstr "" +msgstr "Rýchlosť miznutia Informačného panelu" msgid "Infobar frontend data source" -msgstr "" +msgstr "Zdroj údajov tuneru Informačného panelu" msgid "Information" -msgstr "Informácie" +msgstr "Informácia" -#, fuzzy msgid "Infotainment" -msgstr "Priradenie CI" +msgstr "Informačno-zábavné služby" msgid "Init" -msgstr "Inic." +msgstr "Inicializácia" -#, fuzzy msgid "Init modules" -msgstr "inic. moduly" +msgstr "Inicializácia modulov" msgid "Initial fast forward speed" -msgstr "Ppociatocná rýchlost prevíjania vpred" +msgstr "Počiatočná rýchlosť prevíjania vpred" msgid "Initial lock ratio" -msgstr "Pociatocné uzamknutie pomeru strán" +msgstr "Počiatočný pomer uzamknutia" msgid "Initial rewind speed" -msgstr "Pociatocná rýchlost prevíjania vzad" +msgstr "Počiatočná rýchlosť prevíjania vzad" -#, fuzzy msgid "Initial scroll delay" -msgstr "Pociatocná kvalita signálu" +msgstr "Počiatočné oneskorenie rolovania" msgid "Initial signal quality" -msgstr "Pociatocná kvalita signálu" +msgstr "Počiatočná kvalita signálu" msgid "Initial signal quality:" -msgstr "Pociatocná kvalita signálu:" +msgstr "Počiatočná kvalita signálu:" msgid "Initialize" -msgstr "Inicializovat" +msgstr "Inicializovať" -#, fuzzy msgid "Initialize Devices" -msgstr "Inicializovat" +msgstr "Inicializovať zariadenia" msgid "Initializing storage device..." -msgstr "Inicializujem pamätové zariadenie..." +msgstr "Inicializujem pamäťové zariadenie..." msgid "Inotify Monitoring" msgstr "Monitorovanie Inotify" @@ -7629,66 +7423,67 @@ msgstr "Monitorovanie Inotify" msgid "Input" msgstr "Vstup" -#, fuzzy msgid "Input " -msgstr "Vstup" +msgstr "Vstup " #, fuzzy msgid "Input Device Setup" msgstr "Nastavenie vstupného zariadenia" #, fuzzy +msgctxt "problem trans" msgid "Input Devices" msgstr "Vstupné zariadenia" msgid "Input Stream ID" -msgstr "" +msgstr "ID vstupného streamu" + +msgid "InputBox Actions" +msgstr "Akcie vstupného políčka" msgid "Install" -msgstr "Inštalovat" +msgstr "Inštalovať" -#, fuzzy, python-format +#, python-format msgid "Install '%s'" -msgstr "Inštalovat" +msgstr "Inštalovať '%s'" -#, fuzzy msgid "Install Plugins" -msgstr "Inštalovat moduly" +msgstr "Inštalovať doplnky" msgid "Install a new image with a USB stick" -msgstr "Inštalovat nový image z klúca USB" +msgstr "Inštalovať nový systémový obraz z kľúča USB" msgid "Install a new image with your web browser" -msgstr "Inštalovat nový image cez webový prehliadac" +msgstr "Inštalovať nový systémový obraz cez webový prehliadač" msgid "Install channel list" -msgstr "Inštalovat zoznam staníc" +msgstr "Inštalovať zoznam kanálov" -#, fuzzy msgid "Install extensions" -msgstr "Inštalovat rozšírenia." +msgstr "Inštalovať rozšírenia" msgid "Install extensions." -msgstr "Inštalovat rozšírenia." +msgstr "Inštalovať rozšírenia." msgid "Install lcd picons on" -msgstr "Inštalovat lcd picony do" +msgstr "Inštalovať lcd piktogramy do" msgid "Install local extension" -msgstr "Inštalovat miestne rozšírenie" +msgstr "Inštalovať miestne rozšírenie" msgid "Install or remove finished." -msgstr "Inštalácia alebo odstránenie skoncené." +msgstr "Inštalácia alebo odstránenie skončené." msgid "Install picons on" -msgstr "Inštalovat picony do" +msgstr "Inštalovať piktogramy do" msgid "Installation finished." -msgstr "Inštalácia je skoncená." +msgstr "Inštalácia je ukončená." -#, fuzzy, python-format +#, python-format msgid "Installed:\t%s\n" -msgstr "Nainštalované: %s" +msgstr "Nainštalované:\t%s\n" msgid "Installing" msgstr "Inštalujem" @@ -7696,29 +7491,23 @@ msgstr "Inštalujem" msgid "Installing Service" msgstr "Inštalujem službu" -#, fuzzy msgid "Installing service" -msgstr "Inštalujem službu" +msgstr "Inštalácia služby" -#, fuzzy msgid "Instant record" -msgstr "Okamžité nahrávanie..." +msgstr "Okamžitá nahrávka" -#, fuzzy msgid "Instant recording" -msgstr "Okamžité nahrávanie..." +msgstr "Okamžité nahrávanie" msgid "Instant recording location" msgstr "Umiestnenie okamžitej nahrávky" -msgid "Instant recording..." -msgstr "Okamžité nahrávanie..." - msgid "Interface" msgstr "Rozhranie" msgid "Interface: " -msgstr "Rozhranie:" +msgstr "Rozhranie: " msgid "Intermediate" msgstr "Stredný" @@ -7726,19 +7515,23 @@ msgstr "Stredný" msgid "Internal" msgstr "Vnútorný" -msgid "Internal hdd only" -msgstr "Iba vnútorný HDD" +msgid "International" +msgstr "Medzinárodné" + +msgid "International News" +msgstr "Medzinárodné správy" -#, fuzzy msgid "Internet" -msgstr "Vnútorný" +msgstr "" msgid "Interval between keys when repeating:" -msgstr "Interval medzi zacatím opakovania stlaceného tlacidla:" +msgstr "Interval medzi začatím opakovania stlačeného tlačidla:" + +msgid "Interview" +msgstr "Rozhovor" -#, fuzzy msgid "Invalid" -msgstr "neplatný typ" +msgstr "Neplatné" #, python-format msgid "Invalid directory selected: %s" @@ -7748,35 +7541,34 @@ msgid "Invalid location" msgstr "Neplatné umiestnenie" msgid "Invalid transponder data" -msgstr "Nesprávne údaje transpondéra" +msgstr "Neplatné údaje transpondéra" msgid "Inversion" msgstr "Inverzia" -#, fuzzy msgid "Inversion & Bandwidth" -msgstr "Šírka picon" +msgstr "Inverzia a Šírka pásma" msgid "Inversion, Pilot & Roll-off" -msgstr "" +msgstr "Inverzia, Pilot a Roll-off" msgid "Invert" -msgstr "Invertovat" +msgstr "Invertovať" msgid "Ipkg" -msgstr "Ipkg" +msgstr "" msgid "Iran (Islamic Republic of)" -msgstr "" +msgstr "Iránska islamská republika" msgid "Iran, Islamic Republic" -msgstr "" +msgstr "Irán" msgid "Iraq" -msgstr "" +msgstr "Irak" msgid "Ireland" -msgstr "" +msgstr "Írsko" msgid "Is this setting ok?" msgstr "Je toto nastavenie v poriadku?" @@ -7784,224 +7576,275 @@ msgstr "Je toto nastavenie v poriadku?" msgid "Is this video mode ok?" msgstr "Je tento režim videa v poriadku?" -#, fuzzy msgid "Isle of Man" -msgstr "Druh vyhladávania" +msgstr "Ostrov Man" msgid "Israel" -msgstr "" +msgstr "Izrael" msgid "It seems you have hit your API limit - please try again later." -msgstr "" +msgstr "Zdá sa, že ste narazili na limit API - skúste to prosím neskôr." msgid "Italian" -msgstr "Taliancina" +msgstr "Taliansky" -#, fuzzy msgid "Italy" -msgstr "Taliancina" +msgstr "Taliansko" msgid "JUMP 24 HOURS" msgstr "SKOK 24 HODÍN" msgid "Jamaica" -msgstr "" +msgstr "Jamajka" msgid "Japan" -msgstr "" +msgstr "Japonsko" + +msgid "Jazz" +msgstr "Džez" msgid "Jersey" msgstr "" msgid "Job View" -msgstr "Prehlad úloh" +msgstr "Prehľad úloh" msgid "Jordan" -msgstr "" +msgstr "Jordánsko" + +msgid "Jugend" +msgstr "Mládež" -#, fuzzy msgid "Jump first press in channel selection" -msgstr "Skok - stlacte najprv kláves vo výber kanálov *" +msgstr "Prvé stlačenie pri výbere kanála" msgid "Jump to beginning of list" -msgstr "Prejst na zaciatok zoznamu" +msgstr "Skok na začiatok zoznamu" msgid "Jump to current time" -msgstr "Prejst na aktuálny cas" +msgstr "Skok na aktuálny čas" msgid "Jump to end of list" -msgstr "Prejst na koniec zoznamu" +msgstr "Skok na koniec zoznamu" msgid "Jump to first item in list or the start of text" -msgstr "" +msgstr "Skok na prvú položku v zozname alebo na začiatok textu" msgid "Jump to last item in list or the end of text" -msgstr "" +msgstr "Skok na poslednú položku v zozname alebo na koniec textu" -#, fuzzy msgid "Jump to next bookmark" -msgstr "Odstránit záložku" +msgstr "Skok na ďalšiu záložku" -#, fuzzy msgid "Jump to previous bookmark" -msgstr "Skok na predchádzajúce oznacené miesto" +msgstr "Skok na predchádzajúcu záložku" msgid "Jump to prime time" -msgstr "Prejst na hlavný vysielací cas" +msgstr "Skok na hlavný vysielací čas" -#, fuzzy msgid "Jump to the next marked position" -msgstr "Skok na nasledujúce oznacené miesto" +msgstr "Skok na ďalšiu označenú pozíciu" -#, fuzzy msgid "Jump to the previous marked position" -msgstr "Skok na predchádzajúce oznacené miesto" +msgstr "Skok na predchádzajúcu označenú pozíciu" #. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term #. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term #. "nonlinear": _("Nonlinear"), # TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) msgid "Just scale" -msgstr "Len prispôsobit" +msgstr "Len prispôsobiť" msgid "Just zap" -msgstr "Len prepnút" +msgstr "Len prepnúť" + +msgid "Justiz" +msgstr "" msgid "KA-SAT" -msgstr "KA-SAT (9°E)" +msgstr "" -msgid "Kazakhstan" +msgid "Kampfsport" msgstr "" +msgid "Katastrophe" +msgstr "Katastrofa" + +msgid "Kazakhstan" +msgstr "Kazachstán" + msgid "Keep logs" -msgstr "" +msgstr "Zachovať protokoly" msgid "Keep service" -msgstr "Ponechat službu" +msgstr "Zachovať stanicu" -#, fuzzy msgid "Keeps the movie list open whilst playing audio files." -msgstr "" -"Udržiava zoznam filmov otvorený aj pocas prehrávania zvukových súborov." +msgstr "Počas prehrávania zvukových súborov ponecháva otvorený zoznam filmov." msgid "Kenya" -msgstr "" +msgstr "Keňa" -#, fuzzy, python-format +#, python-format msgid "Kernel:\t%s\n" -msgstr "Verzia jadra: %s" +msgstr "Jadro:\t%s\n" #, python-format msgid "Kernel: %s" -msgstr "Verzia jadra: %s" +msgstr "Jadro: %s" msgid "Key" -msgstr "" +msgstr "Kľúč" msgid "Key Events" -msgstr "" +msgstr "Kľúčové udalosti" msgid "Keyboard" msgstr "Klávesnica" -#, fuzzy msgid "Keyboard data entry" -msgstr "Nastavenie klávesnice" +msgstr "Zadávanie údajov z klávesnice" msgid "Keyboard map" msgstr "Rozloženie kláves" -#, fuzzy msgid "Keyboard settings" -msgstr "Nastavenie klávesnice" +msgstr "Nastavenia klávesnice" + +msgid "Kinder" +msgstr "" msgid "Kiribati" msgstr "" -msgid "Korea (Democratic People's Republic of)" +msgid "Klassiker" +msgstr "" + +msgid "Kneipensport" msgstr "" +msgid "Komödie" +msgstr "" + +msgid "Korea (Democratic People's Republic of)" +msgstr "Severná Kórea" + msgid "Korea (Republic of)" +msgstr "Južná Kórea" + +msgid "Kraftsport" +msgstr "" + +msgid "Krieg" +msgstr "" + +msgid "Krimi" +msgstr "" + +msgid "Kriminalität" +msgstr "" + +msgid "Kultur" +msgstr "" + +msgid "Kunst" +msgstr "" + +msgid "Kurzfilm" msgstr "" -#, fuzzy msgid "Kuwait" -msgstr "cakám" +msgstr "Kuvajt" msgid "Kyrgyzstan" +msgstr "Kirgizsko" + +msgid "LAN" msgstr "" msgid "LAN adapter" -msgstr "Sietová karta" +msgstr "Adaptér LAN" -#, fuzzy msgid "" "LAN adapter\n" "\n" "This test detects your configured LAN adapter." -msgstr "Tento test zistuje nakonfigurovanú sietovú kartu." +msgstr "" +"Adaptér LAN\n" +"\n" +"Tento test zisťuje nakonfigurovaný adaptér LAN." msgid "LAN connection" msgstr "Pripojenie LAN" msgid "LED Deep Standby" -msgstr "LED v režime hlbokého spánku" +msgstr "LED vyčkávacieho režimu" -#, fuzzy msgid "LED Display Panel" -msgstr "Predný display" +msgstr "LED zobrazovacieho panela" msgid "LED Normal" -msgstr "LED v normálnom režime" +msgstr "LED normálneho režimu" msgid "LED Standby" -msgstr "LED v pohotovostnom režime" +msgstr "LED pohotovostného režimu" msgid "LED brightness during deep standby." -msgstr "Jas LED v režime hlbokého spánku." +msgstr "Jas LED vo Vyčkávacom režime." msgid "LED brightness during normal operations." -msgstr "Jas LED pocas normálnej prevádzky." +msgstr "Jas LED počas normálnej prevádzky." msgid "LED brightness during standby." -msgstr "Jas LED v pohotovostnom režime" +msgstr "Jas LED v Pohotovostnom režime." + +msgid "LEFT" +msgstr "VĽAVO" + +msgid "LIST" +msgstr "ZOZNAM" msgid "LNB" -msgstr "LNB" +msgstr "" + +msgid "Label not defined" +msgstr "Označenie nie je definované" + +msgid "Landestypisch" +msgstr "" msgid "Language" msgstr "Jazyk" msgid "Language selection" -msgstr "Volba jazyka" +msgstr "Výber jazyka" msgid "Lao People's Democratic Republic" -msgstr "" +msgstr "Laos" msgid "Large" -msgstr "" +msgstr "Veľké" msgid "Last Req." -msgstr "Posledná požiadavka" +msgstr "Posledná požiadavka." msgid "Last config" msgstr "Posledné nastavenie" msgid "Last speed" -msgstr "Posledná rýchlost" - -#, fuzzy, python-format -msgid "Last update:\t%s\n" -msgstr "Posledná aktualizácia: %s" +msgstr "Posledná rýchlosť" #, python-format -msgid "Last update: %s" -msgstr "Posledná aktualizácia: %s" +msgid "Last update:\t%s\n" +msgstr "Posledná aktualizácia:\t%s\n" msgid "Last used share: " -msgstr "Posledné použité zdielanie: " +msgstr "Posledné použité zdieľanie: " msgid "LastPage" -msgstr "" +msgstr "Posledná strana" + +msgid "Late Night" +msgstr "Neskorá noc" msgctxt "third event: 'third' event label" msgid "Later" @@ -8010,74 +7853,71 @@ msgstr "Neskôr" msgid "Latitude" msgstr "Zemepisná šírka" -#, fuzzy msgid "Latvia" -msgstr "Lotyšcina" +msgstr "Lotyšsko" msgid "Latvian" -msgstr "Lotyšcina" +msgstr "Lotyšsky" msgid "Leave DVD player?" -msgstr "Ukoncit DVD prehrávac?" +msgstr "Ukončiť DVD prehrávač?" -msgid "" -"Leave this set to 'yes' unless you fully understand why you are adjusting it." -msgstr "" +msgid "Leave this set to 'yes' unless you fully understand why you are adjusting it." +msgstr "Ponechajte túto možnosť nastavenú na 'áno', pokiaľ úplne nechápete, prečo ju upravujete." msgid "Lebanon" -msgstr "" +msgstr "Libanon" msgid "Left" -msgstr "Dolava" +msgstr "Vľavo" msgid "Left from servicename" -msgstr "Vlavo od názvu stanice" +msgstr "Vľavo od názvu stanice" -#, fuzzy msgid "Left long" -msgstr "Modrá" +msgstr "Vľavo dlho" + +msgid "Leichtathletik" +msgstr "" msgid "Leisure hobbies" -msgstr "Volný cas/konícky" +msgstr "Voľný čas/koníčky" msgid "Lesotho" msgstr "" msgid "Letterbox" -msgstr "Letterbox" +msgstr "" msgid "Letterbox zoom" -msgstr "Širokouhlý zoom" +msgstr "" msgid "Liberia" -msgstr "" +msgstr "Libéria" msgid "Libya" -msgstr "" +msgstr "Líbya" msgid "Liechtenstein" -msgstr "" +msgstr "Lichtenštajnsko" + +msgid "Lifestyle" +msgstr "Životný štýl" msgid "Light Grey" msgstr "Svetlosivá" msgid "Limit character set for recording filenames" -msgstr "Obmedzit sadu znakov pre názvy súborov nahrávok" +msgstr "Obmedziť sadu znakov pre názvy súborov nahrávok" msgid "Limit debug log size (MB)" -msgstr "Limitovat velkost súboru ladenia (MB)" +msgstr "Obmedziť veľkosť súboru protokolu ladenia (MB)" msgid "Limit east" msgstr "Východný limit" -msgid "" -"Limit the characters that can be used in recording filenames to (7 bit) " -"ascii. This ensures compatibility with operating systems or file systems " -"with limited character sets." -msgstr "" -"Obmedzit znaky, ktoré môžu byt použité v názve súborov nahrávok na (7 bitov) " -"ascii. Zabezpecí sa kompatibilita s operacnými alebo súborovými systémami s " -"obmedzenou znakovou sadou." +msgid "Limit the characters that can be used in recording filenames to (7 bit) ascii. This ensures compatibility with operating systems or file systems with limited character sets." +msgstr "Obmedziť znaky, ktoré môžu byt použité v názve súborov nahrávok na (7 bitov) ascii. Zabezpečí sa kompatibilita s operačnými alebo súborovými systémami s obmedzenou znakovou sadou." msgid "Limit west" msgstr "Západný limit" @@ -8089,10 +7929,10 @@ msgid "Limits enabled" msgstr "Limity povolené" msgid "Limits off" -msgstr "Vypnút limity" +msgstr "Vypnúť limity" msgid "Limits on" -msgstr "Zapnút limity" +msgstr "Zapnúť limity" msgid "Link quality:" msgstr "Kvalita spojenia:" @@ -8103,8 +7943,8 @@ msgstr "Spojenie:" msgid "Linked titles with a DVD menu" msgstr "Tituly prepojené s menu DVD" -msgid "List EPG functions..." -msgstr "Zoznam funkcií EPG..." +msgid "List EPG functions" +msgstr "Zoznam funkcií EPG" msgid "List available networks" msgstr "Zoznam dostupných sietí" @@ -8120,54 +7960,59 @@ msgstr[1] "Zoznam verzia %d, nájdené %d stanice" msgstr[2] "Zoznam verzia %d, nájdených %d staníc" msgid "List/Fav/PVR" -msgstr "" +msgstr "Zoznam/Obľúbené/Nahrávky" msgid "List/File" -msgstr "" +msgstr "Zoznam/Súbor" -msgid "Listen to the radio..." -msgstr "Pocúvat rádio..." +msgid "Listen to the radio" +msgstr "Počúvanie rádia" msgid "Listener for hotplug events." -msgstr "" +msgstr "Poslucháč udalostí hotplug." msgid "Lists reloaded!" +msgstr "Znovu načítané zoznamy!" + +msgid "Literatur" +msgstr "Literatúra" + +msgid "Literaturverfilmung" msgstr "" -#, fuzzy msgid "Lithuania" -msgstr "Litovcina" +msgstr "Litva" msgid "Lithuanian" -msgstr "Litovcina" +msgstr "Litovsky" + +msgid "Live" +msgstr "Naživo" msgid "Load" -msgstr "Natiahnut" +msgstr "Načítať" -#, fuzzy msgid "Load EPG Cache" -msgstr "Nacítat EPG" +msgstr "Načítať EPG vyrovnávaciu pamäť" msgid "Load playlist" -msgstr "Otvorit zoznam prehrávok" +msgstr "Načítať zoznam prehrávania" -#, fuzzy msgid "Load unlinked userbouquets" -msgstr "Nahrat nepriradené prehlady" +msgstr "Načítať nepriradené prehľady" msgid "Load, Save & Delete EPG Cache" -msgstr "" +msgstr "Načítať, Uložiť a Zmazať EPG vyrovnávaciu pamäť" msgid "Loading skin" -msgstr "" +msgstr "Načítať vzhľad" msgid "Local box" msgstr "Lokálny box" msgid "Local network" -msgstr "Miestna siet" +msgstr "Lokálna sieť" -#, fuzzy msgid "" "Local network\n" "\n" @@ -8177,136 +8022,155 @@ msgid "" "- Verify that a network cable is attached.\n" "- Verify that the cable is not broken." msgstr "" -"Tento test overuje, ci je sietový kábel pripojený k sietovej karte.\n" +"Lokálna sieť\n" +"\v\n" +"\vTento test overuje, či je sieťový kábel pripojený k sieťovej karte.\n" +"\n" "Ak dostanete hlásenie „odpojené“:\n" -"- skontrolujte, ci je pripojený sietový kábel\n" -"- skontrolujte, ci kábel nie je prerušený" +"- skontrolujte, či je pripojený sieťový kábel\n" +"- skontrolujte, či kábel nie je prerušený." -#, fuzzy msgid "Locale" -msgstr "Lokálny box" +msgstr "Lokalita" msgid "Location" msgstr "Umiestnenie" msgid "Lock ratio" -msgstr "Uzamknutie pomeru strán" +msgstr "Pomer uzamknutia" msgid "Lock:" -msgstr "" +msgstr "Zámok:" -#, fuzzy msgid "Log" -msgstr "Protokoly chýb" +msgstr "Logovanie" + +#, python-format +msgid "Log %s-%s" +msgstr "Protokol %s-%s" msgid "Log Manager" -msgstr "Správca logov" +msgstr "Správca protokolov" msgid "Log results to harddisk" -msgstr "Zaznamenat výsledky na pevný disk" +msgstr "Zaznamenať výsledky na pevný disk" msgid "LogManager" -msgstr "Manažér systémových záznamov" +msgstr "Správca systémových protokolov" msgid "Logs" msgstr "Protokoly chýb" -#, fuzzy msgid "Logs folder location" -msgstr "Umiestnenie systémových záznamov" +msgstr "Umiestnenie systémových protokolov" -#, fuzzy msgid "Logs older than the specified number of days will be deleted." -msgstr "Záznamy staršie ako zadaný pocet dní budú zmazané." +msgstr "Protokoly staršie ako zadaný počet dní budú zmazané." msgid "Logs settings" -msgstr "Nastavenie systémových záznamov" +msgstr "Nastavenie systémových protokolov" msgid "Long << / >>" msgstr "Dlho << / >>" msgid "Long Left/Right" -msgstr "Dlho dolava/doprava" +msgstr "Dlho doľava/doprava" msgid "Long filenames" msgstr "Dlhé názvy súborov" msgid "Long key press" -msgstr "Dlhé stlacenie tlacidla" +msgstr "Dlhé stlačenie tlačidla" + +msgid "Long press: " +msgstr "Dlhé stlačenie: " msgid "Longitude" -msgstr "Zemepisná dlžka" +msgstr "Zemepisná dĺžka" -#, fuzzy msgid "Loop through from" -msgstr "opakovat v slucke do" +msgstr "Opakovať v slučke od" msgid "Lower Framerate save CPU Time" -msgstr "" +msgstr "Nižšia snímková frekvencia šetrí čas CPU" msgid "Lower case" -msgstr "" +msgstr "Malé písmená" -#, fuzzy msgid "Luxembourg" -msgstr "Luxembursky" +msgstr "Luxembursko" msgid "Luxembourgish" msgstr "Luxembursky" -#, fuzzy msgid "MAC Address Settings" -msgstr "Nastavenie MAC adresy" +msgstr "Nastavenia MAC adresy" -#, fuzzy msgid "MAC address" -msgstr "Adresa MAC" +msgstr "MAC adresa" msgid "MAC:" -msgstr "MAC:" +msgstr "" msgid "MB" -msgstr "MB" +msgstr "" + +msgid "MEDIA" +msgstr "MĚDIA" msgid "MENU" +msgstr "PONUKA" + +msgid "MM-DD-YYYY" +msgstr "" + +msgid "MMA" msgstr "" +msgid "MUTE" +msgstr "UMLČAŤ" + msgid "Macao" msgstr "" msgid "Macedonia (the former Yugoslav Republic of)" -msgstr "" +msgstr "Macedónsko" msgid "Madagascar" -msgstr "" +msgstr "Madagaskar" + +msgid "Magazin" +msgstr "Magazín" -#, fuzzy msgid "Main Menu" -msgstr "Hlavné menu" +msgstr "Hlavná ponuka" msgid "Main menu" msgstr "Hlavné menu" msgid "Maintain old EPG data for" -msgstr "Uložit staré EPG údaje na" +msgstr "Zachovať staré EPG údaje pre" + +msgid "Make settings backup" +msgstr "Vykonajte zálohu nastavení" msgid "Make this mark an 'in' point" -msgstr "Urobit z tejto znacky vstupný bod („in“)" +msgstr "Urobiť z tejto značky vstupný bod 'in'" msgid "Make this mark an 'out' point" -msgstr "Urobit z tejto znacky výstupný bod („out“)" +msgstr "Urobiť z tejto značky výstupný bod 'out'" msgid "Make this mark just a mark" -msgstr "Urobit z tejto znacky len znacku." +msgstr "Urobiť z tejto značky len značku" msgid "Malawi" msgstr "" msgid "Malaysia" -msgstr "" +msgstr "Malajzia" msgid "Maldives" -msgstr "" +msgstr "Maldivy" msgid "Mali" msgstr "" @@ -8315,92 +8179,92 @@ msgid "Malta" msgstr "" msgid "Manage extensions" -msgstr "Spravovat rozšírenia" +msgstr "Spravovať rozšírenia" #, python-format msgid "Manage your %s %s's software" -msgstr "Spravovat softvér Vášho %s %s" +msgstr "Spravovať softvér Vášho %s %s" + +msgid "Mannschaftssport" +msgstr "" -#, fuzzy msgid "Manual" -msgstr "rucne" +msgstr "Ručne" msgid "Manual Scan" -msgstr "Rucné vyhladávanie" +msgstr "Ručné vyhľadávanie" msgid "Manual configuration" -msgstr "Rucná konfigurácia" +msgstr "Ručná konfigurácia" msgid "Manual scan" -msgstr "Rucné vyhladávanie" +msgstr "Ručné prehľadávanie" msgid "Manual transponder" -msgstr "Transpondér rucne" +msgstr "Transpondér ručne" msgid "Manufacturer" msgstr "Výrobca" msgid "Margin after recording (minutes)" -msgstr "Posun po nahratí (v minútach)" +msgstr "Rezerva po nahrávaní (minúty)" msgid "Margin before recording (minutes)" -msgstr "Rezerva pred zaciatkom nahrávania (min)" +msgstr "Rezerva pred nahrávaním (minúty)" msgid "Mark service as a dedicated 3D service" -msgstr "" +msgstr "Označenie služby ako vyhradenej služby 3D" msgid "Mark/Portal/Playlist" msgstr "" -#, fuzzy msgid "Marshall Islands" -msgstr "zobrazit všetky karty" +msgstr "Maršalove ostrovy" + +msgid "Martial Sports" +msgstr "Bojové športy" msgid "Martinique" -msgstr "" +msgstr "Martinik" msgid "Mature Adult Audience 15+" -msgstr "" +msgstr "Dospelé publikum 15+" msgid "Mature Audience 15+" -msgstr "" +msgstr "Dospelí diváci 15+" -#, fuzzy msgid "Mauritania" -msgstr "Litovcina" +msgstr "Mauritánia" -#, fuzzy msgid "Mauritius" -msgstr "Oblúbené" +msgstr "Maurícius" + +msgid "Max channels" +msgstr "Maximálny počet kanálov" -#, fuzzy msgid "Max memory positions" -msgstr "Pozície pamäte" +msgstr "Maximálny počet pamäťových pozícií" msgid "Max. bitrate: " msgstr "Max. dátový tok: " msgid "Maxdown +" -msgstr "Maxdown +" +msgstr "" msgid "Maxdown -" -msgstr "Maxdown-" +msgstr "" msgid "Maxdown: " -msgstr "Maxdown:" +msgstr "" -#, fuzzy msgid "Maximum number of days" -msgstr "Maximálny pocet dní" +msgstr "Maximálny počet dní" msgid "Maximum total space used (MB)" -msgstr "Maximálna velkost použitého miesta (MB)" +msgstr "Maximálna veľkosť použitého miesta (MB)" -#, fuzzy -msgid "" -"Maybe the reason that recording is currently running. Please stop the " -"recording before trying to configure the positioner." -msgstr "Práve sa nahráva. Zastavte nahrávanie pred nastavovaním motora." +msgid "Maybe the reason that recording is currently running. Please stop the recording before trying to configure the positioner." +msgstr "Možno je dôvodom, že nahrávanie práve prebieha. Pred pokusom o konfiguráciu polohovacieho zariadenia zastavte nahrávanie." msgid "Mayotte" msgstr "" @@ -8409,57 +8273,71 @@ msgid "Mb/s" msgstr "" msgid "Media playback Remaining/Elapsed as" -msgstr "Prehrávanie médií Zostávajúci/Uplynulý ako" +msgstr "Prehrávanie médií Zostávajúce/Uplynulé ako" msgid "Media player" -msgstr "Prehrávac médií" +msgstr "Prehrávač médií" msgid "Media scanner" -msgstr "Prehladávac médií" +msgstr "Prehľadávač médií" + +msgid "Medical" +msgstr "Lekárske" + +msgid "Medien" +msgstr "" msgid "Medium is not a writeable DVD!" -msgstr "Médium nie je zapisovatelný disk DVD!" +msgstr "Médium nie je zapisovateľné DVD!" msgid "Medium is not empty!" msgstr "Médium nie je prázdne!" +msgid "Melodrama" +msgstr "Melodráma" + msgid "Memory" -msgstr "Pamät" +msgstr "Pamäť" msgid "Memory index" msgstr "Index pamäte" msgid "Menu" -msgstr "Menu" +msgstr "Ponuka" msgid "Menu config" -msgstr "Nestavenie menu" +msgstr "Nastavenie ponuky" + +msgid "Menu style" +msgstr "Štýl ponuky" #, python-format msgid "Menusort (%s)" -msgstr "" +msgstr "Zoradenie ponuky (%s)" msgid "Merging Timeshift files" -msgstr "Zlucovanie súborov Timeshift" +msgstr "Spájanie súborov časového posunu" msgid "Message" -msgstr "" +msgstr "Správa" msgid "MessageBox Functions" -msgstr "" +msgstr "Funkcie schránky správ" msgid "Messages" -msgstr "" +msgstr "Správy" msgid "Mexico" -msgstr "" +msgstr "Mexiko" msgid "Micronesia (Federated States of)" -msgstr "" +msgstr "Mikronézia" + +msgid "Mini Series" +msgstr "Mini série" -#, fuzzy msgid "MiniDLNA" -msgstr "Log súbor MiniDLNA" +msgstr "" msgid "MiniDLNA Setup" msgstr "Nastavenie MiniDLNA" @@ -8468,7 +8346,7 @@ msgid "MiniTV" msgstr "" msgid "MiniTV with OSD" -msgstr "" +msgstr "MiniTV s OSD" #, python-format msgid "Minimum age %d years" @@ -8477,6 +8355,9 @@ msgstr "Minimálny vek %d rokov" msgid "Minimum send interval" msgstr "Minimálny interval odosielania" +msgid "Minority Sports" +msgstr "Menšinové športy" + msgid "Mins" msgstr "Minút" @@ -8486,14 +8367,12 @@ msgstr "Minút Sekúnd" msgid "Mipsel" msgstr "" -#, fuzzy msgid "Miscellaneous" -msgstr "Stav tunera" +msgstr "Rôzne" msgid "Missing " -msgstr "Chýba" +msgstr "Chýba " -#, fuzzy msgid "Mode" msgstr "Režim" @@ -8505,24 +8384,29 @@ msgctxt "Video output mode" msgid "Mode" msgstr "Režim" -#, fuzzy msgid "Model" -msgstr "Režim" +msgstr "" -#, fuzzy, python-format +#, python-format msgid "Model:\t%s %s\n" -msgstr "Model: %s %s\n" +msgstr "" +"Model:\t%s %s\n" +"\n" msgid "Model: " -msgstr "Model: " +msgstr "" #, python-format msgid "Model: %s %s\n" -msgstr "Model: %s %s\n" +msgstr "" +"Model: %s %s\n" +"\n" + +msgid "Modern Dance" +msgstr "Moderný tanec" -#, fuzzy msgid "Modes" -msgstr "Režim" +msgstr "Režimy" msgid "Modulation" msgstr "Modulácia" @@ -8531,198 +8415,204 @@ msgid "Modulator" msgstr "Modulátor" msgid "Moldova (Republic of)" -msgstr "" +msgstr "Moldavsko" msgid "Mon" -msgstr "Po" +msgstr "Pon" msgid "Mon-Fri" -msgstr "Po-Pi" +msgstr "Pon-Pia" msgid "Monaco" -msgstr "" +msgstr "Monako" msgid "Monday" msgstr "Pondelok" msgid "Mongolia" -msgstr "" +msgstr "Mongolsko" msgid "Montenegro" -msgstr "" +msgstr "Čierna Hora" msgid "Monthly" -msgstr "Mesacne" +msgstr "Mesačne" msgid "Montserrat" msgstr "" msgid "Morocco" -msgstr "" +msgstr "Maroko" msgid "Mosquito noise reduction" -msgstr "Potlacenie šumu na hranách" +msgstr "Potlačenie šumu na hranách" + +msgid "Motor Sport" +msgstr "Motoristický šport" msgid "Motor command retries" -msgstr "" +msgstr "Opakovanie príkazu motora" -#, fuzzy msgid "Motor running timeout" -msgstr "Rýchlost otácania motora" +msgstr "Časový limit chodu motora" + +msgid "Motorcycling" +msgstr "Jazda na motocykli" + +msgid "Motoring" +msgstr "Motorizmus" + +msgid "Motorsport" +msgstr "Motošport" -#, fuzzy msgid "Mount." -msgstr "Prípojný bod" +msgstr "Prípojný bod." -#, fuzzy msgid "Mounts" -msgstr "Prípojný bod" +msgstr "Prípojné body" msgid "Move" msgstr "Presun" msgid "Move Left/Right" -msgstr "Pohyb vlavo/vpravo" +msgstr "Posun Vľavo/Vpravo" -#, fuzzy msgid "Move PIP" -msgstr "Presun" +msgstr "Presun PiP" msgid "Move PiP to main picture" -msgstr "Premiestnit PiP do hlavného obrazu" +msgstr "Presun PiP do hlavného obrazu" msgid "Move Picture in Picture" -msgstr "Premiestnit obraz v obraze" +msgstr "Premiestniť Obraz v Obraze" msgid "Move Up/Down" -msgstr "Posun nahor/nadol" +msgstr "Posun Nahor/Nadol" -#, fuzzy msgid "Move down a line" -msgstr "Posunút o stranu nadol" +msgstr "Presun o riadok nadol" msgid "Move down a page" -msgstr "Posunút o stranu nadol" +msgstr "Presun o stranu nadol" -#, fuzzy msgid "Move down a screen" -msgstr "Posunút o stranu nadol" +msgstr "Presun o obrazovku nadol" -#, fuzzy msgid "Move down in bouquet list" -msgstr "Otvorit zoznam prehladov" +msgstr "Presun v prehľade nadol" -#, fuzzy msgid "Move down to last entry" -msgstr "nadol na poslednú položku" +msgstr "Presun nadol na poslednú položku" -#, fuzzy msgid "Move down to next entry" -msgstr "nadol na nasledujúcu položku" +msgstr "Presun nadol na ďalšiu položku" msgid "Move east" -msgstr "Pootocit východne" +msgstr "Presun na východ" + +msgid "Move left" +msgstr "Presun doľava" -#, fuzzy msgid "Move menu item down" -msgstr "Ukoncit výber vstupného zariadenia." +msgstr "Presun položky ponuky nadol" -#, fuzzy msgid "Move menu item up" -msgstr "Pootocit východne" +msgstr "Presun položky ponuky nahor" + +msgid "Move right" +msgstr "Presun doprava" msgid "Move the keyboard cursor down" -msgstr "" +msgstr "Presun kurzora klávesnice nadol" msgid "Move the keyboard cursor left" -msgstr "" +msgstr "Presun kurzora klávesnice doľava" msgid "Move the keyboard cursor right" -msgstr "" +msgstr "Presun kurzora klávesnice doprava" msgid "Move the keyboard cursor up" -msgstr "" +msgstr "Presun kurzora klávesnice nahor" msgid "Move the text cursor left" -msgstr "" +msgstr "Presun textového kurzora doľava" msgid "Move the text cursor right" -msgstr "" +msgstr "Presun textového kurzora doprava" msgid "Move the text cursor to the first character" -msgstr "" +msgstr "Presun textového kurzora na prvý znak" msgid "Move the text cursor to the last character" -msgstr "" +msgstr "Presun textového kurzora na posledný znak" + +msgid "Move to description" +msgstr "Presun na opis" + +msgid "Move to end" +msgstr "Presun na koniec" -#, fuzzy msgid "Move to first line / screen" -msgstr "nahor na prvú položku" +msgstr "Presun na prvý riadok / obrazovku" msgid "Move to home of list" -msgstr "Prejst na domovské umiestnenie zoznamu" +msgstr "Presun na domovskú stránku zoznamu" -#, fuzzy msgid "Move to last line / screen" -msgstr "Posunút o stranu nadol" +msgstr "Presun na posledný riadok / obrazovku" -#, fuzzy msgid "Move to next channel" -msgstr "Prejst na nasledujúcu stanicu" +msgstr "Presun na nasledujúci kanál" msgid "Move to position X" -msgstr "Pootocit na pozíciu X" +msgstr "Otočiť na pozíciu X" -#, fuzzy msgid "Move to previous channel" -msgstr "Prejst na predchádzajúcu stanicu" +msgstr "Presun na predchádzajúci kanál" + +msgid "Move to start" +msgstr "Presun na začiatok" -#, fuzzy msgid "Move up a line" -msgstr "Posunút o stranu nahor" +msgstr "Presun o riadok nahor" msgid "Move up a page" -msgstr "Posunút o stranu nahor" +msgstr "Presun o stranu nahor" -#, fuzzy msgid "Move up a screen" -msgstr "Posunút o stranu nahor" +msgstr "Presun o obrazovku nahor" -#, fuzzy msgid "Move up in bouquet list" -msgstr "Otvorit zoznam prehladov" +msgstr "Presun v prehľade nahor" -#, fuzzy msgid "Move up to first entry" -msgstr "nahor na prvú položku" +msgstr "Presun nahor na prvú položku" -#, fuzzy msgid "Move up to previous entry" -msgstr "nahor na predchádzajúcu položku" +msgstr "Presun na predchádzajúcu položku" msgid "Move west" -msgstr "Pootocit západne" +msgstr "Presun na západ" -#, fuzzy, python-format +#, python-format msgid "Moved %d items" -msgstr "Pootocit východne" +msgstr "Presunuté %d položky" -#, fuzzy, python-format +#, python-format msgid "Moved '%s'" -msgstr "Pootocit východne" +msgstr "Presunuté '%s'" msgid "Moved to position 0" -msgstr "Otocené na pozíciu 0" +msgstr "Presun na pozíciu 0" msgid "Moved to position at index" -msgstr "Otocené na východziu pozíciu" +msgstr "Presun na pozíciu v indexe" msgid "Movement" -msgstr "Otácanie motora" +msgstr "Pohyb" -#, fuzzy msgid "Movie" -msgstr "Presúvam" +msgstr "Film" msgid "Movie List" msgstr "Zoznam filmov" @@ -8730,52 +8620,50 @@ msgstr "Zoznam filmov" msgid "Movie List Setup" msgstr "Konfigurácia zoznamu filmov" -#, fuzzy msgid "Movie player" -msgstr "Skryt prehrávac" +msgstr "Prehrávač filmov" msgid "Movie selection" msgstr "Výber filmu" msgid "Movie/Drama" -msgstr "film/dráma" +msgstr "Film/Dráma" -#, fuzzy msgid "Movielist menu" -msgstr "Konfigurácia zoznamu filmov" +msgstr "Ponuka zoznamu filmov" msgid "Moving" -msgstr "Presúvam" +msgstr "Presúvanie" msgid "Moving east ..." -msgstr "Otácam na východ ..." +msgstr "Presun na východ ..." msgid "Moving files" msgstr "Presúvam súbory" msgid "Moving to position" -msgstr "Otácam na pozíciu" +msgstr "Presun na pozíciu" msgid "Moving west ..." -msgstr "Otácam na západ ..." +msgstr "Presun na západ ..." msgid "Mozambique" -msgstr "" +msgstr "Mozambik" msgid "Multi EPG" msgstr "Multi EPG" -#, fuzzy msgid "MultiBoot Image Selector" -msgstr "Výber titulkov" +msgstr "Výber systémováho obrazu MultiBoot" -#, fuzzy msgid "MultiBootSelector Actions" -msgstr "Zvolte umiestnenie" +msgstr "Akcie MultiBootSelector" -#, fuzzy msgid "MultiType" -msgstr "Multiplex" +msgstr "" + +msgid "Multiboot" +msgstr "" msgid "Multimedia" msgstr "Multimédiá" @@ -8784,34 +8672,49 @@ msgid "Multiple service support" msgstr "Podpora viacerých služieb" msgid "Multisat" -msgstr "viac satelitov" +msgstr "Viac satelitov" -#, fuzzy msgid "Multisat all select" -msgstr "Výber titulkov" +msgstr "Multisat vybrať všetky" -#, fuzzy msgid "Multistream" -msgstr "viac satelitov" +msgstr "" + +msgid "Murder" +msgstr "Vražda" msgid "Music" -msgstr "" +msgstr "Hudba" msgid "Music/Ballet/Dance" -msgstr "hudba/balet/tanec" +msgstr "Hudba/Balet/Tanec" + +msgid "Musical" +msgstr "Hudobný" + +msgid "Musik" +msgstr "Hudba" msgid "Myanmar" +msgstr "Mjanmarsko" + +msgid "Mystery" +msgstr "Záhada" + +msgid "Märchen" msgstr "" -#, fuzzy msgid "N" -msgstr "Nie" +msgstr "" msgid "N/A" -msgstr "Nie je k dispozícii" +msgstr "" msgid "NEXT" -msgstr "" +msgstr "ĎAĽŠÍ" + +msgid "NEXTSONG" +msgstr "ĎAĽŠIA SKLADBA" msgid "NFS" msgstr "" @@ -8820,34 +8723,38 @@ msgid "NFS Setup" msgstr "Nastavenie NFS" msgid "NIM & Type" -msgstr "" +msgstr "NIM a Typ" msgid "NO" -msgstr "" +msgstr "NIE" msgid "" -"NOTE: This feature is intended for people who cannot disable overscan on " -"their television / display. Please first try to disable overscan before " -"using this feature.\n" +"NOTE: This feature is intended for people who cannot disable overscan on their television / display. Please first try to disable overscan before using this feature.\n" "\n" -"USAGE: Adjust the screen size and position settings so that the shaded user " -"interface layer *just* covers the test pattern in the background.\n" +"USAGE: Adjust the screen size and position settings so that the shaded user interface layer *just* covers the test pattern in the background.\n" "\n" "Select Yes to continue or No to exit." msgstr "" +"POZNÁMKA: Táto funkcia je určená pre ľudí, ktorí nemôžu vypnúť funkciu overscan na svojom televízore/zobrazovači. Pred použitím tejto funkcie sa najprv pokúste vypnúť funkciu overscan.\n" +"\n" +"POUŽITIE: Upravte nastavenia veľkosti a polohy obrazovky tak, aby tieňová vrstva užívateľského rozhrania *prekryla* testovací obrazec na pozadí.\n" +"\n" +"Ak chcete pokračovať, vyberte možnosť Áno alebo Nie, ak chcete skončiť." msgid "NTP" -msgstr "NTP" +msgstr "" msgid "NTP server" msgstr "NTP server" -#, fuzzy msgid "NTP sync interval" -msgstr "Minimálny interval odosielania" +msgstr "Interval synchronizácie NTP" msgid "NTSC" -msgstr "NTSC" +msgstr "" + +msgid "Nachrichten" +msgstr "Novinky" msgid "Name" msgstr "Názov" @@ -8858,7 +8765,6 @@ msgstr "Názov:" msgid "Nameserver" msgstr "DNS server" -#, fuzzy msgid "" "Nameserver\n" "\n" @@ -8866,48 +8772,63 @@ msgid "" "\n" "If you get a \"unconfirmed\" message:\n" "- Please check your DHCP server, cabling and adapter setup.\n" -"- If you configured your nameservers manually please verify your entries in " -"the \"Nameserver\" configuration." +"- If you configured your nameservers manually please verify your entries in the \"Nameserver\" configuration." msgstr "" -"Tento test hladá nakonfigurované DNS.\n" +"DNS (Názvoslovný server)\n" +"\n" +"Tento test hľadá nakonfigurované Názvoslovné servery (DNS).\n" "Ak dostanete hlásenie „nepotvrdené“:\n" "- skontrolujte DHCP, kabeláž a nastavenie adaptéra\n" -"- ak ste DNS konfigurovali rucne, skontrolujte údaje v nastavení " -"„konfigurácia servera DNS“" +"- ak ste názvoslovný server konfigurovali ručne, skontrolujte Vaše údaje v nastavení 'Názvoslovný server'." #, python-format msgid "Nameserver %d" -msgstr "DNS (nameserver) %d" +msgstr "DNS %d" -#, fuzzy msgid "Nameserver Settings" -msgstr "Nastavenie DNS" +msgstr "Nastavenia DNS" msgid "Nameserver settings" msgstr "Nastavenie DNS" -msgid "Namespace" -msgstr "Priestor pre názvy" +msgid "Namespace & Orbital pos." +msgstr "Menný priestor a Orbitálna pozícia" msgid "Namibia" -msgstr "" +msgstr "Namíbia" -#, fuzzy msgid "Narration" -msgstr "Sýtost" +msgstr "Zvukový popis" + +msgid "National" +msgstr "Národné" + +msgid "National News" +msgstr "Národné správy" + +msgid "Natur" +msgstr "Prírodné" + +msgid "Nature" +msgstr "Príroda" msgid "Nauru" msgstr "" -#, fuzzy +msgid "Navigate up/down with UP/DOWN buttons and page up/down with LEFT/RIGHT. EXIT to return to the help screen. OK to perform the action described in the currently highlighted help." +msgstr "Pohybujte sa hore/dole pomocou tlačidiel HORE/DOLE a stránkujte hore/dole pomocou tlačidiel VĽAVO/VPRAVO. EXIT pre návrat na obrazovku nápovedy. OK na vykonanie akcie opísanej v aktuálne zvýraznenej nápovede." + msgid "Navigation" -msgstr "Polarizácia" +msgstr "Navigácia" msgid "Nepal" -msgstr "" +msgstr "Nepál" + +msgid "Netball" +msgstr "Sieťový futbal" msgid "Netherlands" -msgstr "" +msgstr "Holandsko" msgid "Netmask" msgstr "Maska siete" @@ -8916,13 +8837,13 @@ msgid "Netmask:" msgstr "Maska siete:" msgid "Network" -msgstr "Siet" +msgstr "Sieť" msgid "Network ID" msgstr "ID siete" msgid "Network MAC settings" -msgstr "Nastavenie MAC adresy" +msgstr "Nastavenia MAC adresy" msgid "Network Setup" msgstr "Nastavenie siete" @@ -8930,13 +8851,11 @@ msgstr "Nastavenie siete" msgid "Network Test" msgstr "Test siete" -#, fuzzy msgid "Network Test:" -msgstr "Test siete" +msgstr "Test siete:" -#, fuzzy msgid "Network menu" -msgstr "Nastavenie siete" +msgstr "Ponuka siete" msgid "Network mounts" msgstr "Sietové prípojné body" @@ -8944,75 +8863,81 @@ msgstr "Sietové prípojné body" msgid "Network name (SSID)" msgstr "Názov siete (SSID)" -#, fuzzy msgid "Network peer" -msgstr "Servery:" +msgstr "Sieťový partner" -#, fuzzy msgid "Network peers" -msgstr "Servery:" +msgstr "Sieťový partneri" msgid "Network scan" -msgstr "Vyhladat siet" +msgstr "Prehľadať sieť" msgid "Network servers:" -msgstr "Servery:" +msgstr "Sieťové servery:" -#, fuzzy msgid "Network settings" -msgstr "Nastavenie MAC adresy" +msgstr "Nastavenia siete" msgid "Network test" msgstr "Test siete" msgid "Network wizard" -msgstr "Sprievodca sietou" +msgstr "Sprievodca sieťou" msgid "Network:" -msgstr "Siet:" +msgstr "Sieť:" + +msgid "NetworkInadynSetup" +msgstr "Nastavenie siete Inadyn" + +msgid "Neue Medien" +msgstr "" msgid "New" msgstr "Nové" msgid "New Caledonia" -msgstr "" +msgstr "Nová Kaledónia" msgid "New Zealand" -msgstr "" +msgstr "Nový Zéland" -#, fuzzy msgid "New password" -msgstr "Heslo" +msgstr "Nové heslo" msgid "New profile: " -msgstr "Nový profil:" +msgstr "Nový profil: " msgid "New version:" msgstr "Nová verzia:" msgid "News" -msgstr "" +msgstr "Správy" + +msgid "News Magazine" +msgstr "Spravodajský magazín" -#, fuzzy msgid "News/Current Affairs" -msgstr "Spravodajstvo/Publicistika (všeobecne)" +msgstr "Správy/Aktuálne veci" + +msgid "News/Current Affairs/Social" +msgstr "Spravodajstvo/Publicistika/Sociálne" -#, fuzzy msgid "Next" -msgstr "Dalšia" +msgstr "Ďalšia" msgctxt "now/next: 'next' event label" msgid "Next" -msgstr "Dalšia" +msgstr "Potom" msgid "Nicaragua" -msgstr "" +msgstr "Nikaragua" msgid "Niger" msgstr "" msgid "Nigeria" -msgstr "" +msgstr "Nigéria" msgid "Niue" msgstr "" @@ -9021,201 +8946,178 @@ msgid "No" msgstr "Nie" msgid "No (supported) DVDROM found!" -msgstr "Nenájdený (podporovaný) DVDROM!" +msgstr "Nenájdený (nepodporovaný) DVDROM!" msgid "No Connection" -msgstr "Nie je spojenie" +msgstr "Žiadne pripojenie" -msgid "" -"No ECM info is currently available. This is only available while decrypting." -msgstr "" +msgid "No ECM info is currently available. This is only available while decrypting." +msgstr "V súčasnosti nie sú k dispozícii žiadne informácie o ECM. Táto informácia je k dispozícii len počas dešifrovania." -#, fuzzy -msgid "No ECMPids available" -msgstr " dostupných aktualizácií." +msgid "No ECMPids available (FTA Service)" +msgstr "ECM pidy nie sú k dispozícii (FTA stanica)" msgid "No HDD found or HDD not initialized!" -msgstr "Pevný disk nebol nájdený alebo nebol inicializovaný." +msgstr "Pevný disk nebol nájdený alebo nebol inicializovaný!" -#, fuzzy msgid "No Logs" -msgstr "Protokoly chýb" +msgstr "Žiadne protokoly" + +msgid "No MAC interface found" +msgstr "Nenájdené rozhranie MAC" msgid "No Timeshift found to save as recording!" -msgstr "Nenašli sa žiadny súbor casového posuvu pre uloženie ako nahrávky!" +msgstr "Nenašiel sa žiadny časový posun, ktorý by sa dal uložiť ako nahrávka!" -#, fuzzy msgid "No active channel found." -msgstr "Nájdená %d stanica!" +msgstr "Nenašiel sa žiadny aktívny kanál." msgid "No age block" -msgstr "" +msgstr "Bez obmedzenia" msgid "No backup needed" -msgstr "Nie je potrebné zálohovat" +msgstr "Nie je potrebné zálohovať" msgid "No card inserted!" -msgstr "Nie je vložená žiadna karta!" +msgstr "Nie je vložená karta!" msgid "No clients streaming" -msgstr "" +msgstr "Žiadny klienti streamovania" #, python-format msgid "No configs for specifies softcam %s." -msgstr "" +msgstr "Žiadne konfigurácie pre špecifický softcam %s." -#, fuzzy msgid "No connection" -msgstr "Nie je spojenie" +msgstr "Bez pripojenia" -#, fuzzy msgid "No current function" -msgstr "Aktivovat aktuálne nastavenie" +msgstr "Žiadna aktuálna funkcia" msgid "" "No data on transponder!\n" "(Timeout reading PAT)" msgstr "" -"Žiadne dáta na transpondéri!\n" -"(Cas vypršal pri cítaní PAT)" - -msgid "No data received yet" -msgstr "" +"Žiadne dáta na transpondéry!\n" +"(Čas vypršal pri čítaní PAT)" msgid "No delay" -msgstr "Bez oneskorenia" +msgstr "Žiadne oneskorenie" msgid "No description available." msgstr "Popis nie je k dispozícii." msgid "No displayable files on this medium found!" -msgstr "Na tomto médiu sa nenašli žiadne zobrazitelné súbory!" +msgstr "Na tomto médiu sa nenašli žiadne zobraziteľné súbory!" msgid "No event info found, recording indefinitely." -msgstr "Žiadne informácie z EPG, spúštam nekonecné nahrávanie." +msgstr "Žiadne informácie z EPG, spúšťam nekonečné nahrávanie." -msgid "" -"No fast winding possible yet.. but you can use the number buttons to skip " -"forward/backward!" -msgstr "" -"Ešte nie je možné prevíjanie, ale pomocou císelných tlacidiel môžete skocit " -"dopredu alebo dozadu." +msgid "No fast winding possible yet.. but you can use the number buttons to skip forward/backward!" +msgstr "Ešte nie je možné prevíjanie.., ale pomocou číselných tlačidiel môžete skočiť dopredu alebo dozadu!" msgid "No free index available" -msgstr "Žiadny volný index k dispozícii" +msgstr "Žiadny voľný index k dispozícii" msgid "No free tuner!" -msgstr "Nie je volný tuner!" +msgstr "Nie je voľný tuner!" -#, fuzzy msgid "No images found" -msgstr "Nenájdená žiadna siet" +msgstr "Nenájdený žiadny systémový obraz" -#, fuzzy msgid "No module found" -msgstr "nenájdený modul" +msgstr "Nenájdený modul" msgid "No network connection available." -msgstr "Nie je dostupné sietové pripojenie." +msgstr "Nie je dostupné sieťové pripojenie." msgid "No networks found" -msgstr "Nenájdená žiadna siet" +msgstr "Nenájdená žiadna sieť" msgid "No of items switch (increase or reduced)" -msgstr "Nie je co prepnút (zvýšit alebo znížit)" +msgstr "Nie je čo prepnúť (zvýšiť alebo znížiť)" -#, fuzzy msgid "No priority" -msgstr "Priorita" +msgstr "Bez priority" -#, fuzzy -msgid "" -"No satellite, terrestrial or cable tuner is configured. Please check your " -"tuner setup." -msgstr "" -"Nie sú nakonfigurované žiadne satelity. Prosím skontrolujte nastavenia " -"tunera." +msgid "No satellite, terrestrial or cable tuner is configured. Please check your tuner setup." +msgstr "Nie je nakonfigurovaný žiadny satelitný, pozemný ani káblový tuner. Skontrolujte nastavenie tunera." msgid "No service" msgstr "Žiadna stanica" msgid "No services/providers selected" -msgstr "Žiadne služby/poskytovatelia nie sú zvolené" +msgstr "Žiadne stanice/poskytovatelia nie sú zvolený" msgid "No standby" -msgstr "neprechádzat do pohotovostného režimu" +msgstr "Neprechádzať do pohotovostného režimu" -#, fuzzy msgid "No subtitles available" -msgstr " dostupných aktualizácií." +msgstr "Titulky nie sú dostupné" msgid "No tags are set on these movies." msgstr "Na týchto filmoch nie sú nastavené žiadne štítky." msgid "No timeout" -msgstr "Žiadny casový limit" +msgstr "Žiadny časový limit" msgid "No to all" msgstr "Nie pre všetky" msgid "No transparency" -msgstr "Nepriehladné" +msgstr "Nepriehľadné" msgid "" "No tuner is enabled!\n" "Please setup your tuner settings before you start a service scan." msgstr "" "Žiadny tuner nie je zapnutý!\n" -"Nastavte tuner pred spustením vyhladávania staníc." +"Pred spustením vyhľadávania staníc nastavte Vaš nastavenia tunera." msgid "No updates found, Press OK to exit this screen." -msgstr "" +msgstr "Nenašli sa žiadne aktualizácie, Stlačením tlačidla OK opustíte túto obrazovku." + +msgid "No user installed plugins found" +msgstr "Nenašli sa žiadne doplnky nainštalované užívateľom" msgid "No wireless networks found! Searching..." -msgstr "Nenájdená bezdrôtová siet. Hladám ..." +msgstr "Nenašli sa žiadne bezdrôtové siete! Vyhľadávanie..." msgid "" "No working local network adapter found.\n" -"Please verify that you have attached a network cable and your network is " -"configured correctly." +"Please verify that you have attached a network cable and your network is configured correctly." msgstr "" -"Nenájdená funkcný miestny sietový adaptér.\n" -"Skontrolujte, ci máte pripojený sietový kábel a ci máte siet správne " -"nastavenú." +"Nenájdený funkčný adaptér lokálnej siete.\n" +"Skontrolujte, či máte pripojený sieťový kábel a či máte sieť správne nastavenú." msgid "" "No working wireless network adapter found.\n" -"Please verify that you have attached a compatible WLAN device and your " -"network is configured correctly." +"Please verify that you have attached a compatible WLAN device and your network is configured correctly." msgstr "" -"Nenájdený funkcný bezdrôtový sietový adaptér.\n" -"Skontrolujte, ci máte pripojené kompatibilné zariadenie WLAN a ci máte siet " -"správne nastavenú." +"Nenájdený funkčný bezdrôtový sieťový adaptér.\n" +"Skontrolujte, či máte pripojené kompatibilné zariadenie WLAN a či máte sieť správne nastavenú." msgid "" "No working wireless network interface found.\n" -" Please verify that you have attached a compatible WLAN device or enable " -"your local network interface." +" Please verify that you have attached a compatible WLAN device or enable your local network interface." msgstr "" -"Nenájdené funkcné bezdrôtové sietové rozhranie.\n" -"Skontrolujte, ci máte pripojené kompatibilné zariadenie WLAN alebo zapnite " -"miestne sietové rozhranie." +"Nenájdené funkčné bezdrôtové sieťové rozhranie.\n" +"Skontrolujte, či máte pripojené kompatibilné zariadenie WLAN alebo či ste povolili lokálne sieťové rozhranie." -#, fuzzy msgid "No, but restart from the beginning" -msgstr "Nie, ale zacat od zaciatku." +msgstr "Nie, ale začať od začiatku" msgid "No, do nothing." -msgstr "Nie, nic neurobit." +msgstr "Nie, nič neurobiť." msgid "No, just start my %s %s" -msgstr "Nie, len zapnút %s %s." +msgstr "Nie, len spustiť moje %s %s" msgid "No, never" msgstr "Nie, nikdy" msgid "No, scan later manually" -msgstr "Nie, vyhladat neskôr rucne." +msgstr "Nie, vyhľadať neskôr ručne" msgid "NodeID" msgstr "NodeID" @@ -9227,31 +9129,31 @@ msgid "None" msgstr "Žiadne" msgid "Norfolk Island" -msgstr "" +msgstr "Ostrov Norfolk" + +msgid "Normal" +msgstr "Normálny" msgid "North" -msgstr "severne" +msgstr "Severne" msgid "Northern Mariana Islands" -msgstr "" +msgstr "Ostrovy Severné Mariany" -#, fuzzy msgid "Norway" -msgstr "Nórcina" +msgstr "Nórsko" msgid "Norwegian" -msgstr "Nórcina" +msgstr "Nórsky" -#, fuzzy msgid "Not Classified" -msgstr "Nepriradené" +msgstr "Nezatriedené" -#, fuzzy msgid "Not Defined" -msgstr "Nie je pripojený" +msgstr "Nedefinované" msgid "Not Flashing" -msgstr "Neflešujem" +msgstr "Bez blikania" msgid "Not Shown" msgstr "Nezobrazené" @@ -9259,13 +9161,12 @@ msgstr "Nezobrazené" msgid "Not associated" msgstr "Nepriradené" +msgid "Not defined" +msgstr "Nenadefinované" + #, python-format -msgid "" -"Not enough disk space. Please free up some disk space and try again. (%d MB " -"required, %d MB available)" -msgstr "" -"Nie je dostatok miesta na disku. Uvolnite miesto na disku a skúste to znova. " -"(Požadovaných je %d MB, ale volných je len %d MB.)" +msgid "Not enough disk space. Please free up some disk space and try again. (%d MB required, %d MB available)" +msgstr "Nie je dostatok miesta na disku. Uvoľnite miesto na disku a skúste to znova. (Požadovaných je %d MB, ale voľných je len %d MB)" #, python-format msgid "" @@ -9275,162 +9176,162 @@ msgid "" "Free Space: %sMB\n" "Path: %s" msgstr "" -"Nedostatok volného miesta na disku!\n" +"Nedostatok voľného miesta na disku!\n" "\n" -"Velkost súboru: %sMB\n" -"Volné miesto: %sMB\n" +"Veľkosť súboru: %sMB\n" +"Voľné miesto: %sMB\n" "Cesta: %s" -#, fuzzy msgid "Not running" -msgstr "prebieha..." +msgstr "Neprebieha" msgid "Not-Associated" -msgstr "Nepriradené" +msgstr "Nepripojené" msgid "Nothing" -msgstr "Nic" +msgstr "Nič" msgid "" "Nothing to scan!\n" "Please setup your tuner settings before you start a service scan." msgstr "" -"Nic na vyhladávanie!\n" -"Pred zacatím vyhladávania staníc nastavte tuner ." +"Nič na vyhľadávanie!\n" +"Pred začatím vyhľadávania staníc nastavte Váš tuner ." -#, fuzzy msgid "Nothing to scan! Setup your tuner and try again." msgstr "" -"Nic na vyhladávanie!\n" -"Pred zacatím vyhladávania staníc nastavte tuner ." +"Nič na vyhľadávanie!\n" +"Nastavte Váš tuner a skúste znova ." msgid "Nothing to upgrade" -msgstr "Žiadne aktualizácie." +msgstr "Nič na aktualizáciu" msgid "Nothing, just leave this menu" -msgstr "Nic, len opustit toto menu" +msgstr "Nic, len opustiť túto ponuku" msgctxt "now/next: 'now' event label" msgid "Now" msgstr "Teraz" -msgid "" -"Now, use the contrast setting to turn up the brightness of the background as " -"much as possible, but make sure that you can still see the difference " -"between the two brightest levels of shades.If you have done that, press OK." -msgstr "" -"Teraz kontrastom zvýšte svetlost pozadia co najviac, ale tak, aby ste stále " -"rozlíšili dva najjasnejšie prúžky sivej. Ked skoncíte, stlacte tlacidlo OK." +msgid "Now, use the contrast setting to turn up the brightness of the background as much as possible, but make sure that you can still see the difference between the two brightest levels of shades.If you have done that, press OK." +msgstr "Teraz pomocou nastavenia kontrastu zvýšte svetlosť pozadia čo najviac, ale tak, aby ste stále rozlíšili dva najjasnejšie odtiene. Ked skončíte, stlačte tlačidlo OK." msgid "Number" -msgstr "Císlo" +msgstr "Číslo" -#, fuzzy msgid "Number buttons mode" -msgstr "Režim tlacidla TV" +msgstr "Režim číselných tlačidiel" -#, fuzzy msgid "Number of digits in channel number" -msgstr "Použit císlovanie staníc z fastscanu" +msgstr "Počet číslic v čísle kanálu" msgid "Number of rows" -msgstr "Pocet riadkov" +msgstr "Počet riadkov" -#, fuzzy msgid "Number of rows to display" -msgstr "Pocet riadkov" +msgstr "Počet zobrazených riadkov" msgid "Number or SMS style data entry" -msgstr "" +msgstr "Zadávanie údajov v štýle čísla alebo SMS" + +msgid "OE-A-Branding" +msgstr "OE-A-Značenie" + +msgid "OE-A-Remotes" +msgstr "OE-A-Ovládače" msgid "OK" -msgstr "OK" +msgstr "" msgid "OK button (long)" -msgstr "Tlacidlo OK (dlho)" +msgstr "Tlačidlo OK (dlho)" msgid "OK button (short)" -msgstr "Tlacidlo OK (krátko)" +msgstr "Tlačidlo OK (krátko)" msgid "OK, guide me through the upgrade process" -msgstr "OK, preved ma procesom aktualizácie." +msgstr "OK, preveď ma procesom aktualizácie" msgid "ONID" -msgstr "ONID" +msgstr "" + +msgid "OPTION" +msgstr "MOŽNOSŤ" -#, fuzzy msgid "OSD" -msgstr "SID" +msgstr "OSD (Zobrazenia na obrazovke)" msgid "OSD 3D Setup" msgstr "Nastavenie 3D OSD" -#, fuzzy msgid "OSD Position" -msgstr "Uložit pozíciu" +msgstr "Pozícia OSD" msgid "OSD name request" msgstr "Požiadavka na názov OSD" -#, fuzzy msgid "OSD position" -msgstr "Uložit pozíciu" +msgstr "OSD pozícia" -#, fuzzy msgid "OScam/Ncam Info" -msgstr "OSCam info" +msgstr "" -#, fuzzy msgid "OScam/Ncam Info" -msgstr "OSCam info" +msgstr "" msgid "OVR" -msgstr "" +msgstr "PREPÍSAŤ" msgid "Octo core" -msgstr "" +msgstr "Osemjadro" msgid "Off" -msgstr "Vypnút" +msgstr "Vypnuté" msgid "Offline decode delay (ms)" msgstr "Oneskorenie offline dekódovania (ms)" -msgid "Oman" +msgid "Olympia" msgstr "" +msgid "Olympics" +msgstr "Olympiáda" + +msgid "Oman" +msgstr "Omán" + msgid "On" -msgstr "Zapnút" +msgstr "Zapnúť" + +msgid "On Screen Display" +msgstr "Zobrazovanie na obrazovke (OSD)" msgid "On end of movie" msgstr "Na konci filmu" -#, fuzzy msgid "On end of movie (as menu)" -msgstr "Na konci filmu" +msgstr "Na konci filmu (ako ponuka)" msgid "On except in same named directory" -msgstr "" +msgstr "Zapnuté okrem adresára s rovnakým názvom" -msgid "" -"On shutdown/restart warn about any pending jobs being carried out in the " -"background." -msgstr "" +msgid "On shutdown/restart warn about any pending jobs being carried out in the background." +msgstr "Pri vypnutí/reštarte upozorniť na všetky nevyriešené úlohy vykonávané na pozadí." msgid "On valid ONIDs, ignore frequency sub network part" -msgstr "" +msgstr "Pri platných identifikátoroch ONID sa ignoruje časť podsiete - kmitočet" msgid "On your remote, click on the button you want to change" -msgstr "" +msgstr "Na diaľkovom ovládači kliknite na tlačidlo, ktoré chcete zmeniť" msgid "Once per day" -msgstr "Raz za den" +msgstr "Raz za deň" msgid "One" msgstr "Jeden" msgid "One line" -msgstr "Jedna ciara" +msgstr "Jednen riadok" msgid "OnlineVersionCheck" msgstr "Kontrola online verzie" @@ -9438,120 +9339,104 @@ msgstr "Kontrola online verzie" msgid "Only active when in standby" msgstr "Aktívne len v pohotovostnom režime" -msgid "" -"Only change this setting if you are using a SCR device that has been " -"reprogrammed with a custom programmer. For further information check with " -"the person that reprogrammed the device." -msgstr "" +msgid "Only change this setting if you are using a SCR device that has been reprogrammed with a custom programmer. For further information check with the person that reprogrammed the device." +msgstr "Toto nastavenie zmeňte len vtedy, ak používate zariadenie SCR, ktoré bolo preprogramované pomocou vlastného programátora. Ďalšie informácie získate od osoby, ktorá zariadenie preprogramovala." msgid "Only extensions." msgstr "Len rozšírenia." msgid "Only free scan" -msgstr "Vyhladat len nekódované" +msgstr "Vyhľadať len nekódované" msgid "Only move the dish quickly after this hour." -msgstr "" +msgstr "Po tejto hodine len rýchlo presuňte parabolu." msgid "Only move the dish quickly before this hour." -msgstr "" +msgstr "Pred touto hodinou len rýchlo presuňte parabolu." msgid "Only on startup" -msgstr "" +msgstr "Iba pri spustení" -msgid "" -"Only select 'yes' if you are using a multiswich that requires a DiSEqC Port-" -"A command signal. For all other setups select 'no'." -msgstr "" +msgid "Only select 'yes' if you are using a multiswich that requires a DiSEqC Port-A command signal. For all other setups select 'no'." +msgstr "Možnosť 'áno' vyberte len vtedy, ak používate multisystém, ktorý vyžaduje príkazový signál DiSEqC Port-A. Pre všetky ostatné nastavenia vyberte 'nie'." + +msgid "Open RDS/RASS screen" +msgstr "Otvoriť obrazovku RDS/RASS" msgid "Open RDS/RASS screen..." -msgstr "" +msgstr "Otváranie obrazovky RDS/RASS..." + +msgid "Open VirtualKeyboard" +msgstr "Otvoriť virtuálnu klávesnicu" -#, fuzzy msgid "Open bouquet list" -msgstr "Otvorit zoznam prehladov" +msgstr "Otvoriť zoznam prehľadov" -#, fuzzy msgid "Open infobar EPG" -msgstr "Informacný panel EPG" - -#, fuzzy -msgid "Open infobar EPG..." -msgstr "Informacný panel EPG" +msgstr "Otvoriť informačný panel EPG" -#, fuzzy msgid "Open menu" -msgstr "Hlavné menu" +msgstr "Otvoriť ponuku" -#, fuzzy msgid "Open nameserver configuration" -msgstr "Otvorit nastavenia DNS" +msgstr "Otvoriť konfiguráciu DNS" -#, fuzzy msgid "Open seekbar" -msgstr "Hladanie" +msgstr "Otvoriť vyhľadávaciu lištu" -#, fuzzy msgid "Open service list" -msgstr "Otvorit zoznam služieb" +msgstr "Otvoriť zoznam stanic" -#, fuzzy msgid "Open service list and select the next channel" -msgstr "Otvorit zoznam služieb a vybrat nasledujúcu stanicu" +msgstr "Otvoriť zoznam staníc a vybrať nasledujúci kanál" -#, fuzzy msgid "Open service list and select the next channel for PiP" -msgstr "Otvorit zoznam služieb a vybrat nasledujúcu stanicu" +msgstr "Otvoriť zoznam staníc a vybrať nasledujúci kanál pre PiP" -#, fuzzy msgid "Open service list and select the previous channel" -msgstr "Otvorit zoznam služieb a vybrat predchádzajúcu stanicu" +msgstr "Otvoriť zoznam staníc a vybrať predchádzajúci kanál" -#, fuzzy msgid "Open service list and select the previous channel for PiP" -msgstr "Otvorit zoznam služieb a vybrat predchádzajúcu stanicu" +msgstr "Otvoriť zoznam staníc a vybrať predchádzajúci kanál pre PiP" -#, fuzzy msgid "Open setup tuner " -msgstr "Nastavte tuner A" +msgstr "Otvoriť nastavenie tuneru " -#, fuzzy msgid "Open the favourites list" -msgstr "Otvorit zoznam filmov" +msgstr "Otvoriť zoznam obľúbených" msgid "Open the movie list" -msgstr "Otvorit zoznam filmov" +msgstr "Otvoriť zoznam filmov" -#, fuzzy msgid "Open the satellites list" -msgstr "Otvorit zoznam satelitov" +msgstr "Otvoriť zoznam satelitov" -#, fuzzy msgid "Open the service list" -msgstr "Otvorit zoznam služieb" +msgstr "Otvoriť zoznam staníc" #, python-format msgid "" "OpenTV EPG download completed.\n" "Next download: %s" msgstr "" +"Stiahnutie OpenTV EPG dokončené.\n" +"Ďalšie sťahovanie: %s" msgid "OpenTV EPG download starting." -msgstr "" +msgstr "Začína sa sťahovanie OpenTV EPG." msgid "OpenTV EPG downloader" -msgstr "" +msgstr "Sťahovanie OpenTV EPG" msgid "OpenTV EPG forced download" -msgstr "" - -#, fuzzy -msgid "OpenTV download setup" -msgstr "Nastavenie OpenVPN" +msgstr "Vynútené stiahnutie OpenTV EPG" -#, fuzzy msgid "OpenVPN" -msgstr "Nastavenie OpenVPN" +msgstr "" + +#, python-format +msgid "OpenViX: %s" +msgstr "" msgid "OpenVpn Setup" msgstr "Nastavenie OpenVPN" @@ -9559,131 +9444,173 @@ msgstr "Nastavenie OpenVPN" msgid "OpentvZapper" msgstr "" +msgid "Opera" +msgstr "" + msgid "Orbital position" msgstr "Orbitálna pozícia" msgid "Ordinary" -msgstr "" +msgstr "Bežný" msgid "Original" msgstr "Originál" -#, fuzzy msgid "Original language" -msgstr "pôvodný jazyk" +msgstr "Pôvodný jazyk" + +msgid "Oscam/Ncam Info Settings" +msgstr "Nastavenia OScam/Ncam Informécie" msgid "Oscam/Ncam not running - start Cam to obtain information." -msgstr "" +msgstr "OScam/Ncam nie je spustený - spustite softcamd na získanie informácií." msgid "Other" msgstr "Iné" +msgid "Other Subtitles & lang" +msgstr "Ďalšie titulky a jazyky" + +msgid "Other buttons will jump to the help for that button, if there is help." +msgstr "Pri ostatných tlačidlách sa prejde na nápovedu k danému tlačidlu, ak je k dispozícii." + +msgid "Other functions" +msgstr "Ďalšie funkcie" + +msgid "Outdoor" +msgstr "Vonkajšie" + msgid "Output" msgstr "Výstup" msgid "Overwrite configuration files during software upgrade?" -msgstr "Prepísat konfiguracné súbory pri aktualizácii softvéru? " +msgstr "Prepísať konfiguračné súbory počas aktualizácie softvéru?" msgid "Overwrite configuration files?" -msgstr "Prepísat konfiguracné súbory?" +msgstr "Prepísať konfiguračné súbory?" msgid "PAGE UP/DOWN" -msgstr "STRANA NAHOR/NADOL" +msgstr "STRÁNKA NAHOR/NADOL" + +msgid "PAGEDOWN" +msgstr "STRÁNKA NADOL" + +msgid "PAGEUP" +msgstr "STRÁNKA NAHOR" msgid "PAL" -msgstr "PAL" +msgstr "" + +msgid "PAUSE" +msgstr "PAUZA" -#, fuzzy msgid "PCM" -msgstr "DAC" +msgstr "" -#, fuzzy msgid "PCM Multichannel" -msgstr "Stanica" +msgstr "PCM viackanál" -#, fuzzy msgid "PCM multichannel" -msgstr "Stanica" +msgstr "PCM viackanálový" msgid "PCR PID" -msgstr "PCR PID" +msgstr "" -#, fuzzy msgid "PDC" -msgstr "DAC" +msgstr "" -#, fuzzy msgid "PGS file" -msgstr "Názov súboru s EPG" +msgstr "PGS súbor" -#, fuzzy msgid "PIP" -msgstr "IP:" +msgstr "" msgid "PIP enabled, no HDR" -msgstr "" +msgstr "PIP povolený, bez HDR" msgid "PIP with OSD" -msgstr "" +msgstr "PiP s OSD" + +msgid "PLAY" +msgstr "PREHRAŤ" + +msgid "PLAYLIST" +msgstr "ZOZNAM SKLADIEB" + +msgid "PLAYPAUSE" +msgstr "PREHRAŤ-PAUZA" msgid "PLP ID" -msgstr "PLP ID" +msgstr "" msgid "PLS Code" -msgstr "" +msgstr "PLS kód" -#, fuzzy msgid "PLS Mode" -msgstr "3D režim" +msgstr "PLS režim" msgid "PLS Mode & PLS Code" -msgstr "" +msgstr "PLS Režim a PLS kód" + +msgid "PLUGIN" +msgstr "DOPLNOK" msgid "PMT PID" -msgstr "PMT PID" +msgstr "" -msgid "PREVIOUS" +msgid "PORTAL" +msgstr "PORTÁL" + +msgid "POWER" +msgstr "NAPÁJANIE" + +msgid "POWER2" msgstr "" +msgid "PREVIOUS" +msgstr "PREDCHÁDZAJÚCE" + +msgid "PREVIOUSSONG" +msgstr "PREDPOKLADY" + msgid "PRIMETIME" -msgstr "HLAVNÝ VYSIELACÍ CAS" +msgstr "HLAVNÝ VYSIELACÍ ČAS" + +msgid "PVR" +msgstr "" msgid "Package list update" -msgstr "Nacítavam zoznam balíckov" +msgstr "Aktualizácia zoznamu balíčkov" msgid "Packages" -msgstr "Balícky" +msgstr "Balíčky" msgid "Packet management" -msgstr "Správa balíckov" +msgstr "Správa balíčkov" msgid "Packet manager" -msgstr "Správca balíckov" +msgstr "Správca balíčkov" msgid "Page down" msgstr "Stránka nadol" -#, fuzzy msgid "Page down in description" -msgstr "Prosím, zadajte nový názov:" +msgstr "Stránka nadol v popise" msgid "Page right" msgstr "Stránka vpravo" msgid "Page up" -msgstr "Strana nahor" +msgstr "Stránka nahor" -#, fuzzy msgid "Page up in description" -msgstr "Prosím, zadajte nový názov:" +msgstr "Stránka nahor v popise" -#, fuzzy msgid "PageBack" -msgstr "Spät" +msgstr "Stránka späť" -#, fuzzy msgid "PageFwd" -msgstr "Stránka nadol" +msgstr "Stránka vpred" msgid "Pakistan" msgstr "" @@ -9692,54 +9619,68 @@ msgid "Palau" msgstr "" msgid "Palestine, State of" -msgstr "" +msgstr "Palestínsky štát" #. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. #. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +#. PREKLADATELIA: (zásady pomeru strán: čierne pruhy na vrchu/spodku) v prípade pochybností zachovajte anglický termín. +#. PREKLADATELIA: (zásady pomeru strán: čierne pruhy vľavo/vpravo) v prípade pochybností ponechajte anglický termín. msgid "Pan&scan" -msgstr "Pan&Scan" +msgstr "" msgid "Panama" msgstr "" msgid "Panic to" -msgstr "" +msgstr "Panika do" msgid "Papua New Guinea" +msgstr "Papua Nová Guinea" + +msgid "Parabel" msgstr "" msgid "Paraguay" -msgstr "" +msgstr "Paraguaj" msgid "Parent directory" msgstr "Nadradený adresár" -#, fuzzy msgid "Parental Control" -msgstr "Rodicovská kontrola" +msgstr "Rodičovská kontrola" msgid "Parental Guidance Recommended" -msgstr "" +msgstr "Odporúčané usmernenie rodičov" msgid "Parental control" -msgstr "Rodicovská kontrola" +msgstr "Rodičovský dohľad" + +msgid "Parliament" +msgstr "Parlament" + +msgid "Parodie" +msgstr "Paródia" msgid "Passthrough" -msgstr "" +msgstr "Priechodné" msgid "Password" msgstr "Heslo" +msgid "Password (httpuser)" +msgstr "Heslo (httpuser)" + msgid "Password (httpwd)" msgstr "Heslo (httpwd)" -#, fuzzy +msgid "Password Actions" +msgstr "Akcie s heslom" + msgid "Password Setup" -msgstr "Heslo" +msgstr "Nastavenie hesla" -#, fuzzy msgid "Password changed" -msgstr "Heslo (httpwd)" +msgstr "Zmena hesla" msgid "Password:" msgstr "Heslo:" @@ -9748,516 +9689,460 @@ msgid "Pause" msgstr "Pauza" msgid "Pause movie at end" -msgstr "Na konci filmu pozastavit" +msgstr "Pozastavenie filmu na konci" msgid "Pause playback" msgstr "Pozastavenie prehrávania" msgid "Pause, rewind and fast forward" -msgstr "" +msgstr "Pozastavenie, pretáčanie dozadu a rýchle pretáčanie dopredu" -#, fuzzy msgid "Pause/Continue playback" -msgstr "Pokracovat v prehaávaní" +msgstr "Pozastavenie/Pokračovanie prehrávania" -#, fuzzy msgid "Pausing" -msgstr "používa:" +msgstr "Pozastavenie" msgid "Peak load (max queued requests per workerthread)" -msgstr "Špickové zataženie (max. pocet požiadaviek vo fronte/workerthread)" +msgstr "Špičkové zaťaženie (maximum požiadavok vo fronte na jedno pracovné vlákno)" msgid "Percentage" msgstr "Percentá" msgid "Percentage left" -msgstr "Percentá vlavo" +msgstr "Percentá vľavo" msgid "Percentage right" msgstr "Percentá vpravo" msgid "Perform a complete image backup before updating." -msgstr "Pred aktualizáciou vykonat kompletnú zálohu systémového image." +msgstr "Pred aktualizáciou vykonať kompletnú zálohu systémového image." msgid "Perform a full image backup" -msgstr "Vykonat úplné zálohovanie image" +msgstr "Vykonať úplnú zálohu systémového obrazu" msgid "Perform a settings backup before updating." -msgstr "Pred aktualizáciou vykonat zálohu nastavení." +msgstr "Pred aktualizáciou vykonať zálohu nastavení." msgid "Perform a settings backup," -msgstr "Vykonat zálohu nastavení" +msgstr "Vykonať zálohu nastavení," -msgid "" -"Perform a settings backup, making a backup before updating is strongly " -"advised." -msgstr "" -"Vykonat zálohovanie nastavení, zálohovanie nastavení pred aktualizáciou je " -"dôrazne doporucené." +msgid "Perform a settings backup, making a backup before updating is strongly advised." +msgstr "Vykonať zálohu nastavení, zálohovanie pred aktualizáciou je dôrazne doporučené." msgid "Perform an online update check in the background" -msgstr "Vykonat kontrolu online aktualizácie na pozadí" +msgstr "Vykonať kontrolu online aktualizácie na pozadí" msgid "Permanent sort key changes" -msgstr "" +msgstr "Trvalé zmeny kľúča triedenia" msgid "Permanently delete all recordings in the trash can?" -msgstr "Natrvalo odstránit všetky nahrávky v odpadkovom koši?" +msgstr "Natrvalo odstrániť všetky nahrávky v odpadkovom koši?" msgid "Persian" -msgstr "Perzština" +msgstr "Perzsky" msgid "Peru" msgstr "" msgid "Philippines" -msgstr "" +msgstr "Filipíny" msgid "PiP" -msgstr " PiP" +msgstr "" msgid "Picon" -msgstr "Picona" +msgstr "Piktogram" -#, fuzzy msgid "Picon Width" -msgstr "Šírka picon" +msgstr "Šírka piktogramu" msgid "Picon and Service Name" -msgstr "Picona a názov stanice" +msgstr "Piktogram a Názov stanice" -#, fuzzy msgid "Picon and Service Number" -msgstr "Picona a názov stanice" +msgstr "Piktogram a Číslo stanice" msgid "Picon width" -msgstr "Šírka picon" +msgstr "Šírka piktogramu" -#, fuzzy msgid "Picon, Service Number and Service Name" -msgstr "Picona a názov stanice" +msgstr "Piktogram, Číslo stanice a Názov stanice" -#, fuzzy msgid "Picons: Show in channel list" -msgstr "Inštalovat zoznam staníc" +msgstr "Piktogramy: Zobraziť v zozname kanálov" -#, fuzzy msgid "Picture in Picture (PIP)" -msgstr "Premiestnit obraz v obraze" +msgstr "Obraz v Obraze (PiP)" -#, fuzzy msgid "Picture in graphic" -msgstr "Obraz v grafike" +msgstr "Obrazovka v grafickom zobrazení" msgid "Picture player" -msgstr "Prehrávac obrázkov" +msgstr "Prehrávač obrázkov" -#, fuzzy msgid "Pid" -msgstr " PiP" +msgstr "" msgid "Pillarbox" -msgstr "Pillarbox" +msgstr "" msgid "Pilot" -msgstr "Pilot" +msgstr "" msgid "Pitcairn" msgstr "" msgid "Play" -msgstr "Prehrat" +msgstr "Prehrať" msgid "Play Audio-CD..." -msgstr "Prehrat Audio-CD..." +msgstr "Prehrať Audio-CD..." msgid "Play DVD" -msgstr "Prehrat DVD" +msgstr "Prehrať DVD" msgid "Play Music..." -msgstr "Prehrat hudbu..." +msgstr "Prehrať hudbu..." -#, fuzzy msgid "Play as picture in picture" -msgstr "prehrat ako obraz v obraze" +msgstr "Prehrať ako obraz v obraze" msgid "Play audio in background" -msgstr "Prehrat zvuk na pozadí" +msgstr "Prehrať zvuk na pozadí" msgid "Play audio-CD..." -msgstr "Prehrat audio-CD..." +msgstr "Prehrať audio-CD..." msgid "Play back media files" -msgstr "Prehrávat multimediálne súbory" +msgstr "Prehrať mediálne súbory" msgid "Play entry" -msgstr "Prehrat položku" +msgstr "Prehrať položku" msgid "Play from next mark or playlist entry" -msgstr "Prehrat od nasledujúcej znacky alebo položky zoznamu prehrávok" +msgstr "Prehrať od nasledujúcej značky alebo položky zoznamu prehrávok" msgid "Play from previous mark or playlist entry" -msgstr "Prehrat od predchádzajúcej znacky alebo položky zoznamu prehrávok" +msgstr "Prehrať od predchádzajúcej značky alebo položky zoznamu prehrávok" msgid "Play music..." -msgstr "Prehrat hudbu..." +msgstr "Prehrať hudbu..." msgid "Play next" -msgstr "Prehrat nasledujúce" +msgstr "Prehrať nasledujúce" msgid "Play next (return to movie list)" -msgstr "Prehrat nasledujúce (návrat k zoznamu filmov)" +msgstr "Prehrať nasledujúce (návrat k zoznamu filmov)" msgid "Play next (return to previous service)" -msgstr "Prehrat nasledujúce (návrat k predch. službe)" +msgstr "Prehrať nasledujúce (návrat k predchádzajúcej stanici)" msgid "Play previous" -msgstr "Prehrat predchádzajúce" +msgstr "Prehrať predchádzajúce" -msgid "Play recorded movies..." -msgstr "Prehrat nahrané filmy..." +msgid "Play recorded movies" +msgstr "Prehrať nahrané filmy" #, python-format msgid "Play the %d marked recordings" -msgstr "" +msgstr "Prehrať %d označených nahrávok" -#, fuzzy msgid "Play the marked recording" -msgstr "Spustit nahrávanie?" +msgstr "Prehrať označenú nahrávku" -#, fuzzy msgid "Play the selected recording" -msgstr "Zastavit casovac nahrávania" +msgstr "Prehrať vybranú nahrávku" msgid "" "Playback information missing\n" "Playback aborted to avoid crash\n" "Please retry" msgstr "" +"Chýbajúce informácie o prehrávaní\n" +"Prehrávanie prerušené, aby sa zabránilo pádu\n" +"Prosím, skúste to znova" -#, fuzzy msgid "Playlist" -msgstr "cierna listina" +msgstr "Zoznam prehrávok" -#, fuzzy msgid "Playpause" -msgstr "Pauza" +msgstr "Pozastaviť prehrávanie" msgid "Please add titles to the compilation." msgstr "Prosím, pridajte titulky do kompilácie." -#, fuzzy msgid "Please change the recording end time" -msgstr "Prosím, zmente cas ukoncenia nahrávania" - -#, fuzzy -msgid "Please choose CCcam-Reader" -msgstr "Prosím, vyberte cítacku CCcam" +msgstr "Prosím, zmeňte čas ukončenia nahrávania" -msgid "Please choose an extension..." -msgstr "Zvolte rozšírenie..." - -msgid "Please choose reader" -msgstr "Prosím, zvolte cítacku" +msgid "Please choose an extension" +msgstr "Prosím, vyberte si rozšírenie" msgid "" -"Please configure or verify your Nameservers by filling out the required " -"values.\n" +"Please configure or verify your Nameservers by filling out the required values.\n" "When you are ready press OK to continue." msgstr "" -"Nakonfigurujte alebo skontrolujte názvy serverov vyplnením požadovaných " -"hodnôt.\n" -"Po skoncení stlacte OK a pokracujte." +"Prosím nakonfigurujte alebo skontrolujte názvy serverov vyplnením požadovaných hodnôt.\n" +"Po skončení stlačte OK a pokračujte." msgid "" -"Please configure your internet connection by filling out the required " -"values.\n" +"Please configure your internet connection by filling out the required values.\n" "When you are ready press OK to continue." msgstr "" -"Nakonfigurujte si internetové pripojenie vyplnením požadovaných hodnôt.\n" -"Po skoncení stlacte OK a pokracujte." +"Prosím, nakonfigurujte si internetové pripojenie vyplnením požadovaných hodnôt.\n" +"Po skončení stlačte OK a pokračujte." msgid "Please connect your receiver to the internet" -msgstr "Prosím, pripojte prijímac k internetu" +msgstr "Prosím, pripojte prijímač k internetu" msgid "Please do not change any values unless you know what you are doing!" -msgstr "Nemente žiadne hodnoty, ak neviete, co tým spôsobíte!" +msgstr "Prosím, nemeňte žiadne hodnoty, ak neviete, čo tým spôsobíte!" msgid "Please enter a name for the new bouquet" -msgstr "Zadajte názov nového prehladu." +msgstr "Prosím, zadajte názov nového prehľadu" msgid "Please enter a name for the new marker" -msgstr "Zadajte názov novej znacky." +msgstr "Prosím, zadajte názov novej značky" msgid "Please enter a new filename" -msgstr "Zadajte nový názov súboru" +msgstr "Prsím, zadajte nový názov súboru" -#, fuzzy msgid "Please enter a new name:" msgstr "Prosím, zadajte nový názov:" msgid "Please enter filename (empty = use current date)" -msgstr "Zadajte názov súboru (prázdny = dnešný dátum)" +msgstr "Prosím, zadajte názov súboru (prázdny = použije sa dnešný dátum)" -#, fuzzy msgid "Please enter new description:" -msgstr "Prosím, zadajte nový názov:" +msgstr "Prosím, zadajte nový popis:" msgid "Please enter new name:" -msgstr "Prosím, zadajte nový názov:" +msgstr "Prosím, zadajte nové meno:" msgid "Please enter the correct pin code" -msgstr "Zadajte správny kód PIN" +msgstr "Prosím, zadajte správny kód PIN" -#, fuzzy msgid "Please enter the name of the new directory" -msgstr "Zadajte názov nového adresára" +msgstr "Prosím, zadajte názov nového adresára" msgid "Please enter the new PIN code" msgstr "Prosím, zadajte nový PIN kód" msgid "Please enter the old PIN code" -msgstr "Zadajte starý kód PIN" +msgstr "Prosím, zadajte starý kód PIN" msgid "Please follow the instructions on the TV" -msgstr "Prosím, riadte sa pokynmi na televíznej obrazovke" +msgstr "Prosím, riaďte sa pokynmi na televíznej obrazovke" -msgid "" -"Please note that the previously selected media could not be accessed and " -"therefore the default directory is being used instead." -msgstr "" -"Nie je prístup k predtým zvolenému médiu, preto sa namiesto neho použije " -"predvolený adresár." +msgid "Please note that the previously selected media could not be accessed and therefore the default directory is being used instead." +msgstr "Nie je prístup k predtým zvolenému médiu, preto sa namiesto neho použije predvolený adresár." -#, fuzzy msgid "Please open Picture in Picture first" -msgstr "Nedá sa otvorit obraz v obraze" +msgstr "Prosím, najprv otvorte Obraz v Obraze (PiP)" msgid "Please press OK to continue." -msgstr "Pre pokracovanie stlacte tlacidlo OK." +msgstr "Prosím stlačte OK a pokračujte." -#, fuzzy msgid "Please press OK when ready" -msgstr "Ked budete pripravení, stlacte tlacidlo OK." +msgstr "Prosím stlačte OK po dokončení" msgid "Please re-enter the new PIN code" -msgstr "Prosím, znova zadajte nový PIN kód." +msgstr "Prosím, znova zadajte nový PIN kód" msgid "Please select a playlist to delete..." -msgstr "Zvolte zoznam prehrávok, ktorý sa má zmazat..." +msgstr "Prosím vyberte zoznam prehrávok, ktorý sa má zmazať..." msgid "Please select a playlist..." -msgstr "Zvolte zoznam prehrávok..." +msgstr "Prosím vyberte zoznam prehrávok..." -msgid "Please select a sub service..." -msgstr "Prosím, zvolte podkanál..." +msgid "Please select a sub service" +msgstr "Prosím vyberte podkanál" msgid "Please select a subservice to record..." -msgstr "Zvolte podkanál pre nahrávanie..." +msgstr "Prosím vyberte podkanál pre nahrávanie..." msgid "Please select a subservice..." -msgstr "Zvolte podkanál..." +msgstr "Prosím vyberte podkanál..." -#, fuzzy msgid "Please select an acceptable directory." -msgstr "Zvolte zoznam prehrávok..." +msgstr "Prosím vyberte prijateľný adresár." msgid "Please select medium to be scanned" -msgstr "Prosím, vyberte médium na prehladanie" +msgstr "Prosím vyberte médium na prehľadanie" msgid "Please select medium to use as backup location" -msgstr "Zvolte médium, ktoré sa použije ako umiestnenie zálohy" +msgstr "Prosím vyberte médium, ktoré sa použije ako umiestnenie zálohy" -#, fuzzy msgid "Please select the default action of the EPG button" -msgstr "Prosím zvolte predvolený typ EPG..." +msgstr "Prosím vyberte predvolenú činnosť tlačidla EPG" -#, fuzzy msgid "Please select the default action of the INFO button" -msgstr "Zvolte štítok na filtrovanie..." +msgstr "Prosím vyberte predvolenú činnosť tlačidla INFO" msgid "Please select the movie path..." -msgstr "Zvolte cestu k filmu..." +msgstr "Prosím vyberte cestu k filmom..." msgid "" -"Please select the network interface that you want to use for your internet " -"connection.\n" +"Please select the network interface that you want to use for your internet connection.\n" "\n" "Please press OK to continue." msgstr "" -"Zvolte sietové rozhranie, ktoré chcete použit na pripojenie do internetu.\n" +"Prosím vyberte sieťové rozhranie, ktoré chcete použiť na pripojenie do internetu.\n" "\n" -"Pokracujte stlacením OK." +"Pokračujte stlačením OK." -#, fuzzy msgid "Please select the tag to filter..." -msgstr "Zvolte štítok na filtrovanie..." +msgstr "Prosím vyberte štítok na filtrovanie..." msgid "" "Please select the wireless network that you want to connect to.\n" "\n" "Please press OK to continue." msgstr "" -"Zvolte bezdrôtovú siet, ku ktorej sa chcete pripojit.\n" +"Prosím vyberte bezdrôtovú sieť, ku ktorej sa chcete pripojiť.\n" "\n" -"Pokracujte stlacením OK." +"Pokračujte stlačením OK." msgid "Please set up the following common options" -msgstr "" +msgstr "Prosím nastavte nasledujúce spoločné možnosti" msgid "Please set up tuner A" -msgstr "Nastavte tuner A" +msgstr "Prosím nastavte tuner A" msgid "Please set up tuner B" -msgstr "Nastavte tuner B" +msgstr "Prosím nastavte tuner B" msgid "Please set up tuner C" -msgstr "Nastavte tuner C" +msgstr "Prosím nastavte tuner C" msgid "Please set up tuner D" -msgstr "Nastavte tuner D" +msgstr "Prosím nastavte tuner D" -#, fuzzy msgid "Please set up tuner E" -msgstr "Nastavte tuner A" +msgstr "Prosím nastavte tuner E" -#, fuzzy msgid "Please set up tuner F" -msgstr "Nastavte tuner A" +msgstr "Prosím nastavte tuner F" -#, fuzzy msgid "Please set up tuner G" -msgstr "Nastavte tuner A" +msgstr "Prosím nastavte tuner G" -#, fuzzy msgid "Please set up tuner H" -msgstr "Nastavte tuner A" +msgstr "Prosím nastavte tuner H" -#, fuzzy msgid "Please set up tuner I" -msgstr "Nastavte tuner A" +msgstr "Prosím nastavte tuner I" -#, fuzzy msgid "Please set up tuner J" -msgstr "Nastavte tuner A" +msgstr "Prosím nastavte tuner J" -#, fuzzy msgid "Please set up tuner K" -msgstr "Nastavte tuner A" +msgstr "Prosím nastavte tuner K" -#, fuzzy msgid "Please set up tuner Q" -msgstr "Nastavte tuner A" +msgstr "Prosím nastavte tuner Q" -#, fuzzy msgid "Please set up tuner R" -msgstr "Nastavte tuner A" +msgstr "Prosím nastavte tuner R" -#, fuzzy msgid "Please set your time options" -msgstr "Nastavte tuner A" +msgstr "Prosím nastavte svoje časové možnosti" msgid "" "Please set your time options.\n" "\n" "Press YELLOW to set the time zone via geolocation." msgstr "" +"Prosím nastavte svoje časové možnosti\n" +"\n" +"Stlačením ŽLTÉHO tlačidla nastavíte časové pásmo prostredníctvom geolokácie." -#, fuzzy msgid "" -"Please setup your user interface by adjusting the values till the edges of " -"the user interface box are covering the test pattern and touching the edges " -"of your TV.\n" +"Please setup your user interface by adjusting the values till the edges of the user interface box are covering the test pattern and touching the edges of your TV.\n" "When you are ready press OK to continue." msgstr "" -"Nakonfigurujte užívatelské rozhranie úpravou hodnôt kým sa strany modrého " -"obdlžnika nebudú dotýkat okrajov TV obrazovky.\n" -"Po skoncení stlacte OK a pokracujte." +"Prosím nastavte používateľské rozhranie tak, že upravíte hodnoty, až okraje políčka používateľského rozhrania zakryjú testovací obrazec a dotknú sa okrajov TV.\n" +"Keď ste pripravení, pokračujte stlačením tlačidla OK." -#, fuzzy msgid "" "Please use the direction keys to move the PiP window.\n" "Press Bouquet +/- to resize the window.\n" "Press OK to go back to the TV mode or EXIT to cancel the moving." msgstr "" -"Na presúvanie okna PiP použite kurzorové tlacidlá.\n" -"Stlacením tlacidla Bouquet +/- zmeníte velkost okna.\n" -"Stlacením OK sa vrátite do režimu TV alebo stlacením EXIT zrušíte presúvanie." +"Na presúvanie okna PiP použite kurzorové tlačidlá.\n" +"Stlačením tlačidla BOUQUET +/- zmeníte veľkosť okna.\n" +"Stlačením OK sa vrátite do režimu TV alebo stlačením EXIT zrušíte presúvanie." -#, fuzzy msgid "Please wait" -msgstr "Prosím, pockajte..." +msgstr "Prosím, čakajte" msgid "Please wait (downloading channel list)" -msgstr "Prosím, cakajte (stahujem zoznam kanálov)" +msgstr "Prosím čakajte (sťahovanie zoznam kanálov)" msgid "Please wait (updating packages)" -msgstr "Prosím, cakajte (aktualizujú sa balícky)" +msgstr "Prosím čakajte (aktualizácia balíčkov)" -#, fuzzy msgid "Please wait while gathering EPG data..." -msgstr "Pockajte prosím, prebieha zhromaždovanie údajov ..." +msgstr "Prosím čakajte, kým sa zhromaždia údaje EPG..." -#, fuzzy msgid "Please wait while scanning for devices..." -msgstr "Pockajte prosím, prebieha vyhladávanie zariadení..." +msgstr "Prosím čakajte, počas vyhľadávania zariadení..." msgid "Please wait while scanning is in progress..." -msgstr "Prosím pockajte, prebieha vyhladávanie..." +msgstr "Prosím čakajte, prebieha vyhľadávanie..." msgid "Please wait while we configure your network..." -msgstr "Prosím pockajte, kým sa nakonfiguruje siet..." +msgstr "Prosím čakajte, kým sa nakonfiguruje sieť..." msgid "Please wait while we prepare your network interfaces..." -msgstr "Prosím pockajte, kým sa pripravujú sietové rozhrania..." +msgstr "Prosím čakajte, kým sa pripravujú sieťové rozhrania..." msgid "Please wait while we test your network..." -msgstr "Prosím pockajte, prebieha test siete..." +msgstr "Prosím čakajte, prebieha test siete..." -#, fuzzy msgid "Please wait while your network configuration is activated..." -msgstr "Prosím pockajte, kým sa siet reštartuje..." +msgstr "Prosím čakajte, kým sa aktivuje konfigurácia siete..." -#, fuzzy, python-format +#, python-format msgid "Please wait, initialising %s." -msgstr "Prosím, pockajte... Otvára sa zoznam..." +msgstr "Prosím čakajte, inicializácia %s." msgid "Please wait..." -msgstr "Prosím, pockajte..." +msgstr "Prosím, čakajte..." msgid "Please wait... Loading list..." -msgstr "Prosím, pockajte... Otvára sa zoznam..." +msgstr "Prosím, čakajte... Načítanie zoznamu..." msgid "Plugin Browser" -msgstr "Prehliadac modulov" +msgstr "Prehliadač doplnkov" -#, fuzzy msgid "Plugin browser" -msgstr "Prehliadac modulov" +msgstr "Prehliadač doplnkov" -#, fuzzy msgid "Plugin browser settings" -msgstr "Prehliadac modulov" +msgstr "Nastavenia prehliadača doplnkov" msgid "Plugin details" -msgstr "Podrobnosti o module" +msgstr "Podrobnosti o doplnku" -#, fuzzy msgid "Plugin install" -msgstr "Podrobnosti o module" +msgstr "Inštalácia doplnku" msgid "Plugin manager activity information" -msgstr "Informácie o cinnosti správcu modulov" +msgstr "Informácie o činnosti správcu doplnkov" msgid "Plugin manager help" -msgstr "Pomocník správcu modulov" +msgstr "Pomocník správcu doplnkov" msgid "Plugins" -msgstr "Moduly" +msgstr "Doplnky" -msgid "Poland" +msgid "Poker" msgstr "" +msgid "Poland" +msgstr "Poľsko" + msgid "Polarisation" msgstr "Polarizácia" @@ -10265,47 +10150,58 @@ msgid "Polarization" msgstr "Polarizácia" msgid "Polish" -msgstr "Polština" +msgstr "Poľsky" -msgid "Popup" +msgid "Political Issues" +msgstr "Politické otázky" + +msgid "Politics" +msgstr "Politika" + +msgid "Politik" +msgstr "" + +msgid "Pop" msgstr "" +msgid "Popup" +msgstr "Vyskakovacie okienko" + msgid "Port" -msgstr "Port" +msgstr "" msgid "Port A" -msgstr "Port A" +msgstr "" msgid "Port B" -msgstr "Port B" +msgstr "" msgid "Port C" -msgstr "Port C" +msgstr "" msgid "Port D" -msgstr "Port D" +msgstr "" msgid "Port:" -msgstr "Port:" +msgstr "" + +msgid "Porträt" +msgstr "" -#, fuzzy msgid "Portugal" -msgstr "Portugalcina" +msgstr "Portugalsko" msgid "Portuguese" -msgstr "Portugalcina" +msgstr "Portugalsky" -#, fuzzy msgid "Position" -msgstr "Pozicionér" +msgstr "Pozícia" -#, fuzzy msgid "Position of finished timers in timer list" -msgstr "Umiestnenie skoncených casovacov v zozname casovacov" +msgstr "Umiestnenie skončených časovačov v zozname časovačov" -#, fuzzy msgid "Position of recording icons" -msgstr "Zloženie názvov súborov nahrávok" +msgstr "Pozícia ikon nahrávania" msgid "Position stored at index" msgstr "Pozícia uložená na indexe" @@ -10313,85 +10209,77 @@ msgstr "Pozícia uložená na indexe" msgid "Positioner" msgstr "Pozicionér" -#, fuzzy msgid "Positioner (selecting satellites)" -msgstr "odstránit zvolený satelit" +msgstr "Pozicionér (výber satelitov)" msgid "Positioner setup" -msgstr "Nastavenie motora" +msgstr "Nastavenie polohovacieho zariadenia" -#, fuzzy msgid "Positioner setup log" -msgstr "Nastavenie motora" +msgstr "Protokol nastavovania pozicionéru" -#, fuzzy msgid "Power" -msgstr "Casovace zapnutia/vypnutia" +msgstr "Zapínanie" msgid "Power LCD Display" -msgstr "" +msgstr "Napájanie LCD displej" -#, fuzzy msgid "Power LED Colour State in Deep-Standby" -msgstr "LED v režime hlbokého spánku" +msgstr "Stav farby LED diódy napájania vo Vyčkávacom režime" -#, fuzzy msgid "Power LED Colour State in Standby" -msgstr "LED v režime hlbokého spánku" +msgstr "Stav farby LED diódy napájania v Pohotovostnom režime" -#, fuzzy msgid "Power LED Colour State when Running." -msgstr "LED v režime hlbokého spánku" +msgstr "Stav farby LED diódy napájania pri prevádzke." msgid "Power LED can be turned on or off here." -msgstr "" +msgstr "Tu môžete zapnúť alebo vypnúť LED kontrolku napájania." msgid "Power On/Off display Normal Mode." -msgstr "" +msgstr "Zapnutie/Vypnutia displeja pri Normálnom režime." msgid "Power On/Off display Standby Mode." -msgstr "" +msgstr "Zapnutie/Vypnutia displeja pri Pohotovostnom režime." msgid "Power On/Off display Suspend Mode." -msgstr "" +msgstr "Zapnutie/Vypnutia displeja pri Pozastavenom režime." -#, fuzzy msgid "Power Timer Edit" -msgstr "Zoznam casovacov napájania" +msgstr "Upraviť časovač napájania" -#, fuzzy msgid "Power Timer List" -msgstr "Zoznam casovacov napájania" +msgstr "Zoznam časovača napájania" -#, fuzzy msgid "Power Timers" -msgstr "Casovace zapnutia/vypnutia" +msgstr "Časovače napájania" -#, fuzzy msgid "Power long" -msgstr "Záznamy správcu napájania" +msgstr "Zapínanie dlho" msgid "Power management. Consult your receiver's manual for more information." -msgstr "" +msgstr "Správa napájania. Ďalšie informácie nájdete v príručke k prijímaču." -#, fuzzy msgid "Power menu" -msgstr "Menu" +msgstr "Ponuka napájania" msgid "Power threshold in mA" -msgstr "Prah prúdu v mA" +msgstr "Prahová hodnota napájania v mA" msgid "Power threshold. Consult your receiver's manual for more information." -msgstr "" +msgstr "Prahová hodnota napájania. Ďalšie informácie nájdete v príručke k prijímaču." msgid "PowerControl FrontDisplay Normal Mode" -msgstr "" +msgstr "Kontrolka napájania predného displeja pri Normálnom režime" msgid "PowerControl FrontDisplay Standby Mode" -msgstr "" +msgstr "Kontrolka napájania predného displeja pri Pohotovostnom režime" msgid "PowerControl FrontDisplay Suspend Mode" -msgstr "" +msgstr "Kontrolka napájania predného displeja pri Pozastavenom režime" + +msgid "Powerboating" +msgstr "Motorový čln" msgid "Predefined" msgstr "Preddefinované" @@ -10400,171 +10288,154 @@ msgid "Predefined transponder" msgstr "Preddefinovaný transpondér" msgid "Prefer AC3 track" -msgstr "Preferovat AC3 stopu" +msgstr "Preferovať AC3 stopu" -#, fuzzy msgid "Prefer AC3+ track" -msgstr "Preferovat AC3 stopu" +msgstr "Preferovať AC3+ stopu" msgid "Prefer audio track stored by service" -msgstr "Preferovat zvukovú stopu nastavenú v stanici" +msgstr "Preferovať zvukovú stopu nastavenú v stanici" msgid "Prefer graphical DVB subtitles" -msgstr "Preferovat grafické DVB titulky" +msgstr "Preferovať grafické DVB titulky" msgid "Prefer subtitles for hearing impaired" -msgstr "Preferovat titulky pre sluchovo hendikepovaních" +msgstr "Preferovať titulky pre sluchovo postihnutých" msgid "Prefer subtitles stored by service" -msgstr "Preferovat titulky nastavené v stanici" +msgstr "Preferovať titulky nastavené v stanici" msgid "Preferred tuner" msgstr "Preferovaný tuner" -#, fuzzy msgid "Preferred tuner ATSC" -msgstr "Preferovaný tuner" +msgstr "Preferovaný ATSC tuner" -#, fuzzy msgid "Preferred tuner ATSC for recordings" -msgstr "Preferovaný tuner pre nahrávanie" +msgstr "Preferovaný ATSC tuner pre nahrávania" -#, fuzzy msgid "Preferred tuner DVB-C" -msgstr "Preferovaný tuner" +msgstr "Preferovaný DVB-C tuner" -#, fuzzy msgid "Preferred tuner DVB-C for recordings" -msgstr "Preferovaný tuner pre nahrávanie" +msgstr "Preferovaný tuner DVB-C pre nahrávania" -#, fuzzy msgid "Preferred tuner DVB-S" -msgstr "Preferovaný tuner" +msgstr "Preferovaný DVB-S tuner" -#, fuzzy msgid "Preferred tuner DVB-S for recordings" -msgstr "Preferovaný tuner pre nahrávanie" +msgstr "Preferovaný tuner DVB-S pre nahrávania" -#, fuzzy msgid "Preferred tuner DVB-T" -msgstr "Preferovaný tuner" +msgstr "Preferovaný DVB-T tuner" -#, fuzzy msgid "Preferred tuner DVB-T for recordings" -msgstr "Preferovaný tuner pre nahrávanie" +msgstr "Preferovaný tuner DVB-T pre nahrávania" msgid "Preferred tuner for recordings" -msgstr "Preferovaný tuner pre nahrávanie" +msgstr "Preferovaný tuner pre nahrávania" msgid "Preparing... Please wait" -msgstr "Pripravujem... Cakajte..." +msgstr "Príprava... Čakajte prosím" msgid "Preschool" -msgstr "" +msgstr "Predškoláci" -#, fuzzy msgid "Press '0' to toggle PiP mode" -msgstr "Stlacením tlacidla \"0\" prepnete vnútorné a vonkajšie PiP." +msgstr "Stlačením '0' prepnete režim PiP" -msgid "" -"Press GREEN (Reboot) to switch images, YELLOW (Delete) to erase an image or " -"BLUE (Restore) to restore all deleted images." -msgstr "" +msgid "Press GREEN (Reboot) to switch images, YELLOW (Delete) to erase an image or BLUE (Restore) to restore all deleted images." +msgstr "Stlačením ZELENEJ (Reštartovanie) prepnete systémový obraz, ŽLTOU (Vymazať) vymažete systémový obraz alebo MODROU (Obnoviť) obnovíte všetky vymazané systémové obrazy." msgid "Press INFO on your remote control for additional information." -msgstr "Stlacením INFO na DO si zobrazíte dalšie informácie." +msgstr "Stlačením INFO na DO si zobrazíte ďalšie informácie." msgid "Press MENU on your remote control for additional options." -msgstr "Stlacením MENU na DO si zobrazíte dalšie možnosti." +msgstr "Stlačením MENU na DO si zobrazíte ďalšie možnosti." + +msgid "Press OK" +msgstr "Stlačte OK" msgid "Press OK on your remote control to continue." -msgstr "Ak chcete pokracovat, stlacte tlacidlo OK na dialkovom ovládaci." +msgstr "Stlačením OK na diaľkovom ovládači pokračujete." -#, fuzzy, python-format +#, python-format msgid "Press OK to activate the selected%s skin." -msgstr "Stlacením OK zapnete zvolený vzhlad." +msgstr "Stlačením OK aktivujete vybraný %s vzhľad." msgid "Press OK to activate the settings." -msgstr "Stlacením OK aktivujte nastavenia." +msgstr "Stlačením OK aktivujete nastavenia." msgid "Press OK to edit the settings." -msgstr "Stlacte OK pre zmenu nastavení." +msgstr "Stlačením OK upravíte nastavenia." #, python-format msgid "Press OK to get further details for %s" -msgstr "Pre dalšie informácie o %s stlacte tlacidlo OK." +msgstr "Pre ďalšie informácie o %s stlačte OK" -#, fuzzy, python-format +#, python-format msgid "Press OK to keep the currently selected%s skin." -msgstr "Stlacením OK zapnete zvolený vzhlad." +msgstr "Stlačením OK zachováte aktuálne vybraný %s vzhľad." -#, fuzzy msgid "Press OK to select a group of satellites to configure in one block." -msgstr "Stlacením OK zvolíte poskytovatela." +msgstr "Stlačením OK vyberiete skupinu satelitov, ktoré chcete konfigurovať v jednom bloku." msgid "Press OK to select a provider." -msgstr "Stlacením OK zvolíte poskytovatela." +msgstr "Stlačením OK vyberiete poskytovateľa." -#, fuzzy msgid "Press OK to select a service." -msgstr "Stlacením OK zvolíte poskytovatela." +msgstr "Stlačením OK vyberiete stanicu." -#, fuzzy msgid "Press OK to select satellites" -msgstr "Stlacením OK zvolíte poskytovatela." +msgstr "Stlačením OK vyberiete satelity" -#, fuzzy msgid "Press OK to select the save location of the log file." -msgstr "Stlacte OK pre prepnutie výberu." +msgstr "Stlačením OK vyberiete miesto uloženia súboru protokolu." -msgid "Press OK to select/deselect a CAId." -msgstr "Stlacením OK zvolte alebo zrušte CAId." +msgid "Press OK to select which days to perform an EPG download." +msgstr "Stlačením OK vyberiete, v ktorých dňoch sa má vykonať sťahovanie EPG." -#, fuzzy -msgid "Press OK to set the MAC address." -msgstr "Stlacením tlacidla OK nastavit MAC adresu." +msgid "Press OK to select/deselect a CAId." +msgstr "Stlačením OK vyberiete alebo zrušíte CAid." -#, fuzzy msgid "Press OK to show details" -msgstr "Pre vyhladávanie stlacte OK." +msgstr "Stlačením OK zobrazíte podrobnosti" -#, fuzzy msgid "Press OK to toggle the selection" -msgstr "Stlacte OK pre prepnutie výberu." +msgstr "Stlačením OK prepnete výber" msgid "Press OK to toggle the selection." -msgstr "Stlacte OK pre prepnutie výberu." +msgstr "Stlačením OK prepnete výber." -#, fuzzy msgid "Press OK, save and exit..." -msgstr "Stlacením OK zvolíte poskytovatela." +msgstr "Stlačením OK, uložíte a ukončíte..." msgid "" "Press up/down to scroll through the selected log\n" "\n" "Press left/right to see different log types" msgstr "" +"Stlačením nahor/nadol prechádzate vybraným protokolom\n" +"\n" +"Stlačením doľava/doprava zobrazíte rôzne typy protokolov" -#, fuzzy msgid "Press yellow to set this interface as the default interface." -msgstr "Stlacením žltého tlacidla nastavíte toto rozhranie ako predvolené." +msgstr "Stlačením žltého nastavíte toto rozhranie ako predvolené." msgid "Preview" -msgstr "Náhlad" +msgstr "Náhľad" msgid "Preview menu" -msgstr "Náhlad menu" +msgstr "Ponuka náhľadu" -#, fuzzy msgid "Previous" -msgstr "Prehrat predchádzajúce" +msgstr "Predchádzajúce" msgid "Primary DNS" msgstr "Primárny DNS" -#, fuzzy msgid "Primetime" -msgstr "Hlavný vysielací cas - hodina" +msgstr "Hlavný vysielací čas" msgid "Priority" msgstr "Priorita" @@ -10573,13 +10444,15 @@ msgid "" "Problem retrieving update list.\n" "If this issue persists please check/report on forum" msgstr "" +"Problém s načítaním zoznamu aktualizácií.\n" +"Ak tento problém pretrváva, skontrolujte ho/podajte správu na fóre" msgid "Process" msgstr "Procesy" #, python-format msgid "Processor temp:\t%s" -msgstr "" +msgstr "Teplota CPU:\t%s" msgid "Profile" msgstr "Profil" @@ -10591,66 +10464,58 @@ msgid "Progress" msgstr "Priebeh" msgid "Progress bar left" -msgstr "Indikátor priebehu vlavo" +msgstr "Indikátor priebehu vľavo" msgid "Progress bar right" msgstr "Indikátor priebehu vpravo" +msgid "Prominent" +msgstr "Významné" + msgid "Properties of current title" msgstr "Vlastnosti aktuálneho titulu" -#, fuzzy msgid "Protect configuration" -msgstr "Nastavenie tunera" +msgstr "Ochrana konfigurácie" -#, fuzzy msgid "Protect context menus" -msgstr "Chránit obrazovky" +msgstr "Ochrana kontextových ponúk" -#, fuzzy msgid "Protect main menu" -msgstr "Otvorit hlavné menu..." +msgstr "Ochrana hlavnej ponuky" msgid "Protect manufacturer reset screen" -msgstr "" +msgstr "Ochrana obrazovky resetovania výrobcu" -#, fuzzy msgid "Protect menu sort" -msgstr "Zatvorit zoznam filmov" +msgstr "Ochrana triedenia ponuky" -#, fuzzy msgid "Protect movie list" -msgstr "Zatvorit zoznam filmov" +msgstr "Ochrana zoznamu filmov" -#, fuzzy msgid "Protect on epg age" -msgstr "Chránit nastavenia" +msgstr "Ochrana veku z EPG" -#, fuzzy msgid "Protect plugin browser" -msgstr "Zobrazit prehliadac modulov..." +msgstr "Ochrana prehliadača doplnkov" msgid "Protect screens" -msgstr "Chránit obrazovky" +msgstr "Ochrana obrazovky" msgid "Protect services" -msgstr "Chránit stanice" +msgstr "Ochrana stanice" -#, fuzzy msgid "Protect software update screen" -msgstr "Nastavenie aktualizácie softvéru" +msgstr "Ochrana obrazovky aktualizácie softvéru" -#, fuzzy msgid "Protect standby menu" -msgstr "Chránit nastavenia" +msgstr "Ochrana pohotovostného režimu" -#, fuzzy msgid "Protect timer menu" -msgstr "Chránit obrazovky" +msgstr "Ochrana ponuky časovača" -#, fuzzy msgid "Protect vix menu" -msgstr "Náhlad menu" +msgstr "Ochrana ViX ponuky" msgid "Protek 4K UHD/HD61" msgstr "" @@ -10662,13 +10527,13 @@ msgid "Protocol:" msgstr "Protokol:" msgid "Provider" -msgstr "Poskytovatel" +msgstr "Poskytovateľ" msgid "Provider Name: " -msgstr "Názov poskytovatela:" +msgstr "Názov poskytovateľa: " msgid "Provider: " -msgstr "Poskytovatel: " +msgstr "Poskytovateľ: " msgid "Providers" msgstr "Poskytovatelia" @@ -10679,23 +10544,29 @@ msgstr "Poskytovatelia:" msgid "Providers: " msgstr "Poskytovatelia: " +msgid "Psychologie" +msgstr "Psychológia" + msgid "Puerto Rico" +msgstr "Portoriko" + +msgid "Puppentrick" msgstr "" -#, fuzzy +msgid "Puppets" +msgstr "Maňušky" + msgid "Purge deleted user bouquets" -msgstr "Nahrat nepriradené prehlady" +msgstr "Vyčistiť vymazané používateľské prehľady" -#, fuzzy msgid "Put A/V receiver in standby" -msgstr "Prepnút TV do pohotovostného režimu" +msgstr "Prepnúť A/V prijímač do pohotovostného režimu" -#, fuzzy msgid "Put A/V receiver in standby." -msgstr "Prepnút TV do pohotovostného režimu" +msgstr "Prepnutie A/V prijímača do pohotovostného režimu." msgid "Put TV in standby" -msgstr "Prepnút TV do pohotovostného režimu" +msgstr "Prepnúť TV do pohotovostného režimu" msgid "Python frontend for /tmp/mmi.socket" msgstr "Python frontend pre /tmp/mmi.socket" @@ -10705,11 +10576,10 @@ msgid "Python:\t%s\n" msgstr "" msgid "Qatar" -msgstr "" +msgstr "Katar" -#, fuzzy msgid "Quad core" -msgstr "Farba textu" +msgstr "Štvorjadro" msgid "Question" msgstr "Otázka" @@ -10718,238 +10588,275 @@ msgid "Quick" msgstr "Rýchlo" msgid "Quick Actions" -msgstr "" +msgstr "Rýchle akcie" msgid "Quick zap" msgstr "Rýchle prepínanie" msgid "Quit Movie Player with EXIT button" -msgstr "Povolit ukoncenie prehrávaca filmov cez EXIT" +msgstr "Ukončenie prehrávača filmov tlačidlom EXIT" + +msgid "Quiz" +msgstr "Kvíz" + +msgid "RADIO" +msgstr "" msgid "RAM" -msgstr "RAM" +msgstr "" msgid "RDS/RASS display" -msgstr "" +msgstr "RDS/RASS obrazovka" -#, fuzzy msgid "REC" -msgstr "FEC" +msgstr "" msgid "REC Symbol" msgstr "" msgid "REC Symbol in Standby" -msgstr "" +msgstr "REC symbol v Pohotovostnom režime" msgid "REC Symbol in use" -msgstr "" +msgstr "REC symbol v prevádzke" + +msgid "RECALL" +msgstr "ZAVOLAŤ" + +msgid "RECORD" +msgstr "NAHRÁVANIE" + +msgid "RED" +msgstr "ČERVENÁ" + +msgid "REWIND" +msgstr "PREVÍJANIE" -#, fuzzy msgid "RF output settings" -msgstr "Nastavenia titulkov" +msgstr "Nastavenia RF výstupu" msgid "RGB" -msgstr "RGB" +msgstr "" + +msgid "RIGHT" +msgstr "PRAVÁ" -#, fuzzy msgid "Radio" -msgstr "(Rádio)" +msgstr "Rádio" -#, fuzzy msgid "Radio Channel Selection" -msgstr "Volba stanice" +msgstr "Výber rozhlasového kanálu" + +msgid "Radsport" +msgstr "" + +msgid "Rallying" +msgstr "Zoskupenie" msgid "Random" msgstr "Náhodne" -#, fuzzy -msgid "Random password" -msgstr "Heslo" +msgid "Random Password" +msgstr "Náhodné heslo" + +msgid "Randomly generate a password" +msgstr "Náhodné generovanie hesla" #, python-format msgid "Rating defined by broadcaster - %d" -msgstr "Hodnotenie poskytnuté vysielatelom - %d" +msgstr "Hodnotenie podľa vysielateľa - %d" msgid "Rating undefined" msgstr "Hodnotenie nedefinované" -#, fuzzy msgid "Re-enter PIN" -msgstr "Znova zadajte nový PIN" +msgstr "Znova zadajte PIN" -#, fuzzy, python-format +#, python-format msgid "Read Userdata from %s.conf" -msgstr "Nacítat údaje zo súboru oscam.conf" +msgstr "Načítať užívateľské údaje z %s.conf" + +msgid "Read Userdata from oscam.conf" +msgstr "Načítať užívateľské údaje z oscam.conf" msgid "Reader" -msgstr "Cítacka" +msgstr "Čítačka" msgid "Reader Statistics" -msgstr "Štatistika cítacky" +msgstr "Štatistiky čítačky" -#, fuzzy msgid "Reader/User" -msgstr "Cítacka" +msgstr "Čítačka/Užívateľ" #, python-format msgid "Ready to install \"%s\" ?" -msgstr "Pripravený na inštaláciu \"%s\"?" +msgstr "Pripravený na inštaláciu \"%s\" ?" #, python-format msgid "Ready to remove \"%s\" ?" -msgstr "Chcete odstránit \"%s\" ?" +msgstr "Pripravený na odstránenie \"%s\" ?" + +msgid "Real Life" +msgstr "Skutočný život" + +msgid "Reality" +msgstr "Realita" + +msgid "Reality Show" +msgstr "Reality šou" msgid "Really close without saving settings?" -msgstr "Naozaj zatvorit bez uloženia nastavení?" +msgstr "Naozaj zatvoriť bez uloženia nastavení?" -#, fuzzy msgid "Really delete completed timers?" -msgstr "Naozaj zmazat dokoncené casovace?" +msgstr "Naozaj zmazať dokončené časovače?" msgid "Really exit the subservices quickzap?" -msgstr "Naozaj ukoncit rýchle prepínanie podkanálov?" +msgstr "Naozaj ukončiť rýchle prepínanie podkanálov?" -#, fuzzy msgid "Really reboot into Android Mode?" -msgstr "Naozaj mám teraz reštartovat?" +msgstr "Naozaj reštartovať do režimu Android?" -#, fuzzy msgid "Really reboot into Recovery Mode?" -msgstr "Naozaj mám teraz reštartovat?" +msgstr "Naozaj reštartovať do režimu obnovy?" msgid "Really reboot now?" -msgstr "Naozaj mám teraz reštartovat?" +msgstr "Naozaj teraz spustiť reštartovanie?" #, python-format msgid "Really reflash your %s %s and reboot now?" -msgstr "Naozaj preflashovat váš %s %s a reštartovat?" +msgstr "Naozaj reflašhovať %s %s a reštartovať teraz?" msgid "Really restart now?" -msgstr "Naozaj mám teraz reštartovat?" +msgstr "Naozaj teraz reštartovať?" msgid "Really shutdown now?" -msgstr "Naozaj teraz vypnút?" +msgstr "Naozaj teraz vypnúť?" -#, fuzzy, python-format +#, python-format msgid "Really store at index %2d for current position?" -msgstr "Prepnút strihovú znacku na tejto pozícii" +msgstr "Skutočne uložiť na index %2d pre aktuálnu pozíciu?" msgid "Really upgrade the frontprocessor and reboot now?" -msgstr "Naozaj aktualizovat frontprocessor a reštartovat príjímac?" +msgstr "Naozaj aktualizovať frontprocessor a spustiť teraz reštartovanie?" #, python-format msgid "Really upgrade your %s %s and reboot now?" -msgstr "Naozaj aktualizovat a reštartovat Váš %s %s?" +msgstr "Naozaj aktualizovať a spustiť teraz reštartovanie Vášho %s %s?" msgid "Reboot" -msgstr "Reštartovat" +msgstr "Reštartovanie" -#, fuzzy msgid "Reboot required" -msgstr "* = Nutný reštart" +msgstr "* = Nutné reštartovanie" -#, fuzzy msgid "Rec" -msgstr "Cervená" +msgstr "Nahrávanie" -#, fuzzy msgid "Rec button (long)" -msgstr "Tlacidlo OK (dlho)" +msgstr "Tlačidlo REC (dlho)" -#, fuzzy msgid "Rec button (short)" -msgstr "Tlacidlo OK (krátko)" +msgstr "Tlačidlo REC (krátko)" msgid "Recall channel, panic button & number zap" -msgstr "" +msgstr "Vyvolanie kanála, núdzového tlačidla a prepnutia čísla" + +msgid "Receiver or driver does not support FCC" +msgstr "Prijímač alebo ovládač nepodporuje FCC" msgid "Record" -msgstr "Nahrat" +msgstr "Nahrať" msgid "Record next" -msgstr "Nahrat nasledujúci" +msgstr "Nahrať nasledujúci" msgid "Record now" -msgstr "Nahrat teraz" +msgstr "Nahrať teraz" msgid "Record started! Stopping timeshift now ..." -msgstr "Nahrávanie zacalo! Zastavujem casový posun ..." +msgstr "Nahrávanie začalo! Zastavujem časový posun ..." #, python-format msgid "Record time limited due to conflicting timer %s" -msgstr "Doba nahrávania je obmedzená, lebo sa prekrývajú casovace %s" +msgstr "Doba nahrávania je obmedzená kvôli konfliktnému časovaču %s" msgid "Recording" msgstr "Nahrávanie" #, fuzzy +msgctxt "problem trans" msgid "Recording & Playback" -msgstr "Pokracujem v prehrávaní" +msgstr "Nahrávanie a Prehrávanie" + +msgid "Recording 4097, 5001 and 5002 streams not possible with external players, so convert recordings to servicetype 1." +msgstr "Nahrávanie prúdov 4097, 5001 a 5002 nie je možné pomocou externých prehrávačov, preto preveďte nahrávky na typ služby 1." + +msgid "" +"Recording IPTV with systemapp enabled, timer ended!\n" +"Please recheck it!" +msgstr "" +"Nahrávanie IPTV s systemapp povolené, časovač skončil!\n" +"Prosím, prekontrolujte to!" -#, fuzzy msgid "Recording and playback" -msgstr "Nastavenia nahrávania" +msgstr "Nahrávanie a prehrávanie" -#, fuzzy msgid "Recording and playback settings" -msgstr "Nastavenia nahrávania" +msgstr "Nastavenia nahrávania a prehrávania" -#, fuzzy, python-format +#, python-format msgid "Recording in progress: %s" -msgstr "Nahráva sa" +msgstr "Prebieha nahrávanie: %s" msgid "Recording type" msgstr "Typ nahrávky" msgid "Recording(s) are in progress or coming up in few seconds!" -msgstr "Nahrávanie prebieha alebo o pár sekúnd zacne!" +msgstr "Nahrávanie prebieha alebo o pár sekúnd začne!" -#, fuzzy msgid "Recording/media selection" -msgstr "Výber filmu" +msgstr "Výber nahrávania/média" msgid "Recordings" msgstr "Nahrávky" +msgid "Recordings - convert IPTV servicetypes to 1" +msgstr "Nahrávania - konvertovať typy služieb IPTV na 1" + msgid "Recordings always have priority" -msgstr "Nahrávanie má vždy prednost" +msgstr "Nahrávania majú vždy prednosť" -#, fuzzy, python-format +#, python-format msgid "Recordings in progress: %d" -msgstr "Nahráva sa" +msgstr "Nahrávania prebiehajú: %d" -#, fuzzy msgid "Recordings, Playback & Timeshift" -msgstr "Nastavenia nahrávania" +msgstr "Nahrávanie, Prehrávanie a Časový posun" -#, fuzzy msgid "Recovery Mode" -msgstr "[režim presúvania]" +msgstr "Režim obnovy" msgid "Red" -msgstr "Cervená" +msgstr "Červená" + +msgid "Red button" +msgstr "Červené tlačidlo" -#, fuzzy msgid "Red button (long)" -msgstr "Tlacidlo OK (dlho)" +msgstr "Červené tlačidlo (dlho)" -#, fuzzy msgid "Red button (short)" -msgstr "Tlacidlo OK (krátko)" - -msgid "Red button..." -msgstr "Cervené tlacidlo..." +msgstr "Červené tlačidlo (krátko)" -#, fuzzy msgid "Red colored" -msgstr "Farba textu" +msgstr "Červená farba" msgid "Red long" -msgstr "" +msgstr "Červené dlho" msgid "Reduce time scale" -msgstr "Zmenšit casovú mierku" +msgstr "Zmenšit časovú mierku" #, python-format msgid "" @@ -10957,326 +10864,322 @@ msgid "" "Please wait until your %s %s reboots\n" "This may take a few minutes" msgstr "" -"Práve prebieha reflash\n" -"Prosím, pockajte kým sa Váš %s%s reštartuje\n" -"Tento proces môže trvat niekolko minút" +"Práve prebieha reflašh\n" +"Prosím, čakajte kým sa Váš %s %s reštartuje\n" +"Tento proces môže trvať niekoľko minút" msgid "Reflash recommended!" -msgstr "" +msgstr "Reflašh odporúčaný!" msgid "Refresh rate" -msgstr "Obnovovacia frekvencia" +msgstr "Rýchlosť obnovovania" msgid "Refresh rate selection." -msgstr "Volba obnovovacieho kmitoctu." +msgstr "Výber rýchlosti obnovovania." msgid "Regard deep standby as standby" -msgstr "Považovat režim hlbokého spánku za pohotovostný režim" +msgstr "Považovať vyčkávací režim za pohotovostný režim" -#, fuzzy msgid "Region" -msgstr "náboženstvo" +msgstr "Oblasť" + +msgid "Regional" +msgstr "Regionálne" + +msgid "Regional News" +msgstr "Regionálne správy" + +msgid "Reisen" +msgstr "" + +msgid "Reiten" +msgstr "" msgid "Relative" msgstr "Relatívne" msgid "Release notes" -msgstr "" +msgstr "Poznámky k vydaniu" msgid "Relevant PIDs routing" -msgstr "" +msgstr "Príslušné smerovanie PIDov" + +msgid "Religion" +msgstr "Náboženstvo" msgid "Reload" -msgstr "Znova natiahnut" +msgstr "Znovu načítať" -#, fuzzy msgid "Reload blacklists" -msgstr "Obnovit black/white listiny" +msgstr "Opätovné načítanie čiernych zoznamov" -#, fuzzy msgid "Reload every (in hours)" -msgstr "Uložit každých (v hodinách)" +msgstr "Načítavať každých (v hodinách)" -#, fuzzy msgid "Reload skin" -msgstr "Znova natiahnut" +msgstr "Opätovné načítanie vzhľadu" msgid "Reloading EPG Cache..." -msgstr "Znovunacítavanie vyrovnávacej pamäte EPG..." +msgstr "Opätovné načítanie vyrovnávacej pamäte EPG..." msgid "Reloading bouquets and services..." -msgstr "Znova natahujem prehlady a služby..." +msgstr "Opätovné načítanie prehľadov a staníc..." msgid "Remaining" -msgstr "Zostávajúci cas" +msgstr "Zostávajúci" msgid "Remaining & Elapsed" -msgstr "Zostávajúci a Uplynulý" +msgstr "Zostávajúci a uplynulý" msgid "Remember service PIN" -msgstr "Zapamätat PIN stanice" +msgstr "Zapamätať PIN stanice" msgid "Reminder, you have chosen to save timeshift file." -msgstr "" +msgstr "Pripomenúť, že ste sa rozhodli uložiť súbor s časovým posunom." msgid "Remote box" msgstr "Vzdialený box" +msgid "Remote control source*" +msgstr "Zdroj diaľkového ovládania*" + msgid "Remote control type" -msgstr "Typ dialkového ovládaca" +msgstr "Typ diaľkového ovládania" msgid "Remove" -msgstr "Odstránit" +msgstr "Odstrániť" msgid "Remove Confirmation" -msgstr "Potvrdit odstránenie" +msgstr "Odstrániť potvrdenie" + +msgid "Remove EPG event name prefixes" +msgstr "Odstrániť predpony názvov udalostí EPG" #, fuzzy msgid "Remove Plugins" -msgstr "Odstránit moduly" +msgstr "Odstrániť doplnky" msgid "Remove Service" -msgstr "Odstránit službu" +msgstr "Odstrániť stanicu" msgid "Remove a mark" -msgstr "Odstránit znacku" +msgstr "Odstrániť značku" msgid "Remove a nameserver entry" -msgstr "Odstránit DNS" +msgstr "Odstrániť položku DNS" -#, fuzzy msgid "Remove all alternatives" -msgstr "odstránit všetky alternatívy" +msgstr "Odstrániť všetky alternatívy" msgid "Remove all bouquet/tuning data" -msgstr "" +msgstr "Odstrániť všetky údaje prehľadu/ladenia" -#, fuzzy msgid "Remove all keymap data" -msgstr "Odstránit znacku" +msgstr "Odstrániť všetky údaje mapy klávesov" -#, fuzzy msgid "Remove all network data" -msgstr "odstránit všetky znacky pre novonájdené" +msgstr "Odstrániť všetky údaje siete" -#, fuzzy msgid "Remove all new found flags" -msgstr "odstránit všetky znacky pre novonájdené" +msgstr "Odstrániť všetky príznaky novo nájdené" -#, fuzzy msgid "Remove all other data" -msgstr "odstránit všetky alternatívy" +msgstr "Odstrániť všetky ostatné údaje" -#, fuzzy msgid "Remove all plugin setting data" -msgstr "Odstránit moduly" +msgstr "Odstrániť všetky údaje nastavení doplnkov" -#, fuzzy msgid "Remove all resume point data" -msgstr "odstránit všetky znacky pre novonájdené" +msgstr "Odstrániť všetky údaje bodu obnovenia" -#, fuzzy msgid "Remove all selection marks" -msgstr "odstránit všetky alternatívy" +msgstr "Odstrániť všetky značky výberu" -#, fuzzy msgid "Remove all settings data" -msgstr "odstránit všetky alternatívy" +msgstr "Odstrániť všetky údaje nastavení" -#, fuzzy msgid "Remove all skin data" -msgstr "odstránit všetky znacky pre novonájdené" +msgstr "Odstrániť všetky údaje vzhľadu" -#, fuzzy msgid "Remove all timer data" -msgstr "odstránit všetky alternatívy" +msgstr "Odstrániť všetky údaje časovača" msgid "Remove bookmark" -msgstr "Odstránit záložku" +msgstr "Odstrániť záložku" -#, fuzzy msgid "Remove bouquet from parental protection" -msgstr "odstránit z rodicovskej zámky" +msgstr "Odstrániť prehľad z rodičovskej ochrany" -#, fuzzy msgid "Remove cable services" -msgstr "Odstránit službu" +msgstr "Odstrániť káblové stanice" -#, fuzzy msgid "Remove current channel from list" -msgstr "Odstránit aktuálne zvolený titul" +msgstr "Odstrániť aktuálny kanál zo zoznamu" msgid "Remove currently selected title" -msgstr "Odstránit aktuálne zvolený titul" +msgstr "Odstrániť aktuálne vybraný titul" -#, fuzzy msgid "Remove entry" -msgstr "odstránit položku" +msgstr "Odstrániť položku" -#, fuzzy msgid "Remove finished timer logs after (days)" -msgstr "Odstránit dokoncené casovace po (dni)" +msgstr "Odstrániť dokončené protokoly časovača po (dni)" -#, fuzzy msgid "Remove finished timers after (days)" -msgstr "Odstránit dokoncené casovace po (dni)" +msgstr "Odstrániť dokončené časovače po (dni)" msgid "Remove finished." -msgstr "Odstránenie ukoncené." +msgstr "Odstránenie dokončené." -#, fuzzy msgid "Remove from parental protection" -msgstr "odstránit z rodicovskej zámky" +msgstr "Odstrániť z rodičovskej ochrany" msgid "Remove items from trash can after (days)" -msgstr "Odstránenie položiek z koša po (dni)" +msgstr "Odstrániť položky z odpadkového koša po (dni)" -#, fuzzy msgid "Remove new found flag" -msgstr "odstránit znacku novonájdenej stanice" +msgstr "Odstrániť značku novo nájdenej stanice" msgid "Remove plugins" -msgstr "Odstránit moduly" +msgstr "Odstrániť doplnky" -#, fuzzy msgid "Remove selected satellite" -msgstr "odstránit zvolený satelit" +msgstr "Odstrániť vybraný satelit" -#, fuzzy msgid "Remove terrestrial services" -msgstr "Poskytovatel pozemných služieb" +msgstr "Odstrániť pozemné stanice" + +msgid "Remove text for the hearing impaired from external subtitles (instrumental music or environmental sounds, e.g., when a doorbell rings or a gun shot is heard)." +msgstr "Odstrániť text pre osoby so sluchovým postihnutím z externých titulkov (inštrumentálna hudba alebo zvuky prostredia, napr. keď zazvoní zvonček alebo zaznie výstrel)." msgid "Remove the services on scanned transponders before re-adding services?" -msgstr "" +msgstr "Odstrániť stanice na naskenovaných transpondéroch pred opätovným pridaním staníc?" msgid "Remove timer" -msgstr "Odobrat casovac" +msgstr "Odstrániť časovač" msgid "Remove title" -msgstr "Odstránit titul" +msgstr "Odstrániť titul" msgid "Removing" -msgstr "Odstranujem" +msgstr "Odstraňujem" msgid "Removing Service" -msgstr "Odstranujem službu" +msgstr "Odstránenie stanice" #, python-format msgid "Removing directory %s failed. (Maybe not empty.)" -msgstr "Vymazanie adresára %s zlyhalo. (Možno nie je prázdny.)" +msgstr "Odstránenie adresára %s zlyhalo. (Možno nie je prázdny.)" -#, fuzzy msgid "Removing partition table." -msgstr "Odstranujem tabulku partícií" +msgstr "Odstránenie tabuľky partícií." -#, fuzzy msgid "Removing service" -msgstr "Odstranujem službu" +msgstr "Odstraňuje stanicu" msgid "Rename" -msgstr "Premenovat" +msgstr "Premenovať" -#, fuzzy msgid "Rename channel" -msgstr "Premenovanie zlyhalo!" +msgstr "Premenovať kanál" -#, fuzzy msgid "Rename entry" -msgstr "premenovat položku" +msgstr "Premenovať položku" msgid "Rename failed!" msgstr "Premenovanie zlyhalo!" msgid "Rename name and description for new events" -msgstr "" +msgstr "Premenovať názov a popis nových udalostí" msgid "Rename to:" -msgstr "Premenovat na:" +msgstr "Premenovať na:" #, python-format msgid "Renamed %s!" msgstr "Premenované %s!" +msgid "Renovation" +msgstr "Renovácia" + msgid "Repeat" -msgstr "Opakovat" +msgstr "Opakovať" msgid "Repeat Display Message" -msgstr "Opakovat správu na displeji" +msgstr "Opakovať správu na displeji" #, fuzzy +msgctxt "problem trans" msgid "Repeat how often" -msgstr "Spustit ako casto?" +msgstr "Opakovať, ako často" #, fuzzy +msgctxt "problem trans" msgid "Repeat leave standby messages" -msgstr "Opakovat správu na displeji" +msgstr "Opakované zanechávanie pohotovostných správ" msgid "Repeat type" msgstr "Typ opakovania" msgid "Repeating event currently recording... What do you want to do?" -msgstr "Práve sa nahráva opakovaná udalost... Co chcete urobit?" +msgstr "Práve sa nahráva opakovaná udalosť... Co chcete urobiť?" -#, fuzzy msgid "Repeating the event currently recording... What do you want to do?" -msgstr "Práve sa nahráva opakovaná udalost... Co chcete urobit?" +msgstr "Práve sa opakuje nahrávaná udalosť... Co chcete urobiť?" msgid "Repeats" msgstr "Opakovania" -msgid "" -"Replace `- ` in dialogs with colored text per speaker (like teletext " -"subtitles for the hearing impaired)" -msgstr "" +msgid "Replace `- ` in dialogs with colored text per speaker (like teletext subtitles for the hearing impaired)" +msgstr "Nahradiť `- ` v dialógoch farebným textom pre každého hovoriaceho (ako v teletextových titulkoch pre sluchovo postihnutých)" + +msgid "Reportage" +msgstr "Reportáž" -#, fuzzy msgid "Request for physical address report" -msgstr "Výpis fyzickej adresy TV" +msgstr "Žiadosť o nahlásenie fyzickej adresy" msgid "Request for vendor report" -msgstr "" +msgstr "Žiadosť o nahlásenie dodávateľa" msgid "Require authentication for http streams" -msgstr "Požadovat autentifikáciu pre http sreamy" +msgstr "Vyžadovať overenie pre http toky (streamy)" msgid "Required medium type:" msgstr "Požadovaný druh média:" -#, fuzzy msgid "Rereading partition table." -msgstr "Znovunacítanie tabulky partícií" +msgstr "Opakované čítanie tabuľky partícií." msgid "Reserved" msgstr "Rezervované" msgid "Reserved for future use" -msgstr "" +msgstr "Vyhradené na budúce použitie" msgid "Reset" -msgstr "Resetovat" +msgstr "Obnoviť" msgid "Reset and renumerate title names" -msgstr "Resetovat a precíslovat názvy titulov" +msgstr "Obnoviť a prečíslovať názvy titulov" msgid "Reset order (All)" -msgstr "" +msgstr "Obnoviť poradie (všetko)" -#, fuzzy msgid "Reset persistent PIN code" -msgstr "Prosím, zadajte nový PIN kód" +msgstr "Obnoviť trvalý PIN kód" msgid "Reset playback position" -msgstr "Resetovat pozíciu prehrávania" +msgstr "Obnoviť pozíciu prehrávania" msgid "Reset video enhancement settings to system defaults?" -msgstr "Vrátit rozšírené nastavenia obrazu na systémové predvolené hodnoty?" +msgstr "Obnoviť rozšírené nastavenia obrazu na systémom predvolené hodnoty?" msgid "Reset video enhancement settings to your last configuration?" -msgstr "Vrátit rozšírené nastavenia obrazu na poslednú konfiguráciu?" +msgstr "Obnoviť rozšírené nastavenia obrazu na poslednú Vašu konfiguráciu?" -#, fuzzy msgid "Reshare" -msgstr "Reshare:" +msgstr "Reshare" msgid "Reshare:" msgstr "Reshare:" @@ -11285,71 +11188,68 @@ msgid "Resolution" msgstr "Rozlíšenie" msgid "Restart" -msgstr "Reštartovat" +msgstr "Reštartovať" msgid "Restart GUI" -msgstr "Reštartovat užívatelské rozhranie" +msgstr "Reštartovať užívateľské rozhranie" msgid "Restart GUI now?" -msgstr "Reštartovat užívatelské rozhranie teraz?" +msgstr "Reštartovať užívateľské rozhranie teraz?" -#, fuzzy msgid "Restart last movie" -msgstr "Zopakovat test" +msgstr "Reštartovať posledný film" msgid "Restart network" -msgstr "Reštartovat siet" +msgstr "Reštartovať sieť" -#, fuzzy msgid "Restart softcam" -msgstr "Zopakovat test" +msgstr "Reštartovať softcamd" msgid "Restart test" -msgstr "Zopakovat test" +msgstr "Reštartovať test" msgid "Restart your network connection and interfaces.\n" -msgstr "Reštartujte sietové pripojenie a rozhrania.\n" +msgstr "Reštartovať Vaše sieťové pripojenie a rozhrania.\n" msgid "Restore" -msgstr "Obnovit" +msgstr "Obnoviť" msgid "Restore backups" -msgstr "Obnovit zálohy" +msgstr "Obnoviť zálohy" #, fuzzy msgid "Restore default sort" -msgstr "Predvolené" +msgstr "Obnoviť predvolené triedenie" #, fuzzy msgid "Restore defaults" -msgstr "Predvolené" +msgstr "Obnoviť predvolené" -#, fuzzy msgid "Restore deleted user bouquets" -msgstr "Nahrat nepriradené prehlady" +msgstr "Obnoviť odstránené užívateľské prehľady" msgid "Restore system settings" -msgstr "Obnovit systémové nastavenia" +msgstr "Obnoviť systémové nastavenia" msgid "Restoring..." msgstr "Obnovujem..." msgid "Restricted 18+" -msgstr "" +msgstr "Vyhradené 18+" msgid "Resume from last position" -msgstr "Pokracovat od poslednej pozície" +msgstr "Pokračovať z poslednej pozície" #, python-format msgid "Resume position at %s" -msgstr "Pokracovat v polohe %s" +msgstr "Obnoviť pozíciu na %s" msgid "Resuming playback" -msgstr "Pokracujem v prehrávaní" +msgstr "Obnova prehrávania" #, fuzzy msgid "Retrieving image slots - Please wait..." -msgstr "Hladám dostupné aktualizácie. Cakajte..." +msgstr "Získavanie slotov pre systémové obrazy - Čakajte prosím..." msgid "Return to movie list" msgstr "Návrat do zoznamu filmov" @@ -11358,77 +11258,103 @@ msgid "Return to previous service" msgstr "Návrat na predchádzajúcu stanicu" msgid "Reunion" -msgstr "" +msgstr "Zjazd" msgid "Reverse bouquet buttons" -msgstr "Prehodit tlacidlá prehladov" +msgstr "Prehodiť tlačidlá prehľadov" -#, fuzzy msgid "Reverse list" -msgstr "Otvorit zoznam služieb" +msgstr "Obrátený zoznam" + +msgid "Revue" +msgstr "" -#, fuzzy msgid "Rewind" -msgstr "Rýchlosti prevíjania vzad" +msgstr "Prevíjanie" msgid "Rewind speeds" -msgstr "Rýchlosti prevíjania vzad" +msgstr "Rýchlosti prevíjania" -#, fuzzy msgid "Rewrap subtitles" -msgstr "Zalomit teletextové titulky" +msgstr "Zalomiť titulky" msgid "Right" -msgstr "Doprava" +msgstr "Vpravo" msgid "Right from servicename" msgstr "Vpravo od názvu stanice" -#, fuzzy msgid "Right long" -msgstr "Doprava" +msgstr "Vpravo dlho" + +msgid "Rock" +msgstr "" msgid "Roll-off" -msgstr "Roll-off" +msgstr "" + +msgid "Romance" +msgstr "Romantika" -#, fuzzy msgid "Romania" -msgstr "Rumunský" +msgstr "Rumunsko" msgid "Romanian" -msgstr "Rumunský" +msgstr "Rumunsky" + +msgid "Romantik" +msgstr "" msgid "Root" msgstr "" msgid "Root directory" -msgstr "Korenový adresár" +msgstr "Koreňový adresár" msgid "Rotor step position:" -msgstr "Pozícia kroku rotora:" +msgstr "Pozícia kroku motora:" msgid "Rotor turning speed" -msgstr "Rýchlost otácania motora" +msgstr "Rýchlosť otáčania motora" -#, fuzzy msgid "Rotor: " -msgstr "Autor: " +msgstr "Motor: " -#, fuzzy msgid "Routing request" -msgstr "Požiadavka zdroja" +msgstr "Požiadavka smerovania" + +msgid "Rowing" +msgstr "Veslovanie" + +msgid "Rugby" +msgstr "Ragby" + +msgid "Rugby League" +msgstr "Ragbyová liga" + +msgid "Rugby League - Domestic" +msgstr "Ragbyová liga - Domáca" + +msgid "Rugby League - International" +msgstr "Ragbyová liga - Medzinárodná" + +msgid "Rugby Union - Domestic" +msgstr "Ragbyová únia - Domáca" + +msgid "Rugby Union - International" +msgstr "Ragbyová únia - Medzinárodná" msgid "Run how often ?" -msgstr "Spustit ako casto?" +msgstr "Ako často spúšťať ?" msgid "Running" msgstr "Prebieha" msgid "Russian" -msgstr "Ruština" +msgstr "Rusky" msgid "Russian Federation" -msgstr "" +msgstr "Ruská Federácia" msgid "Rwanda" msgstr "" @@ -11437,86 +11363,118 @@ msgid "S" msgstr "" msgid "S-Video" -msgstr "S-Video" +msgstr "" -#, fuzzy msgid "SABnzbd" -msgstr "Nastavenie SABnzbd" +msgstr "" msgid "SABnzbd Setup" msgstr "Nastavenie SABnzbd" -msgid "SCPC optimized search range" +msgid "SAT" msgstr "" -#, fuzzy +msgid "SCPC optimized search range" +msgstr "Rozsah vyhľadávania optimalizovaný pre SCPC" + msgid "SCR (Unicable/JESS)" -msgstr "Unicable" +msgstr "" msgid "SCR JESS" msgstr "" -#, fuzzy msgid "SCR Unicable" -msgstr "Unicable" +msgstr "" + +msgid "SCREEN" +msgstr "OBRAZOVKA" + +msgid "SDCARD" +msgstr "SD KARTA" + +msgid "SETUP" +msgstr "NASTAVENIE" + +msgid "SHIFT: " +msgstr "ZMENA: " msgid "SINGLE LAYER DVD" msgstr "JEDNOVRSTVOVÉ DVD" +msgid "SLEEP" +msgstr "" + +msgid "SLOW" +msgstr "POMALY" + msgid "SNR:" msgstr "" msgid "SPDIF" -msgstr "SPDIF" +msgstr "" msgid "SRT file" -msgstr "" +msgstr "SRT súbor" msgid "SSA file" -msgstr "" +msgstr "SSA súbor" msgid "SSID:" -msgstr "SSID:" - -msgid "Saint Barthelemy" msgstr "" -msgid "Saint Helena, Ascension and Tristan da Cunha" -msgstr "" +msgid "STOP" +msgstr "ZASTAVIŤ" -msgid "Saint Kitts and Nevis" +msgid "SUBTITLE" +msgstr "TITULKY" + +msgid "SUSPEND" +msgstr "POZASTAVENIE" + +msgid "Saga" msgstr "" +msgid "Sailing" +msgstr "Plachtenie" + +msgid "Saint Barthelemy" +msgstr "Svätý Bartolomej" + +msgid "Saint Helena, Ascension and Tristan da Cunha" +msgstr "Svätá Helena, Ascension a Tristan da Cunha" + +msgid "Saint Kitts and Nevis" +msgstr "Svätý Krištof a Nevis" + msgid "Saint Lucia" -msgstr "" +msgstr "Svätá Lucia" msgid "Saint Martin (French part)" -msgstr "" +msgstr "Svätý Martin (francúzska časť)" msgid "Saint Pierre and Miquelon" -msgstr "" +msgstr "Svätý Pierre a Miquelon" msgid "Saint Vincent and the Grenadines" -msgstr "" +msgstr "Svätý Vincent a Grenadíny" -#, fuzzy msgid "Samba" -msgstr "Log súbor samby" +msgstr "" msgid "Samba Setup" msgstr "Nastavenie samby" msgid "Same resolution as skin" -msgstr "Rovnaké rozlíšenie ako vzhlad" +msgstr "Rovnaké rozlíšenie ako vzhľad" msgid "Samoa" msgstr "" msgid "San Marino" -msgstr "" +msgstr "San Maríno" msgid "Sao Tome and Principe" -msgstr "" +msgstr "Svätý Tomáš a Princov ostrov" msgid "Sat" msgstr "So" @@ -11524,297 +11482,315 @@ msgstr "So" msgid "Satellite" msgstr "Satelit" -#, fuzzy msgid "Satellite dish settings" -msgstr "Nastavenie paraboly" +msgstr "Nastavenia satelitnej paraboly" msgid "Satellite equipment" -msgstr "Satelitné zariadenie" +msgstr "Satelitné vybavenie" msgid "Satellite equipment setup" -msgstr "Nastavenie satelitného zariadenia" +msgstr "Nastavenie satelitného vybavenia" msgid "Satellite longitude:" -msgstr "Zemepísna dlžka setelitu:" +msgstr "Zemepisná dĺžka satelitu:" msgid "Satellites" msgstr "Satelity" +msgid "Satire" +msgstr "Satira" + msgid "Sats" msgstr "Satelity" msgid "Saturation" -msgstr "Sýtost" +msgstr "Sýtosť" msgid "Saturday" msgstr "Sobota" msgid "Saudi Arabia" -msgstr "" +msgstr "Saudská Arábia" msgid "Save" -msgstr "Uložit" +msgstr "Uložiť" msgid "Save / Enter text and exit" -msgstr "" +msgstr "Uloženie / Zadanie textu a ukončenie" -#, fuzzy msgid "Save EPG Cache" -msgstr "Ukladanie vyrovnávacej pamäte EPG ..." +msgstr "Uložiť vyrovnávaciu pamäť EPG" msgid "Save all changed settings and exit" -msgstr "" +msgstr "Uložiť všetky zmenené nastavenia a ukončiť" -#, fuzzy msgid "Save and activate the currently selected skin" -msgstr "Stlacením OK zapnete zvolený vzhlad." +msgstr "Uloženie a aktivácia aktuálne vybraného vzhľadu" -#, fuzzy msgid "Save and exit" -msgstr "Uložit a zastavit" +msgstr "Uložiť a ukončiť" msgid "Save and record" -msgstr "Uložit a nahrávat" +msgstr "Uložiť a nahrať" msgid "Save and stop" -msgstr "Uložit a zastavit" +msgstr "Uložiť a zastaviť" -#, fuzzy msgid "Save changes" -msgstr "Zobrazit zmeny" +msgstr "Uložiť zmeny" msgid "Save every (in hours)" -msgstr "Uložit každých (v hodinách)" +msgstr "Uložiť každých (v hodinách)" msgid "Save playlist" -msgstr "Uložit zoznam prehrávok" +msgstr "Uložiť zoznam prehrávok" -#, fuzzy msgid "Save timer" -msgstr "Casová základna" +msgstr "Uložiť časovač" -#, fuzzy msgid "Save timeshift and zap" -msgstr "Spustit casový posun" +msgstr "Uložiť časový posun a prepnúť" msgid "Save timeshift as movie and continue recording" -msgstr "Uložit casový posun ako film a pokracovat v nahrávaní" +msgstr "Uložiť časový posun ako film a pokračovať v nahrávaní" msgid "Save timeshift as movie and stop recording" -msgstr "Uložit casový posun ako film a zastavit nahrávanie" +msgstr "Uložiť časový posun ako film a zastaviť nahrávanie" msgid "Saving EPG Cache..." -msgstr "Ukladanie vyrovnávacej pamäte EPG ..." +msgstr "Ukladanie vyrovnávacej pamäte EPG..." msgid "Saving Timeshift files" -msgstr "Ukladám súbory casového posuvu" +msgstr "Ukladanie súborov časového posunu" msgid "Saving timeshift as movie now. This might take a while!" -msgstr "Ukladám casový posun ako film. To môže chvílu trvat!" +msgstr "Ukladanie časového posunu ako film. To môže chvíľu trvať!" msgid "Scaler sharpness" -msgstr "Ostrost škálovania" +msgstr "Ostrosť škálovania" msgid "Scaler vertical dejagging" -msgstr "" +msgstr "Vertikálne odclonenie škálovača" msgid "Scaling mode" msgstr "Škálovací režim" msgid "Scan" -msgstr "Vyhladat" +msgstr "Vyhľadať" msgid "Scan " -msgstr "Vyhladat" +msgstr "Prehľadať " #. TRANSLATORS: option name, indicating which type of (DVB-C) modulation should be scanned. The modulation type is printed in '%s'. E.g.: 'Scan QAM16' +#. TRANSLATORS: možnosti názvu, ktorý udáva, ktorý typ modulácie (DVB-C) sa má prehľadať. Typ modulácie sa vypíše v "%s". Napr.: "Prehľadať QAM16". #, python-format msgid "Scan %s" -msgstr "Vyhladat %s" +msgstr "Prehľadať %s" #. TRANSLATORS: option name, indicating which type of (DVB-C) band should be scanned. The name of the band is printed in '%s'. E.g.: 'Scan EU MID band' +#. TRANSLATORS: možnosti názvu, ktorý udáva, ktorý typ pásma (DVB-C) sa má prehľadať. Názov pásma sa vypíše v tvare "%s". Napr.: "Prehľadať EU MID pásmo". #, python-format msgid "Scan %s band" -msgstr "Prehladat %s pásmo" +msgstr "Prehľadať %s pásmo" msgid "Scan additional SR" -msgstr "Prehladat dalšie SR" +msgstr "Prehľadať ďalšie SR" msgid "Scan files..." -msgstr "Vyhladat súbory..." +msgstr "Prehľadať súbory..." -#, fuzzy msgid "Scan options" -msgstr "Rozšírené volby" +msgstr "Možnosti vyhľadávania" -msgid "" -"Scan using transponders on NIT table? 'No' will use transponders in xml file." -msgstr "" +msgid "Scan using transponders on NIT table? 'No' will use transponders in xml file." +msgstr "Vyhľadať pomocou transpondérov v tabuľke NIT?\n'Nie' použije transpondéry zo súboru xml." msgid "Scan wireless networks" -msgstr "Vyhladat bezdrôtové siete" +msgstr "Vyhľadať bezdrôtové siete" -msgid "" -"Scan your network for wireless access points and connect to them using your " -"selected wireless device.\n" -msgstr "" -"Vyhladat v sieti bezdrôtové prístupové body a pripojit ich zvoleným " -"bezdrôtovýmn zariadením\n" +msgid "Scan your network for wireless access points and connect to them using your selected wireless device.\n" +msgstr "Vyhľadať v sieti bezdrôtové prístupové body a pripojiť ich zvoleným bezdrôtovýmn zariadením\n" #, python-format msgid "Scanning %s..." -msgstr "Prehladávanie %s..." +msgstr "Prehľadávanie %s..." #. TRANSLATORS: The stb is performing a channel scan, progress percentage is printed in '%d' (and '%%' will show a single '%' symbol) +#. PREKLADATELIA: stb vykonáva vyhľadávanie kanála, percentuálny postup sa vypíše v '%d' (a '%%' zobrazí samotný symbol '%') #, python-format msgid "Scanning - %d%% completed" msgid_plural "Scanning - %d%% completed" -msgstr[0] "Prehladávanie - %d%% dokoncené" -msgstr[1] "Prehladávanie - %d%% dokoncené" -msgstr[2] "Prehladávanie - %d%% dokoncených" +msgstr[0] "Prehľadávanie - %d%% dokončené" +msgstr[1] "Prehľadávanie - %d%% dokončené" +msgstr[2] "Prehľadávanie - %d%% dokončených" #, python-format msgid "Scanning completed, %d channel found" msgid_plural "Scanning completed, %d channels found" -msgstr[0] "Prehladávanie dokoncené, nájdená %d stanica" -msgstr[1] "Prehladávanie dokoncené, nájdené %d stanice" -msgstr[2] "Prehladávanie dokoncené, nájdených %d staníc" +msgstr[0] "Prehľadávanie dokončené, nájdená %d stanica" +msgstr[1] "Prehľadávanie dokončené, nájdené %d stanice" +msgstr[2] "Prehľadávanie dokončené, nájdených %d staníc" msgid "Scanning failed!" -msgstr "Prehladávanie zlyhalo!" +msgstr "Vyhľadávanie zlyhalo!" msgid "Scanning..." -msgstr "Prehladávanie..." +msgstr "Prehľadávanie..." -msgid "" -"Scans default lamedbs sorted by satellite with a connected dish positioner" -msgstr "" -"Prehladat predvolené lamedb zotriedené podla satelitov a pripojeného motora" +msgid "Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "Prehľadať predvolené lamedb zotriedené podľa satelitov a pripojeného motora" msgid "Schedule EPG and channel list import" +msgstr "Naplánovať import EPG a zoznamu kanálov" + +#, fuzzy +msgid "Schedule days of the week" +msgstr "Plán dní v týždni" + +#, fuzzy +msgid "Schedule return to deep standby" +msgstr "Naplánovať návrat do vyčkávacieho režimu" + +#, fuzzy +msgid "Schedule scan" +msgstr "Plán vyhľadávania" + +msgid "Schedule time of day" +msgstr "Plánovaný čas dňa" + +#, fuzzy +msgid "Schedule wake from deep standby" +msgstr "Naplánovať prebudenie z vyčkávacieho režimu" + +msgid "Sci-Fi" msgstr "" +msgid "Science" +msgstr "Veda" + +msgid "Science & Tech" +msgstr "Veda a Technika" + +#, fuzzy +msgid "Science Fiction" +msgstr "Vedecká fantastika" + +msgid "Science-Fiction" +msgstr "Vedecko-fantastické" + #, fuzzy +msgctxt "problem trans" msgid "Screen proportions" -msgstr "Rozšírené volby" +msgstr "Proporcie obrazovky" msgid "Scrolling Speed" -msgstr "Rýchlost rolovania" +msgstr "Rýchlosť rolovania" msgid "Scrolling Speed (software render)" -msgstr "Rýchlost rolovania (softvér render)" +msgstr "Rýchlosť rolovania (softvérový render)" msgid "Scrolling delay (software render)" msgstr "Oneskorenie rolovania (softvérový render)" msgid "Search" -msgstr "Hladat" +msgstr "Hľadať" #, fuzzy msgid "Search IMDb for information about the current event." -msgstr "Hladat v IMDb informácie o aktuálnej relácii." +msgstr "Hľadať v IMDb informácie o aktuálnej relácii." msgid "Search by first letter of name" -msgstr "" +msgstr "Hľadanie podľa prvého písmena mena" msgid "Search by name (SMS-style entry on remote)" -msgstr "" +msgstr "Hľadávanie podľa mena (zadávanie v štýle SMS na diaľkovom ovládači)" msgid "Search channel list, SMS style 2ABC" -msgstr "" +msgstr "Hľadávanie v zozname kanálov, štýl SMS 2ABC" msgid "Search channel list, SMS style ABC2" -msgstr "" +msgstr "Hľadávanie v zozname kanálov, štýl SMS ABC2" msgid "Search east" -msgstr "Hladat východne" +msgstr "Hľadať východne" msgid "Search for similar events" -msgstr "Hladat podobné programy:" +msgstr "Hľadať podobné udalosti" -#, fuzzy msgid "Search the epg for the current event." -msgstr "Vyhladávanie epg pre aktuálnu reláciu." +msgstr "Hľadanie epg pre aktuálnu reláciu." msgid "Search west" -msgstr "Hladat západne" +msgstr "Hľadať západne" -#, fuzzy msgid "Search/WEB" -msgstr "Hladat" +msgstr "Hľadať/WEB" msgid "Searching" -msgstr "Vyhladávanie" +msgstr "Vyhľadávanie" msgid "Searching east ..." -msgstr "Vyhladávanie východne ..." +msgstr "Vyhľadávanie východne ..." msgid "Searching for available updates. Please wait..." -msgstr "Hladám dostupné aktualizácie. Cakajte..." +msgstr "Vyhľadávanie dostupných aktualizácií. Prosím čakajte..." msgid "Searching for new installed or removed packages. Please wait..." -msgstr "Hladám novoinštalované alebo odstránené balícky. Cakajte..." +msgstr "Vyhľadávanie novo inštalovaných alebo odstránených balíčkov. Prosím čakajte..." msgid "Searching west ..." -msgstr "Vyhladávanie západne ..." +msgstr "Vyhľadávanie západne ..." -#, fuzzy msgid "Second cable of motorized LNB" -msgstr "druhý kábel motorizovaného LNB" +msgstr "Druhý kábel motorizovaného LNB" -#, fuzzy msgid "Second infobar" -msgstr "Zobrazit druhý infopanel" +msgstr "Druhá informačná lišta" -#, fuzzy msgid "Second infobar style*" -msgstr "Zobrazit druhý infopanel" +msgstr "Štýl druhej informačnej lišty*" msgid "Secondary DNS" msgstr "Sekundárny DNS" msgid "Seek" -msgstr "Hladanie" +msgstr "Hľadanie" msgid "Seek backward" -msgstr "Hladanie dozadu" +msgstr "Hľadanie dozadu" msgid "Seek backward (enter time)" -msgstr "Hladat dozadu (zadajte cas)" +msgstr "Hľadanie dozadu (zadajte čas)" msgid "Seek forward" -msgstr "Hladat dopredu" +msgstr "Hľadanie dopredu" msgid "Seek forward (enter time)" -msgstr "Hladat dopredu (zadajte cas)" +msgstr "Hľadanie dopredu (zadajte čas)" -#, fuzzy msgid "Seekbar" -msgstr "Hladanie" +msgstr "Lišta hľadania" msgid "Seekbar activation" -msgstr "Aktivácia Seekbar" +msgstr "Aktivácia lišty hľadania" msgid "Seekbar sensibility" -msgstr "Seekbar citlivost" +msgstr "Citlivosť lišty hľadania" msgid "Select" -msgstr "Zvolit" +msgstr "Výber" -msgid "" -"Select '1.0' for standard committed switches, '1.1' for uncommitted " -"switches, and '1.2' for systems using a positioner." -msgstr "" +msgid "Select '1.0' for standard committed switches, '1.1' for uncommitted switches, and '1.2' for systems using a positioner." +msgstr "Vyberte '1.0' pre štandardné prepínače, '1.1' pre uncommited prepínače a '1.2' pre systémy používajúce polohovacie zariadenie." -msgid "" -"Select 'A' or 'B' if your aerial system requires this, otherwise select " -"'none'. If you are unsure select 'none'." -msgstr "" +msgid "Select 'A' or 'B' if your aerial system requires this, otherwise select 'none'. If you are unsure select 'none'." +msgstr "Ak to váš anténny systém vyžaduje, vyberte 'A' alebo 'B', inak vyberte 'žiadne'. Ak si nie ste istí, vyberte možnosť 'žiadne'." -msgid "" -"Select 'FBC SCR' if this tuner will connect to a SCR (Unicable/JESS) device. " -"For all other setups select 'FBC automatic'." -msgstr "" +msgid "Select 'FBC SCR' if this tuner will connect to a SCR (Unicable/JESS) device. For all other setups select 'FBC automatic'." +msgstr "Ak sa tento tuner bude pripájať k zariadeniu SCR (Unicable/JESS), vyberte možnosť 'FBC SCR'. Pre všetky ostatné nastavenia vyberte 'FBC automaticky'." + +msgid "Select 'Standard' to display the standard vertical menu layout, or 'Horizontal' to display the menu items in a row." +msgstr "Vyberte možnosť 'Štandardne', ak chcete zobraziť štandardné vertikálne rozloženie ponuky, alebo 'Vodorovne', ak chcete zobraziť položky ponuky v riadku." msgid "" "Select 'Yes' to delete all languages except English and current language:\n" @@ -11822,549 +11798,435 @@ msgid "" "Select 'No' to delete only the chosen language:\n" "\n" msgstr "" +"Výberom možnosti 'Áno' odstránite všetky jazyky okrem angličtiny a aktuálneho jazyka:\n" +"\n" +"Vyberte 'Nie', ak chcete vymazať len vybraný jazyk:\n" -msgid "" -"Select 'Yes' to remove all keymap data. Selecting this option will remove " -"all keymap override data and restore the default keymap definitions." -msgstr "" +msgid "Select 'Yes' to make a settings backup before wiping the current configuration." +msgstr "Výberom možnosti 'Áno' vytvoríte zálohu nastavení pred vymazaním aktuálnej konfigurácie." -msgid "" -"Select 'Yes' to remove all main settings configuration data. Selecting this " -"option will set all Enigma2 settings back to their default values. This " -"will also cause Enigma2 to run the Welcome Wizard on restart." -msgstr "" +msgid "Select 'Yes' to remove all keymap data. Selecting this option will remove all keymap override data and restore the default keymap definitions." +msgstr "Výberom možnosti 'Áno' odstránite všetky údaje mapy klávesov. Výberom tejto možnosti sa odstránia všetky prepísané údaje mapy klávesov a obnovia sa predvolené definície mapy klávesov." -msgid "" -"Select 'Yes' to remove all media player resume data. Selecting this option " -"will remove the data used to allow playback of media files to resume from " -"the position where playback was last stopped. Playback position of " -"recordings is not affected." -msgstr "" +msgid "Select 'Yes' to remove all main settings configuration data. Selecting this option will set all Enigma2 settings back to their default values. This will also cause Enigma2 to run the Welcome Wizard on restart." +msgstr "Výberom možnosti 'Áno' odstránite všetky konfiguračné údaje hlavných nastavení. Výberom tejto možnosti sa všetky nastavenia Enigmy2 vrátia na predvolené hodnoty. To tiež spôsobí, že sa pri reštarte spustí sprievodca uvítaním Enigmy2." -msgid "" -"Select 'Yes' to remove all network data. Selecting this option will remove " -"all network data including automounts and network connection data including " -"connection accounts and passwords. This could cause some Enigma2 functions " -"to fail if they are configured to use these network resources." -msgstr "" +msgid "Select 'Yes' to remove all media player resume data. Selecting this option will remove the data used to allow playback of media files to resume from the position where playback was last stopped. Playback position of recordings is not affected." +msgstr "Výberom možnosti 'Áno' odstránite všetky údaje obnovenia prehrávača médií. Výberom tejto možnosti odstránite údaje, ktoré sa používajú na umožnenie obnovenia prehrávania mediálnych súborov z pozície, kde bolo prehrávanie naposledy zastavené. Pozícia prehrávania nahrávok nie je ovplyvnená." -msgid "" -"Select 'Yes' to remove all other files and directories not covered by the " -"options above." +msgid "Select 'Yes' to remove all network data. Selecting this option will remove all network data including automounts and network connection data including connection accounts and passwords. This could cause some Enigma2 functions to fail if they are configured to use these network resources." msgstr "" +"Ak chcete odstrániť všetky sieťové údaje, vyberte možnosť 'Áno'. Výberom tejto možnosti sa odstránia všetky sieťové údaje vrátane automatických pripojení a údajov o sieťových pripojeniach vrátane pripojovacích účtov a hesiel. To môže spôsobiť zlyhanie niektorých funkcií systému Enigma2, ak sú nakonfigurované na používanie " +"týchto sieťových prostriedkov." -msgid "" -"Select 'Yes' to remove all plugin configuration data. Selecting this option " -"will remove all plugin configuration data that is stored in the Enigma2 " -"configuration folder. This will cause all affected plugins to return to " -"their default settings. This could cause some plugins to not function until " -"configured." -msgstr "" +msgid "Select 'Yes' to remove all other files and directories not covered by the options above." +msgstr "Ak chcete odstrániť všetky ostatné súbory a adresáre, na ktoré sa nevzťahujú vyššie uvedené možnosti, vyberte možnosť 'Áno'." -msgid "" -"Select 'Yes' to remove all settings, tuning data, timers, resume pointers " -"etc. Selecting this option will restore the configuration to the initial " -"settings before any configuration settings were applied. This is the most " -"reliable form of Factory Reset." +msgid "Select 'Yes' to remove all plugin configuration data. Selecting this option will remove all plugin configuration data that is stored in the Enigma2 configuration folder. This will cause all affected plugins to return to their default settings. This could cause some plugins to not function until configured." msgstr "" +"Výberom možnosti 'Áno' odstránite všetky konfiguračné údaje doplnku. Výberom tejto možnosti odstránite všetky konfiguračné údaje doplnku, ktoré sú uložené v konfiguračnom priečinku Enigmy2. Tým sa všetky dotknuté doplnky vrátia k svojim predvoleným nastaveniam. To môže spôsobiť, že niektoré doplnky nebudú fungovať, kým nebudú " +"nakonfigurované." -msgid "" -"Select 'Yes' to remove all timer configuration data. Selecting this option " -"will clear all timers, autotimers and power timers." -msgstr "" +msgid "Select 'Yes' to remove all settings, tuning data, timers, resume pointers etc. Selecting this option will restore the configuration to the initial settings before any configuration settings were applied. This is the most reliable form of Factory Reset." +msgstr "Výberom možnosti 'Áno' odstránite všetky nastavenia, údaje o ladení, časovače, ukazovatele obnovenia atď. Výberom tejto možnosti obnovíte konfiguráciu na pôvodné nastavenia pred použitím akýchkoľvek konfiguračných nastavení. Toto je najspoľahlivejšia forma obnovenia továrenského nastavenia." -msgid "" -"Select 'Yes' to remove all tuning data. Selecting this option will remove " -"all tuning and bouquet data and will make timers non functional until the " -"receiver is retuned." -msgstr "" +msgid "Select 'Yes' to remove all timer configuration data. Selecting this option will clear all timers, autotimers and power timers." +msgstr "Výberom možnosti 'Áno' odstránite všetky konfiguračné údaje časovača. Výberom tejto možnosti sa vymažú všetky časovače, automatické časovače a časovače napájania." -msgid "" -"Select 'Yes' to remove all user customisations of skin data. Selecting this " -"option will remove all user based skin customisations. All affected skins " -"will return to their standard settings. This will also clear any customised " -"boot logos and backdrops." -msgstr "" +msgid "Select 'Yes' to remove all tuning data. Selecting this option will remove all tuning and bouquet data and will make timers non functional until the receiver is retuned." +msgstr "Ak chcete odstrániť všetky údaje o ladení, vyberte možnosť 'Áno'. Výberom tejto možnosti sa odstránia všetky údaje o ladení a prehľade a časovače nebudú funkčné, kým sa prijímač znovu nenaladí." + +msgid "Select 'Yes' to remove all user customisations of skin data. Selecting this option will remove all user based skin customisations. All affected skins will return to their standard settings. This will also clear any customised boot logos and backdrops." +msgstr "Výberom možnosti 'Áno' odstránite všetky používateľské údaje prispôsobenia vzhľadu. Výberom tejto možnosti odstránite všetky údaje prispôsobenia vzhľadu založené na používateľovi. Všetky dotknuté vzhľady sa vrátia k svojim štandardným nastaveniam. Týmto sa vymažú aj všetky prispôsobené štartovacie logá a pozadia." msgid "Select 'Yes' when you want to configure this tuner for ATSC" -msgstr "" +msgstr "Ak chcete tento tuner nakonfigurovať pre ATSC, vyberte možnosť 'Áno'" msgid "Select 'Yes' when you want to configure this tuner for DVB-C" -msgstr "" +msgstr "Ak chcete tento tuner nakonfigurovať pre DVB-C, vyberte možnosť 'Áno'" msgid "Select 'Yes' when you want to configure this tuner for DVB-S" -msgstr "" +msgstr "Ak chcete tento tuner nakonfigurovať pre DVB-S, vyberte možnosť 'Áno'" msgid "Select 'Yes' when you want to configure this tuner for DVB-T" -msgstr "" +msgstr "Ak chcete tento tuner nakonfigurovať pre DVB-T, vyberte možnosť 'Áno'" -msgid "" -"Select 'band' if using a 'universal' LNB, otherwise consult your LNB spec " -"sheet." -msgstr "" +msgid "Select 'band' if using a 'universal' LNB, otherwise consult your LNB spec sheet." +msgstr "Ak používate 'univerzálny' LNB, vyberte možnosť 'pásmo', v opačnom prípade si pozrite technický list LNB." -msgid "" -"Select 'enabled' if this tuner has a signal cable connected, otherwise " -"select 'nothing connected'." -msgstr "" +msgid "Select 'enabled' if this tuner has a signal cable connected, otherwise select 'nothing connected'." +msgstr "Vyberte možnosť 'povolené', ak je k tomuto tuneru pripojený signálový kábel, inak vyberte možnosť 'nič nie je pripojené'." -msgid "" -"Select 'polarisation' if using a 'universal' LNB, otherwise consult your LNB " -"spec sheet." -msgstr "" +msgid "Select 'polarisation' if using a 'universal' LNB, otherwise consult your LNB spec sheet." +msgstr "Ak používate 'univerzálny' LNB, vyberte možnosť 'polarizácia', inak si pozrite technický list LNB." -msgid "" -"Select 'provider' to scan from the predefined list of cable multiplexes. " -"Select 'bands' to only scan certain parts of the spectrum. Select 'steps' to " -"scan in steps of a particular frequency bandwidth." -msgstr "" +msgid "Select 'provider' to scan from the predefined list of cable multiplexes. Select 'bands' to only scan certain parts of the spectrum. Select 'steps' to scan in steps of a particular frequency bandwidth." +msgstr "Výberom možnosti 'Poskytovateľ' môžete vyhľadávať z preddefinovaného zoznamu káblových multiplexov. Výberom položky 'Kmitočtové pásmo' môžete prehľadávať len určité časti spektra. Výberom položky 'Kmitočtové kroky' môžete prehľadávať v krokoch v určitú šírku frekvenčného pásma." -msgid "" -"Select 'yes' if this tuner is connected to the SCR device through another " -"tuner, otherwise select 'no'." -msgstr "" +msgid "Select 'yes' if this tuner is connected to the SCR device through another tuner, otherwise select 'no'." +msgstr "Vyberte 'áno', ak je tento tuner pripojený k zariadeniu SCR prostredníctvom iného tunera, inak vyberte 'nie'." msgid "Select 'yes' to choose what bands or step sizes will be scanned." -msgstr "" +msgstr "Ak chcete vybrať, ktoré pásma alebo veľkosti krokov sa budú prehľadávať, vyberte možnosť 'áno'." #, python-format msgid "Select 'yes' to include %s multiplexes in your search." -msgstr "" +msgstr "Ak chcete do vyhľadávania zahrnúť %s multiplexov, vyberte možnosť 'áno'." #, python-format msgid "Select 'yes' to include symbol rate %s in your search." -msgstr "" +msgstr "Ak chcete do vyhľadávania zahrnúť symbolovú rýchlosť %s, vyberte možnosť 'áno'." #, python-format msgid "Select 'yes' to include the %s band in your search." -msgstr "" +msgstr "Ak chcete do vyhľadávania zahrnúť pásmo %s, vyberte možnosť 'áno'." -msgid "" -"Select 'yes' to only send the DiSEqC command when changing from one " -"satellite to another, or select 'no' for the DiSEqC command to be resent on " -"every zap." -msgstr "" +msgid "Select 'yes' to only send the DiSEqC command when changing from one satellite to another, or select 'no' for the DiSEqC command to be resent on every zap." +msgstr "Vyberte 'áno', ak chcete posielať príkaz DiSEqC len pri prechode z jedného satelitu na druhý, alebo vyberte 'nie', ak chcete, aby sa príkaz DiSEqC odosielal pri každom prepnutí." + +msgid "Select 'yes' to wake up the receiver from deep standby, or select 'no' to skip the import." +msgstr "Výberom možnosti 'án'o prebudíte prijímač z vyčkávacieho režimu alebo výberom možnosti 'nie' import preskočíte." msgid "Select CAId" -msgstr "zvolit CAIdy" +msgstr "Vyberte CAid" -#, fuzzy msgid "Select EPG channel" -msgstr "Zvolit" +msgstr "Vyberte kanál EPG" -msgid "" -"Select Fast DiSEqC if your aerial system supports this. If you are unsure " -"select 'no'." -msgstr "" +msgid "Select Fast DiSEqC if your aerial system supports this. If you are unsure select 'no'." +msgstr "Ak to váš anténny systém podporuje, vyberte možnosť Rýchly DiSEqC. Ak si nie ste istí, vyberte 'nie'." -#, fuzzy msgid "Select Folders" msgstr "Vyberte adresáre" -#, fuzzy msgid "Select Satellites" -msgstr "jeden satelit" +msgstr "Vyberte satelity" -msgid "" -"Select a receiver to use for fallback tuners. If the host receiver is not " -"listed, manually enter the URL or IP address" -msgstr "" +msgid "Select a receiver to use for client mode. If the host receiver is not listed, manually enter the URL or IP address." +msgstr "Vyberte prijímač, ktorý sa má použiť pre režim klienta. Ak hostiteľský prijímač nie je uvedený v zozname, zadajte URL alebo IP adresu ručne." + +msgid "Select a receiver to use for fallback tuners. If the host receiver is not listed, manually enter the URL or IP address" +msgstr "Vyberte prijímač, ktorý chcete použiť pre záložné tunery. Ak hostiteľský prijímač nie je uvedený v zozname, zadajte URL alebo IP adresu ručne" msgid "Select a softcam script from the available list." -msgstr "" +msgstr "Vyberte skript softcamu z dostupného zoznamu." msgid "Select a wireless network" -msgstr "Zvolte bezdrôtovú siet" +msgstr "Vyberte bezdrôtovú sieť" -#, fuzzy msgid "Select action" -msgstr "Zvolte umiestnenie" +msgstr "Vyberte činnosť" #, python-format msgid "Select action for timer %s:" -msgstr "Vyberte akciu pre casovac '%s'." +msgstr "Vyberte činnosť pre časovač %s:" -#, fuzzy msgid "Select all" -msgstr "Zvolit" +msgstr "Vyberte všetko" msgid "Select audio track" -msgstr "Zvolte zvukovú stopu" +msgstr "Vyberte zvukovú stopu" msgid "Select backup files" -msgstr "Zvolit súbory zálohy" +msgstr "Vyberte súbory zálohy" msgid "Select backup location" -msgstr "Zvolit umiestnenie zálohy" - -msgid "Select between entering an IP address or a domain." -msgstr "" +msgstr "Vyberte umiestnenie zálohy" -#, fuzzy msgid "Select channel from history" -msgstr "Nastavte stanicu pre tento casovac." +msgstr "Vyberte kanál z histórie" msgid "Select channel to record from" -msgstr "Zvolte stanicu na nahrávanie" +msgstr "Vyberte kanál, z ktorého chcete nahrávať" msgid "Select copy destination for:" -msgstr "Zvolte umiestnenie pre kópiu:" +msgstr "Vyberte umiestnenie pre kópiu:" -#, fuzzy msgid "Select current service" -msgstr "Zvolte vstupné zariadenie" +msgstr "Vyberte aktuálnu stanicu" + +msgid "Select days" +msgstr "Vyberte dni" -#, fuzzy msgid "Select default action of EPG button" -msgstr "Zvolte predvolený typ EPG..." +msgstr "Vyberie predvolenú akciu tlačidla EPG" -#, fuzzy msgid "Select default action of INFO button" -msgstr "Zvolte umiestnenie pre:" +msgstr "Vyberie predvolenú akciu tlačidla INFO" msgid "Select destination for:" -msgstr "Zvolte umiestnenie pre:" - -#, fuzzy -msgid "Select directory for logfile" -msgstr "Nepodarilo sa vytvorit adresár %s." +msgstr "Vyberte umiestnenie pre:" msgid "Select files for backup." -msgstr "Zvolte súbory na zálohovanie" +msgstr "Vyberte súbory na zálohovanie." msgid "Select files/folders to backup" -msgstr "Zvolte súbory a adresáre na zálohovanie" +msgstr "Vyberte súbory/adresáre na zálohovanie" -#, fuzzy msgid "Select first service in bouquet" -msgstr "pridat stanicu do prehladu" +msgstr "Vyberte prvú stanicu v prehľade" + +msgid "Select horizontal resolution:" +msgstr "Vyberte vodorovné rozlíšenie:" msgid "Select how quickly the dish should move between satellites." -msgstr "" +msgstr "Vyberte, ako rýchlo sa má anténa pohybovať medzi satelitmi." -msgid "" -"Select how the satellite dish is set up. i.e. fixed dish, single LNB, DiSEqC " -"switch, positioner, etc." -msgstr "" +msgid "Select how the satellite dish is set up. i.e. fixed dish, single LNB, DiSEqC switch, positioner, etc." +msgstr "Vyberte spôsob nastavenia satelitnej antény, t. j. pevná anténa, jeden LNB, prepínač DiSEqC, polohovacie zariadenie atď." -msgid "" -"Select how to activate the Infobar EPG. This will affect Infobar behaviour" -msgstr "" +msgid "Select how to activate the Infobar EPG. This will affect Infobar behaviour" +msgstr "Vyberte spôsob aktivácie Informačného panela EPG. To ovplyvní správanie Informačnej lišty" -msgid "" -"Select how to activate the Infobar Grid EPG. This will affect Infobar " -"behaviour" -msgstr "" +msgid "Select how to activate the Infobar Grid EPG. This will affect Infobar behaviour" +msgstr "Vyberte spôsob aktivácie Mriežky informačného panela EPG. To ovplyvní správanie Informačnej lišty" -msgid "" -"Select how to activate the Infobar Single EPG. This will affect Infobar " -"behaviour" -msgstr "" +msgid "Select how to activate the Infobar Single EPG. This will affect Infobar behaviour" +msgstr "Vyberte spôsob aktivácie Jednotlivého informačného panela EPG. To ovplyvní správanie Informačnej lišty" msgid "Select if timeshift should continue when set to record." -msgstr "Zvolte, ci má pokracovat casový posun, ked sa spustí nahrávanie." +msgstr "Vyberte, či má časový posun pokračovať, keď je nastavený na nahrávanie." msgid "Select input device." -msgstr "Zvolte vstupné zariadenie." +msgstr "Vyberte vstupné zariadenie." msgid "Select interface" -msgstr "Zvolte rozhranie" +msgstr "Vyberte rozhranie" -#, fuzzy msgid "Select last browsed service" -msgstr "nastavit ako stanicu po spustení" +msgstr "Vyberte poslednú prehľadávanú stanicu" msgid "Select location" -msgstr "Zvolte umiestnenie" +msgstr "Vyberte umiestnenie" -#, fuzzy msgid "Select menu entry" -msgstr "zvolit položku menu" +msgstr "Vyberte položku ponuky" msgid "Select movie" -msgstr "Zvolte film" +msgstr "Vyberte film" -#, fuzzy msgid "Select path for logfile" -msgstr "Zvolit cielový adresár" +msgstr "Vyberte cestu pre súbor protokolu" + +msgid "Select provider" +msgstr "Vyberte poskytovateľa" msgid "Select provider to add..." -msgstr "Zvolte poskytovatela, ktorého chcete pridat..." +msgstr "Vyberte poskytovateľa, ktorého chcete pridať..." msgid "Select refresh rate" -msgstr "Zvolte obnovovací kmitocet" +msgstr "Vyberte rýchlosť obnovovania" msgid "Select seekbar to be activated by arrow L/R (long) or << >> (long)." -msgstr "Vyberte aktiváciu seekbar šípkou L/PR (dlho) alebo << >> (dlho)." +msgstr "Vyberte vyhľadávací panel, ktorý sa má aktivovať šípkou L/R (dlhá) alebo << >> (dlhá)." msgid "Select service to add..." -msgstr "Zvolte stanicu, ktorú chcete pridat..." +msgstr "Vyberte stanicu, ktorú chcete pridať..." -#, fuzzy msgid "Select slot" -msgstr "Zvolte umiestnenie" +msgstr "Vyberte slot" -#, fuzzy msgid "Select sort method:" -msgstr "Zvolte režim obrazu" +msgstr "Vyberte spôsob triedenia:" msgid "Select target folder" -msgstr "Zvolit cielový adresár" +msgstr "Výber cieľový adresár" -msgid "" -"Select the User Band channel to be assigned to this tuner. This is an index " -"into the table of frequencies the SCR switch or SCR LNB uses to pass the " -"requested transponder to the tuner." -msgstr "" +msgid "Select the User Band channel to be assigned to this tuner. This is an index into the table of frequencies the SCR switch or SCR LNB uses to pass the requested transponder to the tuner." +msgstr "Vyberte kanál užívateľského pásma, ktorý sa má priradiť tomuto tuneru. Ide o index do tabuľky frekvencií, ktoré prepínač SCR alebo LNB SCR používa na odovzdanie požadovaného transpondéra tuneru." -msgid "" -"Select the User Band frequency to be assigned to this tuner. This is the " -"frequency the SCR switch or SCR LNB uses to pass the requested transponder " -"to the tuner." -msgstr "" +msgid "Select the User Band frequency to be assigned to this tuner. This is the frequency the SCR switch or SCR LNB uses to pass the requested transponder to the tuner." +msgstr "Vyberte kmitočet užívateľského pásma, ktorá sa má priradiť tomuto tuneru. Ide o frekvenciu, ktorú prepínač SCR alebo LNB SCR používa na prenos požadovaného transpondéra do tunera." -msgid "" -"Select the User Band to be assigned to this tuner. This is an index into the " -"table of frequencies the SCR switch or SCR LNB uses to pass the requested " -"transponder to the tuner." -msgstr "" +msgid "Select the User Band to be assigned to this tuner. This is an index into the table of frequencies the SCR switch or SCR LNB uses to pass the requested transponder to the tuner." +msgstr "Vyberte užívateľské pásmo, ktoré sa má priradiť tomuto tuneru. Ide o index do tabuľky frekvencií, ktoré prepínač SCR alebo LNB SCR používa na prenos požadovaného transpondéra do tunera." msgid "Select the character or action under the keyboard cursor" -msgstr "" +msgstr "Vyberte znak alebo akciu pod kurzorom klávesnice" -#, fuzzy msgid "Select the current menu item" -msgstr "Zvolte vstupné zariadenie" +msgstr "Vyberte aktuálnu položku ponuky" -msgid "" -"Select the desired function and click on \"OK\" to assign it. Use \"CH+/-\" " -"to toggle between the lists. Select an assigned function and click on \"OK\" " -"to de-assign it. Use \"Next/Previous\" to change the order of the assigned " -"functions." -msgstr "" +msgid "Select the desired function and click on \"OK\" to assign it. Use \"CH+/-\" to toggle between the lists. Select an assigned function and click on \"OK\" to de-assign it. Use \"Next/Previous\" to change the order of the assigned functions." +msgstr "Vyberte požadovanú funkciu a kliknite na 'OK', aby ste ju priradili. Pomocou 'CH+/-' môžete prepínať medzi zoznamami. Vyberte priradenú funkciu a kliknutím na 'OK' zrušte jej priradenie. Pomocou 'Nasledújúci/Predchádzajúci' môžete zmeniť poradie priradených funkcií." msgid "Select the highlighted image and delete" -msgstr "" +msgstr "Vyberte zvýraznený systémový obraz a vymažte ho" msgid "Select the highlighted image and reboot" -msgstr "" +msgstr "Vyberte zvýraznený systémový obraz a reštartujte" -#, fuzzy msgid "Select the locale from a menu" -msgstr "Nastavit predvolenú metódu zoradenia." +msgstr "Vyberte lokalitu z ponuky" -msgid "" -"Select the manufacturer of your SCR device. If the manufacturer is not " -"listed, set 'SCR' to 'user defined' and enter the device parameters manually " -"according to its spec sheet." -msgstr "" +msgid "Select the manufacturer of your SCR device. If the manufacturer is not listed, set 'SCR' to 'user defined' and enter the device parameters manually according to its spec sheet." +msgstr "Vyberte výrobcu zariadenia SCR. Ak výrobca nie je uvedený v zozname, nastavte položku 'SCR' na 'definované užívateľom' a zadajte parametre zariadenia manuálne podľa jeho technického listu." -msgid "" -"Select the model number of your SCR device. If the model number is not " -"listed, set 'SCR' to 'user defined' and enter the device parameters manually " -"according to its spec sheet." -msgstr "" +msgid "Select the model number of your SCR device. If the model number is not listed, set 'SCR' to 'user defined' and enter the device parameters manually according to its spec sheet." +msgstr "Vyberte číslo modelu vášho zariadenia SCR. Ak číslo modelu nie je uvedené, nastavte položku 'SCR' na 'definované používateľom' a zadajte parametre zariadenia manuálne podľa jeho technického listu." msgid "Select the movie path" -msgstr "Zvolit cestu k filmu" +msgstr "Vyberte cestu k filmu" msgid "Select the next item in list or move cursor right" -msgstr "" +msgstr "Vyberte ďalšiu položku v zozname alebo presuňte kurzor doprava" msgid "Select the previous item in list or move cursor left" -msgstr "" +msgstr "Vyberte predchádzajúcu položku v zozname alebo presuňte kurzor doľava" -msgid "" -"Select the protocol used by your SCR device. Choices are 'SCR " -"Unicable' (Unicable), or 'SCR JESS' (JESS, also known as Unicable II)." -msgstr "" +msgid "Select the protocol used by your SCR device. Choices are 'SCR Unicable' (Unicable), or 'SCR JESS' (JESS, also known as Unicable II)." +msgstr "Vyberte protokol, ktorý používa vaše zariadenie SCR. Na výber je 'SCR Unicable' (Unicable) alebo 'SCR JESS' (JESS, známy aj ako Unicable II)." -msgid "" -"Select the satellite which is connected to Port-A of your switch. If you are " -"unsure select 'automatic' and the receiver will attempt to determine this " -"for you. If nothing is connected to this port, select 'nothing connected'." -msgstr "" +msgid "Select the satellite which is connected to Port-A of your switch. If you are unsure select 'automatic' and the receiver will attempt to determine this for you. If nothing is connected to this port, select 'nothing connected'." +msgstr "Vyberte satelit, ktorý je pripojený k portu A vášho prepínača. Ak si nie ste istí, vyberte 'automaticky' a prijímač sa pokúsi určiť to za vás. Ak k tomuto portu nie je nič pripojené, vyberte možnosť 'nič pripojené'." -msgid "" -"Select the satellite which is connected to Port-B of your switch. If you are " -"unsure select 'automatic' and the receiver will attempt to determine this " -"for you. If nothing is connected to this port, select 'nothing connected'." -msgstr "" +msgid "Select the satellite which is connected to Port-B of your switch. If you are unsure select 'automatic' and the receiver will attempt to determine this for you. If nothing is connected to this port, select 'nothing connected'." +msgstr "Vyberte satelit, ktorý je pripojený k portu B vášho prepínača. Ak si nie ste istí, vyberte 'automaticky' a prijímač sa pokúsi určiť to za vás. Ak k tomuto portu nie je nič pripojené, vyberte možnosť 'nič pripojené'." -msgid "" -"Select the satellite which is connected to Port-C of your switch. If you are " -"unsure select 'automatic' and the receiver will attempt to determine this " -"for you. If nothing is connected to this port, select 'nothing connected'." -msgstr "" +msgid "Select the satellite which is connected to Port-C of your switch. If you are unsure select 'automatic' and the receiver will attempt to determine this for you. If nothing is connected to this port, select 'nothing connected'." +msgstr "Vyberte satelit, ktorý je pripojený k portu C vášho prepínača. Ak si nie ste istí, vyberte 'automaticky' a prijímač sa pokúsi určiť to za vás. Ak k tomuto portu nie je nič pripojené, vyberte možnosť 'nič pripojené'." -msgid "" -"Select the satellite which is connected to Port-D of your switch. If you are " -"unsure select 'automatic' and the receiver will attempt to determine this " -"for you. If nothing is connected to this port, select 'nothing connected'." -msgstr "" +msgid "Select the satellite which is connected to Port-D of your switch. If you are unsure select 'automatic' and the receiver will attempt to determine this for you. If nothing is connected to this port, select 'nothing connected'." +msgstr "Vyberte satelit, ktorý je pripojený k portu D vášho prepínača. Ak si nie ste istí, vyberte 'automaticky' a prijímač sa pokúsi určiť to za vás. Ak k tomuto portu nie je nič pripojené, vyberte možnosť 'nič pripojené'." -msgid "" -"Select the satellite you want to configure. Once that satellite is " -"configured you can select and configure other satellites that will be " -"accessed using this same tuner." -msgstr "" +msgid "Select the satellite you want to configure. Once that satellite is configured you can select and configure other satellites that will be accessed using this same tuner." +msgstr "Vyberte satelit, ktorý chcete konfigurovať. Po nakonfigurovaní tohto satelitu môžete vybrať a nakonfigurovať ďalšie satelity, ktoré budú prístupné pomocou toho istého tunera." -msgid "" -"Select the satellite your dish receives from. If you are unsure select " -"'automatic' and the receiver will attempt to determine this for you." -msgstr "" +msgid "Select the satellite your dish receives from. If you are unsure select 'automatic' and the receiver will attempt to determine this for you." +msgstr "Vyberte satelit, z ktorého prijíma Vaša anténa. Ak si nie ste istí, vyberte 'automaticky' a prijímač sa pokúsi určiť to za vás." -#, fuzzy msgid "Select the shifted character set" -msgstr "Zvolit cestu k filmu" +msgstr "Vyberte posunutú znakovú sadu" msgid "Select the shifted character set for the next character only" -msgstr "" +msgstr "Vyberte posunutú znakovú sadu len pre ďalší znak" -#, fuzzy msgid "Select the time zone within the area or region." -msgstr "Zadat popis nahrávky." +msgstr "Vyberte časové pásmo v rámci oblasti alebo regiónu." msgid "Select the tuner that controls the motorised dish." -msgstr "" +msgstr "Vyberte tuner, ktorý ovláda motorizovanú anténu." msgid "Select the tuner that this loopthrough depends on." -msgstr "" +msgstr "Vyberte tuner, od ktorého závisí táto slučka." -msgid "" -"Select the tuner to which the signal cable of the SCR device is connected." -msgstr "" +msgid "Select the tuner to which the signal cable of the SCR device is connected." +msgstr "Vyberte tuner, ku ktorému je pripojený signálový kábel zariadenia SCR." -msgid "" -"Select the type of LNB/device being used (normally 'Universal'). If your LNB " -"type is not available select 'user defined'." -msgstr "" +msgid "Select the type of LNB/device being used (normally 'Universal'). If your LNB type is not available select 'user defined'." +msgstr "Vyberte typ používaného LNB/zariadenia (zvyčajne \"Universal\"). Ak váš typ LNB nie je k dispozícii, vyberte možnosť 'definované užívateľom'." msgid "Select the type of Single Cable Reception device you are using." -msgstr "" +msgstr "Vyberte typ zariadenia ktoré použijete na samostatný káblový príjem." -#, fuzzy msgid "Select to configure remote control type" -msgstr "Typ dialkového ovládaca" +msgstr "Vyberte, ak chcete nakonfigurovať typ diaľkového ovládania" -#, fuzzy msgid "Select to restore all deleted images" -msgstr "Natrvalo odstránit všetky zmazané položky" +msgstr "Vyberte, ak chcete obnoviť všetky vymazané systémové obrazy" msgid "Select upgrade source" -msgstr "Zvolte zdroj aktualizácie" +msgstr "Vyberte zdroj aktualizácie" msgid "Select upgrade source to edit." -msgstr "Zvolte zdroj aktualizácie, ktorý chcete upravit." +msgstr "Vyberte zdroj aktualizácie, ktorý chcete upraviť." msgid "Select video input with up/down buttons" -msgstr "Tlacidlami nahor a nadol zvolte video vstup" +msgstr "Vyberte obrazový vstup tlačidlami nahor/nadol" msgid "Select video mode" -msgstr "Zvolte režim obrazu" +msgstr "Vyberte režim obrazu" msgid "Select whether your SCR device is externally powered." -msgstr "" +msgstr "Vyberte, či je vaše zariadenie SCR napájané externe." -#, fuzzy msgid "Select which satellite to scan." -msgstr "jeden satelit" +msgstr "Vyberte, ktorý satelit sa má prehľadávať." -#, fuzzy msgid "Select which transponder to scan." -msgstr "Zvolte poskytovatela, ktorého chcete pridat..." +msgstr "Vyberte, ktorý transpondér sa má prehľadávať." msgid "Select which tuner to use for the scan." -msgstr "" +msgstr "Vyberte tuner, ktorý sa má použiť na prehľadávanie." msgid "Select wireless network" -msgstr "Zvolte bezdrôtovú siet" +msgstr "Vyberte bezdrôtovú sieť" -#, fuzzy msgid "Select your ATSC provider." -msgstr "Zvolte poskytovatela, ktorého chcete pridat..." +msgstr "Vyberte svojho poskytovateľa ATSC." msgid "Select your country. If not available select 'all'." -msgstr "" +msgstr "Vyberte svoju krajinu. Ak nie je k dispozícii, vyberte 'všetky'." -msgid "" -"Select your provider and region. If not present in this list you will need " -"to select one of the other 'service scan types'." -msgstr "" +msgid "Select your provider and region. If not present in this list you will need to select one of the other 'service scan types'." +msgstr "Vyberte poskytovateľa a oblasť. Ak sa v tomto zozname nenachádza, musíte vybrať jeden z ďalších 'typov vyhľadávania staníc'." msgid "Select your provider, and press OK to start the scan" -msgstr "Vyberte poskytovatela a stlacte OK pre spustenie skenovania" +msgstr "Vyberte svojho poskytovateľa a stlačte OK pre spustenie vyhľadávania" -msgid "" -"Select your region. If not available change 'Country' to 'all' and select " -"one of the default alternatives." -msgstr "" +msgid "Select your region. If not available change 'Country' to 'all' and select one of the default alternatives." +msgstr "Vyberte svoj región. Ak nie je k dispozícii, zmeňte položku 'Krajina' na 'všetky' a vyberte jednu z predvolených alternatív." -#, fuzzy msgid "Select your time zone area or region." -msgstr "Nastavenie casového pásma." +msgstr "Vyberte oblasť časového pásma alebo región." -#, fuzzy msgid "Select, toggle, process or edit the current entry" -msgstr "Vyhladávanie epg pre aktuálnu reláciu." +msgstr "Výber, prepínanie, spracovanie alebo úprava aktuálnej položky" -#, fuzzy msgid "Selecting satellites 1 (USALS)" -msgstr "jeden satelit" +msgstr "Výber satelitov 1 (USALS)" -#, fuzzy msgid "Selecting satellites 2 (USALS)" -msgstr "jeden satelit" +msgstr "Výber satelitov 2 (USALS)" -#, fuzzy -msgid "" -"Selecting this option allows you to configure a group of satellites in one " -"block." -msgstr "" -"Táto volba Vám umožní vybrat z dvoch zoznamov staníc, ktoré sú k dispozícii." +msgid "Selecting this option allows you to configure a group of satellites in one block." +msgstr "Výberom tejto možnosti môžete konfigurovať skupinu satelitov v jednom bloku." -#, fuzzy msgid "Selection and exit" -msgstr "Uložit a zastavit" +msgstr "Výber a ukončenie" msgid "Send 'sourceactive' before zap timers" -msgstr "" +msgstr "Odoslať 'sourceactive' pred prepnutím časovačmi" msgid "Send DiSEqC" -msgstr "Poslat DiSEqC" +msgstr "Poslať DiSEqC" msgid "Send DiSEqC only on satellite change" -msgstr "Poslat DiSEqC len pri zmene satelitu" +msgstr "Poslať DiSEqC len pri zmene satelitu" msgid "Senegal" msgstr "" msgid "Seperate titles with a main menu" -msgstr "Samostatné tituly s hlavným menu" +msgstr "Samostatné tituly s hlavnou ponukou" msgid "Sequence repeat" msgstr "Opakovanie sekvencie" -#, fuzzy msgid "Serbia" -msgstr "Srbcina" +msgstr "Srbsko" msgid "Serbian" -msgstr "Srbcina" +msgstr "Srbsky" msgid "Serial No" -msgstr "Sériové císlo" +msgstr "Sériové Číslo" -#, fuzzy msgid "Serial no" -msgstr "Sériové císlo" +msgstr "Sériové číslo" + +msgid "Serie" +msgstr "Seriál" + +msgid "Serious Music" +msgstr "Vážna hudba" #, python-format -msgid "Server Info ( %s-Version: %s )" +msgid "Server %s-%s" msgstr "" msgid "Server:" -msgstr "Server:" +msgstr "" msgid "Servers" msgstr "Servery" @@ -12375,59 +12237,82 @@ msgstr "Servery:" msgid "Service" msgstr "Stanica" -#, fuzzy msgid "Service & PIDs" -msgstr "Stanice" +msgstr "Stanica a PIDy" -#, fuzzy msgid "Service ID" -msgstr "Stanica" - -#, fuzzy -msgid "Service Info: ECM Info" -msgstr "Velkost písma info o stanici" +msgstr "" msgid "Service Name" msgstr "Názov stanice" #, fuzzy +msgctxt "problem trans" msgid "Service Number and Picon" -msgstr "Velkost písma císla stanice" +msgstr "Číslo stanice a Piktogram" #, fuzzy +msgctxt "problem trans" msgid "Service Number and Service Name" -msgstr "Picona a názov stanice" +msgstr "Číslo stanice a Názov stanice" #, fuzzy +msgctxt "problem trans" msgid "Service Number, Picon and Service Name" -msgstr "Picona a názov stanice" +msgstr "Číslo stanice, Piktogram a Názov stanice" msgid "Service Title mode" -msgstr "Režim nadpisu služby" +msgstr "Režim nadpisu stanice" msgid "Service font size" -msgstr "Velkost písma názvu stanice" +msgstr "Veľkosť písma stanice" + +#, fuzzy +msgid "Service info" +msgstr "Servisné informácie" + +#, fuzzy +msgid "Service info - ECM Info" +msgstr "Servisné informácie - ECM informácia" + +msgid "Service info - service & Basic PID Info" +msgstr "Servisné informácie - stanica a základné PID informácie" + +msgid "Service info - service & Extended PID Info" +msgstr "Servisné informácie - stanica a rozšírené PID informácie" + +#, fuzzy +msgid "Service info - service & PIDs" +msgstr "Servisné informácie - stanica a PIDy" + +#, fuzzy +msgid "Service info - tuner live values" +msgstr "Servisné informácie - skutočné hodnoty tunera" + +#, fuzzy +msgid "Service info - tuner setting values" +msgstr "Servisné informácie - hodnoty nastavenia tunera" msgid "Service info font size" -msgstr "Velkost písma info o stanici" +msgstr "Veľkosť písma informácie o stanici" msgid "" "Service invalid!\n" "(Timeout reading PMT)" msgstr "" "Stanica je neplatná!\n" -"(Cas vypršal pri cítaní PMT)" +"(Čas vypršal pre čítanie PMT)" -#, fuzzy msgid "Service list" -msgstr "Zobrazovat picony v zozname staníc" +msgstr "Zoznam staníc" #, fuzzy -msgid "Service name" -msgstr "Názov stanice" +msgctxt "problem trans" +msgid "Service name:" +msgstr "Názov stanice:" msgid "Service name font size" -msgstr "Velkost písma císla stanice" +msgstr "Veľkosť písma názvu stanice" msgid "" "Service not found!\n" @@ -12437,17 +12322,17 @@ msgstr "" "(SID nenájdený v PAT)" msgid "Service number font size" -msgstr "Velkost písma císla stanice" +msgstr "Veľkosť písma čísla stanice" #, fuzzy msgid "Service off-air" -msgstr "Názov stanice" +msgstr "Stanica mimo vysielania" msgid "Service reference" msgstr "Referencia služby" msgid "Service scan" -msgstr "Vyhladávanie staníc" +msgstr "Vyhľadávanie staníc" msgid "" "Service unavailable!\n" @@ -12457,797 +12342,673 @@ msgstr "" "Skontrolujte nastavenie tunera!" msgid "Service width" -msgstr "Šírka služby" +msgstr "Šírka stanice" #, fuzzy +msgctxt "problem trans" msgid "Service/Channel number zap commands" -msgstr "Velkost písma císla stanice" +msgstr "Číselné príkazy prepnutia stanice/kanálu" msgid "Services" msgstr "Stanice" -msgid "" -"Services may be grouped in bouquets. When enabled, you can use more than one " -"bouquet." -msgstr "" -"Stanice môžu byt zoskupené do prehladov. Ak je povolené, môžete použit " -"viacero prehladov." +msgid "Services may be grouped in bouquets. When enabled, you can use more than one bouquet." +msgstr "Stanice môžu byt zoskupené do prehľadov. Ak je povolené, môžete použiť viacero prehľadov." msgid "Set CI assignment for detection of available services." -msgstr "" +msgstr "Nastavenie priradenia CI pre detekciu dostupných staníc." msgid "Set Enigma2 Log Level" -msgstr "" +msgstr "Nastavenie úrovne protokolovania Enigma2" msgid "Set Framerate for MiniTV" -msgstr "" - -#, fuzzy -msgid "Set HDMI-CEC fixed address" -msgstr "Používam pevnú adresu" +msgstr "Nastavenie snímkovej frekvencie pre MiniTV" msgid "Set LED Color or disable the LED." -msgstr "" +msgstr "Nastavenie farby LED alebo vypnutie LED." msgid "Set a temporary sort method for this directory" -msgstr "" +msgstr "Nastavenie dočasnej metódy triedenia pre tento adresár" #, fuzzy msgid "Set as startup service" -msgstr "nastavit ako stanicu po spustení" +msgstr "Nastaviť ako stanicu po spustení" + +msgid "Set automatic update interval (in hours)." +msgstr "Nastavenie intervalu automatickej aktualizácie (v hodinách)." -#, fuzzy msgid "Set default" -msgstr "Predvolené" +msgstr "Predvolené nastavenie" msgid "Set end time" -msgstr "Nastavenie casu ukoncenia" +msgstr "Nastavenie času ukončenia" -msgid "Set fixed" -msgstr "Použit pevné" +msgid "Set fixed CEC address" +msgstr "Nastavenie pevnej adresy CEC" msgid "Set fps for external subtitles" -msgstr "Zmena fps pre externé titulky" +msgstr "Nastavenie fps pre externé titulky" -#, fuzzy msgid "Set interface as the default Interface" -msgstr "Nastavit rozhranie ako predvolené" +msgstr "Nastavenie rozhrania ako predvolené rozhranie" msgid "Set limits" -msgstr "Nastavit limity" +msgstr "Nastavenie obmedzení" -msgid "Set pin code persistent" -msgstr "" +msgid "Set persistent PIN code" +msgstr "Nastavenie trvalého PIN kódu" -msgid "" -"Set sequence repeats if your aerial system requires this. Normally if the " -"aerial system has been configured correctly sequence repeats will not be " -"necessary. If yours does, recheck you have command order set correctly." -msgstr "" +msgid "Set sequence repeats if your aerial system requires this. Normally if the aerial system has been configured correctly sequence repeats will not be necessary. If yours does, recheck you have command order set correctly." +msgstr "Ak to váš anténny systém vyžaduje, nastavte opakovanie sekvencie. Ak je anténny systém správne nakonfigurovaný, opakovanie sekvencií nie je potrebné. Ak to robí váš systém, skontrolujte znovu, či máte správne nastavené poradie príkazov." -#, fuzzy msgid "Set startup service" -msgstr "nastavit ako stanicu po spustení" +msgstr "Nastavenie stanice pri spustení" -#, fuzzy msgid "Set system" -msgstr "Systém" +msgstr "Nastavenie systému" -#, fuzzy, python-format +#, python-format msgid "Set the MAC address of your %s %s.\n" -msgstr "Upravit nastavenie MAC adresy vášho %s %s.\n" +msgstr "Nastavenie adresy MAC vášho %s %s.\n" msgid "Set the channel for this timer." -msgstr "Nastavte stanicu pre tento casovac." +msgstr "Nastavenie kanálu pre tento časovač." msgid "Set the date the timer must start." -msgstr "Nastavit dátum, kedy sa musí spustit casovac." +msgstr "Nastavte dátum, kedy sa časovač musí spustiť." -#, fuzzy -msgid "" -"Set the default location for your instant recordings. Press OK to add new " -"locations, LEFT/RIGHT to select from any existing locations." -msgstr "" -"Nastavenie umiestnenia pre okamžité nahrávanie. Stlacte 'OK' pre pridanie " -"nového umiestnenia, tlacidlami vlavo/vpravo vyberiete existujúce umiestnenie." +msgid "Set the default location for your instant recordings. Press OK to add new locations, LEFT/RIGHT to select from any existing locations." +msgstr "Nastavenie umiestnenia pre okamžité nahrávanie. Stlačte 'OK' pre pridanie nového umiestnenia, tlačidlami vľavo/vpravo vyberiete z existujúcich umiestnení." -#, fuzzy -msgid "" -"Set the default location for your recordings. Press OK to add new locations, " -"LEFT/RIGHT to select from any existing locations." -msgstr "" -"Nastavenie predvoleného umiestnenia pre nahrávky. Stlacte 'OK' pre pridanie " -"nového umiestnenia, použitím tlacidiel vlavo/vpravo vyberiete existujúce " -"umiestnenie." +msgid "Set the default location for your recordings. Press OK to add new locations, LEFT/RIGHT to select from any existing locations." +msgstr "Nastavenie predvoleného umiestnenia pre Vaše nahrávky. Stlačte 'OK' pre pridanie nového umiestnenia, použitím tlačidiel vľavo/vpravo vyberiete z existujúcich umiestnení." -#, fuzzy -msgid "" -"Set the default location for your timers. Press OK to add new locations, " -"LEFT/RIGHT to select from any existing locations." -msgstr "" -"Nastavenie predvoleného umiestnenia pre casovace. Stlacte tlacidlo 'OK' pre " -"pridanie nového umiestnenia, použitím tlacidiel vlavo/vpravo vyberiete " -"existujúce umiestnenie." +msgid "Set the default location for your timers. Press OK to add new locations, LEFT/RIGHT to select from any existing locations." +msgstr "Nastavenie predvoleného umiestnenia pre časovače. Stlačte tlačidlo 'OK' pre pridanie nového umiestnenia, použitím tlačidiel vľavo/vpravo vyberiete z existujúcich umiestnení." -#, fuzzy -msgid "" -"Set the default location for your timeshift files. Press OK to add new " -"locations, LEFT/RIGHT to select any existing locations." -msgstr "" -"Nastavenie umiestnenia pre súbory casového posunu. Stlacte tlacidlo 'OK' pre " -"pridanie nového umiestnenia, tlacidlami vlavo/vpravo vyberiete existujúce " -"umiestnenie." +msgid "Set the default location for your timeshift files. Press OK to add new locations, LEFT/RIGHT to select any existing locations." +msgstr "Nastavenie umiestnenia pre súbory časového posunu. Stlačte tlačidlo 'OK' pre pridanie nového umiestnenia, tlačidlami vľavo/vpravo vyberiete z existujúcich umiestnení." msgid "Set the default sorting method." -msgstr "Nastavit predvolenú metódu zoradenia." +msgstr "Nastavenie predvoleného spôsobu triedenia." -msgid "" -"Set the delay time between repeated loops, this uses a software render in " -"some skins." -msgstr "" -"Nastavit odstup medzi opakovanými sluckami - funkciu používa softvérový " -"render v niektorých vzhladoch." +msgid "Set the delay time between repeated loops, this uses a software render in some skins." +msgstr "Nastavenie času oneskorenia medzi opakovanými slučkami, v niektorých skinoch sa používa softvérové vykresľovanie." msgid "Set the description of the recording." -msgstr "Zadat popis nahrávky." +msgstr "Nastavenie popisu nahrávky." -#, fuzzy msgid "Set the desired primetime." -msgstr "Nastavit zvolený hlavný vysielací cas (hod.)" +msgstr "Nastavenie požadovaného hlavného vysielacieho času." -#, fuzzy msgid "Set the global sort method" -msgstr "Nastavit predvolenú metódu zoradenia." +msgstr "Nastavenie globálneho spôsobu triedenia" msgid "Set the jump-size of the seekbar." -msgstr "Nastavit velkost skoku v seekbare." +msgstr "Nastavenie veľkosti skoku vyhľadávacieho panela." msgid "Set the name the recording will get." -msgstr "Zadat názov nahrávky." +msgstr "Nastavenie názvu, ktorý nahrávka dostane." -#, fuzzy msgid "Set the position of the recording icons" -msgstr "Zadat popis nahrávky." +msgstr "Nastavenie polohy ikon nahrávania" -#, fuzzy msgid "Set the repeat interval of the schedule." -msgstr "Nastavit velkost skoku v seekbare." +msgstr "Nastavenie intervalu opakovania plánu." -msgid "" -"Set the scrolling speed of text on the front display, this uses a software " -"render in some skins." -msgstr "" -"Nastavit rýchlost rolovania textu na celnom displeji - funkciu používa " -"softvérový render v niektorých vzhladoch." +msgid "Set the scrolling speed of text on the front display, this uses a software render in some skins." +msgstr "Nastavenie rýchlosti posúvania textu na prednom displeji, v niektorých skinoch sa používa softvérové vykresľovanie." msgid "Set the scrolling speed of text on the front display." -msgstr "Nastavit rýchlost rolovania textu na celnom displeji." +msgstr "Nastavenie rýchlosti posúvania textu na prednom displeji." -#, fuzzy msgid "Set the sort method for this directory" -msgstr "Nastavte stanicu pre tento casovac." +msgstr "Nastavenie metódy triedenia pre tento adresár" -#, fuzzy -msgid "" -"Set the time before checking video source for resolution/refresh rate " -"infomation." -msgstr "Nastavte cas pred kontrolou informácií o rozlíšení zo zdroja videa." +msgid "Set the time before checking video source for resolution/refresh rate infomation." +msgstr "Nastavenie času pred kontrolou zdroja videa pre informácie o rozlíšení/obnovovacej frekvencii." msgid "Set the time delay before hiding the infobar." -msgstr "Nastavte casové oneskorenie pred schovaním informacného panelu." +msgstr "Nastavenie časového oneskorenia pred skrytím informačnej lišty." + +msgid "Set the time of day to perform an EPG download." +msgstr "Nastavenie denného času, kedy sa má vykonať sťahovanie EPG." -#, fuzzy msgid "Set the time of day to perform the import." -msgstr "Nastavte casové oneskorenie pred schovaním informacného panelu." +msgstr "Nastavenie denného času na vykonanie importu." msgid "Set the time the timer must start." -msgstr "Nastavit dátum, kedy sa musí spustit casovac." +msgstr "Nastavenie času, kedy sa musí časovač spustiť." msgid "Set the time the timer must stop." -msgstr "Nastavit dátum, kedy sa musí ukoncit casovac." +msgstr "Nastavenie času, kedy sa musí časovač zastaviť." -msgid "" -"Set the type of the progress indication in the channel selection screen." -msgstr "Zvolit typ zobrazenia priebehu programu v zozname staníc." +msgid "Set the type of the progress indication in the channel selection screen." +msgstr "Nastavenie typu indikácie priebehu na obrazovke výberu kanála." -#, fuzzy msgid "Set to the desired primetime." -msgstr "Nastavit na zvolený hlavný vysielací cas (hod.)" +msgstr "Nastavenie na požadovaný hlavný čas." msgid "Set to what you want the button to do." -msgstr "Umožnuje nastavit funkciu tlacidla na akciu, ktorú si vyberiete." - -#, fuzzy -msgid "Set update interval (in hours)." -msgstr "Interval aktualizácie (v sekundách)" +msgstr "Nastavenie, čo má tlačidlo robiť." msgid "Set voltage and 22KHz" -msgstr "Nastavit napätie a 22 kHz" +msgstr "Nastavenie napätia a 22 kHz" -#, fuzzy -msgid "" -"Sets the root directory of movie list, to remove the '..' from being shown " -"in that folder." -msgstr "" -"Nastaví korenový adresár zoznamu filmov, odobratím '..' zo zaciatku názvu " -"tohto adresára." +msgid "Sets the root directory of movie list, to remove the '..' from being shown in that folder." +msgstr "Nastaví koreňový adresár zoznamu filmov, aby sa v ňom nezobrazoval znak '..'." #, python-format msgid "" -"Setting a network password is mandatory in OpenViX %s if you wish to use " -"network services. \n" -"To set a password using the virtual keyboard press the 'text' button on your " -"remote control." +"Setting a network password is mandatory in OpenViX %s if you wish to use network services. \n" +"To set a password using the virtual keyboard press the 'text' button on your remote control." msgstr "" +"Nastavenie sieťového hesla je v OpenViX %s povinné, ak chcete používať sieťové služby. \n" +"Ak chcete nastaviť heslo pomocou virtuálnej klávesnice, stlačte tlačidlo 'TEXT' na diaľkovom ovládači." msgid "Settings" msgstr "Nastavenia" msgid "Settings, information and more functions" -msgstr "" +msgstr "Nastavenia, informácie a ďalšie funkcie" msgid "Setup" -msgstr "Nastavenia" +msgstr "Nastavenie" msgid "Setup how to control the channel changing." -msgstr "Nastavit ovládanie zmeny stanice." +msgstr "Nastavenie spôsobu ovládania zmeny kanálu." msgid "Setup menu" -msgstr "Nastavenia menu" +msgstr "Ponuka nastavenia" msgid "Setup mode" msgstr "Režim nastavenia" msgid "Setup network time synchronization interval." -msgstr "Nastavenie intervalu synchronizácie casu so sietou." +msgstr "Nastavenie intervalu synchronizácie sieťového času." msgid "Setup the interval (in hours) to check for online updates." -msgstr "Nastavit interval (v hodinách) na kontrolu online aktualizácie." +msgstr "Nastavenie intervalu (v hodinách) na kontrolu online aktualizácií." msgid "Setup your positioner" -msgstr "Nastavte si pozicionér" +msgstr "Nastavenie polohovacieho zariadenia" msgid "Setup your satellite equipment" msgstr "Nastavenie satelitného vybavenia" msgid "Seychelles" -msgstr "" +msgstr "Seychely" -#, fuzzy msgid "Share Folders" -msgstr "Zdielat priecinok" +msgstr "Zdieľať priečinky" msgid "Share View" -msgstr "Zobrazenie zdielania" +msgstr "Zobrazenie zdieľania" msgid "Shares" -msgstr "Zdielania" +msgstr "Akcie" msgid "Sharpness" -msgstr "Ostrost" +msgstr "Ostrosť" msgid "Shift" -msgstr "" +msgstr "Zmena" + +msgid "Shopping" +msgstr "Nakupovanie" + +msgid "Short Film" +msgstr "Krátky film" msgid "Short filenames" msgstr "Krátke názvy súborov" -msgid "" -"Should the FTP connection to the remote receiver be established in passive " -"mode (normally 'no')?" -msgstr "" +msgid "Should the FTP connection to the remote receiver be established in passive mode (normally 'no')?" +msgstr "Má sa pripojenie FTP k vzdialenému prijímaču vytvoriť v pasívnom režime (zvyčajne 'nie')?" -#, fuzzy msgid "Show" -msgstr "Zobrazit SD ako" +msgstr "Zobraziť" -#, fuzzy, python-format +#, python-format msgid "Show %s" -msgstr "Zobrazit SD ako" +msgstr "Zobraziť %s" msgid "Show 1080p 24fps as" -msgstr "Zobrazit 1080p 24 fps ako" +msgstr "Zobraziť 1080p 24fps ako" msgid "Show 1080p 25fps as" -msgstr "Zobrazit 1080p 25 fps ako" +msgstr "Zobraziť 1080p 25fps ako" msgid "Show 1080p 30fps as" -msgstr "Zobrazit 1080p 30 fps ako" +msgstr "Zobraziť 1080p 30fps ako" -#, fuzzy msgid "Show 2160p 24fps as" -msgstr "Zobrazit 720p na 24 fps ako" +msgstr "Zobraziť 2160p 24fps ako" -#, fuzzy msgid "Show 2160p 25fps as" -msgstr "Zobrazit 1080p 25 fps ako" +msgstr "Zobraziť 2160p 25fps ako" -#, fuzzy msgid "Show 2160p 30fps as" -msgstr "Zobrazit 1080p 30 fps ako" +msgstr "Zobraziť 2160p 30fps ako" -#, fuzzy msgid "Show 480/576p 24fps as" -msgstr "Zobrazit 1080p 24 fps ako" +msgstr "Zobraziť 480/576p 24fps ako" msgid "Show 720p 24fps as" -msgstr "Zobrazit 720p na 24 fps ako" +msgstr "Zobraziť 720p 24fps ako" msgid "Show CCcam Info in extensions?" -msgstr "Zobrazit CCcam info v rozšíreniach?" +msgstr "Zobraziť CCcam Info v rozšíreniach?" -#, fuzzy msgid "Show CI messages" -msgstr "Skryt CI správy" +msgstr "Zobraziť správy CI" msgid "Show Clients" -msgstr "Zobrazit klientov" +msgstr "Zobraziť klientov" msgid "Show Display Icons" -msgstr "Zobrazit ikony displeja" +msgstr "Zobraziť ikony displeja" msgid "Show EIT now/next in infobar" -msgstr "Zobrazit EIT aktuálny/nasledujúci v infopaneli" +msgstr "Zobraziť EIT aktuálny/nasledujúci v informačnej lište" -#, fuzzy msgid "Show Ecm info" -msgstr "Zobrazit informácie" +msgstr "Zobraziť ECM informáciu" -#, fuzzy msgid "Show Grid EPG" -msgstr "Multi EPG" +msgstr "Zobraziť mriežku EPG" msgid "Show Log" -msgstr "Zobrazit log" +msgstr "Zobraziť protokol" msgid "Show Log Manager in extensions list ?" -msgstr "Zobrazit manažér logov v zozname rozšírení ?" +msgstr "Zobraziť správcu protokolov v zozname rozšírení ?" msgid "Show Media playback Remaining/Elapsed as" -msgstr "Zobrazit prehrávanie médií Zostávajúci/Uplynulý ako" +msgstr "Zobraziť prehrávanie médií Zostávajúci/Uplynulý ako" msgid "Show MiniTV in the Front Display" -msgstr "" +msgstr "Zobraziť MiniTV na prednom displeji" -#, fuzzy msgid "Show Multi EPG" -msgstr "Multi EPG" +msgstr "Zobraziť Multi EPG" -#, fuzzy msgid "Show OScam/Ncam Info in extensions?" -msgstr "Zobrazit Oscam info v rozšíreniach?" +msgstr "Zobraziť OScam/Ncam info v rozšíreniach?" -#, fuzzy msgid "Show PIP" -msgstr "Zobrazit log" +msgstr "Zobraziť PiP" -#, fuzzy msgid "Show PIP in the Front Display" -msgstr "Zobrazit rádio prehrávac ..." +msgstr "Zobraziť PiP na prednom displeji" msgid "Show PVR status in Movie Player infobar" -msgstr "Zobrazit stav PVR v informacnom paneli prehrávaca filmov" +msgstr "Zobraziť stav PVR v informačnej lište prehrávača filmov" -msgid "Show RFmod setup..." -msgstr "Zobrazit nastavenie RF módu..." +msgid "Show RFmod setup" +msgstr "Zobraziť nastavenie RF modulátora" msgid "Show Readers/Proxies" -msgstr "Zobrazit cítacky/proxy" +msgstr "Zobraziť čítačky/proxy" msgid "Show SD as" -msgstr "Zobrazit SD ako" +msgstr "Zobraziť SD ako" -#, fuzzy msgid "Show Single EPG" -msgstr "Jeden EPG" +msgstr "Zobraziť samostatné EPG" -#, fuzzy msgid "Show Software Update in Extensions" -msgstr "Zobrazit úlohy v ponuke rozšírení" +msgstr "Zobraziť aktualizáciu softvéru v rozšíreniach" -msgid "" -"Show Software Update in Extensions (blue button menu). 'yes' adds it " -"permanently. 'only when available' only shows it when updates are known to " -"be available based on update polling." -msgstr "" +msgid "Show Software Update in Extensions (blue button menu). 'yes' adds it permanently. 'only when available' only shows it when updates are known to be available based on update polling." +msgstr "Zobraziť aktualizáciu softvéru v rozšíreniach (modré tlačidlo ponuky). 'áno' ho pridá natrvalo. 'iba keď je k dispozícii' zobrazí sa len vtedy, keď je známe, že sú k dispozícii aktualizácie na základe prieskumu aktualizácií." msgid "Show Time Remaining/Elapsed" -msgstr "Zobrazit zostávajúci/uplynulý cas" +msgstr "Zobraziť čas zostávajúci/uplynulý" -#, fuzzy msgid "Show Timer List" -msgstr "Zobrazit zoznam casovacov" +msgstr "Zobraziť zoznam časovača" msgid "Show Transponder Remaining/Elapsed as" -msgstr "Zobraz Transpondér zostávajúci/uplynulý ako" +msgstr "Zobraziť zostávajúci/uplynulý transpondér ako" msgid "Show True/False as graphical switch" -msgstr "" +msgstr "Zobraziť Pravdivé/Nepravdivé ako grafický prepínač" msgid "Show VCR scart on main menu" -msgstr "Zobrazit VCR scart v hlavnom menu" +msgstr "Zobraziť VCR scart v hlavnej ponuke" msgid "Show ViX spinning logo when the system is busy." -msgstr "Zobrazit animované logo ViX , ked je systém zaneprázdnený." +msgstr "Zobraziť rotujúce logo ViX, ked je systém zaneprázdnený." msgid "Show WLAN status" -msgstr "Zobrazit stav WLAN" +msgstr "Zobraziť stav WLAN" -#, fuzzy msgid "Show alternatives" -msgstr "zobrazit alternatívy" +msgstr "Zobraziť alternatívy" msgid "Show animation while busy" -msgstr "Zobrazovat animáciu pri zaneprázdnení" +msgstr "Zobraziť animáciu pri zaneprázdnení" -#, fuzzy msgid "Show autotimer list" -msgstr "Zobrazit zoznam autocasovacov" +msgstr "Zobraziť zoznam automatických časovačov" -#, fuzzy msgid "Show background behind subtitles" -msgstr "Zobrazovat pozadie v režime rádia" +msgstr "Zobraziť pozadie za titulkami" msgid "Show background in Radio mode" -msgstr "Zobrazovat pozadie v režime rádia" +msgstr "Zobraziť pozadie v režime Rádio" msgid "Show background when tuned to a radio channel." -msgstr "Zobrazit pozadie pri rádio stanici." +msgstr "Zobrazenie pozadia pri naladení rozhlasového kanála." msgid "Show bouquet on launch" -msgstr "Zobrazit prehladu pri spustení" +msgstr "Zobraziť prehľad pri spustení" msgid "Show channel number in infobar" -msgstr "Zobrazit císlo stanice v infopaneli" +msgstr "Zobraziť číslo stanice v informačnej lište" msgid "Show channel numbers in channel selection" -msgstr "Vo výbere staníc zobrazit císlo stanice" +msgstr "Zobraziť čísla kanálu vo výbere kanálov" msgid "Show columns" -msgstr "Zobrazit stlpce" +msgstr "Zobraziť stĺpce" -#, fuzzy msgid "Show crypto icons" -msgstr "Zobrazovat ikony typu služby" +msgstr "Zobraziť ikony kódovania" msgid "Show crypto info in infobar" -msgstr "Zobrazit informácie o kódovaní v informacnom paneli" +msgstr "Zobraziť informácie o kódovaní v informačnej lište" #, fuzzy +msgctxt "problem trans" msgid "Show default after description" -msgstr "zobrazit rozšírený opis" +msgstr "Zobraziť predvolené po popise" -#, fuzzy msgid "Show default on new line" -msgstr "Zobrazit informacný riadok" +msgstr "Zobraziť predvolené na novom riadku" -#, fuzzy msgid "Show description for next event)" -msgstr "Prejst na nasledujúcu udalost" +msgstr "Zobraziť popis nadchádzajúcej udalosti" -#, fuzzy msgid "Show description for previous event)" -msgstr "Prejst na predchádzajúci program" +msgstr "Zobraziť popis predchádzajúcej udalosti" msgid "Show detailed event info" -msgstr "Zobrazit podrobné informácie o programe" +msgstr "Zobraziť podrobné informácie o udalosti" msgid "Show encryption info in the infobar (when supported by the skin)." -msgstr "" -"Ak povolené, na informacnom paneli sa zobrazí informácia o kódovaní (ak je " -"podporované zvoleným vzhladom)." +msgstr "Zobrazenie informácií o kódovaní v informačnej lište (ak to vzhľad podporuje)." msgid "Show event details" -msgstr "Zobrazit detaily o programe" +msgstr "Zobraziť detaily o udalosti" -#, fuzzy msgid "Show event genre information" -msgstr "Informácie správcu softvéru" +msgstr "Zobraziť informácie o žánri udalosti" -#, fuzzy msgid "Show event info plugins" -msgstr "Zobrazit informacný riadok" +msgstr "Zobraziť doplnky s informáciami o udalostiach" msgid "Show event-progress in channel selection" -msgstr "Vo výbere staníc zobrazit priebeh programu" +msgstr "Zobraziť priebeh udalosti vo výbere kanála" msgid "Show extended description" -msgstr "zobrazit rozšírený opis" +msgstr "Zobraziť rozšírený popis" -#, fuzzy msgid "Show extension selection" -msgstr "Zobrazit rozšírenia..." +msgstr "Zobraziť výber rozšírenia" -msgid "Show extensions..." -msgstr "Zobrazit rozšírenia..." +msgid "Show extensions" +msgstr "Zobraziť rozšírenia" -#, fuzzy msgid "Show favourites list" -msgstr "zrušit úpravu oblúbených" +msgstr "Zobraziť zoznam obľúbených" -#, fuzzy msgid "Show help" -msgstr "Zobrazit EPG..." +msgstr "Zobraziť nápovedu" msgid "Show icon for new/unseen items" -msgstr "Zobrazit ikonu pre nové položky" +msgstr "Zobraziť ikonu pre nové/neviditeľné položky" -#, fuzzy msgid "Show in Standby" -msgstr "Automaticky pohotovostný režim" +msgstr "Zobraziť v pohotovostnom režime" -#, fuzzy msgid "Show in extensions" -msgstr "Zobrazit v zozname rozšírení?" +msgstr "Zobraziť v rozšíreniach" msgid "Show in extensions list ?" -msgstr "Zobrazit v zozname rozšírení?" +msgstr "Zobraziť v zozname rozšírení?" msgid "Show info" -msgstr "Zobrazit informácie" +msgstr "Zobraziť informácie" msgid "Show info line" -msgstr "Zobrazit informacný riadok" +msgstr "Zobraziť informačný riadok" -#, fuzzy msgid "Show infobar EPG" -msgstr "Informacný panel EPG" +msgstr "Zobraziť informačnú lištu EPG" msgid "Show infobar on channel change" -msgstr "Zobrazit informácie pri zmene stanice" +msgstr "Zobraziť informačnú lištu pri zmene stanice" msgid "Show infobar on event change" -msgstr "Zobrazit informácie pri zmene programu" +msgstr "Zobraziť informačnú lištu pri zmene udalosti" msgid "Show infobar on skip forward/backward" -msgstr "Zobrazit informácie pri skoku vpred, vzad" +msgstr "Zobraziť informačnú lištu pri skoku vpred/vzad" msgid "Show job tasks in extensions" -msgstr "Zobrazit úlohy v ponuke rozšírení" +msgstr "Zobraziť úlohy v rozšíreniach" -#, fuzzy msgid "Show list of similar programs" -msgstr "Zobrazit zoznam casovacov." +msgstr "Zobraziť zoznam podobných programov" msgid "Show live tv when movie stopped" -msgstr "Zobrazit TV ked sa zastaví film." +msgstr "Zobraziť živé tv vysielanie pri zastavení filmu" msgid "Show menu" -msgstr "Zobrazit menu" +msgstr "Zobraziť ponuku" -#, fuzzy msgid "Show menu numbers" -msgstr "Zobrazit menu" +msgstr "Zobraziť čísla ponuky" msgid "Show message when recording starts" -msgstr "Zobrazit správu pri zacatí nahrávania" +msgstr "Zobraziť správu pri začatí nahrávania" -#, fuzzy msgid "Show movie lengths in movie list" -msgstr "Zobrazit dlžky filmov v zozname filmov" +msgstr "Zobraziť dĺžky filmov v zozname filmov" -#, fuzzy msgid "Show movies" -msgstr "Zobrazit menu" +msgstr "Zobraziť filmy" -msgid "Show network mounts ..." -msgstr "Zobrazit sietové prípojné body ..." +msgid "Show network mounts " +msgstr "Zobraziť sieťové prípojné body " -#, fuzzy msgid "Show notifications" -msgstr "Zobrazovat ikony typu služby" +msgstr "Zobraziť upozornenia" -msgid "" -"Show on-screen notifications (pop up) to warn the OpenTV download is in " -"progress." -msgstr "" +msgid "Show on-screen notifications (pop up) to warn the OpenTV download is in progress." +msgstr "Zobraziť upozornenia na obrazovke (vyskakujúce okienko), ktoré upozorňujú na prebiehajúce sťahovanie OpenTV." -#, fuzzy msgid "Show or hide the extended description, (skin dependant)." -msgstr "" -"Zobrazit alebo skryt rozšírený popis (ak túto funkciu podporuje vzhlad)" +msgstr "Zobraziť alebo skryť rozšírený popisu (závislé na vzhľade)." msgid "Show picon background color" -msgstr "Zobrazit farbu pozadia picony" +msgstr "Zobraziť farbu pozadia piktogramu" -#, fuzzy msgid "Show picons during channel number input" -msgstr "Zobrazovat picony v zozname staníc" +msgstr "Zobraziť piktogramy počas zadávania čísla kanála" msgid "Show picons in service list" -msgstr "Zobrazovat picony v zozname staníc" +msgstr "Zobraziť piktogramy v zozname staníc" -#, fuzzy msgid "Show picons in the movie list." -msgstr "Zobrazovat picony v zozname staníc" +msgstr "Zobraziť piktogramy v zozname filmov." -#, fuzzy msgid "Show picons in timer list" -msgstr "Zobrazovat picony v zozname staníc" +msgstr "Zobraziť piktogramy v zozname časovača" msgid "Show positioner movement" -msgstr "Zobrazit otácanie motora" +msgstr "Zobraziť pohyb polohovacieho zariadenia" -#, fuzzy msgid "Show positioner position" -msgstr "Zobrazit otácanie motora" +msgstr "Zobraziť pozíciu polohovacieho zariadenia" -#, fuzzy -msgid "Show program information..." -msgstr "zobrazit informácie o programe..." +msgid "Show program information" +msgstr "Zobraziť programové informácie" -#, fuzzy msgid "Show record indicator" -msgstr "Zobrazit druhý infopanel" +msgstr "Zobraziť indikátor záznamu" -#, fuzzy msgid "Show recorded movies" -msgstr "Prehrat nahrané filmy..." +msgstr "Zobraziť nahrané filmy" -#, fuzzy msgid "Show screen path" -msgstr "Zobrazit šetric obrazovky" +msgstr "Zobraziť cestu na obrazovke" msgid "Show screensaver" -msgstr "Zobrazit šetric obrazovky" +msgstr "Zobraziť šetrič obrazovky" msgid "Show second infobar" -msgstr "Zobrazit druhý infopanel" +msgstr "Zobraziť druhý informačný panel" -#, fuzzy msgid "Show select audio track" -msgstr "Zvolte zvukovú stopu" +msgstr "Zobraziť vybranú zvukovú stopu" -#, fuzzy msgid "Show service list" -msgstr "Zobrazovat picony v zozname staníc" +msgstr "Zobraziť zoznam staníc" -#, fuzzy msgid "Show service list or movies" -msgstr "Zobrazovat ikony typu služby" +msgstr "Zobraziť zoznam staníc alebo filmov" msgid "Show service type icons" -msgstr "Zobrazovat ikony typu služby" +msgstr "Zobraziť ikony typu stanice" -#, fuzzy msgid "Show setup default values" -msgstr "Zobrazit detaily o programe" +msgstr "Zobraziť predvolené hodnoty nastavenia" msgid "Show shutdown menu" -msgstr "Zobrazit menu vypnutia" +msgstr "Zobraziť ponuku vypnutia" -#, fuzzy -msgid "Show single channel EPG..." -msgstr "Jeden EPG" +msgid "Show single channel EPG" +msgstr "Zobrazí EPG pre jeden kanál" msgid "Show single epg for current channel" -msgstr "Zobrazit EPG pre aktuálnu stanicu..." +msgstr "Zobraziť samostatné EPG pre aktuálny kanál" msgid "Show source packages" -msgstr "Zobrazit zdrojové balícky" +msgstr "Zobraziť zdrojové balíčky" msgid "Show status icons in movie list" -msgstr "Zobrazit ikony stavu v zozname filmov" +msgstr "Zobraziť ikony stavu v zozname filmov" -#, fuzzy msgid "Show stream clients" -msgstr "Streamujúci klienti" +msgstr "Zobraziť klientov streamu" -#, fuzzy msgid "Show sub-menu" -msgstr "Zobrazit menu" +msgstr "Zobraziť podponuku" -#, fuzzy msgid "Show subservice selection" -msgstr "Zobrazovat ikony typu služby" +msgstr "Zobraziť výber podslužby" -#, fuzzy -msgid "Show subservice selection list..." -msgstr "Zobrazovat ikony typu služby" +msgid "Show subservice selection list" +msgstr "Zobraziť zoznam výberu podslužby" -#, fuzzy msgid "Show subtitle selection" -msgstr "Výber titulkov" +msgstr "Zobraziť výber titulkov" -#, fuzzy -msgid "Show the DreamPlex player..." -msgstr "Zobrazit prehrávac médií..." +msgid "Show the DreamPlex player" +msgstr "Zobraziť prehrávač DreamPlex" -#, fuzzy msgid "Show the list of autotimers." -msgstr "Zobrazit zoznam AutoCasovacov." +msgstr "Zobraziť zoznam automatických časovačov." + +msgid "Show the list of timers" +msgstr "Zobraziť zoznam časovačov" msgid "Show the list of timers." -msgstr "Zobrazit zoznam casovacov." +msgstr "Zobraziť zoznam časovačov." -msgid "Show the plugin browser.." -msgstr "Zobrazit prehliadac modulov..." +msgid "Show the plugin browser" +msgstr "Zobraziť prehliadač doplnkov" -msgid "Show the radio player..." -msgstr "Zobrazit rádio prehrávac ..." +msgid "Show the radio player" +msgstr "Zobraziť rádio prehrávač" -msgid "" -"Show the service information on two lines in the channel selection screen. " -"You can choose between the current event description below the channel name, " -"or the current event description next to the channel name, and the next " -"event description on the second line." -msgstr "" +msgid "Show the service information on two lines in the channel selection screen. You can choose between the current event description below the channel name, or the current event description next to the channel name, and the next event description on the second line." +msgstr "Zobrazenie informácií o službe na dvoch riadkoch na obrazovke výberu kanála. Môžete si vybrať medzi popisom aktuálnej udalosti pod názvom kanála alebo popisom aktuálnej udalosti vedľa názvu kanála a popisom ďalšej udalosti v druhom riadku." -msgid "Show the tv player..." -msgstr "Zobrazit TV prehrávac ..." +msgid "Show the tv player" +msgstr "Zobraziť TV prehrávač" msgid "Show time elapsed as positive" -msgstr "Zobrazit uplynulý cas kladne" +msgstr "Zobraziť uplynulý čas kladne" msgid "Show time in 24 hour clock format." -msgstr "" +msgstr "Zobraziť čas v 24-hodinovom formáte." msgid "Show time remaining/elapsed" -msgstr "Zobrazit zostávajúci/uplynulý cas" +msgstr "Zobraziť zostávajúci/uplynulý čas" -#, fuzzy msgid "Show timer list" -msgstr "Zobrazit zoznam casovacov" +msgstr "Zobraziť zoznam časovača" msgid "Show translation packages" -msgstr "Zobrazit lokalizované balícky" +msgstr "Zobraziť preložené balíčky" -#, fuzzy msgid "Show transponder info" -msgstr "zobrazit infor. o transpondéri" +msgstr "Zobraziť informácie o transpondéri" msgid "Show transponder remaining/elapsed as" -msgstr "Zobraz transpondér zostávajúci/uplynulý ako" +msgstr "Zobraziť transpondér zostávajúci/uplynulý ako" msgid "Show two lines per entry" -msgstr "" +msgstr "Zobraziť dva riadky na položku" msgid "Show warning when timeshift is stopped" -msgstr "Zobrazit varovanie, ked sa zastaví casový posun" +msgstr "Zobraziť varovanie, ked sa zastaví časový posun" + +msgid "Show/Game Show/Leisure hobbies" +msgstr "Šou/Herná šou/Voľnočasové záľuby" -#, fuzzy msgid "Show/Games show" -msgstr "Zobrazit prehliadku hier" +msgstr "Šou/Hry" -#, fuzzy msgid "Show/hide infobar" -msgstr "Vždy skryt informacný panel" +msgstr "Zobraziť/skryť informačnú lištu" msgid "Shows live tv or informations on LCD." -msgstr "" +msgstr "Zobraziť živé tv vysielanie alebo informácie na LCD displeji." -#, fuzzy msgid "Shows the icons when new/unseen, otherwise it will not show an icon." -msgstr "Zobrazuje ikony pri nových/nepozretých, inak sa ikony nezobrazia ." +msgstr "Zobraziť ikony, keď sú nové/neviditeľné, inak ikonu nezobrazí." msgid "Shows the state of your wireless LAN connection.\n" -msgstr "Zobrazuje stav pripojenia bezdrôtovej LAN.\n" +msgstr "Zobraziť stav pripojenia bezdrôtovej LAN.\n" msgid "Shows the watched status of the movie." -msgstr "Zobrazit stav sledovaného filmu." +msgstr "Zobraziť stav sledovaného filmu." msgid "Shuffle playlist" -msgstr "Premiešat playlist" +msgstr "Náhodné prehrávanie" -#, fuzzy msgid "Shut Down" -msgstr "Vypnút" +msgstr "Vypnúť" msgid "Side by Side" -msgstr "Vedla Seba" +msgstr "Vedľa seba" msgid "Side by side" -msgstr "Vedla seba" +msgstr "Vľavo a Vpravo" msgid "Sierra Leone" msgstr "" msgid "Signal OK, proceeding" -msgstr "Signál OK, pokracujem" +msgstr "Signál OK, pokračovanie" -#, fuzzy msgid "Signal finder" -msgstr "Detektor signálu" +msgstr "Vyhľadávač signálu" msgid "Signal quality" msgstr "Kvalita signálu" @@ -13256,195 +13017,196 @@ msgid "Signal strength:" msgstr "Sila signálu:" msgid "Signal: " -msgstr "Signál:" +msgstr "Signál: " msgid "Similar" msgstr "Podobné" msgid "Similar broadcasts:" -msgstr "Podobné programy:" +msgstr "Podobné vysielania:" msgid "Simple" -msgstr "jednoduchý" +msgstr "Jednoduchý" -#, fuzzy msgid "Simple fade" -msgstr "jednoduchý" +msgstr "Jednoduché miznutie" msgid "Simple titleset (compatibility for legacy players)" -msgstr "Jednoduchá sada titulov (kompatibilita so staršími prehrávacmi)" +msgstr "Jednoduchá sada titulov (kompatibilita so staršími prehrávačmi)" -#, fuzzy msgid "Simple zoom" -msgstr "jednoduchý" +msgstr "Jednoduché priblíženie" -#, fuzzy msgid "Singapore" -msgstr "Jeden" +msgstr "Singapúr" msgid "Single" -msgstr "Jeden" +msgstr "Jednen" msgid "Single EPG" -msgstr "Jeden EPG" +msgstr "Samostatné EPG" -#, fuzzy msgid "Single core" -msgstr "Jeden" +msgstr "Jedno jadro" msgid "Single satellite" -msgstr "jeden satelit" +msgstr "Jeden satelit" msgid "Single step (GOP)" msgstr "Jeden krok (GOP)" msgid "Sint Maarten (Dutch part)" -msgstr "" +msgstr "Sint Maarten (holandská časť)" + +msgid "Sitcom" +msgstr "Situačný komiks" msgid "Site latitude" -msgstr "Zemepisná šírka" +msgstr "Zemepisná šírka stanoviska" msgid "Site longitude" -msgstr "Zemepisná dlžka" +msgstr "Zemepisná dĺžka stanoviska" + +msgid "Sketches" +msgstr "Skice" + +msgid "Skiing" +msgstr "Lyžovanie" -#, fuzzy msgid "Skin" -msgstr "Vzhlady" +msgstr "Vzhľad" + +msgid "Skin Selection" +msgstr "Výber vzhľadu" -#, fuzzy msgid "Skin Selection Actions" -msgstr "Zvolte umiestnenie" +msgstr "Akcie výberu vzhľadu" msgid "Skin Setting" -msgstr "Nastavenie vzhladu" - -#, fuzzy -msgid "Skin Setup" -msgstr "Nastavenie vzladu" +msgstr "Nastavenie vzhľadu" -#, fuzzy msgid "Skin install" -msgstr "Odinštalovat" +msgstr "Inštalácia vzhľadu" msgid "Skin setup" -msgstr "Nastavenie vzladu" +msgstr "Nastavenie vzhľadu" -#, fuzzy, python-format +#, python-format msgid "Skin:\t%s" -msgstr "Vzhlady" +msgstr "Vzhľad:\t%s" -#, fuzzy msgid "SkinSelector: Restart GUI" -msgstr "Reštartovat užívatelské rozhranie" +msgstr "Výber vzhľadu: Reštartovať GUI (grafické rozhranie)" msgid "Skins" -msgstr "Vzhlady" +msgstr "Vzhľady" -#, fuzzy msgid "Skip back" -msgstr "skok vzad" +msgstr "Preskočiť späť" -#, fuzzy msgid "Skip back " -msgstr "skok vzad" +msgstr "Skok späť " -#, fuzzy msgid "Skip back (enter time in minutes)" -msgstr "skok vzad (zadajte cas)" +msgstr "Skok späť (zadať čas v minútach)" msgid "Skip empty services" -msgstr "Vynechat prázdne služby" +msgstr "Vynechať prázdne stanice" -#, fuzzy msgid "Skip forward" -msgstr "skok vpred" +msgstr "Preskočiť vpred" -#, fuzzy msgid "Skip forward " -msgstr "skok vpred" +msgstr "Skok vpred " -#, fuzzy msgid "Skip forward (enter time in minutes)" -msgstr "skok vpred (zadajte cas)" +msgstr "Skok vpred (zadať čas v minútach)" -msgid "" -"Skip internet connection check (disables automatic package installation)" -msgstr "" -"Prekocit kontrolu dostupnosti internetu (zabráni automatickej inštalácii " -"balíckov)" +msgid "Skip internet connection check (disables automatic package installation)" +msgstr "Vynechať kontrolu internetového pripojenia (zakáže automatickú inštaláciu balíkov)" + +msgid "Skip jumping to live TV while timeshifting with plugins" +msgstr "Preskočenie prechodu na živé tv vysielanie počas časového posunu pomocou doplnkov" msgid "Skip, pause, rewind and fast forward" -msgstr "" +msgstr "Preskočenie, pozastavenie, pretáčanie dozadu a rýchle prevíjanie dopredu" msgid "Skip, pause, rewind and fast forward timeshift" +msgstr "Preskočenie, pozastavenie, pretáčanie a rýchly posun vpred" + +msgid "Slapstick" msgstr "" -#, fuzzy msgid "Sleep" -msgstr "Oneskorenie prechodu do pohotovostného režimu" +msgstr "Spánok" msgid "Sleep delay" msgstr "Oneskorenie prechodu do pohotovostného režimu" msgid "Slide drop" -msgstr "" +msgstr "Pokles snímky" msgid "Slide from left" -msgstr "" +msgstr "Posun zľava" msgid "Slide left to right" -msgstr "" +msgstr "Posúvanie zľava doprava" msgid "Slide picture in loop" -msgstr "Prehrávat obrázky v slucke" +msgstr "Posúvanie obrázku v slučke" msgid "Slide right to left" -msgstr "" +msgstr "Posúvajte sprava doľava" msgid "Slide show interval (sec.)" -msgstr "Interval prezentácie (sek.)" +msgstr "Interval zobrazenia snímok (sek.)" -#, fuzzy msgid "Slide top to bottom" -msgstr "Hore a dole" +msgstr "Posunutie zhora nadol" msgid "Slim" -msgstr "" +msgstr "Štíhly" #, python-format msgid "Slot %d" -msgstr "Slot %d" +msgstr "" -#, fuzzy, python-format -msgid "Slot%s %s: %s - %s mode%s" -msgstr "DiSEqC port %s: %s" +#, python-format +msgid "Slot %s / FBC in %s" +msgstr "Slot %s / FBC v %s" -#, fuzzy, python-format -msgid "Slot%s %s: %s%s" -msgstr "DiSEqC port %s: %s" +#, python-format +msgid "Slot %s / FBC virtual %s" +msgstr "" + +#, python-format +msgid "Slot%s %s %s: %s - %s mode%s" +msgstr "" + +#, python-format +msgid "Slot%s %s %s: %s%s" +msgstr "" msgid "Slovak" -msgstr "Slovencina" +msgstr "Slovensky" -#, fuzzy msgid "Slovakia" -msgstr "Slovencina" +msgstr "Slovensko" -#, fuzzy msgid "Slovenia" -msgstr "Slovincina" +msgstr "Slovinsko" msgid "Slovenian" -msgstr "Slovincina" +msgstr "Slovinsky" msgid "Slow" -msgstr "pomaly" +msgstr "Pomaly" msgid "Slow motion speeds" msgstr "Rýchlosti spomalenia prehrávania" msgid "Small" -msgstr "" +msgstr "Malé" msgid "Small progress" msgstr "Malý pokrok" @@ -13453,34 +13215,50 @@ msgid "Smartcard PIN" msgstr "" msgid "Smooth" +msgstr "Hladký" + +msgid "Snooker" +msgstr "" + +#, python-format +msgid "SoC:\t%s\n" msgstr "" +msgid "Soap" +msgstr "Mydlo" + +msgid "Soap Opera" +msgstr "Telenovela" + +msgid "Soccer" +msgstr "Futbal" + msgid "Social/Political/Economics" -msgstr "Sociálne/Politické problémy/Ekonómia (všeobecne)" +msgstr "Sociálne/Politické/Ekonomické" + +msgid "Society & Culture" +msgstr "Spoločnosť a Kultúra" -#, fuzzy msgid "Softcam Actions" -msgstr "Nastavenia SoftCAMu" +msgstr "Akcie SoftCAMu" -#, fuzzy msgid "Softcam Script" -msgstr "SoftcamKontrola" +msgstr "Skript SoftCAMu" msgid "Softcam settings" msgstr "Nastavenia SoftCAMu" msgid "SoftcamCheck" -msgstr "SoftcamKontrola" +msgstr "Kontrola SoftCAMu" -#, fuzzy msgid "SoftcamManager" -msgstr "Manažér systémových záznamov" +msgstr "Manažér SoftCAMov" msgid "SoftcamScript enable/disable cam restart" -msgstr "" +msgstr "SoftcamScript povolí/zakáže reštart softcamd" msgid "SoftcamScript select camscript" -msgstr "" +msgstr "SoftcamScript výber camscriptu" msgid "Software" msgstr "Softvér" @@ -13495,266 +13273,245 @@ msgid "Software manager setup" msgstr "Nastavenie správcu softvéru" msgid "Software restore" -msgstr "Obnovit softvér" +msgstr "Obnoviť softvér" msgid "Software update" -msgstr "Aktualizovat softvér" +msgstr "Aktualizovať softvér" msgid "Software update settings" -msgstr "Nastavenie aktualizácie softvéru" +msgstr "Nastavenia aktualizácie softvéru" msgid "Softwaremanager information" msgstr "Informácie správcu softvéru" msgid "Solomon Islands" -msgstr "" +msgstr "Šalamúnove ostrovy" msgid "Somalia" -msgstr "" +msgstr "Somálsko" -msgid "" -"Some TVs do not wake from standby when they receive the 'Image View On' " -"command. If this is the case try the 'Text View On' command instead." -msgstr "" +msgid "Some TVs do not wake from standby when they receive the 'Image View On' command. If this is the case try the 'Text View On' command instead." +msgstr "Niektoré televízory sa po prijatí príkazu 'Image View On' neprebudia z pohotovostného režimu. V takom prípade skúste namiesto toho použiť príkaz 'Text View On'." msgid "Some plugins are not available:\n" -msgstr "Niektoré moduly nie sú dostupné:\n" +msgstr "Niektoré doplnky nie sú dostupné:\n" -#, fuzzy -msgid "" -"Sorry feeds are down for maintenance, please try again later. If this issue " -"persists please check openvix.co.uk or world-of-satellite.com." -msgstr "Prepácte, feedy sú docasne odstavené z dôvodu údržby, skúste neskôr." +msgid "Sorry feeds are down for maintenance, please try again later. If this issue persists please check openvix.co.uk or world-of-satellite.com." +msgstr "Ospravedlňujeme sa, že zdroje sú odstavené z dôvodu údržby, skúste to prosím neskôr. Ak tento problém pretrváva, skontrolujte prosím openvix.co.uk alebo world-of-satellite.com." -#, fuzzy -msgid "" -"Sorry feeds seem be in an unstable state, if you wish to use them please " -"enable 'Allow unstable (experimental) updates' in \"Software update " -"settings\"." -msgstr "" -"Prepácte, feedy sa zdajú byt v nestabilnom stave, ak si želáte použit ich " -"povolte prosím \"Povolit nestabilné aktualizácie\" v nastavení aktualizácie " -"softvéru." +msgid "Sorry feeds seem be in an unstable state, if you wish to use them please enable 'Allow unstable (experimental) updates' in \"Software update settings\"." +msgstr "Ospravedlňujeme sa, že zdroje sa zdajú byť v nestabilnom stave, ak ich chcete používať, povoľte 'Povoliť nestabilné (experimentálne) aktualizácie' v 'Nastavenia aktualizácie softvéru'." -#, fuzzy msgid "Sorry the feeds are down for maintenance" -msgstr "Prepácte, feedy sú docasne odstavené z dôvodu údržby." +msgstr "Ospravedlňujeme sa, že zdroje sú vypnuté z dôvodu údržby" -#, fuzzy -msgid "" -"Sorry the feeds seem to be in an unstable state, if you wish to use them " -"please enable 'Allow unstable (experimental) updates' in \"Software update " -"settings\"." -msgstr "" -"Prepácte, feedy sa zdajú byt v nestabilnom stave, ak si želáte použit ich " -"povolte prosím \"Povolit nestabilné aktualizácie\" v nastavení aktualizácie " -"softvéru." +msgid "Sorry the feeds seem to be in an unstable state, if you wish to use them please enable 'Allow unstable (experimental) updates' in \"Software update settings\"." +msgstr "Ospravedlňujeme sa, že zdroje sa zdajú byť v nestabilnom stave, ak ich chcete používať, povoľte 'Povoliť nestabilné (experimentálne) aktualizácie' v 'Nastavenia aktualizácie softvéru'." -#, fuzzy msgid "Sorry your Inadyn config is missing" -msgstr "Ospravedlnujeme sa, chýba konfigurácia Inadyn" +msgstr "Je nám ľúto, že vám chýba konfigurácia Inadyn" -#, fuzzy msgid "Sorry your MiniDLNA config is missing" -msgstr "Ospravedlnujeme sa, chýba konfigurácia MiniDLNA" +msgstr "Je nám ľúto, že vám chýba konfigurácia MiniDLNA" -#, fuzzy msgid "Sorry your uShare config is missing" -msgstr "Ospravedlnujeme sa, chýba konfigurácia uShare" +msgstr "Je nám ľúto, že vám chýba konfigurácia uShare" #, python-format msgid "Sorry, %s has not been installed!" -msgstr "Ospravedlnujeme sa, %s nebol nainštalovaný!" +msgstr "Je nám ľúto, %s nebol nainštalovaný!" msgid "Sorry, no backups found!" -msgstr "Ospravedlnujeme sa, neboli nájdené žiadne zálohy!" +msgstr "Je nám ľúto, žiadne zálohy sa nenašli!" msgid "Sorry, no details available!" -msgstr "Ospravedlnujeme sa, žiadne podrobnosti nie sú k dispozícii!" +msgstr "Je nám ľúto, nie sú k dispozícii žiadne podrobnosti!" msgid "Sorry, this tuner is in use." -msgstr "" +msgstr "Je nám ľúto, tento tuner sa používa." msgid "" "Sorry, your backup destination is not writeable.\n" "Please select a different one." msgstr "" -"Umiestnenie zálohy nie je zapisovatelné\n" -"Zvolte si iné umiestnenie." +"Je nám ľúto, cieľ zálohy nie je možné zapísať.\n" +"Prosím vyberte iné." msgid "Sort" -msgstr "Triedenie" +msgstr "Zoradiť" -#, fuzzy msgid "Sort EPG list" -msgstr "Usporiadat zoznam EPG:" +msgstr "Zoradiť zoznam EPG" msgid "Sort Trash by deletion time" -msgstr "" +msgstr "Zoradiť kôš podľa času vymazania" -#, fuzzy msgid "Sort by" -msgstr "Usporiadat zoznam podla" +msgstr "Zoradiť podľa" msgid "Sort by default" -msgstr "" +msgstr "Zoradiť podľa predvoleného nastavenia" msgid "Sort list by" -msgstr "Usporiadat zoznam podla" +msgstr "Zoradiť zoznam podľa" msgid "Sort list to default and exit?" -msgstr "" +msgstr "Zoradiť zoznam na predvolené a ukončiť?" -#, fuzzy msgid "Sort list:" -msgstr "Usporiadat zoznam podla" +msgstr "Zoradiť zoznam:" -#, fuzzy msgid "Sort menu" -msgstr "Zobrazit menu" +msgstr "Zoradiť ponuku" -#, fuzzy msgid "Sort menu screens" -msgstr "Triedit obrazovky ponúk abecedne" +msgstr "Zoradiť obrazovky ponuky" + +msgid "Sort order for help screen" +msgstr "Zoradiť triedenie pre obrazovku nápovedy" msgid "Sort plug-in browser alphabetically" -msgstr "V prehliadaci modulov triedit abecedne" +msgstr "Zoradiť prehliadač doplnkov abecedne" msgid "Sort plugins list to default?" -msgstr "" +msgstr "Zoradiť zoznam doplnkov na predvolené?" msgid "Sort setting screens alphabetically" -msgstr "Triedit obrazovky nastavení abecedne" +msgstr "Zoradiť obrazovky nastavena abecedne" -#, fuzzy msgid "Sort the EPG list" -msgstr "Usporiadat zoznam EPG:" +msgstr "Zoradiť zoznam EPG" msgid "Sound" msgstr "Zvuk" msgid "Sound carrier" -msgstr "Nosný kmitocet zvuku" +msgstr "Zvukový nosič" msgid "Source request" msgstr "Požiadavka zdroja" msgid "South" -msgstr "južne" +msgstr "Južne" msgid "South Africa" -msgstr "" +msgstr "Južná Afrika" msgid "South Georgia and the South Sandwich Islands" -msgstr "" +msgstr "Južná Georgia a Južné Sandwichove ostrovy" -#, fuzzy msgid "South Sudan" -msgstr "južne" +msgstr "Južný Sudán" msgid "Space used:" msgstr "Použitý priestor:" msgid "Spain" -msgstr "" +msgstr "Španielsko" msgid "Spanish" -msgstr "Španielcina" +msgstr "Španielsky" msgid "Special" -msgstr "" +msgstr "Špeciálne" #, fuzzy +msgctxt "problem trans" msgid "Special 1" -msgstr "Sériové císlo" +msgstr "Špeciálne znaky" #, fuzzy msgid "Special 2" -msgstr "Sériové císlo" +msgstr "Špeciálne 2" msgid "Speed:" +msgstr "Rýchlosť:" + +msgid "Spiele" +msgstr "" + +msgid "Spielfilm" msgstr "" #, fuzzy +msgctxt "problem trans" msgid "Split event detection (minutes)" -msgstr "Aktualizácie casu v minútach" +msgstr "Detekcia rozdelenej udalosti (minúty)" msgid "Split preview mode" -msgstr "Režim rozdelenia náhladu" +msgstr "Režim rozdelenia náhľadu" -#, fuzzy msgid "Splitscreen" -msgstr "Celá obrazovka" +msgstr "Rozdelená obrazovka" -#, fuzzy msgid "Sport" -msgstr "Športy" +msgstr "Šport" msgid "Sports" msgstr "Športy" -msgid "Sri Lanka" +msgid "Sports Magazines" +msgstr "Športové magazíny" + +msgid "Sprache" msgstr "" +msgid "Sri Lanka" +msgstr "Srí Lanka" + msgid "Standard" msgstr "Štandardné" -#, fuzzy -msgid "Standart list" -msgstr "Spustit test" +msgid "Standard list" +msgstr "Štandardný zoznam" msgid "Standby" msgstr "Pohotovostný režim" -#, fuzzy msgid "Standby & Restart" -msgstr "Vypnút, reštartovat" +msgstr "Pohotovostný režim a Reštartovanie" msgid "Standby / restart" msgstr "Pohotovostný režim / reštart" -#, fuzzy msgid "Standby LED" -msgstr "Pohotovostný režim" +msgstr "LED dióda pohotovostného režimu" msgid "Start" -msgstr "Spustit" +msgstr "Spustiť" msgid "Start Wizard - Screen Alignment" -msgstr "" +msgstr "Sprievodca spustením - Zarovnanie obrazovky" msgid "Start from the beginning" -msgstr "Spustit od zaciatku" +msgstr "Spustiť od začiatku" -#, fuzzy msgid "Start instant recording" -msgstr "Spustit nahrávanie?" +msgstr "Spustiť okamžité nahrávanie" msgid "Start offline decode" -msgstr "Spustit offline dekódovanie" +msgstr "Spustiť offline dekódovanie" msgid "Start recording?" -msgstr "Spustit nahrávanie?" +msgstr "Spustiť nahrávanie?" -#, fuzzy msgid "Start teletext" -msgstr "Spustit test" +msgstr "Spustiť teletext" msgid "Start test" -msgstr "Spustit test" +msgstr "Spustiť test" msgid "Start time" -msgstr "Zaciatok" +msgstr "Čas začiatku" msgid "Start timeshift" -msgstr "Spustit casový posun" +msgstr "Spustiť časový posun" msgid "Starting on" -msgstr "Zacína od" +msgstr "Začíname na" -#, fuzzy msgid "Starts in a few seconds" -msgstr "Spustit offline dekódovanie" +msgstr "Spustí sa za niekoľko sekúnd" msgid "Status" msgstr "Stav" @@ -13771,141 +13528,119 @@ msgstr "Krokovanie východne" msgid "Stepped west" msgstr "Krokovanie západne" -#, fuzzy msgid "Steps" -msgstr "Krok východne" +msgstr "Kroky" msgid "Stop" -msgstr "Zastavit" +msgstr "Zastaviť" msgid "Stop PiP" -msgstr "Ukoncit PiP" +msgstr "Zastaviť PiP" -#, fuzzy msgid "Stop Streams" -msgstr "Zastavit test" +msgstr "Zastaviť streamy" -#, fuzzy msgid "Stop all current recordings" -msgstr "Spustit nahrávanie?" +msgstr "Zastaviť všetky aktuálne nahrávania" -#, fuzzy msgid "Stop and delete all current recordings" -msgstr "Zastavit casovac nahrávania" +msgstr "Zastaviť a vymazať všetky aktuálne nahrávania" -#, fuzzy msgid "Stop and delete recording" -msgstr "Zastavit casovac nahrávania" +msgstr "Zastaviť a vymazať nahrávanie" -#, fuzzy msgid "Stop and delete recording:" -msgstr "Zastavit casovac nahrávania" +msgstr "Zastaviť a vymazať nahrávanie:" -#, fuzzy msgid "Stop and delete recordings:" -msgstr "Zastavit casovac nahrávania" +msgstr "Zastaviť a vymazať nahrávania:" -#, fuzzy msgid "Stop current event and disable future events" -msgstr "Zastavit aktuálnu udalost a zrušit nasledujúce udalosti" +msgstr "Zastaviť aktuálnu udalosť a zakázať nasledujúce udalosti" -#, fuzzy msgid "Stop current event but not future events" -msgstr "Zastavit aktuálnu udalost, ale nezrušit nasledujúce udalosti" +msgstr "Zastaviť aktuálnu udalosť, ale nie nasledujúce udalosti" msgid "Stop entry" -msgstr "Zastavit zadávanie" +msgstr "Zastaviť zadávanie" -#, fuzzy msgid "Stop live TV service" -msgstr "Vynechat prázdne služby" +msgstr "Zastaviť živé vysielanie TV stanice" -#, fuzzy msgid "Stop movie" -msgstr "Zobrazit menu" +msgstr "Zastaviť film" msgid "Stop play TV" -msgstr "" +msgstr "Zastaviť prehrávanie TV" msgid "Stop playing this movie?" -msgstr "Zastavit prehrávanie tohto filmu?" +msgstr "Zastaviť prehrávanie tohto filmu?" msgid "Stop previous broadcasted service on return to movie list." -msgstr "" +msgstr "Zastaviť predchádzajúcu vysielanú stanicu pri návrate do zoznamu filmov." msgid "Stop recording" -msgstr "Ukoncit nahrávanie" +msgstr "Zastaviť nahrávanie" msgid "Stop recording now" -msgstr "Ukoncit nahrávanie okamžite" +msgstr "Zastaviť okamžite nahrávanie" -#, fuzzy msgid "Stop recording:" -msgstr "Ukoncit nahrávanie" +msgstr "Zastaviť nahrávanie:" -#, fuzzy msgid "Stop recordings:" -msgstr "Ukoncit nahrávanie" +msgstr "Zastaviť nahrávania:" -#, fuzzy msgid "Stop service on return to movie list" -msgstr "Áno, vrátit sa do zoznamu filmov" +msgstr "Zastaviť stanicu pri návrate do zoznamu filmov" msgid "Stop test" -msgstr "Zastavit test" +msgstr "Zastaviť test" msgid "Stop testing plane after # failed transponders" -msgstr "Zastavit testovanie po # zlyhaných transpondéroch" +msgstr "Zastaviť testovanie roviny po # zlyhaných transpondéroch" msgid "Stop testing plane after # successful transponders" -msgstr "Zastavit testovanie po # úspešných transpondéroch" +msgstr "Zastaviť testovanie roviny po # úspešných transpondéroch" -#, fuzzy msgid "Stop this recording" msgid_plural "Stop these recordings" -msgstr[0] "Zastavit casovac nahrávania" -msgstr[1] "Zastavit casovac nahrávania" -msgstr[2] "Zastavit casovac nahrávania" +msgstr[0] "Zastaviť toto nahrávanie" +msgstr[1] "Zastaviť tieto nahrávania" +msgstr[2] "Zastavenie týchto nahrávaní" -#, fuzzy msgid "Stop this recording and delete it" msgid_plural "Stop these recordings and delete them" -msgstr[0] "Ukoncit nahrávanie a vymazat" -msgstr[1] "Ukoncit nahrávanie a vymazat" -msgstr[2] "Ukoncit nahrávanie a vymazat" +msgstr[0] "Zastaviť nahrávanie a vymazať ho" +msgstr[1] "Zastaviť nahrávania a vymazať ich" +msgstr[2] "Zastavenie nahrávaní a ich vymazanie" msgid "Stop timer recording" -msgstr "Zastavit casovac nahrávania" +msgstr "Zastaviť časovač nahrávania" msgid "Stop timeshift" -msgstr "Zastavit casový posun" +msgstr "Zastaviť časový posun" msgid "Stop timeshift while recording?" -msgstr "Zastavit timeshift pocas nahrávania?" +msgstr "Zastaviť časový posun počas nahrávania?" -#, fuzzy msgid "Stop using as startup service" -msgstr "nepoužívat túto stanicu po spustení" +msgstr "Zastaviť používanie ako stanice po spustení" msgid "Stopped" msgstr "Zastavené" -msgid "" -"Stops timeshift being used if a recording is in progress. (Advisable for USB " -"sticks)" -msgstr "" -"Ukoncí prebiehajúci casový posun, pocas nahrávania. (Vhodné pri použití USB " -"klúca)" +msgid "Stops timeshift being used if a recording is in progress. (Advisable for USB sticks)" +msgstr "Zastaví používanie časového posunu, ak prebieha nahrávanie. (Odporúča sa pre USB kľúče)" -#, fuzzy msgid "Storage" -msgstr "Zariadenia na ukladanie dát" +msgstr "Úložisko" msgid "Store at index" -msgstr "Uložit na pozícii" +msgstr "Uložiť na indexe" msgid "Store position" -msgstr "Uložit pozíciu" +msgstr "Umiestnenie pozície" msgid "Stored position" msgstr "Uložená pozícia" @@ -13914,50 +13649,58 @@ msgid "Stream" msgstr "Stream" msgid "Stream request" -msgstr "Žiadost o stream" +msgstr "Žiadosť o stream" #, fuzzy msgid "Stream-tv" -msgstr "Stream" +msgstr "Stream-tv" #, fuzzy msgid "Streaming" -msgstr "Stream" +msgstr "Streamovanie" #, fuzzy +msgctxt "problem trans" msgid "Streaming Clients" msgstr "Streamujúci klienti" -#, fuzzy msgid "Streaming Clients Info" -msgstr "Streamujúci klienti" +msgstr "Informácie o klientoch streamingu" msgid "Strict DLNA" msgstr "Striktný režim DLNA" msgid "Stripes" -msgstr "" +msgstr "Pruhy" msgid "Strongest position" msgstr "Najsilnejšia pozícia" -msgid "Subnet" +msgid "Strongman Contests" +msgstr "Silácke súťaže" + +msgid "Stumm" msgstr "" +msgid "Subnet" +msgstr "Podsieť" + #, fuzzy msgid "Subservice selection" -msgstr "Zobrazovat ikony typu služby" +msgstr "Výber podkanálov" msgid "Subservices" msgstr "Podkanály" #, fuzzy +msgctxt "problem trans" msgid "Subtitle" msgstr "Titulky" #, fuzzy +msgctxt "problem trans" msgid "Subtitle Long" -msgstr "Titulky" +msgstr "Titulky dlho" msgid "Subtitle alignment" msgstr "Zarovnanie titulkov" @@ -13966,260 +13709,282 @@ msgid "Subtitle border width" msgstr "Šírka okraja titulkov" msgid "Subtitle delay when timing is bad" -msgstr "Oneskorenie titulkov pri zlom casovaní" +msgstr "Oneskorenie titulkov pri zlom časovaní" msgid "Subtitle delay when timing lacks" -msgstr "Oneskorenie titulkov pri chýbajúcom casovaní" +msgstr "Oneskorenie titulkov pri nedostatočnom časovaní" msgid "Subtitle font size" -msgstr "Velkost titulkov" +msgstr "Veľkosť písma titulkov" msgid "Subtitle language selection 1" -msgstr "Volba jazyka titulkov 1" +msgstr "Výber jazyka titulkov 1" msgid "Subtitle language selection 2" -msgstr "Volba jazyka titulkov 2" +msgstr "Výber jazyka titulkov 2" msgid "Subtitle language selection 3" -msgstr "Volba jazyka titulkov 3" +msgstr "Výber jazyka titulkov 3" msgid "Subtitle language selection 4" -msgstr "Volba jazyka titulkov 4" +msgstr "Výber jazyka titulkov 4" msgid "Subtitle position" msgstr "Pozícia titulkov" -#, fuzzy msgid "Subtitle quickmenu" -msgstr "Rýchle nastavenie titulkov" +msgstr "Rýchla ponuka titulkov" msgid "Subtitle selection" msgstr "Výber titulkov" -msgid "Subtitle selection..." -msgstr "Výber titulkov..." - msgid "Subtitles" msgstr "Titulky" #, fuzzy msgid "Subtitles off" -msgstr "Titulky" +msgstr "Titulky vypnuté" #, fuzzy msgid "Subtitles on" -msgstr "Titulky" +msgstr "Titulky zapnuté" #, fuzzy msgid "Subtitles settings" msgstr "Nastavenia titulkov" msgid "Sudan" -msgstr "" +msgstr "Sudán" msgid "Sun" msgstr "Ne" msgid "Sunday" -msgstr "Nedela" +msgstr "Nedeľa" msgid "" "Sundtek - hardware blind scan in progress.\n" "Please wait(3-20 min) for the scan to finish." msgstr "" +"Sundtek - prebieha hardvérové slepé vyhľadávanie.\n" +" Počkajte, prosím, (3-20 minút) na dokončenie vyhľadávania." msgid "Support at" -msgstr " " - -#, fuzzy, python-format -msgid "Support at %s" -msgstr " " +msgstr "Podpora na" #, fuzzy msgid "Suriname" -msgstr "premenovat" +msgstr "Surinam" msgid "Svalbard and Jan Mayen" -msgstr "" +msgstr "Špicbergy a Ján Mayen" msgid "Swap PIP" -msgstr "" +msgstr "Zameniť PiP" msgid "Swap PiP and main picture" -msgstr "Zamenit PiP a hlavný obraz" +msgstr "Zameniť PiP a hlavný obraz" msgid "Swap SNR in '%' with SNR in 'db'" -msgstr "Zobrazovat SNR v percentách namiesto hodnoty v dB" +msgstr "Vymeniť SNR v '%' za SNR v 'db'" msgid "Swap services" -msgstr "Prehodit stanice" +msgstr "Prehodiť stanice" msgid "SwaptoNand" -msgstr "" +msgstr "SWAP do NAND" msgid "SwaptoSD" -msgstr "" +msgstr "SWAP do SD karty" msgid "Swaziland" -msgstr "" +msgstr "Svazijsko" -#, fuzzy msgid "Sweden" -msgstr "Švédcina" +msgstr "Švédsko" msgid "Swedish" -msgstr "Švédcina" +msgstr "Švédsky" + +msgid "Swimming" +msgstr "Plávanie" #, fuzzy msgid "Switch" -msgstr "Nastavenie prepínaca" +msgstr "Prepínač" msgid "Switch TV to correct input" -msgstr "Prepnút TV na správny vstup" +msgstr "Prepnúť TV na správny vstup" msgid "Switch between filelist/playlist" -msgstr "Prepnút medzi zoznamom súborov/playlistom" +msgstr "Prepínanie medzi zoznamom súborov/zoznamom prehrávok" #, fuzzy msgid "Switch between last two channels watched" -msgstr "Prepnút medzi zoznamom súborov/playlistom" +msgstr "Prepínanie medzi poslednými dvoma sledovanými kanálmi" msgid "Switch config" -msgstr "Nastavenie prepínaca" +msgstr "Nastavenie prepínača" #, fuzzy +msgctxt "problem trans" msgid "Switch the PiP to the next channel" -msgstr "Prepnút na nasledujúcu stanicu" +msgstr "Prepnúť PiP na nasledujúcu stanicu" #, fuzzy +msgctxt "problem trans" msgid "Switch the PiP to the previous channel" -msgstr "Prepnút na predchádzajúcu stanicu" +msgstr "Prepnúť PiP na predchádzajúcu stanicu" #, fuzzy +msgctxt "problem trans" msgid "Switch to Grid EPG" -msgstr "Multi EPG" +msgstr "Prepnuť na mriežku EPG" #, fuzzy msgid "Switch to HDMI in mode" -msgstr "Prepnút na zoznam súborov" +msgstr "Prepnúť do režimu HDMI vstup" #, fuzzy +msgctxt "problem trans" msgid "Switch to Multi EPG" -msgstr "Multi EPG" +msgstr "Prepnúť na Multi EPG" -#, fuzzy msgid "Switch to Single EPG" -msgstr "Jeden EPG" +msgstr "Prepnúť na samostatný EPG" #, fuzzy msgid "Switch to TV mode" -msgstr "Prepnút na zoznam súborov" +msgstr "Prepnúť do režimu TV" msgid "Switch to filelist" -msgstr "Prepnút na zoznam súborov" +msgstr "Prepnúť na zoznam súborov" msgid "Switch to next sub service" -msgstr "Prepnút na nasledujúci podkanál" +msgstr "Prepnúť na nasledujúci podkanál" msgid "Switch to playlist" -msgstr "Prepnút na zoznam prehrávok" +msgstr "Prepnúť na zoznam prehrávok" msgid "Switch to previous sub service" -msgstr "Prepnút na predchádzajúci podkanál" +msgstr "Prepnúť na predchádzajúci podkanál" #, fuzzy msgid "Switch to radio mode" -msgstr "Prepnút na predchádzajúcu stanicu" +msgstr "Prepnúť do režimu rádia" -#, fuzzy +# +msgctxt "problem trans" msgid "Switch to the next channel" -msgstr "Prepnút na nasledujúcu stanicu" +msgstr "Prepnúť na nasledujúcu stanicu" #, fuzzy +msgctxt "problem trans" msgid "Switch to the next channel in history" -msgstr "Prepnút na nasledujúcu stanicu z histórie" +msgstr "Prepnúť na nasledujúcu stanicu z histórie" #, fuzzy +msgctxt "problem trans" msgid "Switch to the previous channel" -msgstr "Prepnút na predchádzajúcu stanicu" +msgstr "Prepnúť na predchádzajúcu stanicu" #, fuzzy +msgctxt "problem trans" msgid "Switch to the previous channel in history" -msgstr "Prepnút na predchádzajúcu stanicu z histórie" +msgstr "Prepnúť na predchádzajúcu stanicu z histórie" msgid "Switzerland" -msgstr "" +msgstr "Švajčiarsko" msgid "Symbol rate" -msgstr "Symbolová rýchlost" +msgstr "Symbolová rýchlosť" #, fuzzy msgid "Symbol rate & FEC" -msgstr "Symbolová rýchlost" +msgstr "Symbolová rýchlosť a FEC" #, fuzzy msgid "Symbol rate:" -msgstr "Symbolová rýchlost" +msgstr "Symbolová rýchlosť:" msgid "Sync failure moving back to origin !" -msgstr "Chyba synchronizácie vraciam na pôvodné !" +msgstr "Zlyhanie synchronizácie pri presune späť na miesto pôvodu !" msgid "Sync time using" -msgstr "Synchronizácia casu pomocou" +msgstr "Synchronizácia času pomocou" msgid "Synchronize system time using transponder or internet." -msgstr "Synchronizácia systémového casu pomocou transpondéru alebo internetu." +msgstr "Synchronizácia systémového času pomocou transpondéru alebo internetu." msgid "Syrian Arab Republic" -msgstr "" +msgstr "Sýrska arabská republika" msgid "System" msgstr "Systém" #, fuzzy msgid "System & Modulation" -msgstr "Modulácia" +msgstr "Systém a Modulácia" -#, fuzzy, python-format +#, python-format msgid "System temp:\t%s" -msgstr "Teplota systému: %s" +msgstr "Teplota systému:\t%s" #, python-format msgid "System temperature: %s" -msgstr "Teplota systému: %s" +msgstr "Teplota v systéme: %s" msgid "System: " -msgstr "Systém" +msgstr "Systém: " -#, fuzzy msgid "T2MI PID" -msgstr "PMT PID" +msgstr "" msgid "T2MI PLP" msgstr "" -#, fuzzy msgid "T2MI PLP ID" -msgstr "PLP ID" - -msgid "T2MI RAW Mode" msgstr "" -msgid "TB" -msgstr "TB" +msgid "T2MI RAW Mode" +msgstr "T2MI režim RAW" msgid "TEXT" msgstr "" +msgid "TIMER" +msgstr "ČASOVAČ" + +msgid "TIMESHIFT" +msgstr "ČASOVÝ POSUN" + +msgid "TMDB search for current event" +msgstr "Nájsť aktuálnu udalosť v TMDb" + +#, fuzzy +msgid "TMDb Search" +msgstr "TMDb vyhľadávanie" + +#, fuzzy +msgid "TMDb search" +msgstr "Vyhľadávanie v TMDb" + +#, fuzzy +msgid "TMDb search for highlighted event" +msgstr "Vyhľadávanie zvýraznenej udalosti na TMDb" + #. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +#. PREKLADATELIA: Sem pridajte všetko, čo sa má zobraziť na obrazovke "prekladača", maximálne 6 riadkov (použite \n pre nový riadok) msgid "TRANSLATOR_INFO" -msgstr "Autor prekladu: Nicker 2016" +msgstr "" +"Autor prekladu: EnoSat 2023\n" +"Autor pôvodného prekladu: Nicker 2016" msgid "TS file is too large for ISO9660 level 1!" -msgstr "Súbor TS je príliš velký pre úroven 1 ISO9660!" +msgstr "Súbor TS je príliš veľký pre úroveň ISO9660 1!" msgid "TSID" -msgstr "TSID" +msgstr "" msgid "TUNING" msgstr "LADENIE" @@ -14231,10 +13996,20 @@ msgid "TV physical address report" msgstr "Výpis fyzickej adresy TV" msgid "TXT PID" -msgstr "PID teletextu" +msgstr "" + +#, fuzzy +msgid "TXT Subtitles page & lang" +msgstr "Teletextové titulky - stránka a jazyk" + +msgid "Tab" +msgstr "Tabuľka" + +msgid "Table Tennis" +msgstr "Stolný tenis" msgid "Table of contents for collection" -msgstr "Obsah kompilácie" +msgstr "Obsah kolekcie" msgid "Tags" msgstr "Štítky" @@ -14243,74 +14018,93 @@ msgid "Taiwan" msgstr "" msgid "Tajikistan" +msgstr "Tadžikistan" + +msgid "Talk" +msgstr "Rozhovor" + +#, fuzzy +msgid "Talk Show" +msgstr "Diskusná relácia" + +msgid "Tanz" msgstr "" msgid "Tanzania, United Republic of" -msgstr "" +msgstr "Tanzánia" msgid "Task warning on shutdown" +msgstr "Upozornenie na úlohu pri vypínaní" + +msgid "Technik" msgstr "" -#, fuzzy +msgid "Technology" +msgstr "Technológia" + msgid "Teletext" -msgstr "Vymazat" +msgstr "" msgid "Teletext subtitle color" msgstr "Farba teletextových titulkov" -#, fuzzy msgid "Telnet" -msgstr "Port služby telnet" +msgstr "" msgid "Telnet Interface" -msgstr "Služba telnet" +msgstr "Telnet rozhranie" msgid "Telnet Port" -msgstr "Port služby telnet" +msgstr "Port telnetu" msgid "Telnet Setup" msgstr "Nastavenie služby telnet" #, fuzzy msgid "Telnet interface" -msgstr "Služba telnet" +msgstr "Rozhranie telnetu" #, fuzzy msgid "Telnet port" msgstr "Port služby telnet" +#, fuzzy +msgid "Tennis" +msgstr "Tenis" + msgid "Terrestrial" msgstr "Pozemné" msgid "Test DiSEqC settings" -msgstr "Vyskúšat nastavenia DiSEqC" +msgstr "Vyskúšať nastavenia DiSEqC" msgid "Test mode" msgstr "Testovací režim" #, python-format msgid "Test the network configuration of your %s %s.\n" -msgstr "Otestovat sietovú konfiguráciu Vášho %s %s.\n" +msgstr "Otestovať sieťovú konfiguráciu Vášho %s %s.\n" msgid "Test type" msgstr "Typ testu" #, fuzzy msgid "Testscreens" -msgstr "Chránit obrazovky" +msgstr "Testovacie obrazovky" msgid "Testscreens that are helpfull to fine-tune your display" -msgstr "" +msgstr "Testovacie obrazovky, ktoré vám pomôžu doladiť zobrazenie" msgid "Text" -msgstr "Text" +msgstr "" #, fuzzy +msgctxt "problem trans" msgid "Text Grid EPG" -msgstr "Multi EPG" +msgstr "Textová mriežka EPG" msgid "Text View On" -msgstr "" +msgstr "Textové zobrazenie zapnuté" msgid "Text color" msgstr "Farba textu" @@ -14319,26 +14113,26 @@ msgid "Thai" msgstr "Thajsky" #, fuzzy +msgctxt "problem trans" msgid "Thailand" -msgstr "Thajsky" +msgstr "Thajsko" msgid "" "Thank you for using the wizard.\n" "Please press OK to continue." msgstr "" -"Dakujeme, že ste použili sprievodcu.\n" -"Pokracujte stlacením OK." +"Ďakujeme Vám, že ste použili sprievodcu.\n" +"Prosím stlačte OK pre pokračovanie." msgid "" "Thank you for using the wizard. Your %s %s is now ready to use.\n" "Please press OK to start using your %s %s." msgstr "" -"Dakujeme Vám, že ste použili sprievodcu. Váš %s %s je pripravený.\n" -"Prosím stlacte OK a zacnite používat Váš %s %s." +"Ďakujeme Vám, že ste použili sprievodcu. Váš %s %s je pripravený.\n" +"Prosím stlačte OK a začnite používať Váš %s %s." -#, fuzzy msgid "The %s %s loads the saved EPG data every (hours)." -msgstr "Váš %s %s nacíta uložené dáta EPG každých (hodín)." +msgstr "Váš %s %s načíta uložené údaje EPG každých (hodín)." #, fuzzy msgid "The %s %s saves the EPG data every (hours)." @@ -14348,101 +14142,108 @@ msgid "" "The AutoTimer plugin is not installed!\n" "Please install it." msgstr "" -"Modul AutoCasovaca nie je nainštalovaný!\n" +"Doplnok Automatický Časovač nie je nainštalovaný!\n" "Prosím, nainštalujte ho." #, python-format -msgid "" -"The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to " -"create a %s %s format data DVD (which will not play in stand-alone DVD " -"players) instead?" -msgstr "" -"Štandard DVD nepodporuje H.264 (HDTV) video streamy. Chcete vytvorit %s %s " -"formát dátového disku DVD (ktorý sa nebude dat prehrat v klasických DVD " -"prehrávacoch)?" +msgid "The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to create a %s %s format data DVD (which will not play in stand-alone DVD players) instead?" +msgstr "Štandard DVD nepodporuje video streamy H.264 (HDTV). Chcete namiesto toho vytvoriť dátové DVD vo formáte %s %s (ktoré sa nebude prehrávať v samostatných DVD prehrávačoch)?" -#, fuzzy msgid "" "The DreamPlex plugin is not installed!\n" "Please install it." msgstr "" -"Prehrávac médií nie je nainštalovaný!\n" +"Doplnok DreamPlex nie je nainštalovaný!\n" "Prosím, nainštalujte ho." msgid "" "The EPGSearch plugin is not installed!\n" "Please install it." msgstr "" -"Modul vyhladávania v EPG nie je nainštalovaný!\n" +"Doplnok EPGSearch nie je nainštalovaný!\n" "Prosím, nainštalujte ho." -#, fuzzy msgid "" "The Filesystem on your Timeshift-Device does not support hardlinks.\n" "Make sure it is formatted in EXT2, EXT3 or EXT4!" msgstr "" -"Súborový systém v zariadení urcenom pre casový posun nepodporuje hardlinky.\n" +"Súborový systém v zariadení určenom pre časový posun nepodporuje hardlinky.\n" "Uistite sa, že je zariadenie formátované v EXT2 alebo EXT3!" msgid "" "The IMDb plugin is not installed!\n" "Please install it." msgstr "" -"IMDb modul nie je nainštalovaný! \n" +"Doplnok IMDb nie je nainštalovaný!\n" "Prosím, nainštalujte ho." msgid "" "The Linux kernel has changed, an update is not permitted. \n" "Install latest image using USB stick or Image Manager." msgstr "" +"Jadro Linuxu sa zmenilo, aktualizácia nie je povolená. \n" +"Nainštalujte najnovší systémový obraz pomocou USB kľúča alebo Správcu systémových obrazov." msgid "" "The Linux kernel has changed, plugins are not compatible. \n" "Install latest image using USB stick or Image Manager." msgstr "" +"Jadro Linuxu sa zmenilo, doplnky nie sú kompatibilné. \n" +"Nainštalujte najnovší systémový obraz pomocou USB kľúča alebo Správcu systémových obrazov." msgid "The PIN code has been changed successfully." msgstr "Kód PIN bol úspešne zmenený." -#, fuzzy msgid "The PIN code has been saved successfully." -msgstr "Kód PIN bol úspešne zmenený." +msgstr "Kód PIN bol úspešne uložený." msgid "The PIN codes you entered are different." msgstr "Kódy PIN, ktoré ste zadali, sú rôzne." +msgid "" +"The TMDb plugin is not installed!\n" +"Please install it." +msgstr "" +"Doplnok TMDb nie je nainštalovaný!\n" +"Prosím, nainštalujte ho." + msgid "The backup failed. Please choose a different backup location." -msgstr "Zálohovanie zlyhalo. Zvolte iné umiestnenie zálohy." +msgstr "Zálohovanie zlyhalo. Vyberte iné umiestnenie zálohy." msgid "The command to wake from standby will be sent multiple times." -msgstr "" +msgstr "Príkaz na prebudenie z pohotovostného režimu sa odošle viackrát." -msgid "" -"The commit log cannot be retrieved at the moment - please try again later." -msgstr "" +msgid "The commit log cannot be retrieved at the moment - please try again later." +msgstr "Protokol revízií momentálne nie je možné načítať - skúste to prosím neskôr." -msgid "" -"The commit log cannot be retrieved at the moment - please try again later.\n" -msgstr "" +msgid "The commit log cannot be retrieved at the moment - please try again later.\n" +msgstr "Protokol revízií momentálne nie je možné načítať - skúste to prosím neskôr.\n" msgid "The current update may be unstable" -msgstr "Súcasná aktualizácia môže byt nestabilná" +msgstr "Aktuálna aktualizácia môže byť nestabilná" + +#, python-format +msgid "The directory %s already exists." +msgstr "Adresár %s už existuje." msgid "The following files were found..." msgstr "Boli nájdené tieto súbory..." msgid "The loopthrough setting is wrong." -msgstr "Nastavenie opakovania slucky je nesprávne." +msgstr "Nastavenie slučky je nesprávne." msgid "" "The network wizard extension is not installed!\n" "Please install it." msgstr "" -"Rozšírenie sprievodca sietou nie je nainštalované.\n" +"Rozšírenie sprievodca sieťou nie je nainštalované.\n" "Prosím, nainštalujte ho." +msgid "The order and grouping of the help information list can be controlled using MENU>Setup>User Interface>Settings>Sort order for help screen." +msgstr "Poradie a zoskupenie zoznamu informácií nápovedy môžete ovládať pomocou MENU>Nastavenie>Užívateľské rozhranie>Nastavenia>Poradie obrazovky nápovedy." + msgid "The password can not be blank." -msgstr "" +msgstr "Heslo nemôže byť prázdne." #, python-format msgid "The path %s already exists." @@ -14453,523 +14254,352 @@ msgstr "Zadaný kód PIN je nesprávny." #, python-format msgid "The results have been written to %s." -msgstr "Výsledky boli zapísané do súboru %s." +msgstr "Výsledky boli zapísané do %s." msgid "The saved PIN was cleared." -msgstr "" +msgstr "Uložený kód PIN bol vymazaný." -msgid "The selected langugage is unavailable - using en_US" -msgstr "" +msgid "The selected language is unavailable - using en_US" +msgstr "Vybraný jazyk nie je k dispozícii - použitie en_US" -#, fuzzy msgid "The service has been added to the favourites." -msgstr "Stanica bola pridaná do oblúbených" +msgstr "Stanica bola pridaná do obľúbených." -#, fuzzy msgid "The service has been added to the selected bouquet." -msgstr "Stanica bola pridaná do zvoleného prehladu" - -msgid "The timer file (pm_timers.xml) is corrupt and could not be loaded." -msgstr "Súbor casovaca (pm_timers.xml) je porušený a nedá sa otvorit." - -msgid "The timer file (timers.xml) is corrupt and could not be loaded." -msgstr "Súbor casovaca (timers.xml) je porušený a nedá sa otvorit." +msgstr "Stanica bola pridaná do zvoleného prehľadu." # #, python-format msgid "The user interface of your %s %s is restarting" -msgstr "Užívatelské rozhranie Vášho %s %s sa reštartuje..." +msgstr "Užívateľské rozhranie Vášho %s %s sa reštartuje" # -#, fuzzy, python-format +#, python-format msgid "" "The user interface of your %s %s is restarting\n" "due to an error in StartEnigma.py" msgstr "" -"Užívatelské rozhranie vášho %s %s sa reštartuje\n" -"kvôli chybe v mytest.py" +"Užívateľské rozhranie vášho %s %s sa reštartuje\n" +"kvôli chybe v StarEnigma.py" msgid "" "The wireless LAN plugin is not installed!\n" "Please install it and choose what you want to do next." msgstr "" -"Modul bezdrôtovej LAN nie je nainštalovaný.\n" -"Nainštalujte ho a zvolte, co chcete robit dalej." +"Doplnok bezdrôtová LAN nie je nainštalovaný.\n" +"Nainštalujte si ho a vyberte, čo chcete robiť ďalej." msgid "" "The wireless LAN plugin is not installed!\n" "Please install it." msgstr "" -"Modul bezdrôtovej LAN nie je nainštalovaný!\n" +"Doplnok bezdrôtová LAN nie je nainštalovaný!\n" "Nainštalujte ho." -msgid "" -"The wizard can backup your current settings. Do you want to do a backup now?" -msgstr "Sprievodca môže zálohovat aktuálne nastavenia. Chcete teraz zálohovat?" +msgid "The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "Sprievodca môže zálohovať Vaše aktuálne nastavenia. Chcete vykonať zálohu teraz?" msgid "The wizard is finished now." -msgstr "Sprievodca teraz skoncil." +msgstr "Sprievodca je teraz dokončený." + +msgid "Theater" +msgstr "Divadlo" msgid "There are at least " -msgstr "Je aspon" +msgstr "Existuje minimálne " #, python-format msgid "There are at least %s updates available." -msgstr "K dispozícií je najmenej %s aktualizácií." +msgstr "K dispozícii je najmenej %s aktualizácií." msgid "There are currently no outstanding actions." -msgstr "Žiadne cinnosti na vykonanie." - -#, fuzzy -msgid "There are no items currently available for this screen." -msgstr "Nie sú dostupné žiadne aktualizácie." +msgstr "V súčasnosti nie sú k dispozícii žiadne nevyriešené opatrenia." #, fuzzy +msgctxt "problem trans" msgid "There are no saved playlists to delete!" -msgstr "Zvolte zoznam prehrávok, ktorý sa má zmazat..." +msgstr "Neexistujú žiadne uložené zoznamy prehrávok, ktoré by ste mohli vymazať!" -#, fuzzy msgid "There are no saved playlists to load!" -msgstr "Zmazat uložený zoznam prehrávok" +msgstr "Neexistujú žiadne uložené zoznamy prehrávok, ktoré by ste mohli načítať!" msgid "There are no updates available." msgstr "Nie sú dostupné žiadne aktualizácie." -msgid "" -"There has been an error, please try again later. If this issue persists, " -"please check openvix.co.uk or world-of-satellite.com" -msgstr "" +msgid "There has been an error, please try again later. If this issue persists, please check openvix.co.uk or world-of-satellite.com" +msgstr "Došlo k chybe, skúste to prosím neskôr. Ak tento problém pretrváva, skontrolujte prosím openvix.co.uk alebo world-of-satellite.com" msgid "There is no signal to lock on !" -msgstr "Nie je signál pre uzamknutie!" +msgstr "Nie je signál na uzamknutie!" msgid "" "There might not be enough space on the selected partition..\n" "Do you really want to continue?" msgstr "" -"Vo zvolenej partícii nemusí byt dostatok miesta.\n" -"Naozaj chcete pokracovat?" +"Na vyranej partícii nemusí byť dostatok miesta..\n" +"Naozaj chcete pokračovať?" #, python-format msgid "This %s %s cannot decode %s streams!" -msgstr "%s %s nemôže dekódovat %s streamov!" +msgstr "Tento %s %s nedokáže dekódovať %s streamy!" -msgid "" -"This DVD RW medium is already formatted - reformatting will erase all " -"content on the disc." -msgstr "" -"Toto médium DVD RW je už naformátované - opätovným formátovaním sa vymaže " -"celý obsah disku." +msgid "This DVD RW medium is already formatted - reformatting will erase all content on the disc." +msgstr "Toto médium DVD RW je už naformátované - preformátovanie vymaže celý obsah disku." -msgid "" -"This allows you change the font size relative to skin size, so 1 increases " -"by 1 point size, and -1 decreases by 1 point size" -msgstr "" -"Umožnuje zmenit velkost písma relatívne k velkosti vzhladu, takže 1 zvýši " -"velkost o 1 bod, a -1 zmenší velkost o 1 bod" +msgid "This allows you change the font size relative to skin size, so 1 increases by 1 point size, and -1 decreases by 1 point size" +msgstr "To umožňuje zmeniť veľkosť písma relatívne k veľkosti vzhľadu, takže 1 zvýši veľkosť o 1 bod, a -1 zmenší veľkosť o 1 bod" -msgid "" -"This allows you to change the font size relative to skin size, so 1 " -"increases by 1 point size, and -1 decreases by 1 point size" -msgstr "" -"Umožnuje zmenit velkost písma relatívne k velkosti vzhladu, takže 1 zvýši " -"velkost o 1 bod, a -1 zmenší velkost o 1 bod" +msgid "This allows you to change the font size relative to skin size, so 1 increases by 1 point size, and -1 decreases by 1 point size" +msgstr "To umožňuje zmeniť veľkosť písma relatívne k veľkosti vzhľadu, takže 1 zvýši veľkosť o 1 bod, a -1 zmenší veľkosť o 1 bod" msgid "This allows you to change the number of rows shown." -msgstr "Umožnuje zmenit pocet riadkov, ktoré sa zobrazia." +msgstr "To umožňuje zmeniť počet riadkov, ktoré sa zobrazia." -msgid "" -"This allows you to set the number of digits you can input when selecting " -"channels using number input." -msgstr "" +msgid "This allows you to set the number of digits you can input when selecting channels using number input." +msgstr "To umožňuje nastaviť počet číslic, ktoré môžete zadať pri výbere kanálov pomocou číselného vstupu." #, python-format msgid "This field allows you to search an additional symbol rate up to %s." -msgstr "" +msgstr "Toto pole umožňuje vyhľadať dodatočnú symbolovú rýchlosť až do %s." msgid "This is a multitype tuner. Available options depend on the hardware." -msgstr "" +msgstr "Ide o multitypový tuner. Dostupné možnosti závisia od hardvéru." -msgid "" -"This is the order in which DiSEqC commands are sent to the aerial system. " -"The order must correspond exactly with the order the physical devices are " -"arranged along the signal cable (starting from the receiver end)." -msgstr "" +msgid "This is the order in which DiSEqC commands are sent to the aerial system. The order must correspond exactly with the order the physical devices are arranged along the signal cable (starting from the receiver end)." +msgstr "Toto je poradie, v ktorom sa príkazy DiSEqC posielajú do anténneho systému. Poradie musí presne zodpovedať poradiu, v akom sú fyzické zariadenia usporiadané pozdĺž signálneho kábla (počnúc koncom prijímača)." -msgid "" -"This is the prefix of each entry in the debug log. 'boot time' is the number " -"of seconds since the receiver was last booted." -msgstr "" +msgid "This is the prefix of each entry in the debug log. 'boot time' is the number of seconds since the receiver was last booted." +msgstr "Toto je prefix každého protokolu v denníku ladenia. 'boot time' je počet sekúnd od posledného spustenia prijímača." msgid "This not valid ONID/TSID" -msgstr "" +msgstr "Toto nie je platné ONID/TSID" -msgid "" -"This option allows to reduce the block-noise in the picture. Obviously this " -"is at the cost of the picture's sharpness." -msgstr "" -"Táto volba umožnuje znížit blokový šum v obraze za cenu zníženej ostrosti " -"obrazu." +msgid "This option allows to reduce the block-noise in the picture. Obviously this is at the cost of the picture's sharpness." +msgstr "Táto možnosť umožňuje znížiť blokový šum v obraze za cenu zníženej ostrosti obrazu." msgid "This option allows to set the level of dynamic contrast of the picture." -msgstr "Táto možnost umožnuje nastavit dynamicky úroven kontrastu obrazu." +msgstr "Táto možnosť umožňuje nastaviť úroveň dynamického kontrastu obrazu." msgid "This option allows you choose how to display elapsed time as + or -" -msgstr "" -"Táto volba Vám umožní vybrat, ako sa zobrazí uplynulý cas. Ako + alebo -" +msgstr "Táto možnosť umožňuje vybrať spôsob zobrazenia uplynulého času ako + alebo -" -msgid "" -"This option allows you choose how to display remaining time, or elapsed " -"time, or both." -msgstr "" -"Táto volba Vám umožní vybrat, ako sa zobrazí zostávajúci/uplynulý cas alebo " -"oba." +msgid "This option allows you choose how to display remaining time, or elapsed time, or both." +msgstr "Táto možnosť umožňuje vybrať spôsob zobrazenia zostávajúceho času, uplynulého času alebo oboch." -#, fuzzy -msgid "" -"This option allows you choose how to display the Time or nothing in Standby" -msgstr "" -"Táto volba Vám umožní vybrat, ako sa zobrazí uplynulý cas. Ako + alebo -" +msgid "This option allows you choose how to display the Time or nothing in Standby" +msgstr "Táto možnosť umožňuje vybrať, ako sa má v pohotovostnom režime zobrazovať čas alebo nič" -msgid "" -"This option allows you choose how to display the remaining/elapsed time for " -"live TV." -msgstr "" -"Táto volba Vám umožní vybrat, ako sa zobrazí pri TV vysielaní uplynulý/" -"zostávajúci cas." +msgid "This option allows you choose how to display the remaining/elapsed time for live TV." +msgstr "Táto možnosť umožňuje vybrať spôsob zobrazenia zostávajúceho/uplynutého času pre živé tv vysielanie." -msgid "" -"This option allows you choose the background color of transparent picons." -msgstr "Táto volba Vám umožní vybrat farbu pozadia priehladných picon." +msgid "This option allows you choose the background color of transparent picons." +msgstr "Táto možnosť umožňuje vybrať farbu pozadia priehľadných piktogramov." -#, fuzzy -msgid "" -"This option allows you enable smoothing filter to control the dithering " -"process." -msgstr "Táto volba Vám umožni zakázat zoradenie v zozname nastavenia." +msgid "This option allows you enable smoothing filter to control the dithering process." +msgstr "Táto možnosť umožňuje zapnúť vyhladzovací filter na ovládanie procesu ditheringu." -#, fuzzy msgid "This option allows you enable the vertical scaler dejagging." -msgstr "Táto volba umožnuje povolit 3D priestorový zvuk." +msgstr "Táto možnosť umožňuje povoliť vertikálne skreslenie." msgid "This option allows you to boost the blue tones in the picture." -msgstr "Táto volba umožnuje zosilnit modrý tón obrazu." +msgstr "Táto možnosť umožňuje posilniť modré tóny v obraze." msgid "This option allows you to boost the green tones in the picture." -msgstr "Táto volba umožnuje zosilnit zelený tón obrazu." +msgstr "Táto možnosť umožňuje posilniť zelené tóny v obraze." msgid "This option allows you to bypass HDMI EDID check" -msgstr "Táto volba umožnuje, vyhnút sa kontrole HDMI EDID" +msgstr "Táto možnosť umožňuje obísť kontrolu EDID HDMI" -#, fuzzy msgid "This option allows you to change the virtual loudspeaker position." -msgstr "Umožnuje zmenit pocet riadkov, ktoré sa zobrazia." +msgstr "Táto možnosť umožňuje zmeniť polohu virtuálneho reproduktora." -msgid "" -"This option allows you to choose from the two channel lists that are " -"available." -msgstr "" -"Táto volba Vám umožní vybrat z dvoch zoznamov staníc, ktoré sú k dispozícii." +msgid "This option allows you to choose from the two channel lists that are available." +msgstr "Táto možnosť umožňuje vybrať si z dvoch dostupných zoznamov kanálov." -#, fuzzy -msgid "" -"This option allows you to choose how to display 1080p 24Hz on your TV. (as " -"not all TVs support these resolutions)" -msgstr "" -"Táto volba umožnuje vybrat ako sa má zobrazovat 1080p 24 Hz na Vašej TV. " -"(nie všetky TV podporujú tieto rozlíšenia)" +msgid "This option allows you to choose how to display 1080p 24Hz on your TV. (as not all TVs support these resolutions)" +msgstr "Táto možnosť umožňuje vybrať spôsob zobrazenia 1080p 24Hz na Vašom televízore. (keďže nie všetky televízory podporujú tieto rozlíšenia)" -#, fuzzy -msgid "" -"This option allows you to choose how to display 1080p 25Hz on your TV. (as " -"not all TVs support these resolutions)" -msgstr "" -"Táto volba umožnuje vybrat ako sa má zobrazovat 1080p 25 Hz na Vašej TV. " -"(nie všetky TV podporujú tieto rozlíšenia)" +msgid "This option allows you to choose how to display 1080p 25Hz on your TV. (as not all TVs support these resolutions)" +msgstr "Táto možnosť umožňuje vybrať spôsob zobrazenia 1080p 25Hz na Vašom televízore. (keďže nie všetky televízory podporujú tieto rozlíšenia)" -#, fuzzy -msgid "" -"This option allows you to choose how to display 1080p 30Hz on your TV. (as " -"not all TVs support these resolutions)" -msgstr "" -"Táto volba umožnuje vybrat ako sa má zobrazovat 1080p 30 Hz na Vašej TV. " -"(nie všetky TV podporujú tieto rozlíšenia)" +msgid "This option allows you to choose how to display 1080p 30Hz on your TV. (as not all TVs support these resolutions)" +msgstr "Táto možnosť umožňuje vybrať spôsob zobrazenia 1080p 30Hz na Vašom televízore. (keďže nie všetky televízory podporujú tieto rozlíšenia)" -#, fuzzy -msgid "" -"This option allows you to choose how to display 2160p 24Hz on your TV. (as " -"not all TVs support these resolutions)" -msgstr "" -"Táto volba umožnuje vybrat ako sa ma zobrazovat 720p 24 Hz na Vašej TV. (nie " -"všetky TV podporujú tieto rozlíšenia)" +msgid "This option allows you to choose how to display 2160p 24Hz on your TV. (as not all TVs support these resolutions)" +msgstr "Táto možnosť umožňuje vybrať spôsob zobrazenia 2160p 24Hz na Vašom televízore. (keďže nie všetky televízory podporujú tieto rozlíšenia)" -#, fuzzy -msgid "" -"This option allows you to choose how to display 2160p 25Hz on your TV. (as " -"not all TVs support these resolutions)" -msgstr "" -"Táto volba umožnuje vybrat ako sa má zobrazovat 1080p 25 Hz na Vašej TV. " -"(nie všetky TV podporujú tieto rozlíšenia)" +msgid "This option allows you to choose how to display 2160p 25Hz on your TV. (as not all TVs support these resolutions)" +msgstr "Táto možnosť umožňuje vybrať spôsob zobrazenia 2160p 25Hz na Vašom televízore. (keďže nie všetky televízory podporujú tieto rozlíšenia)" -#, fuzzy -msgid "" -"This option allows you to choose how to display 2160p 30Hz on your TV. (as " -"not all TVs support these resolutions)" -msgstr "" -"Táto volba umožnuje vybrat ako sa má zobrazovat 1080p 30 Hz na Vašej TV. " -"(nie všetky TV podporujú tieto rozlíšenia)" +msgid "This option allows you to choose how to display 2160p 30Hz on your TV. (as not all TVs support these resolutions)" +msgstr "Táto možnosť umožňuje vybrať spôsob zobrazenia 2160p 30Hz na Vašom televízore. (keďže nie všetky televízory podporujú tieto rozlíšenia)" -#, fuzzy -msgid "" -"This option allows you to choose how to display 720p 24Hz on your TV. (as " -"not all TVs support these resolutions)" -msgstr "" -"Táto volba umožnuje vybrat ako sa ma zobrazovat 720p 24 Hz na Vašej TV. (nie " -"všetky TV podporujú tieto rozlíšenia)" +msgid "This option allows you to choose how to display 720p 24Hz on your TV. (as not all TVs support these resolutions)" +msgstr "Táto možnosť umožňuje vybrať spôsob zobrazenia 720p 24Hz na Vašom televízore. (keďže nie všetky televízory podporujú tieto rozlíšenia)" -#, fuzzy -msgid "" -"This option allows you to choose how to display SD progressive 24Hz on your " -"TV. (as not all TV's support these resolutions)" -msgstr "" -"Táto volba umožnuje vybrat ako sa ma zobrazovat 720p 24 Hz na Vašej TV. (nie " -"všetky TV podporujú tieto rozlíšenia)" +msgid "This option allows you to choose how to display SD progressive 24Hz on your TV. (as not all TV's support these resolutions)" +msgstr "Táto možnosť umožňuje vybrať spôsob zobrazenia progresívneho 24Hz SD na Vašom televízore. (keďže nie všetky televízory podporujú tieto rozlíšenia)" msgid "This option allows you to choose how to display elapsed time. As + or -" -msgstr "" -"Táto volba Vám umožní vybrat, ako sa zobrazí uplynulý cas. Ako + alebo -" +msgstr "Táto možnosť umožňuje vybrať spôsob zobrazenia uplynulého času. Ako + alebo -" -msgid "" -"This option allows you to choose how to display standard defintion video on " -"your TV." -msgstr "" -"Táto volba umožnuje vybrat spôsob zobrazenia videa v štandardnom rozlíšení " -"video na Vašom TV." +msgid "This option allows you to choose how to display standard defintion video on your TV." +msgstr "Táto možnosť umožňuje vybrať spôsob zobrazenia videa so štandardným rozlíšením na Vašom televízore." -msgid "" -"This option allows you to choose how to display the remaining/elapsed time " -"for Media playback." -msgstr "" -"Táto volba Vám umožní vybrat, ako sa zobrazí pri prehrávaní médií " -"zostávajúci/uplynulý cas." +msgid "This option allows you to choose how to display the remaining/elapsed time for Media playback." +msgstr "Táto možnosť umožňuje vybrať spôsob zobrazenia zostávajúceho/uplynutého času pre prehrávanie médií." -msgid "" -"This option allows you to choose how to display the remaining/elapsed time " -"for live TV." -msgstr "" -"Táto volba Vám umožní vybrat, ako sa zobrazí pri TV vysielaní uplynulý/" -"zostávajúci cas." +msgid "This option allows you to choose how to display the remaining/elapsed time for live TV." +msgstr "Táto možnosť umožňuje vybrať spôsob zobrazenia zostávajúceho/uplynutého času pre živé tv vysielanie." -msgid "" -"This option allows you to choose how to display the remaining/elapsed time " -"for media playback." -msgstr "" -"Táto volba Vám umožní vybrat, ako sa zobrazí pri prehrávaní zostávajúci/" -"uplynulý cas." +msgid "This option allows you to choose how to display the remaining/elapsed time for media playback." +msgstr "Táto možnosť umožňuje vybrať spôsob zobrazenia zostávajúceho/uplynutého času prehrávania médií." -#, fuzzy -msgid "" -"This option allows you to choose what the first button press jumps to in " -"channel list screen, (so pressing '2' jumps to 'A' or '2' first), when " -"'Quick Actions' preset actions are perfomed. " -msgstr "" -"Táto volba Vám umožní vybrat, co prvé stlacenie tlacidla preskocí vo výbere " -"programov (takže stlacením '2' skok na 'A' alebo najprv na '2')" +msgid "This option allows you to choose what the first button press jumps to in channel list screen, (so pressing '2' jumps to 'A' or '2' first), when 'Quick Actions' preset actions are perfomed. " +msgstr "Táto možnosť umožňuje zvoliť, na čo sa skočí pri prvom stlačení tlačidla na obrazovke zoznamu kanálov (takže pri stlačení '2' sa najskôr skočí na 'A' alebo '2'), keď 'Rýchle akcie' vykonávajú prednastavené akcie. " -#, fuzzy -msgid "" -"This option allows you to choose whether or not to display genre information " -"for the event." -msgstr "" -"Táto volba Vám umožní vybrat, ako sa zobrazí pri TV vysielaní uplynulý/" -"zostávajúci cas." +msgid "This option allows you to choose whether or not to display genre information for the event." +msgstr "Táto možnosť umožňuje vybrať, či sa majú alebo nemajú zobrazovať informácie o žánroch pre danú udalosť." -msgid "" -"This option allows you to disable sorting of the option in setting screens" -msgstr "Táto volba Vám umožni zakázat zoradenie v zozname nastavenia." +msgid "This option allows you to disable sorting of the option in setting screens" +msgstr "Táto možnosť umožňuje vypnúť triedenie možností na obrazovkách nastavenia" msgid "This option allows you to disable sorting of the plugin browser." -msgstr "Táto volba Vám umožní zakázat zoradenie zoznamu modulov." +msgstr "Táto možnosť umožňuje vypnúť triedenie prehliadača doplnkov." -#, fuzzy msgid "This option allows you to enable 3D Surround Sound for an output." -msgstr "Táto volba umožnuje povolit 3D priestorový zvuk." +msgstr "Táto možnosť umožňuje povoliť 3D priestorový zvuk pre výstup." -#, fuzzy msgid "This option allows you to power on or off the display." -msgstr "Táto volba Vám umožnuje zakázat zoradovanie v ponukách." +msgstr "Táto možnosť umožňuje zapnúť alebo vypnúť displej." msgid "This option allows you to set the layout view (Text or Graphics)." -msgstr "Táto volba umožnuje zmenit vzhlad rozloženia (Text alebo Grafika)." +msgstr "Táto možnosť umožňuje nastaviť zobrazenie rozloženia (Text alebo Grafika)." -#, fuzzy msgid "This option allows you to show menu number quick links." -msgstr "Táto volba Vám umožnuje zakázat zoradovanie v ponukách." +msgstr "Táto možnosť umožňuje zobraziť číslo rýchleho odkazu v ponuke." -msgid "" -"This option allows you to show the SNR as a percentage (not all receivers " -"support this)." -msgstr "" -"Táto volba Vám umožnuje zobrazit SNR v percentách. (nie všetky prijímace " -"túto funkciu podporujú)." +msgid "This option allows you to show the SNR as a percentage (not all receivers support this)." +msgstr "Táto možnosť umožňuje zobraziť SNR v percentách (nie všetky prijímače to podporujú)." -#, fuzzy -msgid "" -"This option allows you to show the full screen path leading to the current " -"screen." -msgstr "Táto volba Vám umožnuje zakázat zoradovanie v ponukách." +msgid "This option allows you to show the full screen path leading to the current screen." +msgstr "Táto možnosť umožňuje zobraziť cestu na celú obrazovku, ktorá vedie k aktuálnej obrazovke." -#, fuzzy msgid "This option allows you to switch audio to bluetooth speakers." -msgstr "Táto volba umožnuje zosilnit modrý tón obrazu." +msgstr "Táto možnosť umožňuje prepnúť zvuk na reproduktory Bluetooth." msgid "This option allows you to view the old and new settings side by side." -msgstr "Táto volba umožnuje zobrazit staré a nové nastavenie bok po boku." +msgstr "Táto možnosť umožňuje zobraziť staré a nové nastavenia vedľa seba." -#, fuzzy msgid "This option configures output for Auto Volume Level." -msgstr "Nastavenie režimu video výstupu (alebo rozlíšenia)." +msgstr "Táto možnosť konfiguruje výstup pre automatickú úroveň hlasitosti." -#, fuzzy msgid "This option configures the general audio delay for bluetooth speakers." -msgstr "Konfigurácia celkového oneskorenia stereo zvukových stôp." +msgstr "Táto možnosť konfiguruje všeobecné oneskorenie zvuku pre reproduktory Bluetooth." -msgid "" -"This option configures the general audio delay of Dolby Digital sound tracks." -msgstr "Konfigurácia celkového oneskorenia zvukových stôp Dolby Digital." +msgid "This option configures the general audio delay of Dolby Digital sound tracks." +msgstr "Táto možnosť konfiguruje všeobecné oneskorenie zvuku zvukových stôp Dolby Digital." msgid "This option configures the general audio delay of stereo sound tracks." -msgstr "Konfigurácia celkového oneskorenia stereo zvukových stôp." +msgstr "Táto možnosť konfiguruje všeobecné oneskorenie stereofónnych zvukových stôp." msgid "This option configures the screen resolution in PC output mode." -msgstr "Nastavit rozlíšenie obrazovky v režime výstupu na PC ." +msgstr "Táto možnosť konfiguruje rozlíšenie obrazovky v režime výstupu PC." msgid "This option configures the video output mode (or resolution)." -msgstr "Nastavenie režimu video výstupu (alebo rozlíšenia)." +msgstr "Táto možnosť konfiguruje režim výstupu videa (alebo rozlíšenie)." msgid "This option lets you adjust the 3D depth" -msgstr "Táto volba umožnuje nastavit hlbku 3D" +msgstr "Táto možnosť umožňuje nastaviť hĺbku 3D" msgid "This option lets you adjust the transparency of the user interface" -msgstr "" -"Táto volba Vám umožnuje nastavit priehladnost používatelského rozhrania" +msgstr "Táto možnosť umožňuje nastaviť priehľadnosť používateľského rozhrania" msgid "This option lets you choose the 3D mode" -msgstr "Táto volba Vám umožnuje vybrat 3D režim" +msgstr "Táto možnosť umožňuje vybrať režim 3D" msgid "This option lets you show the option in the extension screen" -msgstr "Táto volba umožnuje zobrazit možnost na obrazovke rozšírení" +msgstr "Táto možnosť umožňuje zobraziť možnosť na obrazovke rozšírenia" -msgid "" -"This option moves the PVR status from the separate window into the Movie " -"Player infobar." -msgstr "" -"Táto možnost presunie stav PVR zo samostatného okna do informacného panela " -"prehrávaca filmov." +msgid "This option moves the PVR status from the separate window into the Movie Player infobar." +msgstr "Táto možnosť presunie stav PVR zo samostatného okna do informačnej lišty prehrávača filmov." -#, fuzzy -msgid "" -"This option set the level of surpression of mosquito noise (Mosquito Noise " -"is random aliasing as a result of strong compression). Obviously this goes " -"at the cost of picture details." -msgstr "" -"Táto volba nastaví úroven tzv. mosquito šumu (mosquito šum je náhodné " -"skreslenie v dôsledku silnej kompresie) - za cenu zníženia detailov obrazu." +msgid "This option set the level of surpression of mosquito noise (Mosquito Noise is random aliasing as a result of strong compression). Obviously this goes at the cost of picture details." +msgstr "Táto možnosť nastavuje úroveň potlačenia šumu bzučania (šum bzučania je náhodný aliasing v dôsledku silnej kompresie). Samozrejme, že to ide na úkor detailov obrazu." msgid "This option sets the picture brightness." -msgstr "Táto možnost nastaví jas obrazu." +msgstr "Táto možnosť nastavuje jas obrazu." msgid "This option sets the picture color space." -msgstr "Táto možnost nastaví farebný priestor obrazu." +msgstr "Táto možnosť nastavuje farebný priestor obrazu." -#, fuzzy msgid "This option sets the picture contrast." -msgstr "Táto možnost nastaví kontrast obrazu." +msgstr "Táto možnosť nastavuje kontrast obrazu." msgid "This option sets the picture flesh tones." -msgstr "Táto možnost nastaví oditene obrazu." +msgstr "Táto možnosť nastavuje telové odtiene obrazu." msgid "This option sets the picture hue." -msgstr "Táto možnost nastaví odtien obrazu." +msgstr "Táto možnosť nastavuje odtieň obrazu." msgid "This option sets the picture saturation." -msgstr "Táto možnost nastaví sýtost obrazu." +msgstr "Táto možnosť nastavuje sýtosť obrazu." -msgid "" -"This option sets the scaler sharpness, used when stretching picture from 4:3 " -"to 16:9." -msgstr "" -"Táto volba nastaví ostrost obrazu pri použití natiahnutia obrazu zo 4:3 na " -"16:9." +msgid "This option sets the scaler sharpness, used when stretching picture from 4:3 to 16:9." +msgstr "Táto možnosť nastavuje ostrosť škálovania, ktorá sa používa pri roztiahnutí obrazu zo 4:3 na 16:9." -msgid "" -"This option sets the surpression of false digital contours, that are the " -"result of a limited number of discrete values." -msgstr "" -"Táto volba nastavuje potlacenie chybných digitálnych obrysov, ktoré sú " -"výsledkom limitovaného poctu diskrétnych hodnôt." +msgid "This option sets the surpression of false digital contours, that are the result of a limited number of discrete values." +msgstr "Táto možnosť nastavuje potlačenie chybných digitálnych obrysov, ktoré sú výsledkom obmedzeného počtu diskrétnych hodnôt." -msgid "" -"This option sets up the picture sharpness, used when the picture is being " -"upscaled." -msgstr "Táto volba nastaví ostrost obrazu pocas používania zväcšenia obrazu." +msgid "This option sets up the picture sharpness, used when the picture is being upscaled." +msgstr "Táto možnosť nastavuje ostrosť obrazu, ktorá sa používa pri zväčšovaní obrazu." msgid "This plugin is installed." -msgstr "Tento modul je nainštalovaný." +msgstr "Tento doplnok je nainštalovaný." msgid "This plugin is not installed." -msgstr "Tento modul nie je nainštalovaný." +msgstr "Tento doplnok nie je nainštalovaný." msgid "This plugin will be installed." -msgstr "Tento modul sa nainštaluje." +msgstr "Tento doplnok sa nainštaluje." msgid "This plugin will be removed." -msgstr "Tento modul sa odstráni." +msgstr "Tento doplnok sa odstráni." -msgid "" -"This setting allows the tuner configuration to be a duplication of how " -"another tuner is already configured." -msgstr "" +msgid "This setting allows the tuner configuration to be a duplication of how another tuner is already configured." +msgstr "Toto nastavenie umožňuje, aby konfigurácia tunera kopírovala konfiguráciu iného tunera." -msgid "" -"This setting depends on your cable provider and location. If you don't know " -"the correct setting refer to the menu in the official cable receiver, or get " -"it from your cable provider, or seek help via internet forum." -msgstr "" +msgid "This setting depends on your cable provider and location. If you don't know the correct setting refer to the menu in the official cable receiver, or get it from your cable provider, or seek help via internet forum." +msgstr "Toto nastavenie závisí od poskytovateľa káblovej televízie a lokality. Ak nepoznáte správne nastavenie, pozrite si ponuku v oficiálnom káblovom prijímači, alebo si ho vyžiadajte od poskytovateľa káblovej televízie, prípadne vyhľadajte pomoc prostredníctvom internetového fóra." -msgid "" -"This setting is for special setups only. It gives this LNB higher priority " -"over other LNBs with lower values. The free LNB with the highest priority " -"will be the first LNB selected for tuning services." -msgstr "" +msgid "This setting is for special setups only. It gives this LNB higher priority over other LNBs with lower values. The free LNB with the highest priority will be the first LNB selected for tuning services." +msgstr "Toto nastavenie je určené len pre špeciálne nastavenia. Dáva tomuto LNB vyššiu prioritu oproti iným LNB s nižšími hodnotami. Voľný LNB s najvyššou prioritou bude prvým LNB vybraným pre služby ladenia." -#, fuzzy msgid "" "This start wizard will guide you through the basic setup of your %s %s.\n" "Press the OK button on your remote control to move to the next step." msgstr "" -"Vitajte.\n" -"\n" -"Tento úvodný sprievodca Vám pomôže so základnými nastaveniami Vášho %s %.\n" -"Stlacením tlacidla OK na dialkovom ovládaci prejdite do dalšieho kroku." +"Tento sprievodca spustením Vás prevedie základným nastavením Vášho %s %s.\n" +"Stlačením tlačidla OK na diaľkovom ovládači prejdite na ďalší krok." msgid "This valid ONID/TSID" -msgstr "" +msgstr "Tieto platné ONID/TSID" msgid "" -"This will (re-)calculate all positions of your rotor and may remove " -"previously memorised positions and fine-tuning!\n" +"This will (re-)calculate all positions of your rotor and may remove previously memorised positions and fine-tuning!\n" "Are you sure?" msgstr "" -"Táto funkcia (pre)pocíta všetky polohy vášho rotora a môže odstránit skôr " -"uložené pozície a jemné ladenie!\n" +"Tým sa (pre-)počítajú všetky polohy vášho motora a môžu sa odstrániť predtým zapamätané polohy a jemné doladenie!\n" "Ste si istý?" -msgid "" -"This will permanently delete the current configuration. It would be a good " -"idea to make a backup before taking this drastic action. Are you certain you " -"want to continue with a factory reset?" -msgstr "" +msgid "This will permanently delete the current configuration. Although settings backup requested, there is No backup device attached, are you certain you want to continue with a factory reset?" +msgstr "Tým sa natrvalo odstráni aktuálna konfigurácia. Hoci sa požaduje zálohovanie nastavení, nie je pripojené žiadne záložné zariadenie, ste si istí, že chcete pokračovať v obnovení továrenských nastavení?" + +msgid "This will permanently delete the current configuration. If necessary it should be possible to restore the current configuration by restoring the settings backup. Are you certain you want to continue with a factory reset?" +msgstr "Tým sa natrvalo odstráni aktuálna konfigurácia. V prípade potreby by malo byť možné obnoviť aktuálnu konfiguráciu obnovením zálohy nastavení. Ste si istí, že chcete pokračovať v obnovení výrobných nastavení?" + +msgid "This will permanently delete the current configuration. It would be a good idea to make a backup before taking this drastic action. Are you certain you want to continue with a factory reset?" +msgstr "Tým sa natrvalo odstráni aktuálna konfigurácia. Pred týmto drastickým zásahom by bolo dobré vytvoriť zálohu. Ste si istí, že chcete pokračovať v obnovení továrenského nastavenia?" msgid "Three" msgstr "Tri" @@ -14977,6 +14607,9 @@ msgstr "Tri" msgid "Threshold" msgstr "Prah" +msgid "Thriller" +msgstr "Triler" + msgid "Thu" msgstr "Št" @@ -14989,133 +14622,122 @@ msgstr "Štvrtok" msgid "TiVo support" msgstr "Podpora TiVo" +msgid "Tiere" +msgstr "" + msgid "Time" -msgstr "Cas" +msgstr "Čas" -#, fuzzy msgid "Time Setup Actions" -msgstr "Nastavenie casu" +msgstr "Akcie nastavenia času" msgid "Time Update in Minutes:" -msgstr "Aktualizácie casu v minútach:" +msgstr "Aktualizácie času v minútach:" msgid "Time import should start" -msgstr "" +msgstr "Čas, kedy by sa mal import začať" msgid "Time scale" -msgstr "Casová mierka" +msgstr "Časová mierka" -#, fuzzy msgid "Time style" -msgstr "Casová mierka" +msgstr "Štýl času" msgid "Time to execute command or script" -msgstr "Cas na vykonanie príkazu alebo skriptu" +msgstr "Čas na vykonanie príkazu alebo skriptu" #, fuzzy msgid "Time update in minutes" -msgstr "Aktualizácie casu v minútach" +msgstr "Aktualizácie času v minútach" -#, fuzzy msgid "Time zone" -msgstr "Casové pásmo" +msgstr "Časové pásmo" -#, fuzzy msgid "Time zone area" -msgstr "Casové pásmo" +msgstr "Oblasť časového pásma" msgid "Timeline 24 Hour" -msgstr "" +msgstr "Časová os 24 hodín" msgid "Timeline font size" -msgstr "Velkost písma casovej osi" +msgstr "Veľkosť písma časovej osi" -#, fuzzy msgid "Timer" -msgstr "Casovace" +msgstr "Časovač" -#, fuzzy msgid "Timer Edit" -msgstr "Zoznam casovacov" +msgstr "Úprava časovača" msgid "Timer List" -msgstr "Zoznam casovacov" +msgstr "Zoznam časovača" -#, fuzzy msgid "Timer Menu" -msgstr "Položka casovaca" +msgstr "Ponuka časovača" -#, fuzzy msgid "Timer Sanity Error" -msgstr "Nelogické casovanie" +msgstr "Chyba správnosti časovača" -#, fuzzy msgid "Timer control" -msgstr "Položka casovaca" +msgstr "Ovládanie časovača" msgid "" "Timer overlap in pm_timers.xml detected!\n" "Please recheck it!" msgstr "" -"Zistené prekrývanie casovacov v súbore pm_timers.xml!\n" +"Zistené prekrývanie časovača v súbore pm_timers.xml!\n" "Skontrolujte to!" msgid "" "Timer overlap in timers.xml detected!\n" "Please recheck it!" msgstr "" -"Zistené prekrývanie casovacov v súbore timers.xml!\n" +"Zistené prekrývanie časovača v súbore timers.xml!\n" "Skontrolujte to!" msgid "Timer recording location" -msgstr "Umiestnenie nahrávok casovaca" +msgstr "Umiestnenie nahrávok časovača" msgid "Timer selection" -msgstr "Volba casovaca" - -msgid "Timer selection..." -msgstr "Výber casovaca..." +msgstr "Výber časovača" msgid "Timer type" -msgstr "Typ casovaca" +msgstr "Typ časovača" msgid "Timers" -msgstr "Casovace" +msgstr "Časovače" msgid "Timeshift" -msgstr "Casový posun" +msgstr "Časový posun" -#, fuzzy msgid "Timeshift is running. Select an action.\n" -msgstr "Uložit súbor casového posunu (zvolte program)" +msgstr "Časový posun je spustený. Vyberte akciu.\n" msgid "Timeshift location" -msgstr "Umiestnenie casového posunu" +msgstr "Umiestnenie časového posunu" msgid "Timeshift not possible!" -msgstr "Casový posun nie je možný!" +msgstr "Časový posun nie je možný!" msgid "Timeshift save failed!" -msgstr "Uloženie súboru casového posunu zlyhalo!" +msgstr "Uloženie časového posunu zlyhalo!" msgid "Timeshift save recording (Select event)" -msgstr "Uložit súbor casového posunu (zvolte program)" +msgstr "Uloženie nahrávania časového posunu (vyberte udalosť)" msgid "Timeshift save recording (stop after current event)" -msgstr "Uloženie nahrávky casovým posunom (ukoncit po aktuálnej udalosti)" +msgstr "Uloženie nahrávania časovým posunom (ukončiť po aktuálnej udalosti)" msgid "Timeshift saved to your harddisk!" -msgstr "Casový posun bol uložený na pevnom disku!" +msgstr "Časový posun uložený na pevný disk!" -#, fuzzy msgid "Timeshift will get saved at the end of an event!" -msgstr "casový posun bude uložený na konci udalosti!" +msgstr "Časový posun sa uloží na konci udalosti!" msgid "Timeshift-save action on zap" -msgstr "Casový posun - akcia uloženia pri prepnutí" +msgstr "Časový posun - akcia uloženia pri prepnutí" msgid "Timor-Leste" -msgstr "" +msgstr "Východný Timor" msgid "Title" msgstr "Titul" @@ -15127,93 +14749,79 @@ msgid "Titleset mode" msgstr "Režim sady titulov" #, python-format -msgid "" -"To apply the selected '%s' skin the GUI needs to restart. Would you like to " -"restart the GUI now?" -msgstr "" +msgid "To apply the selected '%s' skin the GUI needs to restart. Would you like to restart the GUI now?" +msgstr "Ak chcete použiť vybraný vzhľad '%s', je potrebné reštartovať grafické rozhranie (GUI). Chcete teraz reštartovať GUI?" -#, fuzzy msgid "To audio selection" -msgstr "Výber filmu" +msgstr "K výberu zvuku" #, python-format -msgid "" -"To save and apply the selected '%s' skin the GUI needs to restart. Would you " -"like to save the selection and restart the GUI now?" -msgstr "" +msgid "To save and apply the selected '%s' skin the GUI needs to restart. Would you like to save the selection and restart the GUI now?" +msgstr "Ak chcete uložiť a použiť vybraný vzhľad '%s', je potrebné reštartovať grafické rozhranie (GUI). Chcete teraz uložiť výber a reštartovať GUI?" -#, fuzzy msgid "To subtitle selection" -msgstr "Výber titulkov" +msgstr "K výberu titulkov" msgid "Today" msgstr "Dnes" -#, fuzzy -msgid "Toggle Digital downmix..." -msgstr "Digitálny downmix" +msgid "Toggle Digital downmix" +msgstr "Prepnutie digitálneho downmixu" msgid "Toggle HDMI-In PiP" -msgstr "" +msgstr "Prepnutie HDMI-Vstupu PiP" msgid "Toggle HDMI-In full screen" -msgstr "" +msgstr "Prepnutie HDMI-Vstupu na celú obrazovku" msgid "Toggle LCD LiveTV" -msgstr "" +msgstr "Prepnutie LCD LiveTV" msgid "Toggle PIP-ZAP" -msgstr "" +msgstr "Prepnutie PIP-PREP" msgid "Toggle a cut mark at the current position" -msgstr "Prepnút strihovú znacku na tejto pozícii" +msgstr "Prepnutie strihovej značku na tejto pozícii" -#, fuzzy msgid "Toggle a selection mark" -msgstr "Volba jazyka" +msgstr "Prepnutie značky výberu" -msgid "Toggle aspect ratio..." -msgstr "Nastavenie pomeru strán obrazovky." +msgid "Toggle aspect ratio" +msgstr "Prepnutie pomeru strán" msgid "Toggle between bouquet/epg lists" -msgstr "Prepínanie medzi zoznamami prehladov/epg" +msgstr "Prepnutie medzi zoznamami prehľadov/epg" -#, fuzzy msgid "Toggle between one & two-line channel list" -msgstr "Prepínanie medzi zoznamami prehladov/epg" +msgstr "Prepnutie medzi jedno a dvojriadkovým zoznamom kanálov" -#, fuzzy msgid "Toggle channel move mode" -msgstr "Režim náhladu stanice" +msgstr "Prepnutie režimu presunu kanála" -#, fuzzy msgid "Toggle default subtitles" -msgstr "Zalomit teletextové titulky" +msgstr "Prepnutie predvolených titulkov" #, fuzzy msgid "Toggle infobar" -msgstr "Vždy skryt informacný panel" +msgstr "Prepnutie informačnej lišty" msgid "Toggle mark" -msgstr "" +msgstr "Prepnutie značky" msgid "Toggle new text inserts before or overwrites existing text" -msgstr "" +msgstr "Prepnutie nového textu sa vloží pred existujúci text alebo ho prepíše" -#, fuzzy msgid "Toggle picture In graphics" -msgstr "Prepnút obraz v grafike" +msgstr "Prepnutie obrazu v grafike" msgid "Toggle show/hide" -msgstr "" +msgstr "Prepnutie zobraziť/skryť" -#, fuzzy msgid "Toggle show/hide of the current selection" -msgstr "Aktivovat aktuálne nastavenie" +msgstr "Prepnutie zobrazenia/skrytia aktuálneho výberu" -#, fuzzy msgid "Toggle the default subtitles" -msgstr "Nastavit predvolenú metódu zoradenia." +msgstr "Prepnutie predvolených titulkov" msgid "Togo" msgstr "" @@ -15222,7 +14830,7 @@ msgid "Tokelau" msgstr "" msgid "Tone amplitude" -msgstr "Hlasitost" +msgstr "Amplitúda tónu" msgid "Tone mode" msgstr "Tónový režim" @@ -15237,7 +14845,7 @@ msgid "Tonga" msgstr "" msgid "Top and Bottom" -msgstr "Hore a dole" +msgstr "Hore a Dole" msgid "Total" msgstr "Celkovo" @@ -15247,28 +14855,37 @@ msgstr "Celkom kariet:" #, python-format msgid "Total clients streaming: %d (%s)" -msgstr "" +msgstr "Celkový počet streamujúcich klientov: %d (%s)" msgid "Total handled client ecm's" -msgstr "Suma spracovaných ECM od klienta" +msgstr "Celkovo spracovaných ECM klienta" msgid "Total handled client emm's" -msgstr "Suma spracovaných EMM od klienta" +msgstr "Celkovo spracovaných EMM klienta" msgid "Total memory:" -msgstr "Celkovo:" +msgstr "Celková pamäť:" msgid "Total swap:" -msgstr "Swap celkom:" +msgstr "Swap celkovo:" msgid "Total:" msgstr "Celkovo:" +msgid "Tourism" +msgstr "Cestovný ruch" + msgid "Track" msgstr "Stopa" +msgid "Traditional Music" +msgstr "Tradičná hudba" + +msgid "Tragödie" +msgstr "Tragédia" + msgid "Transcoding: " -msgstr "" +msgstr "Transkódovanie: " msgid "Translations" msgstr "Preklady" @@ -15277,48 +14894,49 @@ msgid "Transmission mode" msgstr "Režim prenosu" msgid "Transparent" -msgstr "Priehladné" +msgstr "Priehľadná" msgid "Transponder" msgstr "Transpondér" -#, fuzzy -msgid "Transponder Information" -msgstr "Informácie o preklade" +msgid "Transponder Time" +msgstr "Čas transpondéra" -#, fuzzy msgid "Transport Stream Type" -msgstr "Typ transpondéra" +msgstr "Typ transportného streamu" -#, fuzzy msgid "Trash" -msgstr "Odpadkový kôš" +msgstr "Koš" -#, fuzzy msgid "Trash can" msgstr "Odpadkový kôš" msgid "Trashcan:" msgstr "Odpadkový kôš:" +msgid "Travel" +msgstr "Cestovanie" + +msgid "Triathlon" +msgstr "Triatlon" + msgid "Tries left:" msgstr "Zostávajúce pokusy:" msgid "Trinidad and Tobago" -msgstr "" +msgstr "Trinidad a Tobago" msgid "True" -msgstr "Áno" +msgstr "Skutočné" msgid "Try to find used transponders in cable network.. please wait..." -msgstr "Pokúšam sa nájst použité transpondéry v káblovej sieti... cakajte..." +msgstr "Skúšam nájsť použité transpondéry v káblovej sieti.. počkajte prosím..." -#, fuzzy msgid "Try to find used transponders in terrestrial network... please wait..." -msgstr "Pokúšam sa nájst použité transpondéry v káblovej sieti... cakajte..." +msgstr "Skúšam nájsť použité transpondéry v pozemnej sieti... počkajte prosím..." msgid "Trying to download a new packetlist. Please wait..." -msgstr "Pokúšam sa stiahnut nový zoznam paketov. Cakajte..." +msgstr "Skúšam stiahnuť nový zoznam balíčkov. Počkajte prosím..." msgid "Tue" msgstr "Ut" @@ -15327,43 +14945,37 @@ msgid "Tuesday" msgstr "Utorok" msgid "Tune" -msgstr "Naladit" +msgstr "Naladiť" msgid "Tune and focus" -msgstr "Ladenie a fokus" +msgstr "Ladenie a zaostrenie" msgid "Tune failed!" msgstr "Ladenie zlyhalo!" msgid "Tuner" -msgstr "Tuner" +msgstr "" msgid "Tuner :" -msgstr "Tuner :" +msgstr "" -#, fuzzy msgid "Tuner Setup" -msgstr "Stav tunera" +msgstr "Nastavenie tunera" -#, fuzzy msgid "Tuner is not supported" -msgstr "tuner nie je podporovaný" +msgstr "Tuner nie je podporovaný" -#, fuzzy msgid "Tuner live values" -msgstr "Stav tunera" +msgstr "Skutočné hodnoty tunera" -#, fuzzy msgid "Tuner miscellaneous" -msgstr "Stav tunera" +msgstr "Tuner rôzne" -#, fuzzy msgid "Tuner not available." -msgstr "Zdroj aktualizácií nie je k dispozícií." +msgstr "Tuner nie je k dispozícii." -#, fuzzy -msgid "Tuner settings values" -msgstr "Nastavenie tunera" +msgid "Tuner setting values" +msgstr "Hodnoty nastavenia tunera" msgid "Tuner slot" msgstr "Slot tunera" @@ -15374,63 +14986,51 @@ msgstr "Stav tunera:" msgid "Tuner type" msgstr "Typ tunera" -#, fuzzy msgid "Tuners & Scanning" -msgstr "Nastavenie tunera" - -#, fuzzy -msgid "Tuning Info: Live Values" -msgstr "Stav tunera" - -#, fuzzy -msgid "Tuning Info: Settings Values" -msgstr "Nastavenie tunera" +msgstr "Tunery a Vyhľadávanie" msgid "Tunisia" -msgstr "" +msgstr "Tunisko" -#, fuzzy msgid "Turkey" -msgstr "Turectina" +msgstr "Turecko" msgid "Turkish" -msgstr "Turectina" +msgstr "Turecky" -#, fuzzy msgid "Turkmenistan" -msgstr "Turectina" +msgstr "Turkménsko" msgid "Turks and Caicos Islands" -msgstr "" +msgstr "Ostrovy Turks a Caicos" msgid "Turn off HDMI-IN PiP mode" -msgstr "" +msgstr "Vypnúť na HDMI-VSTUP režim PiP" msgid "Turn off HDMI-IN full screen mode" -msgstr "" +msgstr "Vypnúť režim celej obrazovky na HDMI-VSTUP" msgid "Turn on HDMI-IN PiP mode" -msgstr "" +msgstr "Zapnúť na HDMI-VSTUP režim PiP" msgid "Turn on HDMI-IN full screen mode" -msgstr "" +msgstr "Zapnúť režim celej obrazovky na HDMI-VSTUP" msgid "Turn on the control LED." -msgstr "" +msgstr "Zapnúť LED kontrolku napájania." #, fuzzy msgid "Turn on the power LED during deep standby." -msgstr "Jas LED v režime hlbokého spánku." +msgstr "Zapnúť počas vyčkávacieho režimu LED kontrolku napájania." msgid "Turn on the power LED during standby." -msgstr "" +msgstr "Zapnúť počas pohotovostného režimu LED kontrolku napájania." msgid "Turn on the power LED." -msgstr "" +msgstr "Zapnúť LED kontrolku napájania." -#, fuzzy msgid "Turning step size" -msgstr "Zmenit velkost kroku pri ladení" +msgstr "Veľkosť kroku otáčania" msgid "Tuvalu" msgstr "" @@ -15439,101 +15039,107 @@ msgid "Two" msgstr "Dva" msgid "Two lines" -msgstr "Dve ciary" +msgstr "Dva riadky" msgid "Type" msgstr "Typ" #, fuzzy msgid "Type of LNB/device" -msgstr "Druh vyhladávania" +msgstr "Typ LNB/zariadenia" msgid "Type of scan" -msgstr "Druh vyhladávania" +msgstr "Typ vyhľadávania" msgid "Type: " msgstr "Typ: " msgid "UNKNOWN" -msgstr "" +msgstr "NEZNÁME" + +msgid "UP" +msgstr "NAHOR" msgid "URL" msgstr "" msgid "USALS" -msgstr "USALS" - -msgid "" -"USALS automatically moves a motorised dish to the correct satellite based on " -"the coordinates entered by the user. Without USALS each satellite will need " -"to be setup and saved individually." msgstr "" +msgid "USALS automatically moves a motorised dish to the correct satellite based on the coordinates entered by the user. Without USALS each satellite will need to be setup and saved individually." +msgstr "USALS automaticky presunie motorizovanú anténu na správny satelit na základe súradníc zadaných používateľom. Bez systému USALS bude potrebné nastaviť a uložiť každý satelit samostatne." + #, fuzzy msgid "USALS calibration" msgstr "USALS kalibrácia" +msgid "USB" +msgstr "" + msgid "Uganda" msgstr "" msgid "Ukraine" -msgstr "" +msgstr "Ukrajina" msgid "Ukrainian" +msgstr "Ukrajinsky" + +msgid "Umweltbewusstsein" msgstr "" msgid "Unable to change password" -msgstr "" +msgstr "Nemožno zmeniť heslo" msgid "Uncover dashed flickering line for this service" -msgstr "" +msgstr "Odkryte prerušovanú blikajúcu čiaru pre túto službu" #, fuzzy msgid "Undefined" -msgstr "Užívatelsky definované" +msgstr "Nedefinované" msgid "Undetermined" -msgstr "Nezistené" +msgstr "Neurčené" msgid "Undo install" -msgstr "Spät inštalácia" +msgstr "Vrátenie späť inštalácie" msgid "Undo uninstall" -msgstr "Spät odinštalácia" +msgstr "Vrátenie späť odinštalovania" msgid "Unencrypted" msgstr "Nešifrované" #, fuzzy msgid "Unhide parental control services" -msgstr "Nastavenie rodicovskej kontroly" +msgstr "Odtajnenie služieb rodičovskej kontroly" msgid "Unicable delay after change voltage before switch command" -msgstr "" +msgstr "Unicable oneskorenie po zmene napätia pred príkazom na prepnutie" msgid "Unicable delay after enable voltage before switch command" -msgstr "" +msgstr "Unicable oneskorenie po zapnutí napätia pred príkazom na prepnutie" msgid "Unicable delay after last diseqc command" -msgstr "" +msgstr "Unicable oneskorenie po poslednom príkaze diseqc" msgid "Uninstall" -msgstr "Odinštalovat" +msgstr "Odinštalovať" msgid "United Arab Emirates" -msgstr "" +msgstr "Spojené arabské emiráty" msgid "United Kingdom" -msgstr "" +msgstr "Veľká Británia" msgid "United States" -msgstr "" +msgstr "Spojené štáty" msgid "United States Minor Outlying Islands" -msgstr "" +msgstr "Menšie odľahlé ostrovy Spojených štátov" msgid "United States of America" -msgstr "" +msgstr "Spojené Štáty Americké" msgid "Universal LNB" msgstr "Univerzálny LNB" @@ -15543,71 +15149,86 @@ msgstr "Neznáme" #, fuzzy msgid "Unknown error" -msgstr "Neznáme" +msgstr "Neznáma chyba" msgid "Unmark service as a dedicated 3D service" -msgstr "" +msgstr "Zrušenie označenia stanice ako vyhradenej služby 3D" #, fuzzy msgid "Unmount." -msgstr "Odpojit" +msgstr "Odpojiť." msgid "Unsupported" msgstr "Nepodporované" -msgid "Up" +msgid "Unterhaltung" msgstr "" -msgid "Update" -msgstr "Aktualizovat" +msgid "Unused 0x71" +msgstr "Nepoužité 0x71" -#, fuzzy -msgid "Update Interval" -msgstr "Interval aktualizácie (v sekundách)" +msgid "Unused 0x72" +msgstr "Nepoužité 0x72" + +msgid "Unused 0x80" +msgstr "Nepoužité 0x80" + +msgid "Unused 0xb2" +msgstr "Nepoužité 0xb2" + +msgid "Up" +msgstr "Nahor" + +msgid "Update" +msgstr "Aktualizácia" msgid "Update channel list only" -msgstr "Aktualizovat len zoznam kanálov" +msgstr "Aktualizovať len zoznam kanálov" #, python-format msgid "Update completed, %d package was installed." msgid_plural "Update completed, %d packages were installed." -msgstr[0] "Aktualizácia dokoncená, %d balík bol nainštalovaný." -msgstr[1] "Aktualizácia dokoncená, %d balíky boli nainštalované." -msgstr[2] "Aktualizácia dokoncená, %d balíkov bolo nainštalovaných." +msgstr[0] "Aktualizácia dokončená, %d balíček bol nainštalovaný." +msgstr[1] "Aktualizácia dokončená, %d balíčky boli nainštalované." +msgstr[2] "Aktualizácia dokončená, %d balíčkov bolo nainštalovaných." #, python-format msgid "Update failed. Your %s %s does not have a working internet connection." -msgstr "Aktualizácia zlyhala. Váš %s %s nemá funkcné pripojenie k internetu." +msgstr "Aktualizácia zlyhala. Váš %s %s nemá funkčné pripojenie k internetu." msgid "Update interval (in seconds)" msgstr "Interval aktualizácie (v sekundách)" msgid "Update packages..." -msgstr "" +msgstr "Aktualizácia balíčkov..." + +#, fuzzy, python-format +msgid "Updated: %s" +msgstr "Aktualizované: %s" msgid "Updatefeed not available." msgstr "Zdroj aktualizácií nie je k dispozícií." #, fuzzy msgid "Updating Cache" -msgstr "Aktualizovat" +msgstr "Aktualizácia vyrovnávacej pamäti" #, fuzzy msgid "Updating cache" -msgstr "Aktualizovat" +msgstr "Aktualizácia vyrovnávacej pamäte" #, fuzzy msgid "Updating cache, please wait..." -msgstr "prosím, pockajte..." +msgstr "Aktualizuje sa vyrovnávacia pamäť, prosím počkajte..." msgid "Updating software catalog" msgstr "Aktualizácia katalógu softvéru" msgid "Upgrade and reboot system" -msgstr "Aktualizovat a reštartovat systém" +msgstr "Aktualizovať a reštartovať systém" msgid "Upgrade finished." -msgstr "Aktualizácia je skoncená." +msgstr "Aktualizácia je skončená." #, python-format msgid "" @@ -15615,325 +15236,315 @@ msgid "" "Please wait until your %s %s reboots\n" "This may take a few minutes" msgstr "" -"Prebieha bezobslužná aktualizácia\n" -"Prosím, cakajte, kým sa Váš %s %s nereštartuje\n" -"Môže to trvat niekolko minút" +"Prebiehajúca aktualizácia\n" +"Počkajte prosím, kým sa Váš %s %s nereštartuje\n" +"Môže to trvať niekoľko minút" msgid "Upgrading" msgstr "Aktualizujem" msgid "Uphops +" -msgstr "Uphops +" +msgstr "" msgid "Uphops -" -msgstr "Uphops-" +msgstr "" msgid "Uphops: " -msgstr "Uphops:" +msgstr "" msgid "Upper case" -msgstr "" +msgstr "Veľké písmená" msgid "Uptime" -msgstr "Doba provádzky" +msgstr "Čas prevádzky" -#, fuzzy, python-format +#, python-format msgid "Uptime:\t%s\n" -msgstr "Doba provádzky" +msgstr "Čas prevádzky:\t%s\n" + +msgid "Urban Music" +msgstr "Mestská hudba" msgid "Uruguay" msgstr "" -#, fuzzy msgid "Usage setup" -msgstr "Nastavenie uShare" +msgstr "Nastavenie používania" msgid "Use" -msgstr "Použit" +msgstr "Použiť" msgid "Use 12 characters display mode" -msgstr "" +msgstr "Použitie režimu zobrazenia 12 znakov" msgid "Use DHCP" -msgstr "Použit DHCP" +msgstr "Použitie DHCP" msgid "Use EIT EPG information when it is available." -msgstr "Ak sú dostupné, použit EIT EPG informácie." +msgstr "Použitie informácie EIT EPG, ak je k dispozícii." msgid "Use FreeSat EPG information when it is available." -msgstr "Ak sú dostupné, použit FreeSat EPG informácie." +msgstr "Použitie informácie EPG služby FreeSat, ak je k dispozícii." -#, fuzzy msgid "Use Geolocation" -msgstr "Umiestenie filmu" +msgstr "Použitie geografickej lokalizácie" msgid "Use MHW EPG information when it is available." -msgstr "Ak sú dostupné, použit MHW EPG informácie." +msgstr "Použitie informácie MHW EPG, ak je k dispozícii." msgid "Use Netmed EPG information when it is available." -msgstr "Ak sú dostupné, použit Netmed EPG informácie." +msgstr "Použitie informácie Netmed EPG, ak je k dispozícii." -msgid "" -"Use OpenTV EPG information when it is available. For reading OpenTV EPG data " -"tuning to a dedicated transponder is required" -msgstr "" +msgid "Use OpenTV EPG information when it is available. For reading OpenTV EPG data tuning to a dedicated transponder is required" +msgstr "Použitie informácie OpenTV EPG, ak je k dispozícii. Na čítanie údajov OpenTV EPG je potrebné naladenie špecializovaného transpondéra" msgid "Use PiP for download" -msgstr "" +msgstr "Použitie PiP na stiahnutie" msgid "Use TV remote control" -msgstr "Používat dialkový ovládac TV" +msgstr "Používanie diaľkového ovládača TV" msgid "Use USALS for this sat" -msgstr "Použit USALS pre tento satelit" +msgstr "Použiť USALS pre tento satelit" msgid "Use ViaSat EPG information when it is available." -msgstr "Ak sú dostupné, použit ViaSat EPG informácie." +msgstr "Použitie informácie ViaSat EPG, ak je k dispozícii." -#, fuzzy msgid "Use Virgin EPG information when it is available." -msgstr "Ak sú dostupné, použit ViaSat EPG informácie." +msgstr "Použitie informácie Virgin EPG, ak je k dispozícii." msgid "Use a gateway" -msgstr "Použit bránu" +msgstr "Použitie brány" msgid "Use adaptive date display" -msgstr "" +msgstr "Použitie adaptívneho zobrazenia dátumu" msgid "Use as PiP if possible" -msgstr "" +msgstr "Ak je to možné, použite ako PiP" -#, fuzzy msgid "Use circular LNB" -msgstr "kruhová lavá" +msgstr "Použitie kruhového LNB" msgid "Use fastscan channel names" -msgstr "Použit názvy staníc z fastscanu" +msgstr "Použitie názvov kanálov rýchleho vyhľadania" msgid "Use fastscan channel numbering" -msgstr "Použit císlovanie staníc z fastscanu" +msgstr "Použitie číslovania kanálov rýchleho vyhľadania" msgid "Use frequency or channel" -msgstr "Použit frekvenciu alebo kanál" +msgstr "Použitie kmitočtu alebo kanálu" msgid "Use geolocation to set the current time zone location" -msgstr "" +msgstr "Použitie geolokácie na nastavenie polohy aktuálneho časového pásma" msgid "Use individual settings for each directory" -msgstr "Použit individuálne nastavenie pre každý adresár" +msgstr "Použitie individuálnych nastavení pre každý adresár" msgid "Use interface" -msgstr "Použit rozhranie" +msgstr "Použitie rozhrania" msgid "Use official channel numbering" -msgstr "Použit oficiálne císlovanie kanálov" +msgstr "Použiť oficiálne číslovanie kanálov" msgid "Use original DVB subtitle position" -msgstr "Použit pôvodnú pozíciu DVB titulkov" +msgstr "Použitie pôvodnej pozície titulkov DVB" msgid "Use original teletext position" -msgstr "Použit pôvodnú pozíciu teletextu" +msgstr "Použitie pôvodnej pozície teletextu" msgid "Use piconlcd directory for picons on color LCD" -msgstr "" +msgstr "Použitie adresára piconlcd pre piktogramy na farebnom LCD" msgid "Use power measurement" -msgstr "Použit meranie spotreby" +msgstr "Použitie merania spotreby" msgid "Use separate Picon pack for Front Display" -msgstr "" +msgstr "Použitie samostatného balíčka piktogramov pre predný displej" -#, fuzzy msgid "Use skin default" -msgstr "Predvolené" +msgstr "Použitie predvoleného vzhľadu" msgid "Use slim screen" -msgstr "Použit tenký displej" +msgstr "Použitie tenkej obrazovky" -#, fuzzy -msgid "" -"Use the LEFT/RIGHT buttons on your remote to adjust the height of the user " -"interface. LEFT button decreases the size, RIGHT increases the size." -msgstr "" -"Použite tlacidlá vlavo/vpravo pre nastavenie velkosti užívatelského " -"rozhrania. Lavé tlacidlo zmenšuje, pravé zväcšuje velkost." +msgid "Use the LEFT/RIGHT buttons on your remote to adjust the height of the user interface. LEFT button decreases the size, RIGHT increases the size." +msgstr "Pomocou tlačidiel VĽAVO/VPRAVO na diaľkovom ovládači nastavte výšku užívateľského rozhrania. Tlačidlo VĽAVO zmenšuje veľkosť, tlačidlo VPRAVO zväčšuje veľkosť." -#, fuzzy -msgid "" -"Use the LEFT/RIGHT buttons on your remote to adjust the width of the user " -"interface. LEFT button decreases the size, RIGHT increases the size." -msgstr "" -"Použite tlacidlá vlavo/vpravo pre nastavenie velkosti užívatelského " -"rozhrania. Lavé tlacidlo zmenšuje, pravé zväcšuje velkost." +msgid "Use the LEFT/RIGHT buttons on your remote to adjust the width of the user interface. LEFT button decreases the size, RIGHT increases the size." +msgstr "Pomocou tlačidiel VĽAVO/VPRAVO na diaľkovom ovládači nastavte šírku užívateľského rozhrania. Tlačidlo VĽAVO zmenšuje veľkosť, tlačidlo VPRAVO zväčšuje veľkosť." -#, fuzzy -msgid "" -"Use the LEFT/RIGHT buttons on your remote to move the user interface left/" -"right." -msgstr "" -"Použite tlacidlá vlavo/vpravo pre posun užívatelského rozhrania dolava/" -"doprava." +msgid "Use the LEFT/RIGHT buttons on your remote to move the user interface left/right." +msgstr "Pomocou tlačidiel VĽAVO/VPRAVO na diaľkovom ovládači posúvajte užívateľské rozhranie doľava/doprava." -#, fuzzy -msgid "" -"Use the LEFT/RIGHT buttons on your remote to move the user interface up/down." -msgstr "" -"Použite tlacidlá vlavo/vpravo pre posun užívatelského rozhrania nahor/dole." +msgid "Use the LEFT/RIGHT buttons on your remote to move the user interface up/down." +msgstr "Pomocou tlačidiel VĽAVO/VPRAVO na diaľkovom ovládači posúvajte užívateľské rozhranie hore/dole." -#, fuzzy -msgid "" -"Use the UP and DOWN keys to select language, Menu key to install new " -"language. Afterwards press the OK button." -msgstr "Tlacidlami NAHOR alebo NADOL zvolte jazyk. Potom stlacte tlacidlo OK." +msgid "Use the UP and DOWN keys to select language, Menu key to install new language. Afterwards press the OK button." +msgstr "Pomocou tlačidiel NAHORU a DOLEVA vyberte jazyk, pomocou tlačidla Ponuka nainštalujte nový jazyk. Potom stlačte tlačidlo OK." msgid "Use the alternative or the conventional radio mode." -msgstr "Použit alternatívny alebo konvencný režim rádia." +msgstr "Použitie alternatívneho alebo bežného režimu rádia." msgid "Use the alternative screen" -msgstr "Použit alternatívnu obrazovku" +msgstr "Použitie alternatívnej obrazovky" -msgid "" -"Use the deletion time to sort Trash directories.\n" -"Most recently deleted at the top." -msgstr "" +msgid "Use the deletion time to sort Trash directories. Most recently deleted at the top." +msgstr "Čas odstránenia použitý na triedenie adresárov Koša. Najnovšie odstránené na vrchu." msgid "Use the network wizard to configure selected network adapter" -msgstr "" -"Použit Sprievodcu nastavením siete na nastavenie zvoleného sietového adaptéra" +msgstr "Pomocou sieťového sprievodcu nakonfigurujte vybraný sieťový adaptér" msgid "Use the network wizard to configure your Network\n" -msgstr "Na nastavenie siete použit sprievodcu konfiguráciu siete\n" +msgstr "Pomocou sprievodcu sieťou nakonfigurujte sieť\n" -msgid "" -"Use the up/down keys on your remote control to select an option. After that, " -"press OK." -msgstr "" -"Šípkami nahor alebo nadol na dialkovom ovládaci vyberte volbu. Potom stlacte " -"tlacidlo OK." +msgid "Use the up/down keys on your remote control to select an option. After that, press OK." +msgstr "Pomocou tlačidiel hore/dole na diaľkovom ovládači vyberte možnosť. Potom stlačte tlačidlo OK." msgid "Use the wizard to set up basic features" -msgstr "Použit sprievodcu pre základné nastavenie" +msgstr "Pomocou sprievodcu nastavíte základné funkcie" msgid "Use these input device settings?" -msgstr "Použit tieto nastavenia vstupného zariadenia?" +msgstr "Použiť tieto nastavenia vstupného zariadenia?" msgid "Use these settings?" -msgstr "Použit tieto nastavenia?" +msgstr "Použiť tieto nastavenia?" msgid "Use this video enhancement settings?" -msgstr "Použit toto rozšírené nastavenie obrazu?" +msgstr "Použiť toto nastavenie vylepšenia obrazu?" msgid "Use timeshift seekbar while timeshifting?" -msgstr "Použit vyhladávací panel casového posunu pocas bežiaceho posunu?" +msgstr "Používanie časového posunu vyhľadávacej lišty počas časového posunu?" -#, fuzzy msgid "Use trash can in movie list" -msgstr "Používanie koša v zozname filmov" +msgstr "Používanie odpadkového koša v zozname filmov" msgid "Used service scan type" -msgstr "Typ vyhladávania staníc" +msgstr "Použitý typ vyhľadávania stanice" msgid "Used:" msgstr "Použité:" msgid "User - bouquets" -msgstr "Užívatel - prehlady" +msgstr "Užívateľské prehľady" #, python-format msgid "User Band %d" -msgstr "" +msgstr "Užívateľské pásmo %d" #, python-format msgid "User Band %d (%s)" -msgstr "" +msgstr "Užívateľské pásmo %d (%s)" -#, fuzzy msgid "User Interface" -msgstr "Užívatelské rozhranie" +msgstr "Užívateľské rozhranie" msgid "User defined" -msgstr "Užívatelsky definované" +msgstr "Užívateľom definované" + +#, python-format +msgid "User defined 0x%02x" +msgstr "Užívateľom definované 0x%02x" msgid "User defined transponder" -msgstr "Užívatelom definovaný transpondér" +msgstr "Užívateľom definovaný transpondér" #, fuzzy +msgctxt "problem trans" +msgid "User installed plugins" +msgstr "Užívateľom nainštalované doplnky" + msgid "User interface settings" -msgstr "Použit tieto nastavenia?" +msgstr "Nastavenia užívateľského rozhrania" msgid "User interface visibility" -msgstr "Viditelnost užívatelského rozhrania" +msgstr "Viditeľnosť užívateľského rozhrania" msgid "User-selectable functions" -msgstr "" +msgstr "Funkcie voliteľné užívateľom" msgid "Username" -msgstr "Užívatelské meno" +msgstr "Užívateľské meno" msgid "Username (httpuser)" -msgstr "Užívatelské meno (httpuser)" +msgstr "Užívateľské meno (httpuser)" msgid "Username:" -msgstr "Užívatelské meno:" +msgstr "Užívateľské meno:" #, python-format msgid "Using LNB %d" msgstr "Používa sa LNB %d" -msgid "Using fixed address" -msgstr "Používam pevnú adresu" - msgid "Using old profile: " -msgstr "Použitie starého profilu:" +msgstr "Použitie starého profilu: " #, python-format msgid "Using tuner %s" msgstr "Používa sa tuner %s" -msgid "" -"Usually when the subtitle language is the same as the audio language, the " -"subtitles will not be used. Enable this option to allow these subtitles to " -"be used." -msgstr "" -"Zvycajne, ak je jazyk titulkov rovnaký ako jazyk zvuku, nebudú použité " -"titulky. Povolte toto nastavenie, aby sa tieto titulky použili ." +msgid "Usually when the subtitle language is the same as the audio language, the subtitles will not be used. Enable this option to allow these subtitles to be used." +msgstr "Zvyčajne, ak je jazyk titulkov rovnaký ako jazyk zvuku, nebudú použité titulky. Povoľte toto nastavenie, aby sa tieto titulky použili." #, fuzzy msgid "Utilities" -msgstr "Kapacita:" +msgstr "Komunálne služby" msgid "Uzbekistan" msgstr "" -#, fuzzy msgid "VCR Scart" -msgstr "Scart - videorekordér" +msgstr "" + +msgid "VIDEO" +msgstr "VIDEO" + +msgid "VKEY" +msgstr "" #, fuzzy msgid "VLAN connection" -msgstr "Pripojenie LAN" +msgstr "Pripojenie VLAN" msgid "VMGM (intro trailer)" msgstr "VMGM (úvodný trailer)" +msgid "VMODE" +msgstr "" + msgid "VOB file" +msgstr "VOB súbor" + +msgid "VOL+" +msgstr "" + +msgid "VOL-" msgstr "" msgid "VU+" msgstr "" msgid "Valid ONID/TSID look at www.lyngsat.com..." +msgstr "Platné ONID/TSID nájdete na adrese www.lyngsat.com..." + +msgid "Vanuatu" msgstr "" #, fuzzy -msgid "Vanuatu" -msgstr "rucne" +msgid "Variety" +msgstr "Varieté" #, fuzzy +msgctxt "problem trans" msgid "Various" -msgstr "Prehrat predchádzajúce" +msgstr "Rôzne" msgid "Venezuela (Bolivarian Republic of)" +msgstr "Venezuela" + +msgid "Verkehr" +msgstr "" + +msgid "Verschiedenes" msgstr "" msgid "Version: " @@ -15943,197 +15554,218 @@ msgid "Vertical" msgstr "Zvislá" msgid "Vertical turning speed" -msgstr "Zvislá rýchlost otácania" - -#, fuzzy, python-format -msgid "ViX version: %s" -msgstr "Verzia: %s" +msgstr "Zvislá rýchlosť otáčania" -#, fuzzy msgid "Video & Audio Settings" -msgstr "Rozšírené nastavenia obrazu" +msgstr "Nastavenia obrazu a zvuku" -#, fuzzy msgid "Video Chip Mode*" -msgstr "Kódek videa" +msgstr "Režim obrazového čipu*" msgid "Video PID" msgstr "Obrazový PID" -#, fuzzy msgid "Video clipping" -msgstr "Jemné nastavenie obrazu" +msgstr "Zostrih obrazu" #, python-format msgid "Video content: %ix%i%s %iHz" -msgstr "Obsah videa: % ix %i %s %i Hz" +msgstr "Vlastnosti obrazu: %ix%i %s %i Hz" -#, fuzzy msgid "Video enhancement" -msgstr "Rozšírené nastavenie obrazu" +msgstr "Vylepšenie obrazu" msgid "Video enhancement preview" -msgstr "Náhlad rozšíreného nastavenia obrazu" +msgstr "Ukážka vylepšenia obrazu" msgid "Video enhancement setup" -msgstr "Rozšírené nastavenie obrazu" +msgstr "Nastavenie vylepšenia obrazu" -#, fuzzy msgid "" "Video input selection\n" "\n" -"Please press OK if you can see this page on your TV (or select a different " -"input port).\n" +"Please press OK if you can see this page on your TV (or select a different input port).\n" "\n" "The next input port will be automatically probed in 10 seconds." msgstr "" -"Volba video vstupu\n" -"Prosím, stlacte OK, ak vidíte túto stránku na svojom televízore (alebo " -"vyberte iný vstupný port).\n" -"Další vstupný port sa automaticky otestuje za 20 sekúnd." +"Výber obrazového vstupu\n" +"\n" +"Ak túto stránku vidíte na televízore, stlačte tlačidlo OK (alebo vyberte iný vstupný port).\n" +"\n" +"Ďalší vstupný port bude automaticky sondovaný za 10 sekúnd." msgid "Video mode selection." -msgstr "Volba režimu obrazu." +msgstr "Výber obrazového režimu." #, python-format msgid "Video mode: %s" -msgstr "Režim videa: %s" +msgstr "Režim obrazu: %s" msgid "Video output" -msgstr "Video výstup" +msgstr "Obrazový výstup" + +msgid "Video settings" +msgstr "Obrazové nastavenia" + +msgid "Video settings options" +msgstr "Možnosti obrazového nastavenia" #, python-format msgid "Video: %s fps" -msgstr "Video: %s fps" +msgstr "Obraz: %s fps" + +msgid "Videoclip" +msgstr "Videoklip" -#, fuzzy msgid "Videocodec, size & format" -msgstr "Formát videa" +msgstr "Obrazový kodek, veľkosť a formát" -#, fuzzy msgid "Viet Nam" -msgstr "Názov stanice" +msgstr "Vietnam" msgid "View" -msgstr "Zobrazit" +msgstr "Zobraziť" msgid "View Movies..." -msgstr "Zobrazit filmy..." +msgstr "Zobraziť filmy..." msgid "View Video CD..." -msgstr "Zobrazit Video CD..." +msgstr "Zobraziť Video CD..." msgid "View details" -msgstr "Zobrazit podrobnosti" +msgstr "Zobraziť podrobnosti" -#, fuzzy -msgid "View extensions..." -msgstr "zobrazit rozšírenia..." +msgid "View extensions" +msgstr "Zobraziť rozšírenia" msgid "View list of available " -msgstr "Zobrazit zoznam dostupných" +msgstr "Zobraziť zoznam dostupných " msgid "View list of available CommonInterface extensions" -msgstr "Zobrazit zoznam dostupných rozšírení CommonInterface" +msgstr "Zobraziť zoznam dostupných rozšírení Common Interface" msgid "View list of available EPG extensions." -msgstr "Zobrazit zoznam dostupných rozšírení EPG." +msgstr "Zobraziť zoznam dostupných rozšírení EPG." msgid "View list of available Satellite equipment extensions." -msgstr "Zobrazit zoznam dostupných rozšírení satelitného zariadenia." +msgstr "Zobraziť zoznam dostupných rozšírení satelitného vybavenia." msgid "View list of available communication extensions." -msgstr "Zobrazit zoznam dostupných komunikacných rozšírení." +msgstr "Zobraziť zoznam dostupných komunikačných rozšírení." msgid "View list of available default settings" -msgstr "Zobrazit zoznam dostupných predvolených nastavení" +msgstr "Zobraziť zoznam dostupných predvolených nastavení" msgid "View list of available display and userinterface extensions." -msgstr "" -"Zobrazit zoznam dostupných rozšírení zobrazenia a užívatelského rozhrania" +msgstr "Zobraziť zoznam dostupných rozšírení zobrazenia a užívateľského rozhrania." msgid "View list of available multimedia extensions." -msgstr "Zobrazit zoznam dostupných multimediálnych rozšírení." +msgstr "Zobraziť zoznam dostupných multimediálnych rozšírení." msgid "View list of available networking extensions" -msgstr "Zobrazit zoznam dostupných sietových rozšírení" +msgstr "Zobraziť zoznam dostupných sieťových rozšírení" msgid "View list of available recording extensions" -msgstr "Zobrazit zoznam dostupných rozšírení pre nahrávanie" +msgstr "Zobraziť zoznam dostupných rozšírení pre nahrávanie" msgid "View list of available skins" -msgstr "Zobrazit zoznam dostupných vzhladov" +msgstr "Zobraziť zoznam dostupných vzhľadov" msgid "View list of available software extensions" -msgstr "Zobrazit zoznam dostupných softvérových rozšírení" +msgstr "Zobraziť zoznam dostupných softvérových rozšírení" msgid "View list of available system extensions" -msgstr "Zobrazit zoznam dostupných systémových rozšírení" +msgstr "Zobraziť zoznam dostupných systémových rozšírení" msgid "View mode" msgstr "Režim zobrazenia" msgid "View photos..." -msgstr "Zobrazit fotografie..." +msgstr "Zobraziť fotografie..." -msgid "View teletext..." -msgstr "Zobrazit teletext..." +msgid "View teletext" +msgstr "Zobraziť teletext" msgid "View the changes" -msgstr "Zobrazit zmeny" +msgstr "Zobraziť zmeny" msgid "View video CD..." -msgstr "Zobrazit Video CD..." +msgstr "Zobraziť Video CD..." + +msgid "Violence" +msgstr "Násilie" msgid "Virgin Islands (British)" -msgstr "" +msgstr "Panenské ostrovy (Britské)" msgid "Virgin Islands (U.S.)" -msgstr "" +msgstr "Panenské ostrovy (USA)" msgid "Virtual KeyBoard Functions" -msgstr "" +msgstr "Funkcie virtuálnej klávesnice" msgid "Virtual KeyBoard Text:" -msgstr "" +msgstr "Text virtuálnej klávesnice:" -#, fuzzy msgid "Virtual keyboard" -msgstr "%s %s IR klávesnica" +msgstr "Virtuálna klávesnica" msgid "Virtuosso Image Xtreme" -msgstr "Virtuosso Image Xtreme" +msgstr "" + +msgid "Volleyball" +msgstr "Volejbal" msgid "Voltage mode" -msgstr "Režim napätia" +msgstr "Napäťový režim" msgid "Volume keys on the receiver remote will control the TV volume." +msgstr "Tlačidlami hlasitosti na diaľkovom ovládači prijímača sa ovláda hlasitosť televízora." + +msgid "Vorschau" +msgstr "" + +msgid "Vu+ 4K image install options" +msgstr "Možnosti inštalácie systémového obrazu Vu+ 4K" + +msgid "" +"Vu+ Multiboot - PLEASE WAIT WHILE INITIALISING!\n" +" - will take upto 5 minutes plus 5 minutes per restored eMMC slot.\n" +" - after installing Recovery and Slot1 image, receiver will reboot to Slot 1 setup wizard." msgstr "" +"Vu+ Multiboot - PROSÍM POČKAŤ PRI INICIALIZÁCII!\n" +" - bude trvať až 5 minút plus 5 minút na každý obnovený slot eMMC.\n" +" - po inštalácii systémového obrazu Recovery a systémového obrazu Slot1 sa prijímač reštartuje do sprievodcu nastavenia Slotu 1." msgid "W" -msgstr "Z" +msgstr "" + +msgid "WAKEUP" +msgstr "PREBUDIŤ" msgid "WARNING: feeds may be unstable." -msgstr "Upozornenie: feedy môžu byt nestabilné." +msgstr "VAROVANIE: zdroje môžu byť nestabilné." msgid "WEP" -msgstr "WEP" +msgstr "" + +msgid "WIZTV" +msgstr "" msgid "WLAN connection" -msgstr "Spojenie WLAN" +msgstr "Pripojenie WLAN" -#, fuzzy msgid "WMA Pro downmix" -msgstr "AAC downmix" +msgstr "" msgid "WPA" -msgstr "WPA" +msgstr "" msgid "WPA or WPA2" -msgstr "WPA alebo WPA2" +msgstr "" msgid "WPA2" -msgstr "WPA2" +msgstr "" msgid "WSS on 4:3" msgstr "WSS pri 4:3" @@ -16141,80 +15773,90 @@ msgstr "WSS pri 4:3" msgid "WWIO 4K" msgstr "" +msgid "WWW" +msgstr "" + +msgid "WWW long" +msgstr "WWW dlho" + +msgid "Waffen" +msgstr "" + msgid "Waiting" -msgstr "Cakám" +msgstr "Čakanie" -#, fuzzy msgid "Waiting for mount." -msgstr "Cakám na pripojenie" +msgstr "Čakanie na pripojenie." -#, fuzzy msgid "Waiting for partition." -msgstr "Cakám na partíciu" +msgstr "Čakanie na partíciu." -#, fuzzy msgid "Wake A/V receiver from standby" -msgstr "Prebudit TV z pohotovostného režimu" +msgstr "Prebudenie A/V prijímača z pohotovostného režimu" -#, fuzzy msgid "Wake A/V receiver from standby." -msgstr "Prebudit TV z pohotovostného režimu" +msgstr "Prebudenie A/V prijímača z pohotovostného režimu." msgid "Wake On LAN" -msgstr "" +msgstr "Prebudenie na sieti LAN" msgid "Wake Up" -msgstr "Prebudenie" +msgstr "Prebudiť" msgid "Wake Up To Standby" -msgstr "Prebudenie do pohotovostného režimu" +msgstr "Prebudiť sa do pohotovostného režimu" -msgid "" -"Wake the receiver from standby when the wake command is sent from the TV." -msgstr "" +msgid "Wake the receiver from standby when the wake command is sent from the TV." +msgstr "Prebudenie prijímača z pohotovostného režimu po odoslaní príkazu na prebudenie z televízora." msgid "Wakeup" -msgstr "Prebudit" +msgstr "Prebudenie" msgid "Wakeup TV from standby" -msgstr "Prebudit TV z pohotovostného režimu" +msgstr "Prebudenie TV z pohotovostného režimu" -#, fuzzy msgid "Wakeup command for TV" -msgstr "Prebudit prijímac signálom z TV" +msgstr "Príkaz na prebudenie pre TV" msgid "Wakeup signal from TV" -msgstr "Prebudit prijímac signálom z TV" +msgstr "Signál prebudenia z TV" msgid "Wallis and Futuna" -msgstr "" +msgstr "Wallis a Futuna" + +msgid "War" +msgstr "Vojna" -#, fuzzy msgid "Warning" -msgstr "záhradníctvo" +msgstr "Upozornenie" -msgid "" -"Warning: FBC-C V1 tuner should be connected to the first slot to work " -"correctly. Otherwise, only 2 out of 8 demodulators will be available when " -"connected in the second slot. " -msgstr "" +msgid "Warning: FBC-C V1 tuner should be connected to the first slot to work correctly. Otherwise, only 2 out of 8 demodulators will be available when connected in the second slot. " +msgstr "Varovanie: Aby tuner FBC-C V1 fungoval správne, mal by byť pripojený k prvému slotu. V opačnom prípade budú po pripojení do druhého slotu k dispozícii len 2 z 8 demodulátorov. " msgid "Warning: no LNB; using factory defaults." -msgstr "Upozornenie: žiadne LNB; použije sa výrobné nastavenie." +msgstr "Upozornenie: nie je LNB; použitie továrenských nastavenií." msgid "Warning: the second input of this dual tuner may not support SCR LNBs. " +msgstr "Upozornenie: Druhý vstup tohto duálneho tunera nemusí podporovať SCR LNB. " + +msgid "Wassersport" msgstr "" msgid "Watch movies..." -msgstr "Sledovat filmy..." +msgstr "Pozerajte filmy..." + +msgid "Watch recordings" +msgstr "Sledovať nahrávky" + +msgid "Water Sport" +msgstr "Vodný šport" -msgid "Watch recordings..." -msgstr "Sledovanie záznamov ..." +msgid "Weather" +msgstr "Počasie" msgid "Web Interface" msgstr "Webové rozhranie" -#, fuzzy msgid "Web interface" msgstr "Webové rozhranie" @@ -16225,70 +15867,78 @@ msgid "Wednesday" msgstr "Streda" msgid "Weekday" -msgstr "Pracovný den" +msgstr "Víkendový deň" -#, fuzzy msgid "Weekend" -msgstr "Pracovný den" +msgstr "Víkend" msgid "Weekly" -msgstr "Týždenne" +msgstr "Týždeň" msgid "Weighted position" -msgstr "Vážená pozícia titulkov" +msgstr "Vážená pozícia" + +msgid "Weightlifting" +msgstr "Vzpieranie" msgid "" "Welcome to OpenViX!\n" "\n" -"NOTE: This section of the wizard is intended for people who cannot disable " -"overscan on their television / display. Please first try to disable " -"overscan before using this feature.\n" +"NOTE: This section of the wizard is intended for people who cannot disable overscan on their television / display. Please first try to disable overscan before using this feature.\n" "\n" -"USAGE: If you continue adjust the screen size and position settings so that " -"the shaded user interface layer *just* covers the test pattern in the " -"background.\n" +"USAGE: If you continue adjust the screen size and position settings so that the shaded user interface layer *just* covers the test pattern in the background.\n" "\n" "Select Yes to change these settings or No to skip this step." msgstr "" +"Vitajte v OpenViX!\n" +"\n" +"POZNÁMKA: Táto časť sprievodcu je určená pre ľudí, ktorí nemôžu vypnúť funkciu overscan na svojom televízore/displeji. Pred použitím tejto funkcie sa najprv pokúste vypnúť funkciu overscan.\n" +"\n" +"POUŽITIE: Ak budete pokračovať, upravte nastavenia veľkosti a polohy obrazovky tak, aby tieňovaná vrstva používateľského rozhrania *len* zakrývala testovací obrazec na pozadí.\n" +"\n" +"Ak chcete zmeniť tieto nastavenia, vyberte možnosť Áno alebo Nie, ak chcete tento krok preskočiť." msgid "" -"Welcome to the cutlist editor.\n" +"Welcome to OpenViX!\n" "\n" -"Seek to the start of the stuff you want to cut away. Press OK, select 'start " -"cut'.\n" +"Select 'Standard' to setup Standard Vu+ image.\n" "\n" -"Then seek to the end, press OK, select 'end cut'. That's it." +"Select 'Multiboot' to setup Vu+ Multiboot." msgstr "" -"Vitajte v strihovom editore.\n" +"Vitajte v OpenViX!\n" "\n" -"Nájdite zaciatok materiálu, ktorý chcete vystrihnút. Stlacte OK, zvolte " -"„zaciatok strihu“\n" +"Ak chcete nastaviť štandardný systémový obraz Vu+, vyberte možnosť 'Standard'.\n" "\n" -"Potom nájdite koniec, stlacte OK, zvolte „koniec strihu“ To je všetko." +"Výberom položky 'Multiboot' nastavíte Vu+ Multiboot." msgid "" -"Welcome to the image upgrade wizard. The wizard will assist you in upgrading " -"the firmware of your %s %s by providing a backup facility for your current " -"settings and a short explanation of how to upgrade your firmware." +"Welcome to the cutlist editor.\n" +"\n" +"Seek to the start of the stuff you want to cut away. Press OK, select 'start cut'.\n" +"\n" +"Then seek to the end, press OK, select 'end cut'. That's it." msgstr "" -"Vitajte v sprievodcovi aktualizáciou. Sprievodca Vám pomôže pri aktualizácii " -"firmvéru %s %s umožnením zálohovania aktuálnych nastavení a strucným " -"vysvetlením, ako aktualizovat firmvér." +"Vitajte v strihovom editore.\n" +"\n" +"Nájdite začiatok materiálu, ktorý chcete vystrihnúť. Stlačte OK, vyberte 'začiatok strihu'\n" +"\n" +"Potom nájdite koniec, stlačte OK, vyberte koniec 'strihu'. To je všetko." + +msgid "Welcome to the image upgrade wizard. The wizard will assist you in upgrading the firmware of your %s %s by providing a backup facility for your current settings and a short explanation of how to upgrade your firmware." +msgstr "Vitajte v sprievodcovi aktualizáciou systémového obrazu. Sprievodca vám pomôže pri aktualizácii firmvéru Vášho %s %s tým, že poskytne možnosť zálohovania aktuálnych nastavení a krátke vysvetlenie, ako aktualizovať firmvér." msgid "" "Welcome.\n" "\n" -"If you want to connect your %s %s to the Internet, this wizard will guide " -"you through the basic network setup of your %s %s.\n" +"If you want to connect your %s %s to the Internet, this wizard will guide you through the basic network setup of your %s %s.\n" "\n" "Press OK to start configuring your network" msgstr "" "Vitajte.\n" "\n" -"Ak chcete pripojit %s %s k internetu, tento sprievodca vás povedie " -"základnými nastaveniami siete.\n" +"Ak chcete pripojiť svoj %s %s k internetu, tento sprievodca vás povedie základnými nastaveniami siete.\n" "\n" -"Po stlacení OK zacnite konfigurovat siet" +"Po stlačení OK začnite konfigurovať sieť" msgid "" "Welcome.\n" @@ -16298,374 +15948,236 @@ msgid "" msgstr "" "Vitajte.\n" "\n" -"Tento úvodný sprievodca Vám pomôže so základnými nastaveniami Vášho %s %.\n" -"Stlacením tlacidla OK na dialkovom ovládaci prejdite do dalšieho kroku." +"Tento úvodný sprievodca Vám pomôže so základným nastavením Vášho %s %s.\n" +"Stlačením tlačidla OK na diaľkovom ovládači prejdite na ďalší krok." + +msgid "Werbung" +msgstr "" msgid "West" -msgstr "západne" +msgstr "Západne" msgid "West limit set" msgstr "Západný limit nastavený" -msgid "Western Sahara" +msgid "Western" msgstr "" -msgid "" -"What action is required on completion of the timer? 'Auto' lets the box " -"return to the state it had when the timer started. 'Do nothing', 'Go to " -"standby' and 'Go to deep standby' do exactly that." +msgid "Western Sahara" +msgstr "Západná Sahara" + +msgid "Wettbewerb" msgstr "" -"Co je potrebné na kompletizáciu casovaca? \"Auto\" umožnuje vrátit prijímac " -"do stavu v akom sa nachádzal, ked zacal casovac. \"Nevykonat nic\", " -"\"Prepnút do pohotovostného režimu\" a \"Prepnút do režimu hlbokého spánku\" " -"to vykonajú." + +msgid "Wetter" +msgstr "Vlhšie" + +msgid "What action is required on completion of the timer? 'Auto' lets the box return to the state it had when the timer started. 'Do nothing', 'Go to standby' and 'Go to deep standby' do exactly that." +msgstr "Čo je potrebné na kompletizáciu časovača? 'Auto' umožňuje vrátiť prijímač do stavu v akom sa nachádzal, ked začal časovač. 'Nevykonať nič', 'Prepnúť do pohotovostného režimu' a 'Prepnúť do vyčkávacieho režimu' vykonajú presne to." msgid "What date of month ?" -msgstr "Aký dátum v mesiaci ?" +msgstr "Ktorý dátum v mesiaci ?" -#, fuzzy msgid "What day of week ?" -msgstr "Aký den v týždni?" +msgstr "Ktorý deň v týždni ?" msgid "What do you want to scan?" -msgstr "Co chcete vyhladat?" +msgstr "Čo chcete vyhľadať?" -msgid "" -"When changing skins this allows the skin to load without requiring an enigma " -"restart." -msgstr "" +msgid "When changing skins this allows the skin to load without requiring an enigma restart." +msgstr "Pri zmene vzhľadov to umožňuje načítanie vzhľadov bez potreby reštartu enigmy." -msgid "" -"When enabled a forced download will be possible from the extensions menu " -"(blue button). Shows after next restart." -msgstr "" +msgid "When enabled a forced download will be possible from the extensions menu (blue button). Shows after next restart." +msgstr "Po zapnutí bude možné vynútené stiahnutie z ponuky rozšírení (modré tlačidlo). Zobrazí sa po ďalšom reštarte." -msgid "" -"When enabled enigma2 will load unlinked userbouquets. This means that " -"userbouquets that are available, but not included in the bouquets.tv or " -"bouquets.radio files, will still be loaded. This allows you for example to " -"keep your own user bouquet while installed settings are upgraded" +msgid "When enabled enigma2 will load unlinked userbouquets. This means that userbouquets that are available, but not included in the bouquets.tv or bouquets.radio files, will still be loaded. This allows you for example to keep your own user bouquet while installed settings are upgraded" msgstr "" +"Ak je táto funkcia zapnutá, enigma2 načíta neprepojené užívateľské prehľady. To znamená, že užívateľské prehľady, ktoré sú k dispozícii, ale nie sú zahrnuté v súboroch bouquets.tv alebo bouquets.radio, budú stále načítané. To vám napríklad umožňuje zachovať si vlastný užívateľský prehľad počas aktualizácie nainštalovaných " +"nastavení" -msgid "" -"When enabled the online checker will also check for experimental versions" -msgstr "" -"Ak je povolená online kontrola budú kontrolované aj experimentálne verzie." +msgid "When enabled the online checker will also check for experimental versions" +msgstr "Ak je táto funkcia zapnutá, online kontrola skontroluje aj experimentálne verzie" -#, fuzzy -msgid "" -"When enabled the receiver will automatically return to standby when the TV " -"is turned off." -msgstr "" -"Ak povolené, prijímac automaticky použije zvukovú stopu, ktorú ste predtým " -"vybrali." +msgid "When enabled the receiver will automatically return to standby when the TV is turned off." +msgstr "Ak je táto funkcia zapnutá, prijímač sa po vypnutí televízora automaticky vráti do pohotovostného režimu." -#, fuzzy -msgid "" -"When enabled the receiver will automatically wake from standby when the TV " -"is turned on." -msgstr "" -"Ak povolené, prijímac automaticky použije zvukovú stopu, ktorú ste predtým " -"vybrali." +msgid "When enabled the receiver will automatically wake from standby when the TV is turned on." +msgstr "Ak je táto funkcia zapnutá, prijímač sa automaticky prebudí z pohotovostného režimu po zapnutí televízora." msgid "When enabled the set top box is able to wakeup on LAN" -msgstr "" +msgstr "Ak je táto funkcia zapnutá, prijímač sa môže prebudiť po sieti LAN" -msgid "" -"When enabled, AIT data will be included in http streams. This allows a " -"client receiver to use HbbTV." -msgstr "" -"Ak povolené, budú dáta AIT zahrnuté do http streamov. To umožnuje " -"klientskemu prijímacu používat HbbTV." +msgid "When enabled, AIT data will be included in http streams. This allows a client receiver to use HbbTV." +msgstr "Ak je táto funkcia povolená, údaje AIT budú zahrnuté do streamov http. To umožňuje klientskému prijímaču používať HbbTV." -msgid "" -"When enabled, EIT data will be included in http streams. This allows a " -"client receiver to show EPG." -msgstr "" -"Ak povolené, EIT údaje sa zahrnú do http streamov. To umožní vzdialenému " -"prijímacu zobrazit EPG." +msgid "When enabled, EIT data will be included in http streams. This allows a client receiver to show EPG." +msgstr "Ak je táto možnosť povolená, údaje EIT budú zahrnuté do streamov http. To umožňuje klientskému prijímaču zobrazovať EPG." -msgid "" -"When enabled, a popup message will be shown when a movie has finished and " -"the next one will start." -msgstr "Ak povolené, zobrazí sa správa ked skoncil film a nasledujúci zacne." +msgid "When enabled, a popup message will be shown when a movie has finished and the next one will start." +msgstr "Ak je táto funkcia zapnutá, po skončení filmu sa zobrazí vyskakovacie okno a spustí sa ďalší film." msgid "When enabled, a popup message will be shown when a recording starts." -msgstr "" -"Ak povolené, pri zacatí nahrávania sa zobrazí správa vo vyskakovacom okne." +msgstr "Ak je táto funkcia zapnutá, pri spustení nahrávania sa zobrazí vyskakovacie okno." -msgid "" -"When enabled, a recording is allowed to interrupt live TV, when there are no " -"free tuners." -msgstr "" -"Ak povolené, nahrávke je dovolené prerušit živé televízne vysielanie, ak nie " -"sú k dispozícii žiadne volné tunery." +msgid "When enabled, a recording is allowed to interrupt live TV, when there are no free tuners." +msgstr "Ak je táto funkcia zapnutá, je povolené prerušenie živého tv vysielania nahrávaním, keď nie sú k dispozícii žiadne voľné tunery." -msgid "" -"When enabled, a warning will be displayed and the user will get an option to " -"stop or to continue the timeshift." -msgstr "" -"Ak povolené, zobrazí sa varovanie a užívatel dostane možnost zastavit alebo " -"pokracovat v casovom posune." +msgid "When enabled, a warning will be displayed and the user will get an option to stop or to continue the timeshift." +msgstr "Ak je táto možnosť povolená, zobrazí sa upozornenie a používateľ dostane možnosť zastaviť alebo pokračovať v časovom posune." -msgid "" -"When enabled, always descramble receiving http streams. This takes up more " -"resources (descrambling demuxers), only enable if necessary. Individual " -"streams are always descrambled if 0x100 is added to the service type, " -"regardless of this setting. Default off." -msgstr "" +msgid "When enabled, always descramble receiving http streams. This takes up more resources (descrambling demuxers), only enable if necessary. Individual streams are always descrambled if 0x100 is added to the service type, regardless of this setting." +msgstr "Ak je táto funkcia zapnutá, prijímanie streamov http sa vždy prekódováva. Zaberá to viac zdrojov (descrambling demuxerov), povoľte len v prípade potreby. Jednotlivé streamy sú vždy deskramblované, ak je k typu služby pridaný 0x100, bez ohľadu na toto nastavenie." -#, fuzzy msgid "When enabled, authentication is required to watch http streams." -msgstr "Požadovat autentifikáciu pre http sreamy" +msgstr "Ak je táto funkcia zapnutá, na sledovanie streamov http sa vyžaduje overenie." msgid "When enabled, channel numbering will start at '1' for every bouquet." -msgstr "" -"Ak povolené, císlovanie staníc bude zacínat od \"1\" vo všetkých prehladoch." +msgstr "Ak je táto funkcia zapnutá, číslovanie kanálov sa začne pri každom prehľade od hodnoty '1'." -msgid "" -"When enabled, content with an aspect ratio of 4:3 will be stretched to fit " -"the screen." -msgstr "Ak povolené, obsah s pomerom strán 4:3, sa zväcší na celú obrazovku." +msgid "When enabled, content with an aspect ratio of 4:3 will be stretched to fit the screen." +msgstr "Ak je táto funkcia zapnutá, obsah s pomerom strán 4:3 sa roztiahne tak, aby vyplnil celú obrazovku." -msgid "" -"When enabled, continue to the next bouquet when the last channel of the " -"current bouquet is reached." -msgstr "" -"Ak povolené, pokracovat na další prehlad, ked sa dosiahne posledná stanica " -"aktuálneho prehladu pri zmene kanálov." +msgid "When enabled, continue to the next bouquet when the last channel of the current bouquet is reached." +msgstr "Ak je táto funkcia zapnutá, po dosiahnutí posledného kanála aktuálneho prehľadu sa pokračuje na ďalší prehľad." -msgid "" -"When enabled, deleted recordings are moved to the trash can, instead of " -"being deleted immediately." -msgstr "" -"Ak povolené, odstránené nahrávky sú presunuté do koša, namiesto toho aby sa " -"okamžite odstránili." +msgid "When enabled, deleted recordings are moved to the trash can, instead of being deleted immediately." +msgstr "Ak je táto funkcia zapnutá, odstránené nahrávky sa namiesto okamžitého odstránenia presunú do koša." -msgid "" -"When enabled, external subtitles will always be turned on for movie playback." -msgstr "Ak povolené, pocas prehrávania filmu sa vždy zobrazia externé titulky." +msgid "When enabled, external subtitles will always be turned on for movie playback." +msgstr "Ak je táto funkcia zapnutá, externé titulky budú pri prehrávaní filmu vždy zapnuté." -msgid "" -"When enabled, graphical DVB subtitles are preferred over teletext subtitles, " -"when both types are available." -msgstr "" -"Ak povolené, budú grafické DVB titulky uprednostnené pred teletextovými (v " -"prípade dostupnosti oboch typov)." +msgid "When enabled, graphical DVB subtitles are preferred over teletext subtitles, when both types are available." +msgstr "Ak je táto funkcia zapnutá, uprednostňujú sa grafické titulky DVB pred teletextovými, ak sú k dispozícii oba typy titulkov." -msgid "" -"When enabled, graphical DVB subtitles will be displayed at their original " -"position." -msgstr "" -"Ak povolené, budú grafické DVB titulky zobrazované na svojej pôvodnej " -"pozícii." +msgid "When enabled, graphical DVB subtitles will be displayed at their original position." +msgstr "Ak je táto funkcia zapnutá, grafické titulky DVB sa zobrazia v pôvodnej polohe." -msgid "" -"When enabled, graphical DVB subtitles will be displayed in yellow, instead " -"of the original color." -msgstr "" -"Ak povolené, budú grafické DVB titulky zobrazované žltou farbou, namiesto " -"pôvodnej farby." +msgid "When enabled, graphical DVB subtitles will be displayed in yellow, instead of the original color." +msgstr "Ak je táto funkcia zapnutá, grafické titulky DVB sa zobrazia žltou farbou namiesto pôvodnej farby." -msgid "" -"When enabled, http streams are descrambled on the server side. The (remote) " -"client receiver does not have to do descrambling. Default on." -msgstr "" +msgid "When enabled, http streams are descrambled on the server side. The (remote) client receiver does not have to do descrambling." +msgstr "Ak je táto funkcia povolená, streamy http sa na strane servera dekódujú. (Vzdialený) klientský prijímač nemusí vykonávať dekódovanie." msgid "When enabled, it is possible to leave the Movie Player with exit." -msgstr "Povolit ukoncenie prehrávaca filmov tlacidlom EXIT." +msgstr "Ak je táto funkcia zapnutá, je možné opustiť prehrávač filmov pomocou ukončenia." -msgid "" -"When enabled, measure power consumption to detect when the rotor stops " -"turning (when supported by the tuner)." -msgstr "" -"Ak povolené, merat spotrebu energie a zistit, kedy sa zastaví otácanie " -"motora (ak funkciu podporuje tuner)." +msgid "When enabled, measure power consumption to detect when the rotor stops turning (when supported by the tuner)." +msgstr "Ak je táto funkcia zapnutá, meria spotrebu energie, aby sa zistilo, kedy sa motor prestane otáčať (ak to podporuje tuner)." msgid "When enabled, network trash cans are probed for cleaning." -msgstr "Ak je povolené, môžete vysypat sietové kôš." +msgstr "Ak je táto funkcia zapnutá, sieťové odpadkové koše sa sondou vyčistia." msgid "When enabled, number markers will be hidden." -msgstr "" +msgstr "Ak je táto možnosť povolená, číselné značky sa skryjú." -msgid "" -"When enabled, pressing '0' will zap you to the first channel in your first " -"bouquet and delete your zap-history." -msgstr "" -"Ak je povolené, stlacením tlacidla '0 'sa dostanete na prvý kanál v prvom " -"prehlade. Zároven sa vymaže história prepínania." +msgid "When enabled, pressing '0' will zap you to the first channel in your first bouquet and delete your zap-history." +msgstr "Ak je táto funkcia zapnutá, stlačením tlačidla '0' sa prepnete na prvý kanál vo vašom prvom prehľade a vymažete svoju históriu prepínania." -msgid "" -"When enabled, recordings are grouped by name into collections automatically." -msgstr "" +msgid "When enabled, recordings are grouped by name into collections automatically." +msgstr "Ak je táto funkcia zapnutá, nahrávky sa automaticky zoskupujú podľa názvu do kolekcií." -#, fuzzy msgid "When enabled, reformat subtitles to match the width of the screen." -msgstr "Ak povolené, môžu byt použité titulky pre sluchovo hendikepovaných." +msgstr "Ak je táto funkcia zapnutá, preformátuje titulky tak, aby zodpovedali šírke obrazovky." msgid "When enabled, show channel numbers in the channel selection screen." -msgstr "Ak povolené, v zozname staníc sa zobrazia ich poradové císla." +msgstr "Ak je táto funkcia zapnutá, zobrazí čísla kanálov na obrazovke výberu kanálov." msgid "When enabled, subtitles for the hearing impaired can be used." -msgstr "Ak povolené, môžu byt použité titulky pre sluchovo hendikepovaných." +msgstr "Ak je táto funkcia zapnutá, je možné používať titulky pre osoby so sluchovým postihnutím." -msgid "" -"When enabled, subtitles for the hearing impaired will be preferred over " -"normal subtitles, when both types are available." -msgstr "" -"Ak povolené, titulky pre sluchovo hendikepovaných budú uprednostnené pred " -"štandardnými titulkami (ak sú oba typy k dispozícii)" +msgid "When enabled, subtitles for the hearing impaired will be preferred over normal subtitles, when both types are available." +msgstr "Ak je táto funkcia zapnutá, titulky pre sluchovo postihnutých budú uprednostnené pred bežnými titulkami, ak sú k dispozícii oba typy titulkov." msgid "When enabled, teletext pages will be cached, allowing faster access." -msgstr "" -"Ak povolené, teletextové stránky budú ukladané do vyrovnávacej pamäte, co " -"umožní rýchlejší prístup k nim." +msgstr "Ak je táto funkcia zapnutá, stránky teletextu sa ukladajú do vyrovnávacej pamäte, čo umožňuje rýchlejší prístup." -msgid "" -"When enabled, teletext subtitles will be displayed at their original " -"position." -msgstr "" -"Ak povolené, budú teletextové titulky zobrazované na svojej pôvodnej pozícii." +msgid "When enabled, teletext subtitles will be displayed at their original position." +msgstr "Ak je táto funkcia zapnutá, titulky teletextu sa zobrazia v pôvodnej polohe." msgid "When enabled, the PiP can be closed by the EXIT button." -msgstr "Ak je povolené, PiP môže byt uzavreté tlacidlom EXIT." +msgstr "Keď je táto funkcia zapnutá, PiP sa dá zatvoriť tlačidlom EXIT." msgid "When enabled, the VCR scart option will be shown in the main menu" -msgstr "Ak povolené, v hlavnom menu sa zobrazí položka VCR scart" +msgstr "Ak je táto možnosť zapnutá, v hlavnej ponuke sa zobrazí možnosť VCR scart" -msgid "" -"When enabled, the length of each recording will be shown in the movielist " -"(this might cause some additional loading time)." -msgstr "" -"Ak povolené, zobrazí sa dlžka každej nahrávky v zozname filmov (môže to " -"spôsobit predlženie nacítavania)." +msgid "When enabled, the length of each recording will be shown in the movielist (this might cause some additional loading time)." +msgstr "Ak je táto možnosť zapnutá, dĺžka každej nahrávky sa zobrazí v zozname filmov (môže to spôsobiť dodatočné načítanie)." -msgid "" -"When enabled, the receiver will automatically use the audio track which you " -"selected before." -msgstr "" -"Ak povolené, prijímac automaticky použije zvukovú stopu, ktorú ste predtým " -"vybrali." +msgid "When enabled, the receiver will automatically use the audio track which you selected before." +msgstr "Ak je táto funkcia zapnutá, prijímač automaticky použije zvukovú stopu, ktorú ste vybrali predtým." -msgid "" -"When enabled, the receiver will automatically use the subtitles which you " -"selected before." -msgstr "" -"Ak povolené, prijímac automaticky použije titulky, ktoré ste predtým vybrali." +msgid "When enabled, the receiver will automatically use the subtitles which you selected before." +msgstr "Ak je táto funkcia zapnutá, prijímač automaticky použije titulky, ktoré ste vybrali predtým." msgid "When enabled, the receiver will select an AC3 track (when available)." -msgstr "Ak povolené, prijímac zvolí AC3 stopu (ak je dostupná)." +msgstr "Ak je táto funkcia zapnutá, prijímač vyberie stopu AC3 (ak je k dispozícii)." -#, fuzzy msgid "When enabled, the receiver will select an AC3+ track (when available)." -msgstr "Ak povolené, prijímac zvolí AC3 stopu (ak je dostupná)." +msgstr "Ak je táto funkcia zapnutá, prijímač vyberie stopu AC3+ (ak je k dispozícii)." -msgid "" -"When enabled, this setting has more weight than 'Preferred tuner for " -"recordings'." -msgstr "" +msgid "When enabled, this setting has more weight than 'Preferred tuner for recordings'." +msgstr "Ak je toto nastavenie povolené, má väčšiu váhu ako nastavenie 'Preferovaný tuner pre nahrávky'." msgid "When enabled, this setting has more weight than 'Preferred tuner'." -msgstr "" +msgstr "Ak je toto nastavenie povolené, má väčšiu váhu ako 'Preferovaný tuner'." -msgid "" -"When enabled, timeshift starts automatically in background after the " -"specified time." -msgstr "" -"Ak povolené, casový posun sa spustí automaticky na pozadí po uvedenom case." +msgid "When enabled, timeshift starts automatically in background after the specified time." +msgstr "Ak je táto funkcia zapnutá, časový posun sa automaticky spustí na pozadí po uplynutí zadaného času." msgid "When enabled, use DHCP for the IP configuration." -msgstr "Ak je povolené, používa DHCP pre konfiguráciu IP." +msgstr "Ak je táto funkcia povolená, na konfiguráciu IP sa použije DHCP." -msgid "" -"When enabled, your receiver will detect activity on the VCR SCART input." -msgstr "Ak povolené, bude Váš prijímac sledovat aktivitu na vstupe VCR SCART." +msgid "When enabled, your receiver will detect activity on the VCR SCART input." +msgstr "Ak je táto funkcia zapnutá, prijímač rozpozná aktivitu na vstupe VCR SCART." -msgid "" -"When maximum space for all logs is reached, the oldest logs will be deleted." -msgstr "" -"Ked sa dosiahne maximálny priestor pre všetky systémové záznamy, najstaršie " -"záznamy sa odstránia." +msgid "When maximum space for all logs is reached, the oldest logs will be deleted." +msgstr "Po dosiahnutí maximálneho priestoru pre všetky protokoly sa odstránia najstaršie protokoly." -msgid "" -"When nonzero, a recording will start earlier than the starting time " -"indicated by the EPG." -msgstr "Ak nenulové, nahrávanie zacne skôr než v case z EPG." +msgid "When nonzero, a recording will start earlier than the starting time indicated by the EPG." +msgstr "Ak je hodnota nenulová, nahrávanie sa začne skôr, ako je čas začiatku uvedený v EPG." -msgid "" -"When nonzero, a recording will stop later than the ending time indicated by " -"the EPG." -msgstr "" -"Ak nenulové, nahrávanie sa zastaví neskôr než koncový cas indikovaný EPG." +msgid "When nonzero, a recording will stop later than the ending time indicated by the EPG." +msgstr "Ak je hodnota nenulová, nahrávanie sa zastaví neskôr, ako je čas ukončenia uvedený v EPG." -msgid "" -"When receiver wakes from standby, it will command the TV to switch to the " -"HDMI input the receiver is connected to." -msgstr "" +msgid "When receiver wakes from standby, it will command the TV to switch to the HDMI input the receiver is connected to." +msgstr "Keď sa prijímač prebudí z pohotovostného režimu, dá príkaz televízoru, aby sa prepol na vstup HDMI, ku ktorému je prijímač pripojený." msgid "When set the PIG will return to live after a movie has stopped playing." -msgstr "" -"Ak je povolené, po zastavení prehrávania sa vráti spät do TV vysielania." +msgstr "Po nastavení sa PIG po ukončení prehrávania filmu vráti do režimu Live." -msgid "" -"When set to 'user' this option allows you to sort or hide menu items via the " -"blue button in menu screens. When set to 'user defined hidden' the blue " -"button text in the menu remains hidden even though the user sort feature is " -"active." +msgid "When set to 'user defined' this option allows you to sort or hide menu items via the blue button in menu screens. When set to 'user defined hidden' the blue button text in the menu remains hidden even though the user sort feature is active." msgstr "" +"Ak je táto možnosť nastavená na možnosť 'definované užívateľom', umožňuje triediť alebo skrývať položky ponuky prostredníctvom modrého tlačidla na obrazovkách ponuky. Keď je nastavená na možnosť 'užívateľsky definované skryté', text modrého tlačidla v ponuke zostane skrytý, aj keď je funkcia užívateľského triedenia aktívna." -#, fuzzy -msgid "" -"When set, each directory will show the previous state used. When off, the " -"default values will be shown." -msgstr "" -"Ak je povolené, každý adresár zobrazí predchádzajúci stav, ak vypnuté " -"zobrazia sa predvolené hodnoty." +msgid "When set, each directory will show the previous state used. When off, the default values will be shown." +msgstr "Po nastavení sa v každom adresári zobrazí predchádzajúci použitý stav. Ak je vypnutá, zobrazia sa predvolené hodnoty." -msgid "" -"When set, sort changes via the sort key will be permanent.\n" -"When unset, sort changes will be temporary - just for this view of a " -"directory." -msgstr "" +msgid "When set, sort changes via the sort key will be permanent. When unset, sort changes will be temporary - just for this view of a directory." +msgstr "Ak je nastavené, zmeny triedenia pomocou tlačidla triedenia budú trvalé. Ak nie je nastavená, zmeny triedenia budú dočasné - len pre toto zobrazenie adresára." -msgid "" -"When the content has an aspect ratio of 16:9, choose whether to scale/" -"stretch the picture." -msgstr "" -"Ak má obsah pomer strán 16: 9, vyberte, ci chcete velkost obrazu prispôsobit " -"alebo obraz roztiahnut." +msgid "When the content has an aspect ratio of 16:9, choose whether to scale/stretch the picture." +msgstr "Ak má obsah pomer strán 16:9, vyberte, či sa má obraz zmenšiť/roztiahnuť." -msgid "" -"When the content has an aspect ratio of 4:3, choose whether to scale/stretch " -"the picture." -msgstr "" -"Ak má obsah pomer strán 4:3, vyberte, ci chcete velkost obrazu prispôsobit " -"alebo obraz roztiahnut." +msgid "When the content has an aspect ratio of 4:3, choose whether to scale/stretch the picture." +msgstr "Ak má obsah pomer strán 4:3, vyberte, či sa má obraz zmenšiť/roztiahnuť." -msgid "" -"When the receiver wakes from standby, it will send a command to the TV to " -"bring it out of standby too." -msgstr "" +msgid "When the receiver wakes from standby, it will send a command to the TV to bring it out of standby too." +msgstr "Keď sa prijímač prebudí z pohotovostného režimu, odošle príkaz do televízora, aby ho tiež prebudil z pohotovostného režimu." -msgid "" -"When tuned to a service the system will normally scan the transponder for " -"any changes and save them. Only set to 'yes' if you're absolutely sure of " -"what you're doing." -msgstr "" -"Pri naladení na službu systém oskenuje transpondér, zistí akékolvek zmeny a " -"uloží ich. Nastavte \"áno\", iba ak ste si úplne istí." +msgid "When tuned to a service the system will normally scan the transponder for any changes and save them. Only set to 'yes' if you're absolutely sure of what you're doing." +msgstr "Po naladení na stanicu systém zvyčajne vyhľadá v transpondéri všetky zmeny a uloží ich. Nastavenie na 'áno' vykonajte len vtedy, ak ste si absolútne istí tým, čo robíte." msgid "Where do you want to backup your settings?" -msgstr "Kam chcete zálohovat svoje nastavenia?" +msgstr "Kam chcete zálohovať svoje nastavenia?" msgid "Where should the recording be saved?" -msgstr "Kam by mala byt uložená nahrávka?" +msgstr "Kam sa má nahrávka uložiť?" msgid "Where to save temporary timeshift recordings?" -msgstr "Kam uložit docasné záznamy s posunom casu?" +msgstr "Kam uložiť dočasné záznamy časového posunu?" msgid "Which event do you want to save permanently?" -msgstr "Ktorú udalost chcete uložit natrvalo?" +msgstr "Ktorú udalosť chcete uložiť natrvalo?" msgid "White" msgstr "Biela" @@ -16673,52 +16185,57 @@ msgstr "Biela" msgid "Width" msgstr "Šírka" +msgid "Winter Sports" +msgstr "Zimné športy" + +msgid "Wintersport" +msgstr "Zimný šport" + msgid "Wireless LAN" msgstr "Bezdrôtová LAN" msgid "Wireless network" -msgstr "Bezdrôtová siet" +msgstr "Bezdrôtová sieť" msgid "Wireless network configuration..." msgstr "Nastavenie bezdrôtovej siete..." msgid "Wireless network connection setup" -msgstr "Nastavenie bezdrôtovej siete" +msgstr "Nastavenie pripojenia bezdrôtovej siete" msgid "Wireless network connection setup." -msgstr "Nastavenie bezdrôtovej siete." +msgstr "Nastavenie pripojenia bezdrôtovej siete." msgid "Wireless network state" msgstr "Stav bezdrôtovej siete" -msgid "" -"With T2MI RAW mode disabled (default) we can use single T2MI PLP de-" -"encapsulation. With T2MI RAW mode enabled we can use astra-sm to analyze T2MI" +msgid "Wirtschaft" msgstr "" +msgid "Wissenschaft" +msgstr "" + +msgid "With T2MI RAW mode disabled (default) we can use single T2MI PLP de-encapsulation. With T2MI RAW mode enabled we can use astra-sm to analyze T2MI" +msgstr "Pri vypnutom režime T2MI RAW (predvolené nastavenie) môžeme použiť jednoduchú dekapsuláciu T2MI PLP. Pri zapnutom režime T2MI RAW môžeme použiť astra-sm na analýzu T2MI" + msgid "With popup" -msgstr "S vyskakovacím oknom" +msgstr "S vyskakovacím okienkom" -msgid "" -"With this option set to 'yes' the channel list will always show you the list " -"of bouquets. If set to 'no' the current bouquet will be opened." -msgstr "" -"S touto volbou nastavenou na \"áno\" sa v zozname staníc vždy zobrazí zoznam " -"prehladov. Ak je nastavená na \"nie\" otvorí sa aktuálny prehlad." +msgid "With this option set to 'yes' the channel list will always show you the list of bouquets. If set to 'no' the current bouquet will be opened." +msgstr "Ak je táto možnosť nastavená na 'áno', v zozname kanálov sa vždy zobrazí zoznam prehľadov. Ak je nastavená na 'nie', otvorí sa aktuálny prehľad." -msgid "" -"With this option you can hide Job Tasks from the extension screen (short " -"blue button press)." -msgstr "" -"Touto volbou môžete skryt modul Úlohy na obrazovke rozšírení (krátko modré " -"tlacidlo)." +msgid "With this option you can hide Job Tasks from the extension screen (short blue button press)." +msgstr "Pomocou tejto možnosti môžete skryť Pracovné úlohy (Job Tasks) z obrazovky rozšírenia (krátke stlačenie modrého tlačidla)." msgid "Without popup" -msgstr "Bez vyskakovacieho okna" +msgstr "Bez vyskakovacieho okienka" #, python-format msgid "Would you save the entered PIN %s persistent?" -msgstr "" +msgstr "Chcete uložiť zadaný PIN %s natrvalo?" + +msgid "Wrestling" +msgstr "Zápasenie" msgid "Write error while recording. Disk full?\n" msgstr "Chyba zápisu pri nahrávaní. Plný disk?\n" @@ -16734,9 +16251,8 @@ msgstr "" msgid "Write failed!" msgstr "Zápis zlyhal!" -#, fuzzy msgid "Write to /tmp/positionersetup.log" -msgstr "Nepodarilo sa zapísat /tmp/positionersetup.log:" +msgstr "Zapísať do /tmp/positionersetup.log" msgid "XBox 360 support" msgstr "Podpora XBox 360" @@ -16756,42 +16272,50 @@ msgstr "" msgid "YCbCr444" msgstr "" +msgid "YELLOW" +msgstr "ŽLTÁ" + msgid "YES" -msgstr "" +msgstr "ÁNO" msgid "YPbPr" -msgstr "YPbPr" +msgstr "" + +msgid "YYYY-MM-DD" +msgstr "" msgid "Year" msgstr "Rok" #, fuzzy msgid "Yellow" -msgstr "žltá" +msgstr "Žltá" msgid "Yellow DVB subtitles" msgstr "Žlté DVB titulky" #, fuzzy +msgctxt "problem trans" msgid "Yellow button (long)" msgstr "Žlté tlačidlo (dlho)" #, fuzzy +msgctxt "problem trans" msgid "Yellow button (short)" msgstr "Žlté tlačidlo (krátko)" msgid "Yellow long" -msgstr "" +msgstr "Žlté dlho" #, fuzzy msgid "Yemen" -msgstr "Otácanie motora" +msgstr "Jemen" msgid "Yes" msgstr "Áno" msgid "Yes (save index in setup tuner)" -msgstr "" +msgstr "Áno (uloženie indexu v nastavení tunera)" msgid "Yes to all" msgstr "Áno pre všetky" @@ -16800,53 +16324,50 @@ msgid "Yes, always" msgstr "Áno, vždy" msgid "Yes, and delete this movie" -msgstr "Áno, a zmazat tento film" +msgstr "Áno, a zmazať tento film" #, fuzzy msgid "Yes, and return to the movie list" -msgstr "Áno, vrátit sa do zoznamu filmov" +msgstr "Áno, vrátiť sa do zoznamu filmov" msgid "Yes, backup my settings!" -msgstr "Áno, zálohovat nastavenia!" +msgstr "Áno, zálohovať moje nastavenia!" msgid "Yes, but don't save timeshift as movie" -msgstr "Áno, ale neuložit casový posun ako film" +msgstr "Áno, ale neuložiť časový posun ako film" msgid "Yes, but save timeshift as movie and continue recording" -msgstr "Áno, ale uložit casový posun ako film a pokracovat v nahrávaní" +msgstr "Áno, ale uložiť časový posun ako film a pokračovať v nahrávaní" msgid "Yes, but save timeshift as movie and stop recording" -msgstr "Áno, ale uložit casový posun ako film a zastavit nahrávanie" +msgstr "Áno, ale uložiť časový posun ako film a zastaviť nahrávanie" -#, fuzzy msgid "Yes, delete this movie and return to the movie list" -msgstr "Áno, vrátit sa do zoznamu filmov" +msgstr "Áno, odstrániť tento film a vrátiť sa do zoznamu filmov" msgid "Yes, do a manual scan now" -msgstr "Áno, teraz vyhladávat rucne" +msgstr "Áno, teraz vyhľadávať ručne" msgid "Yes, do an automatic scan now" -msgstr "Áno, teraz vyhladávat automaticky" +msgstr "Áno, teraz vyhľadávať automaticky" msgid "Yes, do another manual scan now" -msgstr "Áno, urobit dalšie rucné vyhladávanie" +msgstr "Áno, urobiť ďalšie ručné vyhladávanie" msgid "Yes, restore the settings now" -msgstr "Áno, obnovit nastavenia" +msgstr "Áno, obnoviť nastavenia" -#, fuzzy msgid "Yes, show delete time" -msgstr "Áno, a zmazat tento film" +msgstr "Áno, zobraziť čas vymazania" -#, fuzzy msgid "Yes, show record time" -msgstr "Pridat casovac" +msgstr "Áno, zobraziť čas nahrávky" msgid "Yes, shut down now." -msgstr "Áno, vypnút." +msgstr "Áno, vypnúť." msgid "Yesterday" -msgstr "Vcera" +msgstr "Včera" #, python-format msgid "" @@ -16855,7 +16376,7 @@ msgid "" "\"%s\"?" msgstr "" "Logo úvodnej obrazovky už máte nainštalované,\n" -"naozaj chcete odstránit\n" +"naozaj chcete odstrániť\n" "\"%s\"?" #, python-format @@ -16865,144 +16386,108 @@ msgid "" "\"%s\"?" msgstr "" "Zoznam staníc už máte nainštalovaný,\n" -"naozaj chcete odstránit\n" +"naozaj chcete odstrániť\n" "\"%s\"?" msgid "You can Display MiniTV with or without OSD Menu" -msgstr "" +msgstr "MiniTV môžete zobraziť s ponukou OSD aleboo bez nej" msgid "You can Display PIP with or without OSD Menu" -msgstr "" +msgstr "Môžete zobraziť PIP s ponukou OSD alebo bez nej" msgid "You can cancel the installation." -msgstr "Môžete zrušit inštaláciu." +msgstr "Môžete zrušiť inštaláciu." msgid "You can cancel the removal." -msgstr "Môžete zrušit odstránenie." +msgstr "Môžete zrušiť odstránenie." -#, fuzzy msgid "You can continue watching TV while this is running." -msgstr "Pocas tohto procesu môžete nadalej sledovat TV ..." +msgstr "Počas tejto funkcie môžete pokračovať v sledovaní televízie." msgid "You can have the list sorted by time or alphanumerical." -msgstr "Zoznam môžete mat zoradený podla casu, alebo alfanumericky." +msgstr "Zoznam môžete zoradiť podľa času alebo alfanumericky." msgid "You can install this plugin." -msgstr "Môžete nainštalovat tento modul." +msgstr "Môžete nainštalovať tento doplnok." #, python-format msgid "You can only burn %s %s recordings!" -msgstr "Napálit môžete len nahrávky %s %s." +msgstr "Vypáliť môžete len %s %s nahrávok!" msgid "You can remove this plugin." -msgstr "Tento modul môžete odstránit!" +msgstr "Tento doplnok môžete odstrániť." msgid "You cannot delete this!" -msgstr "Toto nemôžete zmazat!" +msgstr "Toto nemôžete zmazať!" msgid "You didn't select a channel to record from." -msgstr "Nezvolili ste stanicu, z ktorej sa má nahrávat." +msgstr "Nevybrali ste kanál, z ktorého chcete nahrávať." #, fuzzy msgid "You have a marked recording" msgid_plural "You have marked recordings" -msgstr[0] "Uložit a nahrávat" -msgstr[1] "Uložit a nahrávat" -msgstr[2] "Uložit a nahrávat" +msgstr[0] "Máte označenú nahrávku" +msgstr[1] "Máte označené nahrávky" +msgstr[2] "Máte označených nahrávok" -msgid "" -"You have chosen to backup your settings. Please press OK to start the backup " -"now." -msgstr "" -"Vybrali ste si zálohovanie nastavení. Stlacením tlacidla OK spustíte " -"zálohovanie." +msgid "You have chosen to backup your settings. Please press OK to start the backup now." +msgstr "Rozhodli ste sa zálohovať svoje nastavenia. Stlačením tlačidla OK spustite zálohovanie." -msgid "" -"You have chosen to restore your settings. Enigma2 will restart after " -"restore. Please press OK to start the restore now." -msgstr "" -"Vybrali ste si obnovu nastavení. Po obnovení sa Enigma2 reštartuje. " -"Stlacením tlacidla OK spustíte obnovu." +msgid "You have chosen to restore your settings. Enigma2 will restart after restore. Please press OK to start the restore now." +msgstr "Rozhodli ste sa obnoviť svoje nastavenia. Enigma2 sa po obnovení reštartuje. Stlačte tlačidlo OK, aby ste teraz spustili obnovu." msgid "" -"You have chosen to save the current timeshift event, but the event has not " -"yet finished\n" +"You have chosen to save the current timeshift event, but the event has not yet finished\n" "What do you want to do ?" msgstr "" -"Zvolili ste uloženie aktuálnej udalosti casového posunu, ale relácia ešte " -"neskoncila\n" -"Ako chcete pokracovat ?" +"Rozhodli ste sa uložiť aktuálnu udalosť s časovým posunom, ale udalosť ešte nebola dokončená.\n" +"Čo chcete urobiť ?" -#, fuzzy msgid "You have not selected any logs to delete." -msgstr "Nevybrali ste žiadne systémové záznamy na odstránenie" +msgstr "Nevybrali ste žiadne protokoly na vymazanie." #, python-format msgid "You have to wait %s!" -msgstr "Musíte cakat %s!" +msgstr "Musíte čakať %s!" #, python-format msgid "You must switch to the service %s (%s - '%s')!\n" -msgstr "" +msgstr "Musíte prepnúť na stanicu %s (%s - '%s')!\n" msgid "" -"You need a PC connected to your %s %s. If you need further instructions, " -"please visit the website http://www.dm7025.de.\n" -"Your %s %s will now be halted. After you have performed the update " -"instructions from the website, your new firmware will ask you to restore " -"your settings." +"You need a PC connected to your %s %s. If you need further instructions, please visit the website http://www.dm7025.de.\n" +"Your %s %s will now be halted. After you have performed the update instructions from the website, your new firmware will ask you to restore your settings." msgstr "" -"Musíte mat pocítac pripojený k %s %s. Ak potrebujete dalšie pokyny, " -"navštívte webovú stránku http://www.dm7025.de.\n" -"%s %s sa teraz zastaví. Po splnení aktualizacných pokynov z webovej stránky " -"vás nový firmvér požiada o obnovu nastavení." +"Potrebujete počítač pripojený k %s %s. Ak potrebujete ďalšie pokyny, navštívte webovú stránku http://www.google.com.\n" +"Vaše %s %s bude teraz zastavené. Po vykonaní pokynov na aktualizáciu z webovej stránky vás nový firmvér požiada o obnovenie nastavení." -#, fuzzy -msgid "" -"You seem to be in timeshft, the service will briefly stop as timeshift stops." -msgstr "Zdá sa, že je aktívny casový posun. Chcete ukoncit casový posun?" +msgid "You seem to be in timeshft, the service will briefly stop as timeshift stops." +msgstr "Zdá sa, že ste v časovom posune, stanica sa na chvíľu zastaví, keď sa časový posun zastaví." msgid "You seem to be in timeshift!" -msgstr "Zdá sa, že ste v casovom posune!" +msgstr "Zdá sa, že ste v časovom posune!" msgid "You seem to be in timeshift, Do you want to leave timeshift ?" -msgstr "Zdá sa, že je aktívny casový posun. Chcete ukoncit casový posun?" +msgstr "Zdá sa, že ste v časovom posune, Chcete opustiť časový posun ?" -#, fuzzy -msgid "" -"You seem to be in timeshift, Do you want to leave timeshift? Streams & IPTV " -"not fully supported!" -msgstr "Zdá sa, že je aktívny casový posun. Chcete ukoncit casový posun?" +msgid "You seem to be in timeshift, Do you want to leave timeshift? Streams & IPTV not fully supported!" +msgstr "Zdá sa, že ste v časovom posune, Chcete opustiť časový posun? Streamy a IPTV nie sú plne podporované!" -#, fuzzy, python-format -msgid "" -"Your %s %s has no %s access, please check your network settings and make " -"sure you have network cable connected and try again." -msgstr "" -"Váš %s %s nie je pripojený k internetu, skontrolujte nastavenie siete a " -"skúste to znova." +#, python-format +msgid "Your %s %s has no %s access, please check your network settings and make sure you have network cable connected and try again." +msgstr "Vaše %s %s nemá prístup k %s, skontrolujte prosím nastavenia siete a uistite sa, že máte pripojený sieťový kábel a skúste to znova." -#, fuzzy, python-format -msgid "" -"Your %s %s has no internet access, please check your network settings and " -"make sure you have network cable connected and try again." -msgstr "" -"Váš %s %s nie je pripojený k internetu, skontrolujte nastavenie siete a " -"skúste to znova." +#, python-format +msgid "Your %s %s has no internet access, please check your network settings and make sure you have network cable connected and try again." +msgstr "Vaše %s %s nemá prístup na internet, skontrolujte prosím nastavenia siete a uistite sa, že máte pripojený sieťový kábel a skúste to znova." -#, fuzzy, python-format -msgid "" -"Your %s %s has no network access, please check your network settings and " -"make sure you have network cable connected and try again." -msgstr "" -"Váš %s %s nie je pripojený k internetu, skontrolujte nastavenie siete a " -"skúste to znova." +#, python-format +msgid "Your %s %s has no network access, please check your network settings and make sure you have network cable connected and try again." +msgstr "Vaše %s %s nemá prístup k sieti, skontrolujte prosím nastavenia siete a uistite sa, že máte pripojený sieťový kábel a skúste to znova." -#, fuzzy, python-format -msgid "" -"Your %s %s is not able to connect to the feeds, please try again later. If " -"this persists please report on the OpenViX forum at world-of-satellite.com." -msgstr "Prepácte, feedy sú docasne odstavené z dôvodu údržby, skúste neskôr." +#, python-format +msgid "Your %s %s is not able to connect to the feeds, please try again later. If this persists please report on the OpenViX forum at world-of-satellite.com." +msgstr "Vaše %s %s sa nedokáže pripojiť ku zdrojom, skúste to prosím neskôr. Ak to pretrváva, nahláste to na fóre OpenViX na stránke world-of-satellite.com." #, python-format msgid "" @@ -17011,55 +16496,49 @@ msgid "" "Your internet connection is working now.\n" "\n" msgstr "" -"Váš prijímac %s %s je pripravený na použitie.\n" +"Váš %s %s je teraz pripravený na použitie.\n" "\n" -"Vaše internetové pripojenie je funkcné .\n" +"Vaše internetové pripojenie už funguje.\n" "\n" -"Prosím pokracujte stlacením tlacidla OK.\n" #, python-format msgid "Your %s %s is rebooting" -msgstr "Váš %s %s sa reštartuje." +msgstr "Váš %s %s sa reštartuje" -#, fuzzy, python-format +#, python-format msgid "Your %s %s is rebooting into Android Mode" -msgstr "Váš %s %s sa reštartuje." +msgstr "Váš %s %s sa reštartuje do režimu Android" -#, fuzzy, python-format +#, python-format msgid "Your %s %s is rebooting into Recovery Mode" -msgstr "Váš %s %s sa reštartuje." +msgstr "Váš %s %s sa reštartuje režimu Obnovy" #, python-format msgid "Your %s %s is shutting down" -msgstr "Váš %s %s sa vypína." +msgstr "Váš %s %s sa vypína" msgid "Your %s %s is shutting down. Please wait..." -msgstr "Váš %s %s sa vypína. Pockajte prosím ..." +msgstr "Váš %s %s sa vypína. Prosím čakajte..." #, python-format -msgid "" -"Your %s %s might be unusable now. Please consult the manual for further " -"assistance before rebooting your %s %s." -msgstr "" -"Váš %s %s môže byt práve teraz nepoužitelný. Prosím, pred reštartom si " -"precítajte návod pre dalšiu pomoc s vašim %s %s." +msgid "Your %s %s might be unusable now. Please consult the manual for further assistance before rebooting your %s %s." +msgstr "Váš %s %s teraz možno nebude možné používať. Pred reštartovaním Vášho %s %s si prosím pozrite príručku pre ďalšiu pomoc." -#, fuzzy, python-format +#, python-format msgid "" "Your %s %s needs to be restarted to complete the installation of %s\n" "Do you want to reboot now ?" msgstr "" -"Váš %s %s sa po inštalácii služby reštartuje.\n" -"\n" -"Chcete inštalovat teraz?" +"Váš %s %s je potrebné reštartovať, aby sa dokončila inštalácia %s\n" +"Chcete teraz reštartovať systém ?" -#, fuzzy, python-format +#, python-format msgid "" "Your %s %s needs to be restarted to complete the removal of %s\n" "Do you want to reboot now ?" msgstr "" -"Váš %s %s sa po odstránení služby reštartuje\n" -"Želáte si ju odstránit?" +"Váš %s %s je potrebné reštartovať, aby sa dokončilo odstránenie %s\n" +"Chcete teraz reštartovať systém ?" #, python-format msgid "" @@ -17067,9 +16546,9 @@ msgid "" "\n" "Do you want to install now ?" msgstr "" -"Váš %s %s sa po inštalácii služby reštartuje.\n" +"Váš %s %s bude po inštalácii služby reštartované.\n" "\n" -"Chcete inštalovat teraz?" +"Chcete nainštalovať teraz ?" #, python-format msgid "" @@ -17077,31 +16556,23 @@ msgid "" "Do you want to remove now ?" msgstr "" "Váš %s %s sa po odstránení služby reštartuje\n" -"Želáte si ju odstránit?" +"Chcete ju teraz odstrániť ?" msgid "Your STB will restart after pressing OK on your remote control." -msgstr "" -"Váš prijímac bude reštartovaný po stlacení tlacidla OK na dialkovom ovládaci." +msgstr "Váš STB sa reštartuje po stlačení tlačidla OK na diaľkovom ovládači." -msgid "" -"Your backup succeeded. We will now continue to explain the further upgrade " -"process." -msgstr "" -"Zálohovanie sa podarilo.Teraz vysvetlíme další postup pri aktualizácii." +msgid "Your backup succeeded. We will now continue to explain the further upgrade process." +msgstr "Vaše zálohovanie sa podarilo. Teraz budeme pokračovať vo vysvetľovaní ďalšieho postupu aktualizácie." -msgid "" -"Your collection exceeds the size of a single layer medium, you will need a " -"blank dual layer DVD!" -msgstr "" -"Zostava presahuje kapacitu jednovrstvového média. Potrebujete prázdny " -"dvojvrstvový disk DVD!" +msgid "Your collection exceeds the size of a single layer medium, you will need a blank dual layer DVD!" +msgstr "Vaša zostava presahuje veľkosť jednovrstvového média, budete potrebovať prázdne dvojvrstvové DVD!" -#, fuzzy, python-format +#, python-format msgid "" "Your config file is not well formed:\n" "%s" msgstr "" -"Konfiguracný súbor nie je korektne sformovanýl:\n" +"Váš konfiguračný súbor nie je dobre vytvorený:\n" "%s" msgid "Your current collection will get lost!" @@ -17111,8 +16582,8 @@ msgid "" "Your frontprocessor firmware must be upgraded.\n" "Press OK to start upgrade." msgstr "" -"Firmvér frontprocesora sa musí aktualizovat.\n" -"Stlacením tlacidla OK spustíte aktualizáciu." +"Firmvér vášho predného procesora musí byť aktualizovaný.\n" +"Stlačením tlačidla OK spustite aktualizáciu." #, python-format msgid "" @@ -17120,59 +16591,50 @@ msgid "" "Please wait until your %s %s reboots\n" "This may take a few minutes" msgstr "" -"Frontprocesor bude aktualizovaný\n" -"Cakajte, kým sa váš %s %s nereštartuje\n" -"Môže to trvat niekolko minút" +"Váš frontprocesor bude aktualizovaný\n" +"Počkajte prosím, kým sa vaše %s %s reštartuje\n" +"Môže to trvať niekoľko minút" msgid "" "Your internet connection is not working!\n" "Please choose what you want to do next." msgstr "" -"Internetové pripojenie nefunguje!\n" -"Zvolte, co chcete robit dalej." +"Vaše internetové pripojenie nefunguje!\n" +"Vyberte si, čo chcete robiť ďalej." #, python-format msgid "Your internet connection is working (ip: %s)" -msgstr "Vaše pripojenie k internetu je funkcné (ip: %s)" +msgstr "Vaše internetové pripojenie funguje (ip: %s)" -#, fuzzy msgid "" "Your internet connection is working now.\n" "\n" "Please press OK to continue." msgstr "" -"Váš %s %s je teraz pripravený na používanie.\n" -"\n" -"Internetové pripojenie funguje.\n" +"Vaše internetové pripojenie už funguje.\n" "\n" -"Pokracujte stlacením OK." +"Stlačte tlačidlo OK a pokračujte." msgid "Your network configuration has been activated." -msgstr "Nastavenie siete bolo aktivované." +msgstr "Vaša sieťová konfigurácia bola aktivovaná." -#, fuzzy msgid "Your network has finished restarting" -msgstr "Prosím pockajte, kým sa siet reštartuje..." +msgstr "Vaša sieť dokončila reštartovanie" -#, fuzzy msgid "Your network is restarting, Please wait..." -msgstr "Váš %s %s sa vypína. Pockajte prosím ..." +msgstr "Vaša sieť sa reštartuje, Prosím čakajte..." -msgid "" -"Your receiver can use SCPC optimized search range. Consult your receiver's " -"manual for more information." -msgstr "" +msgid "Your receiver can use SCPC optimized search range. Consult your receiver's manual for more information." +msgstr "Váš prijímač môže používať optimalizovaný rozsah vyhľadávania SCPC. Ďalšie informácie nájdete v príručke k prijímaču." -msgid "" -"Your receiver can use tone amplitude. Consult your receiver's manual for " -"more information." -msgstr "" +msgid "Your receiver can use tone amplitude. Consult your receiver's manual for more information." +msgstr "Váš prijímač môže používať amplitúdu tónu. Ďalšie informácie nájdete v príručke k prijímaču." msgid "Your receiver does not have an internet connection" -msgstr "Váš prijímac nemá pripojenie k internetu" +msgstr "Váš prijímač nemá internetové pripojenie" msgid "Your receiver is not connected to the internet" -msgstr "Váš prijímac nemá pripojenie k internetu" +msgstr "Váš prijímač nie je pripojený k internetu" msgid "" "Your wireless LAN internet connection could not be started!\n" @@ -17180,80 +16642,94 @@ msgid "" "\n" "Please choose what you want to do next." msgstr "" -"Internetové pripojenie bezdrôtovou LAN sa nedá spustit!\n" -"Pripojili ste klúc USB WLAN?\n" +"Vaše bezdrôtové internetové pripojenie LAN sa nepodarilo spustiť!\n" +"Pripojili ste USB kľúč WLAN?\n" "\n" -"Zvolte, co chcete robit dalej." +"Vyberte si, čo chcete robiť ďalej." + +msgid "Youth" +msgstr "Mládež" + +msgid "ZOOM" +msgstr "" msgid "Zambia" msgstr "" msgid "Zap" -msgstr "Prepnút" +msgstr "Prepnúť" msgid "Zap + Exit" -msgstr "Prepnút + Ukoncit" +msgstr "Prepnúť + Ukončiť" + +#, fuzzy +msgid "Zap Up/Down" +msgstr "Prepnutie Hore/Dole" msgid "Zap back to previously tuned service?" -msgstr "Prepnút spät na predtým naladenú stanicu?" +msgstr "Prepnúť späť na predtým naladenú stanicu?" msgid "Zap back to service before positioner setup?" -msgstr "Prepnút spät na stanicu spred nastavovania motora?" +msgstr "Prepnúť späť na stanicu pred nastavovaním motora?" #, fuzzy msgid "Zap down" -msgstr "Stránka nadol" +msgstr "Prepnúť nadol" msgid "Zap focus to Picture in Picture" -msgstr "Prepnút fokus do obrazu v obraze" +msgstr "Prepnite zaostrenie na Obraz v Obraze" msgid "Zap focus to main screen" -msgstr "Prepnút fokus do hlavnej obrazovky" +msgstr "Prepnite zaostrenie na hlavnú obrazovku" msgid "Zap key delay for channel number input" -msgstr "" +msgstr "Oneskorenie prepnutia tlačidla pre zadanie čísla kanála" msgid "Zap mode" msgstr "Režim prepínania" #, fuzzy msgid "Zap to" -msgstr "Režim prepínania" +msgstr "Prepnúť na" #, fuzzy +msgctxt "problem trans" msgid "Zap to channel number" -msgstr "Prepnút na vybranú stanicu (nastavenie v menu)" +msgstr "Prepnúť na číslo kanála" #, fuzzy msgid "Zap to channel/service" -msgstr "Prepnút na vybranú stanicu (nastavenie v menu)" +msgstr "Prepnúť na kanál/stanicu" #, fuzzy msgid "Zap to channel/service and close" -msgstr "Prepnút na vybranú stanicu a zatvorit (nastavenie v menu)" +msgstr "Prepnúť na kanál/stanicu a zatvoriť" msgid "Zap to first channel & clear zap history" -msgstr "" +msgstr "Prepnúť na prvý kanál a vymazať históriu prepínania" msgid "Zap up" -msgstr "" +msgstr "Preni sa" #, python-format msgid "Zapped to timer service %s as PiP!" -msgstr "" +msgstr "Prepnuté na stanicu časovača %s ako PiP!" #, fuzzy, python-format msgid "Zapped to timer service %s!" -msgstr "Otvorit zoznam služieb" +msgstr "Prepnuté na službu časovača %s!" msgid "Zaps to EPG download transponder for EPG fetch." +msgstr "Prepínať do EPG sťahovania transpondéra na načítanie EPG." + +msgid "Zeichentrick" msgstr "" msgid "Zgemma H.S/H.2S/H.2H/H5" msgstr "" msgid "Zgemma H9/I55Plus old Model" -msgstr "" +msgstr "Zgemma H9/I55Plus starý model" msgid "Zgemma Star S/2S/H1/H2" msgstr "" @@ -17264,134 +16740,137 @@ msgstr "" msgid "Zimbabwe" msgstr "" -msgid "Zoom" +msgid "Zirkus" msgstr "" -msgid "Zoom In/Out TV..." -msgstr "Priblížit / oddialit TV..." +msgid "Zoom" +msgstr "Zväčšenie" + +#, fuzzy +msgid "Zoom In/Out TV" +msgstr "Zväčšenie Vstup/Výstup TV" -msgid "Zoom Off..." -msgstr "Vypnút priblíženie..." +#, fuzzy +msgid "Zoom Off" +msgstr "Vypnúť priblíženie" msgid "Zoom from left" -msgstr "" +msgstr "Priblíženie zľava" msgid "Zoom from right" -msgstr "" +msgstr "Priblíženie sprava" + +msgid "[MultiBootSelector][add USB STARTUP slots] - No EXT4 USB attached." +msgstr "[Viacnásobný výber zavádzania][pridať USB STARTUP sloty] – Nie je pripojené žiadne EXT4 USB." + +#, python-format +msgid "[MultiBootSelector][add USB STARTUP slots] - The USB (%s) only has %s free. At least 1024MB is required." +msgstr "[Viacnásobný výber zavádzania][pridať USB STARTUP sloty] - USB (%s) má voľných iba %s. Vyžaduje sa aspoň 1024 MB." msgid "[TimeShift] Restarting Timeshift!" -msgstr "[TimeShift] Reštartujem Timeshift!" +msgstr "[Časový posuv] Reštartujem časový posuv!" msgid "[Timeshift] Merging records failed!" -msgstr "[Timeshift] Zlúcenie záznamov zlyhalo!" +msgstr "[Časový posuv] Zlúčenie nahrávok zlyhalo!" msgid "[alternative edit]" -msgstr "[úprava alternatív]" +msgstr "[úprava alternatívy]" msgid "[bouquet edit]" -msgstr "[úprava prehladu]" +msgstr "[úprava prehľadu]" msgid "[favourite edit]" -msgstr "[úprava oblúbených]" +msgstr "[úprava obľúbených]" msgid "[move mode]" msgstr "[režim presúvania]" msgid "a gui to assign services/providers to common interface modules" -msgstr "GUI na priradenie staníc a poskytovatelov k modulom CI" +msgstr "grafické rozhranie pre priradenie staníc/poskytovateľov k modulom CI" msgid "a gui to assign services/providers/caids to common interface modules" -msgstr "GUI na priradenie staníc, poskytovatelov a CAId k modulom CI" +msgstr "grafické rozhranie pre priradenie staníc/poskytovateľov/caidov k modulom CI" msgid "about to start" -msgstr "hned zacne" +msgstr "o začiatku" -#, fuzzy msgid "activatePiP" -msgstr "Aktivovat PiP" +msgstr "aktivácia PiP" -#, fuzzy msgid "activatePiP long" -msgstr "Aktivovat PiP" +msgstr "aktivácia PiP dlho" + +msgid "active" +msgstr "aktívny" + +msgid "active " +msgstr "aktívny " msgid "add bookmark" -msgstr "pridat záložku" +msgstr "pridať záložku" -#, fuzzy msgid "additional cable of rotor" -msgstr "Doplnkové informácie" +msgstr "prídavný kábel motora" msgid "address:" msgstr "adresa:" -msgid "adult movie/drama" -msgstr "film pre dospelých/ dráma" +msgid "adult movie" +msgstr "film pre dospelých" msgid "advanced" msgstr "rozšírené" msgid "adventure/western/war" -msgstr "dobrodružný / western / vojna" +msgstr "dobrodružný/western/vojna" msgid "advertisement/shopping" -msgstr "reklama / shopping" +msgstr "reklama/nakupovanie" msgid "all tuners" -msgstr "" - -msgid "alpha then oldest" -msgstr "" +msgstr "všetky tunery" -msgid "alphabetic" -msgstr "abecedne" +msgid "alphabetic then newest first" +msgstr "abecedne, najprv najnovší" -msgid "alphabetic reverse" -msgstr "abecedne opacne" +msgid "alphabetic then oldest first" +msgstr "abecedne, najprv najstarší" -#, fuzzy msgid "alphabetical" msgstr "abecedne" -msgid "alpharev then newest" -msgstr "" - msgid "alternative" -msgstr "alternatívne" +msgstr "alternatívna" -#, fuzzy msgid "am" -msgstr "Názov" +msgstr "" -#, fuzzy msgid "and" msgstr "a" msgid "and never ask again this session" -msgstr "" +msgstr "a už nikdy sa na túto reláciu nepýtať" -#, fuzzy msgid "are you sure you want to cancel all the changes" -msgstr "" -"Ste si istí, že chcete zmazat všetky vybrané súbory protokolov ladenia:\n" +msgstr "ste si istý, že chcete zrušiť všetky zmeny" -#, fuzzy msgid "arts/culture (general)" -msgstr "umenie/kultúra (bez hudby, všeobecne)" +msgstr "umenie/kultúra (všeobecne)" msgid "arts/culture (without music, general)" msgstr "umenie/kultúra (bez hudby, všeobecne)" msgid "arts/culture magazine" -msgstr "umenie/kultúrny casopis" +msgstr "umenie/kultúrny magazín" msgid "as plugin in extended bar" -msgstr "ako plugin v rozšírenom paneli" +msgstr "ako doplnok v rozšírenom paneli" msgid "at beginning" -msgstr "Na zaciatku" +msgstr "na začiatku" msgid "at end" -msgstr "Na konci" +msgstr "na konci" msgid "athletics" msgstr "atletika" @@ -17400,16 +16879,16 @@ msgid "audio tracks" msgstr "zvukové stopy" msgid "auto" -msgstr "auto" +msgstr "" msgid "auto deepstandby" -msgstr "automaticky hlboký spánok" +msgstr "automatické vypnutie" msgid "auto standby" msgstr "automaticky pohotovostný režim" msgid "automatic" -msgstr "automatický" +msgstr "automaticky" msgid "back" msgstr "spät" @@ -17428,41 +16907,41 @@ msgid "better" msgstr "lepšie" msgid "black" -msgstr "cierna" +msgstr "čierna" msgid "black & white" -msgstr "ciernobiela" +msgstr "čiernobiela" msgid "blacklist" -msgstr "cierna listina" +msgstr "čierna listina" msgid "blue" msgstr "modrá" -#, fuzzy msgid "boot time" -msgstr "reštartovat systém" +msgstr "čas zavádzania" msgid "boot time and local time" -msgstr "" +msgstr "čas zavádzania a miestny čas" + +#, python-format +msgid "bootmode = %s" +msgstr "režim zavádzania = %s" msgid "bottom" -msgstr "" +msgstr "dole" msgid "broadcasting/press" -msgstr "vysielanie/tlac" - -msgid "by date" -msgstr "podla dátumu" +msgstr "vysielanie/tlač" msgid "caid:" -msgstr "caid:" +msgstr "" msgid "card" msgstr "karta" msgid "card reader" -msgstr "cítacka kariet" +msgstr "čítačka kariet" msgid "cartoon/puppets" msgstr "rozprávky/bábky" @@ -17470,26 +16949,23 @@ msgstr "rozprávky/bábky" msgid "center" msgstr "na stred" -#, fuzzy msgid "centered" -msgstr "na stred" +msgstr "vycentrované" msgid "centered, wrapped" -msgstr "" +msgstr "vycentrované, zalomené" msgid "chapters" msgstr "kapitoly" -#, fuzzy -msgid "children's/youth program (general)" -msgstr "pre deti a mládež (všeobecne)" - -#, fuzzy msgid "childrens (general)" -msgstr "pre deti a mládež (všeobecne)" +msgstr "deti (všeobecne)" + +msgid "childrens's youth program (general)" +msgstr "detský mládežnícky program (všeobecne)" msgid "circular left" -msgstr "kruhová lavá" +msgstr "kruhová ľavá" msgid "circular right" msgstr "kruhová pravá" @@ -17498,14 +16974,13 @@ msgid "clip overscan / letterbox borders" msgstr "" msgid "close share view" -msgstr "zavriet zobrazenie zdielania" +msgstr "zavrieť zobrazenie zdieľania" msgid "comedy" msgstr "komédia" -#, fuzzy msgid "comedy (general)" -msgstr "film/dráma (všeobecne)" +msgstr "komédia (všeobecne)" msgid "confirmed" msgstr "potvrdené" @@ -17514,62 +16989,64 @@ msgid "connected" msgstr "pripojené" msgid "controlled by HDMI" -msgstr "" +msgstr "ovládané cez HDMI" msgid "convert to AC3" -msgstr "" +msgstr "konvertovať na AC3" msgid "convert to DTS" -msgstr "" +msgstr "konvertovať na DTS" msgid "convert to multi-channel PCM" -msgstr "" +msgstr "konvertovať na viackanálový PCM" msgid "cooking" msgstr "varenie" msgid "copy" -msgstr "kopírovat" +msgstr "kopírovať" msgid "create directory" -msgstr "vytvorit adresár" +msgstr "vytvoriť adresár" -#, fuzzy msgid "current affairs (general)" -msgstr "spravodajstvo/publicistika (všeobecne)" +msgstr "aktuálne udalosti (všeobecne)" msgid "daily" msgstr "denne" msgid "day" -msgstr "den" +msgstr "deň" msgid "decrease uphop by 1" -msgstr "znížit uphop o 1" +msgstr "znížiť uphop o 1" msgid "delete" -msgstr "vymazat" +msgstr "odstrániť" msgid "delete cut" -msgstr "zmazat strih" +msgstr "odstrániť strih" msgid "delete time - show delete time (Trash ONLY)" -msgstr "" +msgstr "vymazať čas - zobraziť čas odstránenia (LEN kôš)" msgid "delete time - show record time (Trash ONLY)" -msgstr "" +msgstr "vymazať čas - zobraziť čas záznamu (LEN kôš)" msgid "descramble and record ecm" -msgstr "dekódovat a zaznamenávat ecm" +msgstr "dekódovať a nahrávať ecm" msgid "detective/thriller" msgstr "detektívka/triler" msgid "disable" -msgstr "zrušit" +msgstr "zakázať" + +msgid "disable intro screen" +msgstr "zakázať úvodnú obrazovku" msgid "disabled" -msgstr "zrušené" +msgstr "vypnuté" msgid "disconnected" msgstr "odpojené" @@ -17578,91 +17055,97 @@ msgid "discussion/interview/debate" msgstr "diskusia/rozhovor/debata" msgid "do nothing" -msgstr "žiadna akcia" +msgstr "nerobiť nič" msgid "documentary" -msgstr "dokumentárny" +msgstr "dokumentárny film" -#, fuzzy msgid "documentary (general)" -msgstr "dokumentárny" +msgstr "dokumentárny film (všeobecne)" msgid "dolby" msgstr "" +msgid "don't convert" +msgstr "nekonvertovať" + msgid "don't descramble, record ecm" -msgstr "nedekódovat, zaznamenávat ecm" +msgstr "nedekódovať, nahrávať ecm" msgid "done!" -msgstr "Hotovo!" +msgstr "hotovo!" -#, fuzzy msgid "drama (general)" -msgstr "film/dráma (všeobecne)" +msgstr "dráma (všeobecne)" + +msgid "eMMC" +msgstr "" msgid "east" -msgstr "východný\t" +msgstr "východné" msgid "ecm time:" -msgstr "ecm cas:" +msgstr "čas ecm:" msgid "ecm.info" -msgstr "ecm.info" +msgstr "" msgid "economics/social advisory" msgstr "ekonomika/sociálne poradenstvo" -#, fuzzy msgid "education/information (general)" -msgstr "vzdelávanie/veda/vecné témy (všeobecne)" +msgstr "vzdelávanie/informácie (všeobecne)" msgid "education/science/factual topics (general)" -msgstr "vzdelávanie/veda/vecné témy (všeobecne)" +msgstr "vzdelávanie/veda/faktické témy (všeobecne)" + +msgid "educational/science/factual topics (general)" +msgstr "vzdelávacie/vedecké/faktické témy (všeobecne)" msgid "embedded" -msgstr "" +msgstr "vložené" msgid "empty" msgstr "prázdne" msgid "enable" -msgstr "zapnút" +msgstr "povoliť" + +msgid "enable intro screen" +msgstr "povoliť úvodnú obrazovku" msgid "enabled" -msgstr "zapnuté" +msgstr "povolené" msgid "end cut here" -msgstr "strih koncí tu" +msgstr "strih končí tu" -#, fuzzy msgid "ene" -msgstr "Žáner" +msgstr "" msgid "entertainment (10-16 year old)" -msgstr "zábavný (10 až 16 rokov)" +msgstr "zábava (10 až 16 rokov)" msgid "entertainment (6-14 year old)" -msgstr "zábavný (6 až 14 rokov)" +msgstr "zábava (6 až 14 rokov)" -#, fuzzy msgid "entertainment (general)" -msgstr "zábavný (6 až 14 rokov)" +msgstr "zábava (všeobecne)" msgid "epg cache backup" -msgstr "" +msgstr "záloha vyrovnávacej pamäte epg" msgid "equestrian" msgstr "jazdectvo" msgid "error starting scanning" -msgstr "" +msgstr "chyba pri spustení vyhľadávania" msgid "error while scanning" -msgstr "" +msgstr "chyba pri vyhľadávaní" -#, fuzzy msgid "ese" -msgstr "Resetovat" +msgstr "" msgid "et4000" msgstr "" @@ -17679,8 +17162,11 @@ msgstr "" msgid "et9200/9500/6500" msgstr "" +msgid "execute cuts (requires MovieCut plugin)" +msgstr "vykonať strihy (vyžaduje doplnok MovieCut)" + msgid "exit DVD player or return to file browser" -msgstr "zatvorit prehrávac DVD alebo sa vrátit do správcu súborov" +msgstr "ukončiť prehrávač DVD alebo sa vrátiť do správcu súborov" msgid "experimental film/video" msgstr "experimentálny film/video" @@ -17689,16 +17175,16 @@ msgid "extensions." msgstr "rozšírenia." msgid "extra wide" -msgstr "" +msgstr "extra široký" msgid "extrawide" -msgstr "" +msgstr "najširší" msgid "failed" -msgstr "zlyhalo" +msgstr "zlyhanie" msgid "false" -msgstr "nie" +msgstr "nepravdivé" msgid "fashion" msgstr "móda" @@ -17707,7 +17193,7 @@ msgid "fast" msgstr "rýchlo" msgid "file can not displayed - file not found" -msgstr "" +msgstr "súbor sa nedá zobraziť - súbor sa nenašiel" msgid "fileformats (BMP, PNG, JPG, GIF)" msgstr "formáty súborov (BMP, PNG, JPG, GIF)" @@ -17722,48 +17208,49 @@ msgid "fine arts" msgstr "výtvarné umenie" msgid "fitness & health" -msgstr "fitnes a zdravie" +msgstr "zdravá kondícia" + +msgid "fitness and health" +msgstr "kondícia a zdravie" msgid "flat alphabetic" -msgstr "abecedne" +msgstr "plošne abecedne" -msgid "flat alphabetic reverse" -msgstr "abecedne (prevrátene)" +msgid "flat reverse alphabetic" +msgstr "plošne abecedne obrátené" msgid "folk/traditional music" -msgstr "folk/tradicná hudba" +msgstr "folk/tradičná hudba" msgid "football/soccer" msgstr "futbal" -#, fuzzy msgid "force disabled" -msgstr "zrušené" +msgstr "vynútenie zakázané" -#, fuzzy msgid "force enabled" -msgstr "zapnuté" +msgstr "vynútenie povolené" msgid "foreign countries/expeditions" -msgstr "zahranicné krajiny/expedície" +msgstr "zahraničné krajiny/expedície" msgid "forward to the next chapter" -msgstr "preskocit na dalšiu kapitolu" +msgstr "preskočiť na ďalšiu kapitolu" msgid "free" -msgstr "volných" +msgstr "voľných" msgid "free diskspace" -msgstr "volného miesta na disku" +msgstr "voľného miesta na disku" msgid "from" -msgstr "" +msgstr "z" msgid "full" msgstr "plný" msgid "further education" -msgstr "vzdelávanie dospelých" +msgstr "ďaľšie vzdelávanie" msgid "game show/quiz/contest" msgstr "herná šou/kvíz/sútaž" @@ -17772,16 +17259,16 @@ msgid "gardening" msgstr "záhradníctvo" msgid "get the cards' server" -msgstr "zobrazit server kariet" +msgstr "získať server kariet" msgid "go to deep standby" -msgstr "prejst do vypnutia" +msgstr "prejsť do vyčkávacieho režimu" msgid "go to standby" -msgstr "prejst do pohotovostného režimu" +msgstr "prejsť do pohotovostného režimu" msgid "grab this frame as bitmap" -msgstr "Zachytit toto polícko ako bitmapu" +msgstr "zachytiť tento rámec ako bitmapu" msgid "green" msgstr "zelená" @@ -17805,7 +17292,7 @@ msgid "h:mmam/pm" msgstr "" msgid "handicraft" -msgstr "rucné práce" +msgstr "ručné práce" msgid "handled" msgstr "spracované" @@ -17835,45 +17322,47 @@ msgid "hh:mmam/pm" msgstr "" msgid "hide" -msgstr "" +msgstr "skryť" msgid "hlg" msgstr "" msgid "hops:" -msgstr "Pocet skokov:" +msgstr "skokov:" msgid "horizontal" msgstr "vodorovná" msgid "increase uphop by 1" -msgstr "zvýšit uphop o 1" +msgstr "zvýšiť uphop o 1" -#, fuzzy msgid "info" -msgstr "ecm.info" +msgstr "informácia" msgid "information/education/school program" msgstr "informácie/vzdelanie/program pre školy" #, fuzzy msgid "infotainment (general)" -msgstr "športy (všeobecne)" +msgstr "infozábava (všeobecne)" msgid "init module" -msgstr "inic. modul" +msgstr "inicializácia modulu" msgid "insert mark here" -msgstr "sem vložit znacku" +msgstr "sem vložit značku" + +msgid "instant record" +msgstr "okamžitá nahrávka" msgid "invalid type" msgstr "neplatný typ" msgid "is strongly advised." -msgstr "sa dôrazne odporúca." +msgstr "sa dôrazne odporúča." msgid "jazz" -msgstr "jazz" +msgstr "džez" msgid "jump back to the previous title" msgstr "skok vzad na predchádzajúci titul" @@ -17885,19 +17374,19 @@ msgid "languages" msgstr "jazyky" msgid "left" -msgstr "dolava" +msgstr "vľavo" msgid "left, wrapped" -msgstr "" +msgstr "vľavo, zalomené" msgid "leisure hobbies (general)" -msgstr "konícky pre volný cas (všeobecne)" +msgstr "voľnočasové záľuby (všeobecne)" msgid "length" -msgstr "dlžka" +msgstr "dĺžka" msgid "limit ..., aborting !" -msgstr "limit... zastavujem!" +msgstr "obmedzenie ..., prerušujem !" msgid "literature" msgstr "literatúra" @@ -17905,27 +17394,29 @@ msgstr "literatúra" msgid "live broadcast" msgstr "priamy prenos" -#, fuzzy +msgid "local sports" +msgstr "miestne športy" + msgid "local time" -msgstr "Casové oneskorenie" +msgstr "miestny čas" msgid "locked" -msgstr "zamknutý" +msgstr "zamknuté" msgid "long" -msgstr "" +msgstr "dlho" -msgid "longest" -msgstr "" +msgid "longest first" +msgstr "najdlhšie najskôr" msgid "magazines/reports/documentary" -msgstr "casopisy/správy/dokumentárne" +msgstr "magazíny/správy/dokumentárne" msgid "making a backup before updating" -msgstr "pred aktualizáciou vykonat zálohu nastavení" +msgstr "pred aktualizáciou vykonať zálohu nastavení" msgid "manual" -msgstr "rucne" +msgstr "ručne" msgid "martial sports" msgstr "bojové športy" @@ -17934,13 +17425,13 @@ msgid "medicine/physiology/psychology" msgstr "medicína/fyziológia/psychológia" msgid "menu" -msgstr "menu" +msgstr "ponuka" msgid "middle" -msgstr "" +msgstr "stred" msgid "mins" -msgstr "minút" +msgstr "min." msgid "minute" msgstr "minúta" @@ -17948,6 +17439,9 @@ msgstr "minúta" msgid "minutes" msgstr "minút" +msgid "module disabled" +msgstr "modul vypnutý" + msgid "month" msgstr "mesiac" @@ -17960,26 +17454,20 @@ msgstr "motorizmus" msgid "move" msgstr "presun" -#, fuzzy msgid "movie (general)" -msgstr "film/dráma (všeobecne)" - -msgid "movie/drama (general)" -msgstr "film/dráma (všeobecne)" +msgstr "film (všeobecne)" msgid "ms" -msgstr " ms" +msgstr "" -#, fuzzy msgid "multi" -msgstr "viacnormový" +msgstr "" msgid "multinorm" msgstr "viacnormový" -#, fuzzy msgid "music (general)" -msgstr "športy (všeobecne)" +msgstr "hudba (všeobecne)" msgid "music/ballet/dance (general)" msgstr "hudba/balet/tanec (všeobecne)" @@ -17987,12 +17475,14 @@ msgstr "hudba/balet/tanec (všeobecne)" msgid "musical/opera" msgstr "muzikál/opera" +msgid "n/a" +msgstr "" + msgid "nature/animals/environment" msgstr "príroda/zvieratá/životné prostredie" -#, fuzzy msgid "ne" -msgstr "Jeden" +msgstr "" msgid "never" msgstr "nikdy" @@ -18000,9 +17490,14 @@ msgstr "nikdy" msgid "new media" msgstr "nové médiá" -#, fuzzy +msgid "newest first" +msgstr "najnovšie prvé" + +msgid "newest recordings first then other media by name" +msgstr "najprv najnovšie nahrávky a potom ostatné médiá podľa názvu" + msgid "news (general)" -msgstr "športy (všeobecne)" +msgstr "spravodajstvo (všeobecne)" msgid "news magazine" msgstr "spravodajský magazín" @@ -18011,32 +17506,28 @@ msgid "news/current affairs (general)" msgstr "spravodajstvo/publicistika (všeobecne)" msgid "news/weather report" -msgstr "spravodajstvo/predpoved pocasia" +msgstr "spravodajstvo/predpoveď počasia" -#, fuzzy msgid "nne" -msgstr "žiadne" +msgstr "" -#, fuzzy msgid "nnw" -msgstr "Neznáme" +msgstr "" msgid "no" msgstr "nie" msgid "no CAId selected" -msgstr "nie je zvolený CAId" +msgstr "nie je zvolený CAid" msgid "no CI slots found" msgstr "nenájdené sloty CI" -#, fuzzy msgid "no channel list" -msgstr "Inštalovat zoznam staníc" +msgstr "žiadny zoznam kanálov" -#, fuzzy msgid "no delay" -msgstr "Bez oneskorenia" +msgstr "bez oneskorenia" msgid "no module found" msgstr "nenájdený modul" @@ -18044,9 +17535,8 @@ msgstr "nenájdený modul" msgid "no or unknown card inserted" msgstr "žiadna alebo vložená neznáma karta" -#, fuzzy msgid "no resource manager" -msgstr "Zobrazit zdrojové balícky" +msgstr "žiadny správca zdrojov" msgid "no storage devices found" msgstr "nenájdené žiadne zariadenie pre ukladanie dát" @@ -18055,7 +17545,7 @@ msgid "none" msgstr "žiadne" msgid "normal" -msgstr "normálny" +msgstr "normálne" msgid "not configured" msgstr "nenakonfigurované" @@ -18066,36 +17556,38 @@ msgstr "nie je signál" msgid "not supported" msgstr "nepodporované" -#, fuzzy msgid "not valid frontend" -msgstr "neplatný typ" +msgstr "neplatný frontend" msgid "nothing connected" -msgstr "nic nie je pripojené" +msgstr "nič nie je pripojené" msgid "nw" msgstr "" msgid "of a DUAL layer medium used." -msgstr "dvojvrstvového média využitých." +msgstr "použitého dvojvrstvového média." msgid "of a SINGLE layer medium used." -msgstr "jednovrstvového média využitých." +msgstr "použitého jednovrstvového média." msgid "off" -msgstr "vyp." +msgstr "vyp" msgid "off or wpa2 on" -msgstr "" +msgstr "vypnuté alebo zapnuté wpa2" msgid "offset is" -msgstr "rezerva je" +msgstr "posun je" + +msgid "oldest first" +msgstr "najstarší prvý" msgid "on" -msgstr "zap." +msgstr "zap" msgid "on READ ONLY medium." -msgstr "na nezapisovatelné médium." +msgstr "na nezapisovateľné médium." msgid "once" msgstr "raz" @@ -18103,224 +17595,227 @@ msgstr "raz" msgid "only HD" msgstr "iba HD" -#, fuzzy msgid "only when available" -msgstr "Žiadny volný index k dispozícii" +msgstr "iba ak je k dispozícii" msgid "original" -msgstr "pôvodný" +msgstr "originál" msgid "original language" msgstr "pôvodný jazyk" msgid "packages selected." -msgstr " balíckov zvolených." +msgstr "balíčkov zvolených." msgid "page left" -msgstr "stránka vlavo" +msgstr "stránka vľavo" msgid "pass" -msgstr "prejst" +msgstr "heslo" msgid "performing arts" -msgstr "hudobné umenie" +msgstr "divadelné umenie" msgid "pid:" -msgstr "pid:" +msgstr "" msgid "please wait, loading picture..." -msgstr "prosím pockajte, nahrávam obrázok..." +msgstr "prosím čakajte, nahrávanie obrázku..." msgid "please wait..." -msgstr "prosím, pockajte..." +msgstr "prosím, čakajte..." msgid "pm" msgstr "" msgid "popular culture/traditional arts" -msgstr "populárno-kultúrne/tradicné umenie" +msgstr "populárna kultúra/tradičné umenie" msgid "pre-school children's program" msgstr "program pre predškolské deti" +msgid "preserve bookmarks in cuts" +msgstr "zachovať záložky v strihoch" + +msgid "priority" +msgstr "priorita" + msgid "provid:" -msgstr "id poskytovatela:" +msgstr "id poskytovateľa:" msgid "provider:" -msgstr "poskytovatel:" +msgstr "poskytovateľ:" msgid "reboot system" -msgstr "reštartovat systém" +msgstr "reštartovanie systému" msgid "record" -msgstr "nahrat" +msgstr "nahrať" msgid "recording..." msgstr "nahrávam..." -msgid "recordings by date then other media by name" -msgstr "" - msgid "red" -msgstr "cervená" +msgstr "červená" msgid "religion" msgstr "náboženstvo" msgid "remarkable people" -msgstr "pozoruhodní ludia" +msgstr "pozoruhodní ľudia" msgid "remove after this position" -msgstr "odstránit za touto pozíciou" +msgstr "odstrániť za touto pozíciou" msgid "remove before this position" -msgstr "odstránit pred touto pozíciou" +msgstr "odstrániť pred touto pozíciou" msgid "remove bookmark" -msgstr "odstránit záložku" +msgstr "odstrániť záložku" + +msgid "remove bookmarks in cuts" +msgstr "odstrániť záložky v strihoch" msgid "remove directory" -msgstr "odstránit adresár" +msgstr "odstrániť adresár" msgid "remove this mark" -msgstr "odstránit túto znacku" +msgstr "odstrániť túto značku" msgid "rename" -msgstr "premenovat" +msgstr "premenovať" msgid "repeat playlist" -msgstr "zopakovat zoznam prehrávok" +msgstr "opakovať zoznam prehrávok" msgid "repeated" -msgstr "opakované" +msgstr "opakovane" msgid "restart GUI" -msgstr "reštartovat užívatelské rozhranie" +msgstr "reštartovať GUI" + +msgid "reverse alphabetic then newest first" +msgstr "obrátene abecedne, potom najnovší ako prvý" -msgid "reverse by date" -msgstr "prehodit podla dátumu" +msgid "reverse alphabetic then oldest first" +msgstr "obrátene abecedne, potom najstarší ako prvý" msgid "rewind to the previous chapter" -msgstr "previnút na predchádzajúcu kapitolu" +msgstr "previnúť na predchádzajúcu kapitolu" msgid "right" -msgstr "doprava" +msgstr "vpravo" msgid "right, wrapped" -msgstr "" +msgstr "vpravo, zalomené" msgid "rock/pop" -msgstr "rock/pop" +msgstr "" msgid "romance" msgstr "romantika" -#, fuzzy msgid "rotor" -msgstr "Autor: " +msgstr "motor" -#, fuzzy msgid "rotor is not used" -msgstr "tuner nie je podporovaný" +msgstr "motor nie je použitý" msgid "running..." msgstr "prebieha..." msgid "save last directory on exit" -msgstr "pri ukoncení uložit posledný adresár" +msgstr "uložiť posledný adresár pri ukončení" msgid "save playlist on exit" -msgstr "pri ukoncení uložit zoznam prehrávok" +msgstr "uložiť zoznam prehrávok pri ukončení" msgid "scan state" -msgstr "stav vyhladávania" +msgstr "stav vyhľadávania" msgid "science fiction/fantasy/horror" -msgstr "sci-fi/fantasy/horor" +msgstr "sci-fi/fantázia/horor" msgid "sdr" msgstr "" -#, fuzzy msgid "se" -msgstr "Použit" +msgstr "" -#, fuzzy msgid "sec" -msgstr "Použit" +msgstr "sek" msgid "seconds" msgstr "sekúnd" msgid "select" -msgstr "zvolit" +msgstr "výber" msgid "select CAId's" -msgstr "zvolit CAIdy" +msgstr "vyberte CAid-y" msgid "serious music/classic music" msgstr "vážna hudba/klasická hudba" -msgid "serious/classical/religious/historical movie/drama" -msgstr "vážny/klasický/náboženský/historický film/dráma" +msgid "serious/classical/religious/historical drama" +msgstr "vážna/klasická/náboženská/historická dráma" msgid "share:" -msgstr "zdielanie:" +msgstr "zdieľať:" -#, fuzzy -msgid "shortest" -msgstr "Test siete" +msgid "shortest first" +msgstr "najkratšie prvé" msgid "show DVD main menu" -msgstr "zobrazit hlavné menu DVD" +msgstr "zobraziť hlavnú ponuku DVD" msgid "show all cards" -msgstr "zobrazit všetky karty" +msgstr "zobraziť všetky karty" msgid "show all tags" -msgstr "zobrazit všetky popisy" +msgstr "zobraziť všetky popisy" msgid "show cards with uphop 0" -msgstr "zobrazit karty s uphop 0" +msgstr "zobraziť karty s uphop 0" msgid "show cards with uphop 1" -msgstr "zobrazit karty s uphop 1" +msgstr "zobraziť karty s uphop 1" msgid "show cards with uphop 2" -msgstr "zobrazit karty s uphop 2" +msgstr "zobraziť karty s uphop 2" msgid "show cards with uphop 3" -msgstr "zobrazit karty s uphop 3" +msgstr "zobraziť karty s uphop 3" msgid "show cards with uphop 4" -msgstr "zobrazit karty s uphop 4" +msgstr "zobraziť karty s uphop 4" msgid "show cards with uphop 5" -msgstr "zobrazit karty s uphop 5" +msgstr "zobraziť karty s uphop 5" msgid "show cards with uphop 6" -msgstr "zobrazit karty s uphop 6" +msgstr "zobraziť karty s uphop 6" msgid "show cards with uphop 7" -msgstr "zobrazit karty s uphop 7" +msgstr "zobraziť karty s uphop 7" msgid "show cards with uphop 8" -msgstr "zobrazit karty s uphop 8" +msgstr "zobraziť karty s uphop 8" msgid "show cards with uphop 9" -msgstr "zobrazit karty s uphop 9" +msgstr "zobraziť karty s uphop 9" msgid "show event details" -msgstr "zobrazit detaily o programe" +msgstr "zobraziť detaily o udalosti" msgid "show mediaplayer on mainmenu" -msgstr "zobrazovat prehrávac médií v hlavnom menu" +msgstr "zobraziť prehrávač médií v hlavnej ponuke" msgid "show softwaremanager in plugin menu" -msgstr "zobrazit manažér softvéru v menu rozširení" +msgstr "zobraziť manažér softvéru v ponuke pluginu" msgid "show softwaremanager on blue button" -msgstr "modrým tlacidlom spustit správcu softvéru" +msgstr "zobraziť správcu softvéru pod modrým tlačidlom" msgid "show/game show (general)" msgstr "šou/herné šou (všeobecne)" @@ -18329,47 +17824,51 @@ msgid "shuffle" msgstr "náhodne" msgid "shut down" -msgstr "vypnút" +msgstr "vypnúť" msgid "simple" msgstr "jednoduchý" msgid "skip backward" -msgstr "skok vzad" +msgstr "preskočiť dozadu" msgid "skip forward" -msgstr "skok vpred" +msgstr "preskočiť vpred" + +#, python-format +msgid "slot %s (%s)" +msgstr "" msgid "slow" -msgstr "pomaly" +msgstr "pomalo" -#, fuzzy msgid "soap/melodrama/folkloric" -msgstr "melodráma/folklór" +msgstr "telenovela/melodráma/folklórny" msgid "social/political issues/economics (general)" msgstr "sociálne/politické problémy/ekonómia (všeobecne)" msgid "social/spiritual science" -msgstr "sociálne/duchovnej vedy" +msgstr "sociálne/duchovná veda" + +msgid "social/spiritual sciences" +msgstr "sociálne/duchovné vedy" -#, fuzzy msgid "softcam" -msgstr "SoftcamKontrola" +msgstr "" msgid "sorting of playlists" msgstr "zoradenie zoznamov prehrávok" -#, fuzzy msgid "special (general)" -msgstr "športy (všeobecne)" +msgstr "špeciálne (všeobecne)" msgid "special events" msgstr "špeciálne podujatia" #, fuzzy msgid "sport (general)" -msgstr "športy (všeobecne)" +msgstr "šport (všeobecne)" msgid "sports (general)" msgstr "športy (všeobecne)" @@ -18377,43 +17876,45 @@ msgstr "športy (všeobecne)" msgid "sports magazine" msgstr "športový magazín" -#, fuzzy msgid "sse" -msgstr "Použit" +msgstr "" msgid "ssw" msgstr "" +#, fuzzy +msgid "standby " +msgstr "pohotovostný režim " + msgid "start cut here" -msgstr "zaciatok strihu tu" +msgstr "začiatok strihu tu" msgid "start directory" -msgstr "pociatocný adresár" +msgstr "východzí adresár" msgid "stepsize" -msgstr "velkost kroku" +msgstr "veľkosť kroku" msgid "stereo" msgstr "stereo" -#, fuzzy msgid "sw" -msgstr "pomaly" +msgstr "" msgid "switch to bookmarks" -msgstr "prepnút na záložky" +msgstr "prepnúť na záložky" msgid "switch to filelist" -msgstr "prepnút na zoznam súborov" +msgstr "prepnúť na zoznam súborov" msgid "switch to the next angle" -msgstr "prepnút na další uhol kamery" +msgstr "prepnúť na další uhol" msgid "switch to the next audio track" -msgstr "prepnút na nasledujúcu zvukovú stopu" +msgstr "prepnúť na nasledujúcu zvukovú stopu" msgid "switch to the next subtitle language" -msgstr "prepnút na nasledujúci jazyk titulkov" +msgstr "prepnúť na nasledujúci jazyk titulkov" msgid "system:" msgstr "systém:" @@ -18421,30 +17922,33 @@ msgstr "systém:" msgid "talk show" msgstr "talkšou" -msgid "team sports" -msgstr "kolektívne športy" +msgid "team sports/excluding football" +msgstr "kolektívne športy/okrem futbalu" msgid "technology/natural science" -msgstr "technológia/prírodné vedy" +msgstr "technológia/prírodná veda" + +#, fuzzy +msgid "technology/natural sciences" +msgstr "technológie/prírodné vedy" msgid "template file" -msgstr "šablóna" +msgstr "súbor šablóny" msgid "tennis/squash" msgstr "tenis/squash" -#, fuzzy msgid "this bouquet is protected by a parental control pin" -msgstr "táto stanica je chránená rodicovskou zámkou" +msgstr "tento prehľad je chránený PINom rodičovskej ochrany" msgid "this recording" msgstr "táto nahrávka" msgid "this service is protected by a parental control pin" -msgstr "táto stanica je chránená rodicovskou zámkou" +msgstr "táto stanica je chránená PIN-om rodičovskej ochrany" msgid "toggle time, chapter, audio, subtitle info" -msgstr "prepnút informácie o case, kapitole, zvuku a titulkoch" +msgstr "prepnutie času, kapitol, zvuku a titulkových informácií" msgid "top" msgstr "hore" @@ -18453,40 +17957,39 @@ msgid "tourism/travel" msgstr "turistika/cestovanie" msgid "true" -msgstr "áno" +msgstr "skutočné" #, fuzzy +msgctxt "problem trans" msgid "two lines" -msgstr "Dve ciary" +msgstr "dva riadky" #, fuzzy +msgctxt "problem trans" msgid "two lines and next event" -msgstr "Prejst na nasledujúcu udalost" +msgstr "dva riadky a ďalšia udalosť" #, fuzzy msgid "type" -msgstr "Typ testu" +msgstr "typ" -#, fuzzy msgid "uShare" -msgstr "Zdielania" +msgstr "" msgid "uShare Name" -msgstr "Názov uShare" +msgstr "uShare - Názov" msgid "uShare Port" msgstr "uShare Port" msgid "uShare Setup" -msgstr "Nastavenie uShare" +msgstr "uShare - Nastavenie" -#, fuzzy msgid "uShare name" -msgstr "Názov uShare" +msgstr "názov uShare" -#, fuzzy msgid "uShare port" -msgstr "uShare Port" +msgstr "port uShare" msgid "unavailable" msgstr "nedostupné" @@ -18496,7 +17999,7 @@ msgstr "nepotvrdené" #, fuzzy msgid "undefined" -msgstr "Užívatelsky definované" +msgstr "nedefinované" msgid "unknown" msgstr "neznáme" @@ -18511,20 +18014,19 @@ msgid "until standby/restart" msgstr "do vypnutia alebo reštartu" msgid "updates available." -msgstr " dostupných aktualizácií." +msgstr "dostupné aktualizácie." msgid "use best / controlled by HDMI" -msgstr "" +msgstr "použiť najlepšie / riadené cez HDMI" -msgid "use_hdmi_cacenter" -msgstr "" +#~ msgid "use_hdmi_cacenter" +#~ msgstr "" msgid "user defined" msgstr "užívatelsky definované" -#, fuzzy msgid "user defined hidden" -msgstr "užívatelsky definované" +msgstr "užívateľom definované skrytie" msgid "using:" msgstr "používa:" @@ -18536,43 +18038,43 @@ msgid "vertical" msgstr "zvislá" msgid "violet" -msgstr "" +msgstr "fialová" msgid "wait for ci..." -msgstr "cakat na ci..." +msgstr "čakať na ci..." msgid "wait for mmi..." -msgstr "cakat na mmi..." +msgstr "čakať na mmi..." msgid "waiting" -msgstr "cakám" +msgstr "čakanie" msgid "wakeup" -msgstr "prebudit" +msgstr "prebudenie" msgid "wakeup to standby" msgstr "prebudenie do pohotovostného režimu" msgid "water sport" -msgstr "vodné športy" +msgstr "vodný šport" msgid "weekly" -msgstr "týždenne" +msgstr "týždeň" msgid "west" -msgstr "západne" +msgstr "západné" msgid "when PiPzap enabled zap channel down..." -msgstr "" +msgstr "keď PiP prepínanie povolené prepne kanál nadol..." msgid "when PiPzap enabled zap channel up..." -msgstr "" +msgstr "keď PiP prepínanie povolené prepne kanál nahor..." msgid "white" msgstr "biela" msgid "wide" -msgstr "" +msgstr "široký" msgid "width" msgstr "šírka" @@ -18591,21 +18093,21 @@ msgstr[1] "s %d chybami" msgstr[2] "s %d chybami" msgid "with exit button" -msgstr "tlacidlom exit" +msgstr "s tlačidlom EXIT" msgid "with left/right buttons" -msgstr "pomocou tlacidiel vlavo/vpravo" +msgstr "s tlačidlami vľavo/vpravo" msgid "with long OK press" -msgstr "dlhým stlacením tlacidla OK" +msgstr "s dlhým stlačením tlačidla OK" -#, fuzzy msgid "with text" -msgstr "tlacidlom exit" +msgstr "s textom" #, fuzzy +msgctxt "problem trans" msgid "with tuner name" -msgstr "Prepínatelné typy tunerov:" +msgstr "s názvom tunera" msgid "wnw" msgstr "" @@ -18623,1191 +18125,222 @@ msgid "yes" msgstr "áno" msgid "yes (keep feeds)" -msgstr "áno (zachovat feedy)" +msgstr "áno (zachovať feedy)" msgid "yes, but not in multi selections" -msgstr "" +msgstr "áno, ale nie pri viacerých výberoch" msgid "zap" -msgstr "prepnút" +msgstr "prepnúť" msgid "zap and record" -msgstr "prepnút a nahrat" +msgstr "prepnúť a nahrať" msgid "zapped" msgstr "prepnuté" -#, fuzzy, python-format -msgid "%s downloads" -msgstr "Stiahnuté" - -#, python-format -msgid "%s: " -msgstr "" - -msgid "- Max backups to keep (0==all)" -msgstr "" - -msgid "- Query before backup starts" -msgstr "" - -msgid "- Query before image backup starts" -msgstr "" - -msgid "- Repeat how often" -msgstr "" - -msgid "- Time of backup to start" -msgstr "" - -msgid "128 Mb" -msgstr "128 Mb" - -msgid "16 Mb" -msgstr "16 Mb" - -msgid "256 Mb" -msgstr "256 Mb" - -msgid "30 Days" -msgstr "30 dní" - -msgid "32 Mb" -msgstr "32 Mb" - -msgid "64 Mb" -msgstr "64 Mb" - -msgid "8 Mb" -msgstr "8 Mb" - -msgid "96 Mb" -msgstr "96 Mb" +msgid "| separated list of prefixes you'd like to be removed from event names, separated with |, e.g. New:|Live:" +msgstr "| zoznam prefixov, ktoré chcete odstrániť z názvov udalostí, oddelených symbolom |, napr. New:|Live:" #, fuzzy -msgid "A background update check is in progress, please try again." -msgstr "" -"Kontrola aktualizácií prebieha na pozadí, prosím počkajte, potom skúste to " -"znovu." - -msgid "A backup has been detected." -msgstr "" +#~ msgid "(FTA Service)" +#~ msgstr "(FTA Stanica)" -msgid "Active:" -msgstr "Aktívne:" - -msgid "Allows the script runner to be launched from extensions." -msgstr "" - -msgid "Allows the softcam manager to be launched from extensions." -msgstr "" - -msgid "" -"Allows the softcam to be checked if it stopped working, and restarted " -"automatically if needed." -msgstr "" +#, fuzzy +#~ msgid "Activate MAC address configuration" +#~ msgstr "Aktivovať konfiguráciu MAC adresy" -msgid "Allows you to close the window automatically." -msgstr "" +#~ msgid "Activate current configuration" +#~ msgstr "Aktivovať aktuálne nastavenie" -msgid "Allows you to schedule your backups." -msgstr "" +#, fuzzy +#~ msgid "Activate network adapter configuration" +#~ msgstr "Aktivovať konfiguráciu sieťového adaptéra" -msgid "Allows you to schedule your image backups." -msgstr "" +#~ msgid "Background delete option" +#~ msgstr "Možnosti odstraňovania na pozadí" -msgid "Allows you to tag your backups to a box." -msgstr "" +#~ msgid "Background delete speed" +#~ msgstr "Rýchlosť odstraňovania na pozadí" -msgid "" -"Allows you to tag your image backup to a box. (default is box name/type)" -msgstr "" +#, python-format +#~ msgid "Build: %s" +#~ msgstr "Zostavenie: %s" -msgid "Are you ready to install ?" -msgstr "Ste pripravený na inštaláciu?" +#, fuzzy +#~ msgid "Cannot delete current image" +#~ msgstr "Nemožno odstrániť aktuálny systémový obraz" -#, fuzzy, python-format -msgid "Are you sure you want to delete image slot %s ?" -msgstr "Naozaj chcete zmazať túto zálohu:" +#, fuzzy +#~ msgid "Cannot reboot to deleted image" +#~ msgstr "Nemožno reštartovať na odstránený systémový obraz" -msgid "" -"Are you sure you want to download this image:\n" -" " -msgstr "Naozaj chcete prevziať tento systémový obraz:" +#~ msgid "Clear fixed" +#~ msgstr "Vymazať fixné" -msgid "" -"Are you sure you want to restore this backup:\n" -" " -msgstr "Ste si istí, že chcete obnoviť túto zálohu:" +#, fuzzy +#~ msgid "Collection" +#~ msgstr "Kolekcia" -msgid "Automatically created" -msgstr "" +#~ msgid "Configure on which devices the background delete option should be used." +#~ msgstr "Nastaviť, na ktorých zariadeniach má byt použité mazanie na pozadí." -msgid "Backing up eMMC partitions for USB flash ..." -msgstr "" +#~ msgid "Configure the speed of the background deletion process. Lower speed will consume less hard disk drive performance." +#~ msgstr "Nastaviť rýchlosť procesu mazania na pozadí. Nižšia rýchlosť zaberie menej z výkonu pevného disku." -msgid "Backing up eMMC partitions for USB flash..." -msgstr "" +#~ msgid "Current CEC address" +#~ msgstr "Súčasná CEC adresa" -msgid "Backing up files..." -msgstr "Zálohujú sa súbory..." +#~ msgid "ECM-Time" +#~ msgstr "ECM-čas" -#, fuzzy -msgid "Backing up kernel..." -msgstr "Zálohujú sa súbory..." +#~ msgid "Everywhere" +#~ msgstr "Všade" #, fuzzy -msgid "Backing up root file system..." -msgstr "Zálohujú sa súbory..." +#~ msgid "Exit MAC address configuration" +#~ msgstr "Ukončiť konfiguráciu MAC adresy" #, fuzzy -msgid "Backup complete." -msgstr "Zálohovanie dokončené..." +#~ msgid "Exit movie player..." +#~ msgstr "Ukončiť prehrávač filmov..." -#, fuzzy -msgid "Backup complete..." -msgstr "Zálohovanie dokončené..." +#~ msgid "Exit nameserver configuration" +#~ msgstr "Ukončiť konfiguráciu DNS" #, fuzzy -msgid "Backup confirmation" -msgstr "Potvrdiť zálohovanie" +#~ msgid "Exit network adapter configuration" +#~ msgstr "Ukončiť konfiguráciu sieťového adaptéra" -#, fuzzy -msgid "Backup created" -msgstr "Zálohu vytvorená" +#, fuzzy, python-format +#~ msgid "Flash directory '%s' not allowed!" +#~ msgstr "Flash adresár '%s' nie je povolený!" #, fuzzy -msgid "" -"Backup failed - e. g. wrong backup destination or no space left on backup " -"device." -msgstr "" -"Zálohovanie zlyhalo - nesprávne umiestnenie zálohy alebo žiadne voľné miesto " -"na zálohovacom zariadení" +#~ msgid "HDMI-CEC address editing actions" +#~ msgstr "Akcie úprav adresy HDMI-CEC" #, fuzzy -msgid "" -"Backup in progress,\n" -"Please wait for it to finish, before trying again." -msgstr "" -"Zálohovanie prebieha,\n" -"pred opätovným pokusom počkajte na dokončenie prosím" - -msgid "Backup location" -msgstr "" - -msgid "Backup manager settings" -msgstr "" - -msgid "Backup prefix" -msgstr "" +#~ msgid "IMDB Search" +#~ msgstr "Vyhľadávanie v IMDb" -msgid "Backup/Flash/ReBoot system image." -msgstr "" +#~ msgid "Instant recording..." +#~ msgstr "Okamžité nahrávanie..." -msgid "Backups to keep" -msgstr "" +#~ msgid "Internal hdd only" +#~ msgstr "Iba vnútorný HDD" -msgid "Backups to prune" -msgstr "" +#, python-format +#~ msgid "Last update: %s" +#~ msgstr "Posledná aktualizácia: %s" -msgid "CCcam can't run whilst MGcamd is running" -msgstr "Ccca sa nedá spustiť, kým je spustený MGcamd" +#~ msgid "Namespace" +#~ msgstr "Menný priestor" #, fuzzy -msgid "CCcam can't run whilst MGcamd is running." -msgstr "Ccca sa nedá spustiť, kým je spustený MGcamd" - -#, fuzzy, python-format -msgid "" -"Cannot unmount partition '%s'. Make sure this partition is not in use. " -"(SWAP, record/timeshift, etc.)" -msgstr "" -"Nie je možné odpojiť partíciu, uistite sa, že sa nepoužíva pre swap alebo " -"nahrávanie/časový posun" +#~ msgid "Open infobar EPG..." +#~ msgstr "Otvorenie informačného panelu EPG..." #, fuzzy -msgid "Change location" -msgstr "Zmeniť umiestnenie" +#~ msgid "OpenTV download setup" +#~ msgstr "Nastavenie sťahovania OpenVPN" #, fuzzy -msgid "Checking free RAM.." -msgstr "Kontrola voľnej pamäte RAM..." - -msgid "Checking softcams..." -msgstr "Kontrola softcamov ..." +msgid "Polarisation:" +msgstr "Polarizácia" #, fuzzy -msgid "Choose IPK folder" -msgstr "Vyberte miestny adresár s ipk" +#~ msgid "Press OK to set the MAC address." +#~ msgstr "Stlačením tlačidla OK nastaviť MAC adresu." #, fuzzy -msgid "Choose files" -msgstr "Vybrať súbory" - -msgid "Choose where to mount your devices to:" -msgstr "Vyberte, kam pripojiť Vaše zariadenia:" +#~ msgid "Select directory for logfile" +#~ msgstr "Nepodarilo sa vytvoriť adresár %s." -msgid "Close window on success" -msgstr "" - -msgid "Comparing against backup..." -msgstr "Porovnanie oproti zálohe..." - -msgid "Compress" -msgstr "" - -msgid "Create" -msgstr "Vytvoriť" - -msgid "Create a settings backup before updating." -msgstr "" +#~ msgid "Serv.Name" +#~ msgstr "Názov servera" -#, fuzzy -msgid "Create and Manage your SWAP files." -msgstr "Vytvoriť a spravovať swap." +#~ msgid "Set fixed" +#~ msgstr "Použiť pevné" -#, fuzzy -msgid "Create:" -msgstr "Vytvoriť" +#~ msgid "Show /tmp/ecm.info" +#~ msgstr "Zobraziť /tmp/ecm.info" #, fuzzy -msgid "Creating SWAP.." -msgstr "Vytváram swap..." +#~ msgid "Skin Setup" +#~ msgstr "Nastavenie vzhľadu" -msgid "Creating list of installed plugins..." -msgstr "Vytváram zoznam nainštalovaných zásuvných modulov..." +#~ msgid "Subtitle selection..." +#~ msgstr "Výber titulkov..." -msgid "Creating zip..." -msgstr "Vytváranie zip..." - -msgid "Deactivate" -msgstr "Deaktivovat" - -msgid "Delete failure - check device available." -msgstr "" +#, fuzzy, python-format +#~ msgid "Support at %s" +#~ msgstr "Podpora na %s" -msgid "Developer password" -msgstr "" +#, fuzzy +msgid "Symbolrate:" +msgstr "Symbolová rýchlosť" -msgid "Developer username" -msgstr "" +#~ msgid "Sync NTP every (minutes)" +#~ msgstr "Synchronizácie NTP každých (minút)" -msgid "Device: " -msgstr "Zariadenie:" +#~ msgid "" +#~ "The software management extension is not installed!\n" +#~ "Please install it." +#~ msgstr "" +#~ "Rozšírenie správy softvéru nie je nainštalované!\n" +#~ "Prosím, nainštalujte ho." -msgid "Device: None available" -msgstr "Zariadenie: žiadne k dispozícii" +#~ msgid "The timer file (pm_timers.xml) is corrupt and could not be loaded." +#~ msgstr "Súbor časovača (pm_timers.xml) je porušený a nedá sa otvoriť." -#, fuzzy -msgid "Device: none available" -msgstr "Zariadenie: žiadne k dispozícii" +#~ msgid "The timer file (timers.xml) is corrupt and could not be loaded." +#~ msgstr "Súbor časovača (timers.xml) je porušený a nedá sa otvoriť." #, fuzzy -msgid "Disable startup" -msgstr "Zakázať spustenie pri štarte" +#~ msgid "There are no items currently available for this screen." +#~ msgstr "Pre túto obrazovku nie sú v súčasnosti k dispozícii žiadne položky." -#, fuzzy -msgid "" -"Do you want to create a full image backup?\n" -"This can take about 6 minutes to complete." -msgstr "" -"%s %s sa chystá spustiť úplné zálohovanie, môže to trvať približne 6 minút,\n" -" chcete to povoliť?" +#~ msgid "This option allows you to disable sorting of the menus" +#~ msgstr "Táto možnosť Vám umožňuje zakázať zoradovanie v ponukách." -#, fuzzy, python-format -msgid "" -"Do you want to flash image\n" -"%s" -msgstr "Naozaj chcete prevziať tento systémový obraz:" +#~ msgid "Timer selection..." +#~ msgstr "Výber časovača..." #, fuzzy -msgid "Do you want to restart GUI now ?" -msgstr "Chcete obnoviť Vaše pluginy Enigma2 ?" - -msgid "Do you want to restore your Enigma2 plugins ?" -msgstr "Chcete obnoviť Vaše pluginy Enigma2 ?" - -msgid "Do you want to restore your Enigma2 settings ?" -msgstr "" +#~ msgid "Transponder Information" +#~ msgstr "Informácie o transpondéri" #, fuzzy -msgid "Do you want to restore your enigma2 settings ?" -msgstr "Chcete obnoviť nastavenia Enigma2?" +#~ msgid "Tuning Info: Live Values" +#~ msgstr "Informácie o naladení: skutočné hodnoty" #, fuzzy -msgid "DownLoad" -msgstr "Stiahnuť" - -msgid "Download" -msgstr "Stiahnuť" +#~ msgid "Tuning Info: Settings Values" +#~ msgstr "Informácie o naladení: nastavené hodnoty" #, fuzzy -msgid "Download confirmation" -msgstr "Potvrdiť stiahnutie" +#~ msgid "Update Interval" +#~ msgstr "Interval aktualizácie" -msgid "Downloads" -msgstr "Stiahnuté" +#~ msgid "Using fixed address" +#~ msgstr "Používam pevnú adresu" -msgid "ET8500 Image Restore" -msgstr "" +#, fuzzy, python-format +#~ msgid "ViX version: %s" +#~ msgstr "ViX verzia: %s" -msgid "" -"ET8500 Multiboot: Yes to restore OS1 No to restore OS2:\n" -" " -msgstr "" +#~ msgid "alphabetic" +#~ msgstr "abecedne" -#, fuzzy -msgid "Enable SWAP at startup" -msgstr "Povoliť swap pri štarte" +#~ msgid "by date" +#~ msgstr "podľa dátumu" -msgid "Enable frozen check" -msgstr "" +#~ msgid "flat alphabetic reverse" +#~ msgstr "abecedne (prevrátene)" -#, fuzzy -msgid "Enable startup" -msgstr "Povoliť pri spustení" +#~ msgid "movie/drama (general)" +#~ msgstr "film/dráma (všeobecne)" -#, fuzzy -msgid "Enough retries, delaying till next schedule." -msgstr "" -"Vykonal sa dostatok pokusov o opakovanie, odkladá sa do nasledujúceho plánu." - -msgid "Enter your OpenViX developer password." -msgstr "" - -msgid "Enter your OpenViX developer username." -msgstr "" - -msgid "Erase" -msgstr "" - -msgid "Exit the restore wizard" -msgstr "Ukončiť sprievodcu obnovou" - -msgid "Expand" -msgstr "" - -msgid "Extra IPK's" -msgstr "Extra balíčky" - -msgid "Flash" -msgstr "" - -msgid "Flash image unzip successful." -msgstr "" - -#, fuzzy -msgid "Found non-standard softcam, trying to start, this may fail." -msgstr "" -"Nenájdený žiadny štandardný softcam, pokúšam sa spustiť, táto akcia môže " -"zlyhať" - -msgid "Free space:" -msgstr "Voľné miesto:" - -msgid "From which image library do you want to download?" -msgstr "" - -msgid "Frozen check interval" -msgstr "" - -#, fuzzy -msgid "H9 SDcard manager" -msgstr "Softcam manažér" - -#, fuzzy -msgid "H9SDcard Manager" -msgstr "Správca swap" - -#, fuzzy -msgid "IPK installer" -msgstr "IPK inštalátor" - -msgid "" -"If you are an OpenViX developer you can enter your login details to have " -"direct access to OpenViX developer images for your receiver. This feature is " -"only available via 'https' connections." -msgstr "" - -msgid "Image manager settings" -msgstr "" - -msgid "Inactive" -msgstr "Neaktívny" - -msgid "Include machine name in backup name" -msgstr "" - -msgid "Init SDcard" -msgstr "" - -msgid "Init USB/SDA1" -msgstr "" - -msgid "Init Zgemma H9 SDCARD - please reboot after use." -msgstr "" - -msgid "Init Zgemma H9 USB/SDA1 - please reboot after use." -msgstr "" - -msgid "Install IPK's from your tmp folder." -msgstr "Nainštalovať balíčky z priečinka tmp." - -#, fuzzy -msgid "Install confirmation" -msgstr "Potvrdiť inštaláciu" - -msgid "Installing..." -msgstr "Inštalujem..." - -#, fuzzy -msgid "" -"It seems you have not setup an extra location. Please set it up in the " -"Backup manager setup menu." -msgstr "" -"Zdá sa, že nemáte nastavené ďalšie umiestnenie, prosím nastavte ho v ponuke " -"nastavení manažéra zálohovania " - -msgid "Location of where backup should be saved." -msgstr "" - -msgid "Location of where the image backup should be saved." -msgstr "" - -msgid "Login as an OpenViX developer" -msgstr "" - -#, fuzzy -msgid "MGcamd can't run whilst CCcam is running." -msgstr "MGcamd sa nedá spustiť, kým beží CCcam" - -#, fuzzy -msgid "Manage settings backup." -msgstr "Obnovuje sa záloha..." - -#, fuzzy -msgid "Manage your devices mount points." -msgstr "Spravovať prípojné body zariadení." - -msgid "Max image backups to keep (0==all)" -msgstr "" - -msgid "" -"Maximum number of backups to keep. Older backups are given priority for " -"removal, so the fresher ones remain." -msgstr "" - -msgid "Mount" -msgstr "Pripojiť" - -#, python-format -msgid "Mount failed for '%s', error code = '%s'." -msgstr "" - -#, fuzzy -msgid "Mount manager" -msgstr "Správca prípojných bodov" - -msgid "Mount: " -msgstr "Prípojný bod: " - -msgid "Move Nand root to SD card" -msgstr "" - -#, fuzzy -msgid "Moving to backup Location..." -msgstr "Premiestňujem do umiestnenia zálohy..." - -msgid "Multiboot ERROR! - no STARTUP in boot partition." -msgstr "" - -#, fuzzy -msgid "Multiboot image manager" -msgstr "Správca systémových obrazov ViX" - -msgid "Multiboot only able to restore this backup to mmc slot1" -msgstr "" - -msgid "NO, do not restore plugins" -msgstr "NIE, neobnoviť zásuvné moduly" - -msgid "NO, do not restore settings" -msgstr "NIE, neobnoviť nastavenia" - -#, fuzzy -msgid "New backup" -msgstr "Nová záloha" - -#, fuzzy -msgid "Next backup: " -msgstr "Ďalšia záloha:" - -#, fuzzy -msgid "" -"No config files found, please setup CCcam first\n" -"in /etc/CCcam.cfg." -msgstr "" -"Žiadne konfiguračné súbory nenájdené,\n" -"najprv prosím nastavte CCcam v /etc/CCcam.cfg" - -#, fuzzy -msgid "" -"No config files found, please setup Hypercam first\n" -"in /etc/hypercam.cfg." -msgstr "" -"Žiadne konfiguračné súbory nenájdené, nastavte najprv\n" -"Hypercam v /etc/hypercam.cfg" - -#, fuzzy -msgid "" -"No config files found, please setup MGcamd first\n" -"in /usr/keys." -msgstr "" -"Žiadne konfiguračné súbory nenájdené,\n" -"najprv nastavte MGcamd vo /var/keys" - -msgid "" -"No config files found, please setup Ncam first\n" -"in /etc/tuxbox/config" -msgstr "" - -msgid "" -"No config files found, please setup Ncam first\n" -"in /etc/tuxbox/config." -msgstr "" - -msgid "" -"No config files found, please setup Oscam first\n" -"in /etc/tuxbox/config" -msgstr "" -"Žiadne konfiguračné súbory nenájdené,\n" -"najprv nastavte Oscam v /etc/tuxbox/config" - -#, fuzzy -msgid "" -"No config files found, please setup Oscam first\n" -"in /etc/tuxbox/config." -msgstr "" -"Žiadne konfiguračné súbory nenájdené,\n" -"najprv nastavte Oscam v /etc/tuxbox/config" - -msgid "" -"No images found on the selected download server...if password check validity" -msgstr "" - -msgid "No plugins needed to be installed" -msgstr "" - -msgid "Note: slot list does not show current image or empty slots." -msgstr "" - -msgid "Now skipping restore process" -msgstr "Preskakujem proces obnovy" - -msgid "OK, to perform a restore" -msgstr "OK, ak chcete vykonať obnovenie" - -msgid "Only scheduled" -msgstr "" - -#, python-format -msgid "" -"Partition: %s Mount: %s unmounted successfully; if all partitions now " -"unmounted you can remove device." -msgstr "" - -msgid "Please enter a folder that contains some packages." -msgstr "Zadajte priečinok, ktorý obsahuje nejaké balíčky." - -#, fuzzy -msgid "Please select device to use as SWAP file location." -msgstr "Vyberte zariadenie, ktoré sa použije ako swap." - -msgid "Please select the file to restore." -msgstr "" - -msgid "Please wait while plugins restore completes..." -msgstr "Počkajte, kým sa dokončí obnovenie zásuvných modulov..." - -#, fuzzy, python-format -msgid "Please wait while scanning your %s %s devices..." -msgstr "Počkajte prosím, prehľadávam Vaše %s %s zariadenia..." - -msgid "Please wait while settings restore completes..." -msgstr "Počkajte prosím, kým skončí obnovenie nastavení..." - -msgid "Please wait while starting\n" -msgstr "Prosím počkajte, prebieha spúšťanie\n" - -msgid "Please wait while stopping\n" -msgstr "Prosím počkajte, prebieha zastavovanie\n" - -#, fuzzy -msgid "Please wait while the flash prepares." -msgstr "Počkajte, kým sa pripravuje obnovenie" - -#, fuzzy -msgid "Please wait while the system gathers information..." -msgstr "Počkajte prosím, prebieha zhromažďovanie údajov ..." - -msgid "Please wait." -msgstr "Čakajte prosím." - -#, fuzzy -msgid "" -"Plugin listing failed - e. g. wrong backup destination or no space left on " -"backup device." -msgstr "" -"Výpis zoznamu zásuvných modulov zlyhal - zlé umiestnenie zálohy alebo žiadne " -"voľné miesto na zariadení pre zálohu" - -msgid "Preparing extra plugins..." -msgstr "Príprava ďalších zásuvných modulov..." - -msgid "Press 'Menu' to select a storage device" -msgstr "" - -msgid "Press appropiate Init to move Nand root to SDcard or USB." -msgstr "" - -msgid "Query before starting backup." -msgstr "" - -msgid "Query before starting image backup." -msgstr "" - -msgid "Rebooting..." -msgstr "Prijímač sa reštartuje" - -#, python-format -msgid "" -"Recording(s) are in progress or coming up in few seconds!\n" -"Do you still want to flash image\n" -"%s?" -msgstr "" - -#, python-format -msgid "" -"Removal of this slot will not show in %s Gui. Are you sure you want to " -"delete image slot %s ?" -msgstr "" - -#, fuzzy -msgid "Remove confirmation" -msgstr "Potvrdiť odstránenie" - -msgid "Removing temp mounts..." -msgstr "Odstraňujú sa dočasné prípojné body..." - -#, python-format -msgid "Restart %s %s." -msgstr "Reštartovať %s %s" - -#, fuzzy -msgid "Restart GUI." -msgstr "Reštartovať" - -msgid "Restore Confirmation" -msgstr "Potvrdiť obnovenie" - -#, fuzzy -msgid "Restore wizard" -msgstr "Sprievodca obnovovaním" - -msgid "Restoring backup..." -msgstr "Obnovuje sa záloha..." - -msgid "Restoring plugins, this can take a long time..." -msgstr "Obnovujem zásuvné moduly, môže to trvať dlhšie..." - -msgid "Restoring plugins..." -msgstr "Obnovujem zásuvné moduly." - -msgid "Run" -msgstr "Spustiť" - -msgid "Run your shell scripts." -msgstr "Spustiť shell skripty." - -#, fuzzy -msgid "" -"SWAP file not found. You have to create the file before you try to activate " -"it." -msgstr "Swap súbor nebol nájdený. Prosím vytvorte ho pred aktivovaním." - -#, fuzzy -msgid "SWAP manager" -msgstr "Správca swap" - -#, fuzzy -msgid "SWAP place:" -msgstr "Swap miesto:" - -#, fuzzy -msgid "SWAP size:" -msgstr "Veľkosť:" - -msgid "Schedule backups" -msgstr "" - -#, fuzzy -msgid "Script runner" -msgstr "Spúšťač skriptov" - -msgid "Script runner settings" -msgstr "" - -#, fuzzy -msgid "Select a backup to restore:" -msgstr "Vyberte zálohu na obnovenie:" - -msgid "Select a package to install:" -msgstr "Vyberte balík na inštaláciu:" - -#, fuzzy, python-format -msgid "Select an image to download for %s:" -msgstr "Vyberte systémový obraz, ktorý chcete stiahnuť:" - -#, fuzzy -msgid "Select an image to flash:" -msgstr "Vyberte systémový obraz, ktorý chcete stiahnuť:" - -msgid "Select extra packages folder" -msgstr "Vyberte priečinok pre, extra balíky" - -msgid "Select folder that contains plugins" -msgstr "Vyberte priečinok, ktorý obsahuje zásuvné moduly" - -#, fuzzy -msgid "Select the SWAP file size:" -msgstr "Vyberte veľkosť swapu:" - -msgid "Select:" -msgstr "Vybrať:" - -msgid "Set the interval to be checked in mins." -msgstr "" - -msgid "Set the repeat interval of backup schedule." -msgstr "" - -msgid "Set the time of backup to start." -msgstr "" - -#, fuzzy -msgid "Setting up..." -msgstr "Nastavujem..." - -#, fuzzy -msgid "Setup mounts" -msgstr "Nastavenie prípojných miest" - -msgid "Size: " -msgstr "Veľkosť:" - -#, fuzzy, python-format -msgid "Size: %sGB" -msgstr "Veľkosť:" - -#, fuzzy, python-format -msgid "Size: %sMB" -msgstr "Veľkosť:" - -#, fuzzy, python-format -msgid "Size: %sTB" -msgstr "Veľkosť:" - -#, fuzzy -msgid "Size: unavailable" -msgstr "nedostupné" - -#, fuzzy -msgid "Softcam manager" -msgstr "Softcam manažér" - -msgid "Softcam manager settings" -msgstr "" - -#, fuzzy -msgid "Softcam starting..." -msgstr "Spúšťam Softcam.." - -#, fuzzy -msgid "Softcam stopping..." -msgstr "Zastavujem Softcam..." - -#, fuzzy -msgid "" -"Sorry but that location does not exist or is not setup. Please set it up in " -"the Backup manager setup menu." -msgstr "" -"Ospravedlňujeme sa, ale umiestnenie neexistuje alebo nie je nastavené, " -"prosím nastavte ho v ponuke nastavení manažéra zálohovania." - -#, fuzzy -msgid "Sorry the feeds are down for maintenance. Please try again later." -msgstr "Je nám ľúto, zdroje prechádzajú údržbou. Skúste to neskôr, prosím." - -#, fuzzy -msgid "" -"Sorry the feeds are down for maintenance. Please try using Backup manager to " -"restore plugins later." -msgstr "" -"Prepáčte, súborové kanály prebiehajú údržbou. Prosím skúste použiť manažér " -"zálohovania pre obnovenie pluginov neskôr." - -#, fuzzy -msgid "" -"Sorry the feeds are down for maintenance. Please try using the Backup " -"manager to restore plugins later." -msgstr "" -"Prepáčte, súborové kanály prebiehajú údržbou. Prosím skúste použiť manažér " -"zálohovania pre obnovenie pluginov neskôr." - -msgid "Sorry, but the file is not compatible with this image version." -msgstr "" - -msgid "Sorry, but the restore failed." -msgstr "Je nám ľúto, ale obnova zlyhala." - -#, fuzzy -msgid "" -"Sorry, no physical devices that supports SWAP attached. Can't create SWAP " -"file on network or fat32 file-systems." -msgstr "" -"Ospravedlňujeme sa, ale žiadne fyzické zariadenia, ktoré podporujú SWAP nie " -"sú pripojené. Swap sa nedá vytvoriť na sieti alebo fat32" - -#, fuzzy -msgid "" -"Sorry, not enough free RAM found, and no physical devices that supports SWAP " -"attached. Can't create SWAP file on network or fat32 file-systems, unable to " -"make backup." -msgstr "" -"Nedostatok voľnej pamäte RAM , nenašli sa žiadne fyzické zariadenia ktoré " -"podporujú swap. Swap sa nedá vytvoriť na sieti alebo fat32, nedá sa vytvoriť " -"záloha" - -msgid "Starting..." -msgstr "Spúšťanie..." - -msgid "Status:" -msgstr "Stav:" - -#, fuzzy -msgid "Temp folder" -msgstr "Dočasný adresár" - -#, fuzzy -msgid "The backup location does not have enough free space." -msgstr "Umiestnenie pre uloženie zálohy nemá dostatok voľného miesta." - -#, fuzzy -msgid "The backup location does not have enough free space.\n" -msgstr "Umiestnenie pre uloženie zálohy nemá dostatok voľného miesta." - -#, fuzzy, python-format -msgid "" -"The changes need a system restart to take effect.\n" -"Restart your %s %s now?" -msgstr "" -"Zmeny sa prejavia až po reštarte systému.\n" -"Reštartovať Váš %s %s teraz?" - -#, fuzzy -msgid "The chosen location does not exist, using /media/hdd." -msgstr "Zvolené miesto neexistuje, použije sa /media/hdd" - -msgid "" -"The name of the receiver can be included in the backup filename, but makes " -"the filename lengthy." -msgstr "" - -msgid "The wizard is finished now, and will reboot." -msgstr "" - -#, fuzzy -msgid "There is a problem with this device. Please reformat it and try again." -msgstr "" -"vyskytol sa problém s týmto zariadením, prosím preformátujte ho a skúste to " -"znova." - -#, fuzzy -msgid "There is no backup to restore." -msgstr "Nemáte žiadne zálohy na obnovenie." - -#, fuzzy -msgid "There is no image to flash." -msgstr "Nemáte žiadny systémový obraz na stiahnutie." - -#, fuzzy -msgid "This device is already mounted as HDD." -msgstr "Toto zariadenie je už pripojené ako HDD." - -msgid "Types of backups to remove when stale." -msgstr "" - -#, fuzzy -msgid "Un-mount" -msgstr "Odpojiť" - -#, python-format -msgid "" -"Unzip error (also sent to any debug log):\n" -"%s" -msgstr "" - -#, fuzzy -msgid "Updating mount locations..." -msgstr "Aktualizácia umiestnenia pripojení." - -msgid "Use as HDD" -msgstr "Použiť ako HDD" - -msgid "Use the cursor keys to select an installed image and then Erase button." -msgstr "" - -msgid "ViX" -msgstr "ViX" - -#, fuzzy -msgid "ViX Backup manager" -msgstr "ViX manažér záloh" - -#, fuzzy -msgid "ViX Image Management" -msgstr "Správca systémových obrazov ViX" - -#, fuzzy -msgid "ViX Image manager" -msgstr "Správca systémových obrazov ViX" - -#, fuzzy -msgid "ViX Mount manager" -msgstr "ViX manažér prípojných bodov" - -#, fuzzy -msgid "ViX SWAP manager" -msgstr "ViX swap manažér" - -#, fuzzy -msgid "ViX Script runner" -msgstr "ViX spúšťač skriptov" - -#, fuzzy -msgid "View progress" -msgstr "Zobraziť priebeh" - -#, fuzzy -msgid "Wait please while creating SWAP file..." -msgstr "Vytváram swap súbor, prosím počkajte..." - -msgid "" -"Wait please while scanning\n" -"for softcam's..." -msgstr "" -"Počkajte prosím, prebieha hľadanie\n" -"Softcamov..." - -msgid "Wait please while scanning..." -msgstr "Počkajte prosím, prebieha vyhľadávanie..." - -msgid "" -"Welcome to the restore wizard.\n" -"\n" -"A backup has been detected.\n" -"You can use this wizard to restore your settings and any extra plugins that " -"were installed when the backup was created.\n" -msgstr "" - -msgid "YES, to restore plugins" -msgstr "Áno, ak chcete obnoviť pluginy" - -msgid "YES, to restore settings" -msgstr "Áno, ak chcete obnoviť nastavenia" - -msgid "You have decided not to flash image." -msgstr "" - -#, fuzzy -msgid "You have to create a SWAP file before trying to activate the autostart." -msgstr "Pred aktivovaním autoštartu musíte vytvoriť swap súbor." - -#, fuzzy, python-format -msgid "" -"Your %s %s could not connect to the plugin feeds at this time. Please try " -"using the Backup manager to restore plugins later." -msgstr "" -"Váš %s %s nie je pripojený k internetu, pre obnovenie zásuvných modulov " -"skúste použiť manažéra zálohovania." - -#, fuzzy, python-format -msgid "" -"Your %s %s is about to create a full image backup, this can take about 6 " -"minutes to complete.\n" -"Do you want to allow this?" -msgstr "" -"%s %s sa chystá spustiť úplné zálohovanie, môže to trvať približne 6 minút,\n" -" chcete to povoliť?" - -#, fuzzy, python-format -msgid "" -"Your %s %s is about to run a backup of your settings and to detect your " -"plugins.\n" -"Do you want to allow this?" -msgstr "" -"%s %s je pripravený spustiť zálohovanie nastavení a nájsť Vaše pluginy,\n" -"Chcete to povoliť?" - -#, fuzzy, python-format -msgid "" -"Your %s %s is not connected to a network. Please check your network settings " -"and try again." -msgstr "" -"Váš %s %s nie je pripojený k internetu, skontrolujte nastavenie siete a " -"skúste to znova." - -#, fuzzy, python-format -msgid "" -"Your %s %s is not connected to a network. Please try using the Backup " -"manager to restore plugins later when a network connection is available." -msgstr "" -"Váš %s %s nie je pripojený k internetu, pre obnovenie zásuvných modulov " -"skúste použiť manažéra zálohovania." - -#, fuzzy, python-format -msgid "" -"Your %s %s is not connected to the Internet. Please check your network " -"settings and try again." -msgstr "" -"Váš %s %s nie je pripojený k internetu, skontrolujte nastavenie siete a " -"skúste to znova." - -#, fuzzy, python-format -msgid "" -"Your %s %s is not connected to the Internet. Please try using Backup manager " -"to restore plugins later." -msgstr "" -"Váš %s %s nie je pripojený k internetu, pre obnovenie zásuvných modulov " -"skúste použiť manažéra zálohovania." - -#, fuzzy, python-format -msgid "" -"Your %s %s is not connected to the Internet. Please try using the Backup " -"manager to restore plugins later." -msgstr "" -"Váš %s %s nie je pripojený k internetu, pre obnovenie zásuvných modulov " -"skúste použiť manažéra zálohovania." - -#, python-format -msgid "" -"ofgwrite error (also sent to any debug log):\n" -"%s" -msgstr "" - -#, python-format -msgid "slot%s - %s" -msgstr "" - -#, python-format -msgid "slot%s - %s " -msgstr "" - -#, python-format -msgid "slot%s - %s (current image)" -msgstr "" - -#, fuzzy, python-format -#~ msgid "%d.%03d GB" -#~ msgstr "%d GB" - -#, fuzzy -#~ msgid "0" -#~ msgstr "30" - -#, fuzzy -#~ msgid "1,1" -#~ msgstr "1.1" - -#, fuzzy -#~ msgid "C" -#~ msgstr "CH" - -#~ msgid "CAID" -#~ msgstr "CAiD" - -#, fuzzy -#~ msgid "Collection" -#~ msgstr "Názov zostavy" - -#, fuzzy -#~ msgid "D" -#~ msgstr "HDMI" - -#~ msgid "ECM-Time" -#~ msgstr "ECM-cas" - -#, fuzzy -#~ msgid "EtPortal" -#~ msgstr "Portugalcina" - -#, fuzzy, python-format -#~ msgid "Flash directory '%s' not allowed!" -#~ msgstr "Nepodarilo sa vytvorit adresár %s." - -#, fuzzy -#~ msgid "G" -#~ msgstr "GB" - -#, fuzzy -#~ msgid "H" -#~ msgstr "CH" - -#, fuzzy -#~ msgid "I" -#~ msgstr "IP:" - -#, fuzzy -#~ msgid "IMDB Search" -#~ msgstr "Vyhladávanie v IMDb" - -#~ msgid "Internal flash" -#~ msgstr "Vnútorná flash pamät" - -#~ msgid "Label" -#~ msgstr "Menovka" - -#, fuzzy -#~ msgid "PID" -#~ msgstr "PIDy" - -#, fuzzy -#~ msgid "Polarisation:" -#~ msgstr "Polarizácia" - -#~ msgid "Serv.Name" -#~ msgstr "Názov servera" - -#~ msgid "Show /tmp/ecm.info" -#~ msgstr "Zobrazit /tmp/ecm.info" - -#, fuzzy -#~ msgid "Symbolrate:" -#~ msgstr "Symbolová rýchlost" - -#~ msgid "Sync NTP every (minutes)" -#~ msgstr "Synchronizácie NTP každých (minút)" - -#~ msgid "" -#~ "The software management extension is not installed!\n" -#~ "Please install it." -#~ msgstr "" -#~ "Rozšírenie správa softvéru nie je nainštalované!\n" -#~ "Prosím, nainštalujte ho." - -#~ msgid "This option allows you to disable sorting of the menus" -#~ msgstr "Táto volba Vám umožnuje zakázat zoradovanie v ponukách." - -#, fuzzy -#~ msgid "n/A" -#~ msgstr "Nie je k dispozícii" +#~ msgid "reverse by date" +#~ msgstr "prehodiť podľa dátumu" From 85dff7406539f734e46688e7191a33219f64472c Mon Sep 17 00:00:00 2001 From: Orlandoxx <95180049+Orlandoxx@users.noreply.github.com> Date: Tue, 11 Jun 2024 10:35:39 +0300 Subject: [PATCH 08/62] [Translations] Updated Finnish (fi.po) translation --- po/fi.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/po/fi.po b/po/fi.po index 158b53f0abc..c1b58a5e95f 100644 --- a/po/fi.po +++ b/po/fi.po @@ -5,7 +5,7 @@ msgstr "" "Project-Id-Version: enigma2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-12-27 23:35+0000\n" -"PO-Revision-Date: 2024-06-08 20:48+0300\n" +"PO-Revision-Date: 2024-06-11 10:32+0300\n" "Last-Translator: Orlandox\n" "Language-Team: timoj/Kojo/Samzam/Orlandox\n" "Language: fi\n" @@ -9421,7 +9421,7 @@ msgid "Passthrough" msgstr "Läpivienti" msgid "Password" -msgstr "Laitteen salasana" +msgstr "Salasana" msgid "Password (httpwd)" msgstr "Salasana (httpwd)" @@ -12130,8 +12130,8 @@ msgid "" "Setting a network password is mandatory in OpenViX %s if you wish to use network services. \n" "To set a password using the virtual keyboard press the 'text' button on your remote control." msgstr "" -"Verkkosalasanan asetus on pakollista OpenViX %s, jos haluat käyttää verkkopalveluita. \n" -"Asettaaksesi salasanan käyttäen virtuaalista näppäimistöä, paina 'teksti'-näppäintä kaukosäätimestä." +"Verkkosalasanan asetus on pakollista OpenViX %s:ssa, jos haluat käyttää verkkopalveluita. \n" +"Voit asettaa salasanan virtuaalisen näppäimistön avulla painamalla kaukosäätimen 'text'-näppäintä." msgid "Settings" msgstr "Asetukset" @@ -13546,7 +13546,7 @@ msgstr "" "Suomenkielinen käännös: timoj, Kojo, Samzam, Orlandox\n" "\n" "Ylläpito : Orlandox\n" -"--- 08.06.2024 ---\n" +"--- 11.06.2024 ---\n" "\n" "http://www.huoltovalikko.com" From 4fcdf6a05b079e8a7171722443ee485b8b0fcb01 Mon Sep 17 00:00:00 2001 From: Littlesat Date: Sun, 2 Jun 2024 14:43:49 +0200 Subject: [PATCH 09/62] Make menu button also optional as extra ConfigList feature The 'OK' button and the 'MENU' button have the same functionality as it both gives the choicebox on selection lists. I suggest the 'OK' button is the prefered method as it also does toggle switches etc. So I gave the 'MENU' button back as extra feature so you can for example put a config behind a config in an easy way. The syntax is the same as I did with the blue and yellow buttons. --- lib/python/Components/ConfigList.py | 27 ++++++++++----------------- lib/python/Screens/Setup.py | 4 ++-- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/lib/python/Components/ConfigList.py b/lib/python/Components/ConfigList.py index ff863804e58..2a35f527751 100644 --- a/lib/python/Components/ConfigList.py +++ b/lib/python/Components/ConfigList.py @@ -144,7 +144,7 @@ def moveBottom(self): class ConfigListScreen: - def __init__(self, list, session=None, on_change=None, fullUI=False, yellow_button=None, blue_button=None): + def __init__(self, list, session=None, on_change=None, fullUI=False, yellow_button=None, blue_button=None, menu_button=None): self.entryChanged = on_change if on_change is not None else lambda: None if fullUI: if "key_red" not in self: @@ -161,13 +161,16 @@ def __init__(self, list, session=None, on_change=None, fullUI=False, yellow_butt self["key_blueActions"] = HelpableActionMap(self, ["ColorActions"], { "blue": (blue_button['function'], blue_button.get('helptext', _("Blue button function"))), }, prio=1, description=_("Common Setup Actions")) + if "key_menu" not in self and menu_button: + self["key_menu"] = StaticText(menu_button.get('text', '')) + self["menuConfigActions"] = HelpableActionMap(self, "ConfigListActions", { + "menu": (menu_button['function'], menu_button.get('helptext', _("Menu button function"))), + }, prio=1, description=_("Common Setup Actions")) self["fullUIActions"] = HelpableActionMap(self, ["ConfigListActions"], { "cancel": (self.keyCancel, _("Cancel any changed settings and exit")), "close": (self.closeRecursive, _("Cancel any changed settings and exit all menus")), "save": (self.keySave, _("Save all changed settings and exit")) }, prio=1, description=_("Common Setup Actions")) - if "key_menu" not in self: - self["key_menu"] = StaticText(_("MENU")) if "HelpWindow" not in self: self["HelpWindow"] = Pixmap() self["HelpWindow"].hide() @@ -188,10 +191,6 @@ def __init__(self, list, session=None, on_change=None, fullUI=False, yellow_butt "pageDown": (self.keyPageDown, _("Move down a screen")), "bottom": (self.keyBottom, _("Move to last line / screen")) }, prio=1, description=_("Common Setup Actions")) - self["menuConfigActions"] = HelpableActionMap(self, "ConfigListActions", { - "menu": (self.keyMenu, _("Display selection list as a selection menu")), - }, prio=1, description=_("Common Setup Actions")) - self["menuConfigActions"].setEnabled(False if fullUI else True) self["editConfigActions"] = HelpableNumberActionMap(self, ["NumberActions", "TextEditActions"], { "backspace": (self.keyBackspace, _("Delete character to left of cursor or select AM times")), "delete": (self.keyDelete, _("Delete character under cursor or select PM times")), @@ -268,12 +267,6 @@ def handleInputHelpers(self): self["editConfigActions"].setEnabled(True) else: self["editConfigActions"].setEnabled(False) - if isinstance(currConfig[1], ConfigSelection) and not isinstance(currConfig[1], ConfigNothing): - self["menuConfigActions"].setEnabled(True) - self["key_menu"].setText(_("MENU")) - else: - self["menuConfigActions"].setEnabled(False) - self["key_menu"].setText("") if isinstance(currConfig[1], (ConfigText, ConfigMacText)) and "HelpWindow" in self and currConfig[1].help_window and currConfig[1].help_window.instance is not None: helpwindowpos = self["HelpWindow"].getPosition() currConfig[1].help_window.instance.move(ePoint(helpwindowpos[0], helpwindowpos[1])) @@ -308,7 +301,7 @@ def keySelect(self): if isinstance(self.getCurrentItem(), ConfigBoolean): self.keyToggle() elif isinstance(self.getCurrentItem(), ConfigSelection): - self.keyMenu() + self.keySelection() elif isinstance(self.getCurrentItem(), ConfigText) and not isinstance(self.getCurrentItem(), ConfigNumber): self.keyText() else: @@ -328,17 +321,17 @@ def keyTextCallback(self, callback=None): if callback != prev: self.entryChanged() - def keyMenu(self): + def keySelection(self): currConfig = self["config"].getCurrent() if currConfig and currConfig[1].enabled and hasattr(currConfig[1], "description") and len(currConfig[1].choices.choices) > 1: self.session.openWithCallback( - self.keyMenuCallback, ChoiceBox, title=currConfig[0], + self.keySelectionCallback, ChoiceBox, title=currConfig[0], list=list(zip(currConfig[1].description, currConfig[1].choices)), selection=currConfig[1].getIndex(), keys=[] ) - def keyMenuCallback(self, answer): + def keySelectionCallback(self, answer): if answer: self["config"].getCurrent()[1].value = answer[1] self["config"].invalidateCurrent() diff --git a/lib/python/Screens/Setup.py b/lib/python/Screens/Setup.py index 200646bb415..13140f6962a 100644 --- a/lib/python/Screens/Setup.py +++ b/lib/python/Screens/Setup.py @@ -20,7 +20,7 @@ class Setup(ConfigListScreen, Screen, HelpableScreen): - def __init__(self, session, setup=None, plugin=None, PluginLanguageDomain=None, yellow_button=None, blue_button=None): + def __init__(self, session, setup=None, plugin=None, PluginLanguageDomain=None, yellow_button=None, blue_button=None, menu_button=None): Screen.__init__(self, session) HelpableScreen.__init__(self) self.setup = setup @@ -33,7 +33,7 @@ def __init__(self, session, setup=None, plugin=None, PluginLanguageDomain=None, self.skinName.append("setup_%s" % setup) self.skinName.append("Setup") self.list = [] - ConfigListScreen.__init__(self, self.list, session=session, on_change=self.changedEntry, fullUI=True, yellow_button=yellow_button, blue_button=blue_button) + ConfigListScreen.__init__(self, self.list, session=session, on_change=self.changedEntry, fullUI=True, yellow_button=yellow_button, blue_button=blue_button, menu_button=menu_button) self["footnote"] = Label() self["footnote"].hide() self["description"] = Label() From 6d16a54e1e5fa9d0f714f33a59d5f837c1dc1206 Mon Sep 17 00:00:00 2001 From: Dimitrij Date: Sun, 9 Jun 2024 13:36:32 +0300 Subject: [PATCH 10/62] [ScanSetup] always run cable cmd --- lib/python/Screens/ScanSetup.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/python/Screens/ScanSetup.py b/lib/python/Screens/ScanSetup.py index 54a8ec3bb6c..88f5332215f 100644 --- a/lib/python/Screens/ScanSetup.py +++ b/lib/python/Screens/ScanSetup.py @@ -314,10 +314,6 @@ def GetCommand(nim_idx): exe_path = "/usr/bin/%s" % bin_name.split()[0] cmd = "%s --init --scan --verbose --wakeup --inv 2 --bus %d" % (bin_name, bus) - if not fileExists(exe_path): - self.session.open(MessageBox, _("Cable scan executable utility not found '%s'!") % exe_path, MessageBox.TYPE_ERROR) - return - if cableConfig.scan_type.value == "bands": cmd += " --scan-bands " bands = 0 @@ -374,7 +370,10 @@ def GetCommand(nim_idx): print(exe_path, " CMD is", cmd) self.cable_search_container.execute(cmd) - tmpstr = _("Try to find used transponders in cable network.. please wait...") + if fileExists(exe_path): + tmpstr = _("Looking for active transponders in the cable network. Please wait...") + else: + tmpstr = _("Cable scan executable utility not found '%s'!") % exe_path tmpstr += "\n\n..." self.cable_search_session = self.session.openWithCallback(self.cableTransponderSearchSessionClosed, MessageBox, tmpstr, MessageBox.TYPE_INFO) From b2fc68ae421f6b2c901a30d46053f72d5ee1e303 Mon Sep 17 00:00:00 2001 From: Littlesat Date: Mon, 10 Jun 2024 14:20:41 +0200 Subject: [PATCH 11/62] [CableScan] inherit UI from Setup --- .../Plugins/SystemPlugins/CableScan/plugin.py | 54 ++++++------------- 1 file changed, 15 insertions(+), 39 deletions(-) diff --git a/lib/python/Plugins/SystemPlugins/CableScan/plugin.py b/lib/python/Plugins/SystemPlugins/CableScan/plugin.py index 5c728f22c5e..27b324bb8e6 100644 --- a/lib/python/Plugins/SystemPlugins/CableScan/plugin.py +++ b/lib/python/Plugins/SystemPlugins/CableScan/plugin.py @@ -1,13 +1,13 @@ from enigma import eCableScan, eDVBFrontendParametersCable, eTimer from Screens.Screen import Screen +from Screens.Setup import Setup from Screens.MessageBox import MessageBox from Plugins.Plugin import PluginDescriptor from Components.Label import Label from Components.ActionMap import ActionMap from Components.NimManager import nimmanager -from Components.config import config, ConfigSubsection, ConfigSelection, ConfigYesNo, ConfigInteger, getConfigListEntry, ConfigFloat -from Components.ConfigList import ConfigListScreen +from Components.config import config, ConfigSubsection, ConfigSelection, ConfigYesNo, ConfigInteger, ConfigFloat from Components.Sources.StaticText import StaticText from Components.ProgressBar import ProgressBar from Components.Pixmap import Pixmap @@ -114,43 +114,23 @@ def cancel(self): config.plugins.CableScan.auto = ConfigYesNo(default=True) -class CableScanScreen(ConfigListScreen, Screen): - skin = """ - - - - """ - +class CableScanScreen(Setup): def __init__(self, session, nimlist): - Screen.__init__(self, session) - + Setup.__init__(self, session, blue_button={'function': self.startScan, 'text': _("Start CableScan"), 'helptext': _("Start Cablescan")}) + self.prevservice = None self.setTitle(_("Cable Scan")) - self["key_red"] = StaticText(_("Cancel")) - self["key_green"] = StaticText(_("Save")) - - self["actions"] = ActionMap(["SetupActions", "MenuActions"], - { - "ok": self.keyGo, - "cancel": self.keyCancel, - "save": self.keySave, - "menu": self.closeRecursive, - }, -2) - self.nimlist = nimlist - self.prevservice = None - self.list = [] - self.list.append(getConfigListEntry(_('Frequency'), config.plugins.CableScan.frequency)) - self.list.append(getConfigListEntry(_('Symbol rate'), config.plugins.CableScan.symbolrate)) - self.list.append(getConfigListEntry(_('Modulation'), config.plugins.CableScan.modulation)) - self.list.append(getConfigListEntry(_('Network ID') + _(' (0 - all networks)'), config.plugins.CableScan.networkid)) - self.list.append(getConfigListEntry(_("Use official channel numbering"), config.plugins.CableScan.keepnumbering)) - self.list.append(getConfigListEntry(_("HD list"), config.plugins.CableScan.hdlist)) - self.list.append(getConfigListEntry(_("Enable auto cable scan"), config.plugins.CableScan.auto)) - - ConfigListScreen.__init__(self, self.list) - self["config"].list = self.list - self["introduction"] = Label(_("Configure your network settings, and press OK to start the scan")) + def createSetup(self): + configList = [] + configList.append((_('Frequency'), config.plugins.CableScan.frequency)) + configList.append((_('Symbol rate'), config.plugins.CableScan.symbolrate)) + configList.append((_('Modulation'), config.plugins.CableScan.modulation)) + configList.append((_('Network ID') + _(' (0 - all networks)'), config.plugins.CableScan.networkid)) + configList.append((_("Use official channel numbering"), config.plugins.CableScan.keepnumbering)) + configList.append((_("HD list"), config.plugins.CableScan.hdlist)) + configList.append((_("Enable auto cable scan"), config.plugins.CableScan.auto)) + self["config"].list = configList def restoreService(self): if self.prevservice: @@ -161,10 +141,6 @@ def keySave(self): config.plugins.CableScan.save() self.close() - def keyGo(self): - config.plugins.CableScan.save() - self.startScan() - def getFreeTuner(self): dvbc_tuners_mask = sum([2**int(x) for x in self.nimlist]) freeTunerMask = dvbc_tuners_mask - (self.session.screen["TunerInfo"].tuner_use_mask & dvbc_tuners_mask) From f2f23f4283e589311c0c3b518051afbec972f807 Mon Sep 17 00:00:00 2001 From: Littlesat Date: Mon, 10 Jun 2024 14:23:44 +0200 Subject: [PATCH 12/62] Instead of showing only Scan indicate Start FastScan --- lib/python/Plugins/SystemPlugins/FastScan/plugin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/python/Plugins/SystemPlugins/FastScan/plugin.py b/lib/python/Plugins/SystemPlugins/FastScan/plugin.py index e0f044634ee..3550b99351e 100644 --- a/lib/python/Plugins/SystemPlugins/FastScan/plugin.py +++ b/lib/python/Plugins/SystemPlugins/FastScan/plugin.py @@ -179,7 +179,7 @@ def providerChanged(configEntry): auto_providers = config.misc.fastscan.autoproviders.value.split(",") for provider in providers: self.config_autoproviders[provider[0]] = ConfigYesNo(default=provider[0] in auto_providers) - Setup.__init__(self, session, blue_button={'function': self.startScan, 'helptext': _("Start fastscan")}) + Setup.__init__(self, session, blue_button={'function': self.startScan, 'helptext': _("Start Fastscan")}, menu_button={'function': self.startScan, 'helptext': _("Start Fastscan")}) self.setTitle(_("FastScan")) self.createSetup() self.finished_cb = None @@ -203,7 +203,7 @@ def createSetup(self): if nimmanager.getNimListForSat(transponders[provider[1][0]][3]): self.list.append((_("Enable auto fastscan for %s") % provider[0], self.config_autoproviders[provider[0]])) self["config"].list = self.list - self["key_blue"].text = _("Scan") if self.scan_provider.value else "" + self["key_blue"].text = _("Start Fastscan") if self.scan_provider.value else "" def saveConfiguration(self): if self.scan_provider.value: From 3462395e4a839c9ab8e0f8dd8870d723b7e04538 Mon Sep 17 00:00:00 2001 From: Huevos Date: Tue, 11 Jun 2024 22:32:00 +0200 Subject: [PATCH 13/62] Revert "Make menu button also optional as extra ConfigList feature" This reverts commit 4fcdf6a05b079e8a7171722443ee485b8b0fcb01. --- lib/python/Components/ConfigList.py | 27 +++++++++++++++++---------- lib/python/Screens/Setup.py | 4 ++-- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/lib/python/Components/ConfigList.py b/lib/python/Components/ConfigList.py index 2a35f527751..ff863804e58 100644 --- a/lib/python/Components/ConfigList.py +++ b/lib/python/Components/ConfigList.py @@ -144,7 +144,7 @@ def moveBottom(self): class ConfigListScreen: - def __init__(self, list, session=None, on_change=None, fullUI=False, yellow_button=None, blue_button=None, menu_button=None): + def __init__(self, list, session=None, on_change=None, fullUI=False, yellow_button=None, blue_button=None): self.entryChanged = on_change if on_change is not None else lambda: None if fullUI: if "key_red" not in self: @@ -161,16 +161,13 @@ def __init__(self, list, session=None, on_change=None, fullUI=False, yellow_butt self["key_blueActions"] = HelpableActionMap(self, ["ColorActions"], { "blue": (blue_button['function'], blue_button.get('helptext', _("Blue button function"))), }, prio=1, description=_("Common Setup Actions")) - if "key_menu" not in self and menu_button: - self["key_menu"] = StaticText(menu_button.get('text', '')) - self["menuConfigActions"] = HelpableActionMap(self, "ConfigListActions", { - "menu": (menu_button['function'], menu_button.get('helptext', _("Menu button function"))), - }, prio=1, description=_("Common Setup Actions")) self["fullUIActions"] = HelpableActionMap(self, ["ConfigListActions"], { "cancel": (self.keyCancel, _("Cancel any changed settings and exit")), "close": (self.closeRecursive, _("Cancel any changed settings and exit all menus")), "save": (self.keySave, _("Save all changed settings and exit")) }, prio=1, description=_("Common Setup Actions")) + if "key_menu" not in self: + self["key_menu"] = StaticText(_("MENU")) if "HelpWindow" not in self: self["HelpWindow"] = Pixmap() self["HelpWindow"].hide() @@ -191,6 +188,10 @@ def __init__(self, list, session=None, on_change=None, fullUI=False, yellow_butt "pageDown": (self.keyPageDown, _("Move down a screen")), "bottom": (self.keyBottom, _("Move to last line / screen")) }, prio=1, description=_("Common Setup Actions")) + self["menuConfigActions"] = HelpableActionMap(self, "ConfigListActions", { + "menu": (self.keyMenu, _("Display selection list as a selection menu")), + }, prio=1, description=_("Common Setup Actions")) + self["menuConfigActions"].setEnabled(False if fullUI else True) self["editConfigActions"] = HelpableNumberActionMap(self, ["NumberActions", "TextEditActions"], { "backspace": (self.keyBackspace, _("Delete character to left of cursor or select AM times")), "delete": (self.keyDelete, _("Delete character under cursor or select PM times")), @@ -267,6 +268,12 @@ def handleInputHelpers(self): self["editConfigActions"].setEnabled(True) else: self["editConfigActions"].setEnabled(False) + if isinstance(currConfig[1], ConfigSelection) and not isinstance(currConfig[1], ConfigNothing): + self["menuConfigActions"].setEnabled(True) + self["key_menu"].setText(_("MENU")) + else: + self["menuConfigActions"].setEnabled(False) + self["key_menu"].setText("") if isinstance(currConfig[1], (ConfigText, ConfigMacText)) and "HelpWindow" in self and currConfig[1].help_window and currConfig[1].help_window.instance is not None: helpwindowpos = self["HelpWindow"].getPosition() currConfig[1].help_window.instance.move(ePoint(helpwindowpos[0], helpwindowpos[1])) @@ -301,7 +308,7 @@ def keySelect(self): if isinstance(self.getCurrentItem(), ConfigBoolean): self.keyToggle() elif isinstance(self.getCurrentItem(), ConfigSelection): - self.keySelection() + self.keyMenu() elif isinstance(self.getCurrentItem(), ConfigText) and not isinstance(self.getCurrentItem(), ConfigNumber): self.keyText() else: @@ -321,17 +328,17 @@ def keyTextCallback(self, callback=None): if callback != prev: self.entryChanged() - def keySelection(self): + def keyMenu(self): currConfig = self["config"].getCurrent() if currConfig and currConfig[1].enabled and hasattr(currConfig[1], "description") and len(currConfig[1].choices.choices) > 1: self.session.openWithCallback( - self.keySelectionCallback, ChoiceBox, title=currConfig[0], + self.keyMenuCallback, ChoiceBox, title=currConfig[0], list=list(zip(currConfig[1].description, currConfig[1].choices)), selection=currConfig[1].getIndex(), keys=[] ) - def keySelectionCallback(self, answer): + def keyMenuCallback(self, answer): if answer: self["config"].getCurrent()[1].value = answer[1] self["config"].invalidateCurrent() diff --git a/lib/python/Screens/Setup.py b/lib/python/Screens/Setup.py index 13140f6962a..200646bb415 100644 --- a/lib/python/Screens/Setup.py +++ b/lib/python/Screens/Setup.py @@ -20,7 +20,7 @@ class Setup(ConfigListScreen, Screen, HelpableScreen): - def __init__(self, session, setup=None, plugin=None, PluginLanguageDomain=None, yellow_button=None, blue_button=None, menu_button=None): + def __init__(self, session, setup=None, plugin=None, PluginLanguageDomain=None, yellow_button=None, blue_button=None): Screen.__init__(self, session) HelpableScreen.__init__(self) self.setup = setup @@ -33,7 +33,7 @@ def __init__(self, session, setup=None, plugin=None, PluginLanguageDomain=None, self.skinName.append("setup_%s" % setup) self.skinName.append("Setup") self.list = [] - ConfigListScreen.__init__(self, self.list, session=session, on_change=self.changedEntry, fullUI=True, yellow_button=yellow_button, blue_button=blue_button, menu_button=menu_button) + ConfigListScreen.__init__(self, self.list, session=session, on_change=self.changedEntry, fullUI=True, yellow_button=yellow_button, blue_button=blue_button) self["footnote"] = Label() self["footnote"].hide() self["description"] = Label() From b23451eab2a926ebad26aed76a2301760ad7487f Mon Sep 17 00:00:00 2001 From: Huevos Date: Tue, 11 Jun 2024 22:32:57 +0200 Subject: [PATCH 14/62] [Fastscan] do not use menu button to start a scan. --- lib/python/Plugins/SystemPlugins/FastScan/plugin.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/python/Plugins/SystemPlugins/FastScan/plugin.py b/lib/python/Plugins/SystemPlugins/FastScan/plugin.py index 3550b99351e..4764a4e5e5a 100644 --- a/lib/python/Plugins/SystemPlugins/FastScan/plugin.py +++ b/lib/python/Plugins/SystemPlugins/FastScan/plugin.py @@ -179,9 +179,8 @@ def providerChanged(configEntry): auto_providers = config.misc.fastscan.autoproviders.value.split(",") for provider in providers: self.config_autoproviders[provider[0]] = ConfigYesNo(default=provider[0] in auto_providers) - Setup.__init__(self, session, blue_button={'function': self.startScan, 'helptext': _("Start Fastscan")}, menu_button={'function': self.startScan, 'helptext': _("Start Fastscan")}) + Setup.__init__(self, session, blue_button={'function': self.startScan, 'helptext': _("Start Fastscan")}) self.setTitle(_("FastScan")) - self.createSetup() self.finished_cb = None def createSetup(self): From 0c706baac4b5d4859bd0a66e8746939828f7b8fd Mon Sep 17 00:00:00 2001 From: Huevos Date: Wed, 12 Jun 2024 09:55:33 +0200 Subject: [PATCH 15/62] Revert "[ScanSetup] always run cable cmd" This reverts commit 6d16a54e1e5fa9d0f714f33a59d5f837c1dc1206. This doesn't seem to offer any benefit nd makes readability worse. --- lib/python/Screens/ScanSetup.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/python/Screens/ScanSetup.py b/lib/python/Screens/ScanSetup.py index 88f5332215f..54a8ec3bb6c 100644 --- a/lib/python/Screens/ScanSetup.py +++ b/lib/python/Screens/ScanSetup.py @@ -314,6 +314,10 @@ def GetCommand(nim_idx): exe_path = "/usr/bin/%s" % bin_name.split()[0] cmd = "%s --init --scan --verbose --wakeup --inv 2 --bus %d" % (bin_name, bus) + if not fileExists(exe_path): + self.session.open(MessageBox, _("Cable scan executable utility not found '%s'!") % exe_path, MessageBox.TYPE_ERROR) + return + if cableConfig.scan_type.value == "bands": cmd += " --scan-bands " bands = 0 @@ -370,10 +374,7 @@ def GetCommand(nim_idx): print(exe_path, " CMD is", cmd) self.cable_search_container.execute(cmd) - if fileExists(exe_path): - tmpstr = _("Looking for active transponders in the cable network. Please wait...") - else: - tmpstr = _("Cable scan executable utility not found '%s'!") % exe_path + tmpstr = _("Try to find used transponders in cable network.. please wait...") tmpstr += "\n\n..." self.cable_search_session = self.session.openWithCallback(self.cableTransponderSearchSessionClosed, MessageBox, tmpstr, MessageBox.TYPE_INFO) From 43b58471a789d5cb1aef9890855e04602541b3ce Mon Sep 17 00:00:00 2001 From: Huevos Date: Thu, 13 Jun 2024 09:55:07 +0200 Subject: [PATCH 16/62] [data] add display390 --- data/display390/Makefile.am | 2 + data/display390/backward.png | Bin 0 -> 1024 bytes data/display390/crypt.png | Bin 0 -> 961 bytes data/display390/dolby.png | Bin 0 -> 975 bytes data/display390/format.png | Bin 0 -> 987 bytes data/display390/forward.png | Bin 0 -> 1021 bytes data/display390/hd.png | Bin 0 -> 1013 bytes data/display390/pause.png | Bin 0 -> 929 bytes data/display390/play.png | Bin 0 -> 977 bytes data/display390/rec.png | Bin 0 -> 1257 bytes data/display390/skin_display.xml | 471 +++++++++++++++++++++++++ data/display390/skin_display_picon.xml | 459 ++++++++++++++++++++++++ data/display390/slow.png | Bin 0 -> 991 bytes data/display390/stop.png | Bin 0 -> 924 bytes data/display390/tuner-a-act.png | Bin 0 -> 995 bytes data/display390/tuner-a.png | Bin 0 -> 992 bytes data/display390/tuner-b-act.png | Bin 0 -> 1003 bytes data/display390/tuner-b.png | Bin 0 -> 999 bytes data/display390/tuner-c-act.png | Bin 0 -> 993 bytes data/display390/tuner-c.png | Bin 0 -> 991 bytes data/display390/tuner-d-act.png | Bin 0 -> 995 bytes data/display390/tuner-d.png | Bin 0 -> 992 bytes data/display390/txt.png | Bin 0 -> 975 bytes data/display390/update_stable.png | Bin 0 -> 1743 bytes data/display390/update_unstable.png | Bin 0 -> 1734 bytes 25 files changed, 932 insertions(+) create mode 100644 data/display390/Makefile.am create mode 100644 data/display390/backward.png create mode 100644 data/display390/crypt.png create mode 100644 data/display390/dolby.png create mode 100644 data/display390/format.png create mode 100644 data/display390/forward.png create mode 100644 data/display390/hd.png create mode 100644 data/display390/pause.png create mode 100644 data/display390/play.png create mode 100644 data/display390/rec.png create mode 100644 data/display390/skin_display.xml create mode 100644 data/display390/skin_display_picon.xml create mode 100644 data/display390/slow.png create mode 100644 data/display390/stop.png create mode 100644 data/display390/tuner-a-act.png create mode 100644 data/display390/tuner-a.png create mode 100644 data/display390/tuner-b-act.png create mode 100644 data/display390/tuner-b.png create mode 100644 data/display390/tuner-c-act.png create mode 100644 data/display390/tuner-c.png create mode 100644 data/display390/tuner-d-act.png create mode 100644 data/display390/tuner-d.png create mode 100644 data/display390/txt.png create mode 100644 data/display390/update_stable.png create mode 100644 data/display390/update_unstable.png diff --git a/data/display390/Makefile.am b/data/display390/Makefile.am new file mode 100644 index 00000000000..897f46f027e --- /dev/null +++ b/data/display390/Makefile.am @@ -0,0 +1,2 @@ +installdir = $(pkgdatadir)/display/skin_default +dist_install_DATA = *.xml *.png diff --git a/data/display390/backward.png b/data/display390/backward.png new file mode 100644 index 0000000000000000000000000000000000000000..0c307d0bff079aaa41d98f085c2095760ce9c1d8 GIT binary patch literal 1024 zcmeAS@N?(olHy`uVBq!ia0vp^8bGYZ!3-oDwKVmC6id3JuOkD)#(wTUiL49^%nSiO zA+A7ingTvPzW;+5{QLLs&!0a(e*F0S`Sa`7uOB~teDmhbix)4RI(6#Uv111h9z1a1 z!2bRF_wC!ackkXkd-m+!y?fWLT|0N~+_7WF_U+rZZQHhW>((t>wrt+KdDEs%8#iv; zuwldc_3PKITeo)Y+BIv|tX{o()v8r1SFT*KV#V_1%a<)%wsh&zB}eMMyrc9nZdD5gw z6DLlbFkwP}e}7+JUvF=3Pft&GcXwA;S7&EuM@L6{dwW}3TWf1;OG`_0b8}NuQ)6Re zLqkJ-eSKYBU2Sb`O-)U8b#+x$Rb^#mMMXtQQcz5xS_&0ftu1$)sZ4=gmoa^c8=d#Wzp$P!PI^LZC literal 0 HcmV?d00001 diff --git a/data/display390/crypt.png b/data/display390/crypt.png new file mode 100644 index 0000000000000000000000000000000000000000..e722ee29e9cb8df8c59c5285053fe7a760ce5841 GIT binary patch literal 961 zcmV;y13vtTP)KLZ*U+lnSp_Ufq@}0xwybFAi#%#fq@|}KQEO56)-X|e7nZL z$iTqBa9P*U#mSX{G{Bl%P*lRez;J+pfx##xwK$o9f#C}S14DXwNkIt%17i#W1A|CX zc0maP17iUL1A|C*NRTrF17iyV0~1e4YDEbH0|SF|enDkXW_m`6f}y3QrGjHhep0GJ zaAk2xYHqQDXI^rCQ9*uDVo7QW0|Nup4h9AW240u^5(W3f%sd4{Q&k2kgNVo|1qcff zJ_s=cNG>fZg9jx8g8+jTgC9dB!zzXcjM9uzjPn?uG8r;8FkNESU~Xi-%VNVakCmA< zoAoN26WbJk(nbKDkms+R=!8UN0C?Yg3=V_C>14@ z*Q#698rA(YWHsJu?$es6ovLH4E2R5M?}+|ghuuQb_ zv9_>LwH2{rvHNQO+~Kz41*c=qdtJ7=u6JAMzSLup=R&Uq-V1#e`!4fa<-a~)YvA6X zW5MS`ZiPMz`x3zvDHx>`Z5-nk8x@xq-;yvpadXny#c{8Bv*4S+lbD&|w7H};LTeNub$E6O-CMYHnI*EOxbxzS)#$L0rHt+q|w{$Z!@u2p+D_NMPUen9P!e)1|n}r>^TY4rKi~dU{r?XDE({%upgajN0000WV@Og>004R=004l4 z008;_004mL004C`008P>0026e000+nl3&F}0000WNklTOXv}x1EjT<*?*sy;6`gQBptzElz&6+iD_5*ov3&XRWy_W=UAlD1 zk|m25FJ820(ZYob7c5vXfByV=^XAQ+J9o~UIkRWao;7RM%$YN1%$PBK`t)hjrcIqX zb;^_}lP6D}G-=Yri4!MGn9$$f-`CgI+uPgI)6?DE-PP6A+1c6A(b3-C-qzOE+S=OE z($d`A+|<<6*x1<6&`@7rUsqRGTU%RGQ&U}CT~$?8Sy@?8QBhuAURG9CT3T9CQc_%8 zTvSw4SXfw4P>`RWpO=@Ho12@HlarmDot2f9nVFf9k&&LBo|cxDnwpxDl9HU9oRpN5 zn3$N5kPsgq9~T!F8yg!F6B8XB9TgQ785tQ75fL699u^iB8X6iB5)vF7926837#J83 z5a93c@8{>|>+9>|FMd=;ogwv^;^OS=?BwL+=;-L+;9zfW zZ)ay`Yiny`V`FV?ZDnO;X=!O;VPS4=Zf0g?YHDg?Vq$D;Y-D6)XlQ6)V4$zBucxP{ ztE;P{qob{@t)-=uBN7@s;a7@qN1#(>t-KD>PS^5MgWw{G3KdiCnXix+9|9?dj?1?(XjD>gw$5?C9udZ*OmFYin(7ZE0y~Zf~2EGQ_*&(F`x%gfEp&B@8h z&d$!t%F4{l%*e<{Pft%vOG`~nO-V^fPEJlrN=i&jOh`zGkB^Uwi;Inojfshgj*gCs zii(VkjEIN`4-XFu3kwYm4G9Se4h{|q3JMGi3<})zQ(>*4Eb2($dt_)X>mSS65e4 zQ&Uw{RZ&qe2;9+&|XOM?7@@nr-ienaDv8@-da0~JMjx;TbdoK7}S zl{2^ypsQ@y5VJLbD@}S6mxg@oTFqTiDvUd#EaVR-r4)OFb3ecArTZ=6!18M%CtdDj zZM1H0h~h~PJ{hBQWf40|-qxNQQ+9|9?dj?1?(XjD>gw$5?C9udZ*OmFYin(7ZE0y~Zf~2EGQ_*&(F`x z%gfEp&B@8h&d$!t%F4{l%*e<{Pft%vOG`~nO-V^fPEJlrN=i&jOh`zGkB^Uwi;Ino zjfshgj*gCsii(VkjEIN`4-XFu3kwYm4G9Se4h{|q3JMGi3<})zQ(>*4Eb2($dt_ z)X>mSS65e4Q&Uw{RZ&qHK(_(do9I~y=0Bz)?@dimSmgsC;n$Ne6~sP`}-4jL2mVQ L^>bP0l+XkK7r)(x literal 0 HcmV?d00001 diff --git a/data/display390/hd.png b/data/display390/hd.png new file mode 100644 index 0000000000000000000000000000000000000000..e8098dc13b8dd420edb0e4c68a4b60e20507fe66 GIT binary patch literal 1013 zcmeAS@N?(olHy`uVBq!ia0vp^RzNJp!3-oXp4_hkq*&4&eH|GXHuiJ>Nn~YUU}gyL z32_CA(-iRV@cbVl;NQQ0fByXW@#Dv*PoG}De*N&_!|T_tpF4N%*s)`W4jtONckiA( zdv@>My=&L5ojZ5#*s){#_U+rYZQHta>y|BBHgDd%Y15{S8#iv)uwniB_3PHHTf27c znl)=yuU@@s)vA>%SFTvGV)^pr%a$!$x^(H1B}*1BUc6}0qJ;|=E?BT&{`~p#=FOWs zckY}yb7s$;J!{sinKNh3m@#Ae^y$;4O`AG(>Xa!{CQqI`Y0{*L6DLlXFrmM{zpt;a zx3{;ar>DESyQ{0Kv$M0KqocjOy{)aSwY9aSrKP#Kxv8nCv9YnCp`pIMzOJsWwzjsW zrlz{Ox~i(Gva+(GqN2RKysWIOw6wIOq@=jGxTvV8u&}V8pddd#KQAvYH#avYCnq~Q zJ1Z+IGcz+IBO^UMJuNLQH8nLQB_%mIIVmYAF)=YAAt63KJ}xdUHa0dUCMG&MIw~qE zGBPqEA|gCIJS;3MG&D3MBqTUEI4CG6FfcG6Ai&?>-_Os_*Vos_$H&{-+sn(#)6>(# z!^7R(-ObI-)z#I-#l_j#*~!Vt(b3Vt!NK0%-p*4Ea>#>U#(+RDnx($dnx!ou9# z+|10()YR0(#KhRx*vQDp(9qDpz(8MLUr$d@S65d@M@L&*TT4qzQ&UqzLqlC%T}@3* zRaI3*MMYUzSxHGrQBkqY{ZK4011OdR`32+42#oBqy31>v|MmbC6??ikhFF|Fd&QgU zfC3Lo!1ILS|JkCq8eEc0lDW^GJ1^X9$XkAaspHs}#OhfNx%*l#`A=9Fs>!dRUNSXn z=C5SAUFG)+-|9-)&3F5#s(bhQc@zJu7fW?}w}c3=U-^HXE7fm%-5j5_Ydz1pE}fvc d%*0>RRg{KY#x8>C?xLA3t{N z*wLd$j~qF2`0(LFhYlS)c<{i11N-;y-?wky-o1PG?Afz>_wHT0cJ17`bH|Py+qZAu zwr$(ity{Nj*|K@_=1rS6ZQQtV!-fs(*RNlPbc=6&zixw?hxNyOO1@q_6pEqyb+_`h-%$YNL_Uu`+X3d;AbH4Gj(T_4Rdib+xs%H8nNW)zwv1Rh5;M6%`fb<>h5% zWu>L1B_$=r#l=NMMTLch1qB89`T2QydAYf{IXOAm+1XiHS(%xc85tSr>FH@{X{o8H zDJdz*$;nAcNr{Px2?+`D@$qqSaj~(nF)=aG(a}*+QIV065fKsL;o)InVWFX+At52b z!NEa6L4kpR0RaL2{{DV`e!jlGK0ZF)-rinbUY?$w9v&X5R+g5Q78Vxf=H_N*W~Qd5CMG7v#>PfQMuvul z1_lQD`uci$db+y0IyySq+S*!LTAG@g8X6kv>gsB0YO1QLDk>_<%F0SgN{Wh#g74lJ}sGl ZT#N!ilO27c`5i#!dAj z=Z+mawr}6QZQHi3Teoi6vSst;&6_rD+PHD!h7B9muV24z-MY1F*REN!X7%dTt5&UA zxpL)-6)To6U%qVFvZYIxE?Kf<@#4jc7A;!1aN&Xl3+B(CKX2Z=xpU{vnKNhh?Afzs z&6+uL=8PFLrca+fZQ8V{Q>RXuGG+4Q$&)5cnmBRdgb5S+`}_O)`g(hNdwP1hySux( zx;i^MJ32br+uPgP+FDy%TUuJ0o12@Oni?A$8yXtw>+9?4>S}9iYieq$tE;Q3swyih zD=I3=%gf8k%1TR1OG-+Li;IhjiV6!03knMI^Yioa@^W)?b8>RBv$M0ZvNAI>Gcq#L z)6>(^(o$1XQ&LirlarH@k`faW6A}{QygWTUJv=SWoE#k;9UL6&?d|RC>}+jqZES3;t*x!BtSl`pEi5d|&CSis%uG#9O-xLT zjg5_rj0_D84GawQ_4W1i^mKJ~b#!#JwY9ahv@|s}H8eET)z#J1)KpbfRa8`zm6es0 zloS;eg;#c40W*MNNswPK{*1uJ(_AARs0LKz@9E+gVsU!y6+=M=1D+!ra#B6R%%j&gcPB|4mN;h6X4sR+lZ?c?A+yeYv)qp=&1>De?bektT$>ox9&)*7@_jL7hS?83{1OOP;#{>WX literal 0 HcmV?d00001 diff --git a/data/display390/rec.png b/data/display390/rec.png new file mode 100644 index 0000000000000000000000000000000000000000..559b098beca57c95323a00fbd00d0ecbb7265821 GIT binary patch literal 1257 zcmbVLZD<>196u`c}-d((V z+9XvJh99D3bJL;>zl_0P6ii{deX#R|Im(7rWS@#sP{h|sJ2uye&c)~2r23)kg9mrd z%l&@8|NCo$1N*wRb#EgGqAQt@Gk9h3+uhlLzZV~FF5<DGG-G*Uw^f%7D^D2!*E15qtwdWClsk` zQR?Yn8l=k-9Muz(HXNE9$QC9`g@{J=KTh^l1uS4dq>@!*%yfimlv>jj@ZPh zN>OUvsa$%Hlq?&PK|k;n01rr>@iSZ?6bd~?vVZ|JU}=W+F(H9t1pvs_Lt$&SRunRF zyk!fYqSPotWr3zEm5RT@`7L{dW+IV@tHH89jPN-%6RB07>FjPR$j~X+dKu}KNxF*a zur-dN6!vsI1f!fzZwQ-CD^WOQbX6_Wj33a3;l{Owc2EZX>&B*NCtE8+Is+YR+%DjH z6nD4DICu9p!@u z!*Y;eVi8GhYi!01OL0k5B0P{dg<%v{3Rj*PtIuU4DB|@f10Izg*(vQZnQo=Yzz-H@x<78 zH1dh9hw)f}!BkecMi9+r^Y=>S&$+qlvV5~x{LSN8;kdsR7H*$7ac61i?(*_7MXlEB zf6UC>*uVdJPw6D)E+u6#Tm5?Bt#2NDmF!eJS6;l;e5Lo)kJC)!7vI4h=>2a8iIwwP z-hJli{S)7Rb#mxY6Dc1EslCLn$A>STyLqGIDO2v->zyh-vCH$`okMiJznhCJ5}dFqf||N$va#BFwyz>vBu@x-_zUcr8AkAANZ{2 z>LYuqub;^`_o1DrqxSan?L9|UrcP0I-S@+h3-5Sil}o7uJ>>bBV`rcJDZ$MgYCQBM zoZr6nzDx5Ht8ZRDJ(X{CE}lJCf8(wrY2V#i_2h|bvs=34Qo4i#C6da3+=%55{{tWg BvSk1O literal 0 HcmV?d00001 diff --git a/data/display390/skin_display.xml b/data/display390/skin_display.xml new file mode 100644 index 00000000000..6d45e70db6f --- /dev/null +++ b/data/display390/skin_display.xml @@ -0,0 +1,471 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IsHD + + + + IsMultichannel + + + + + + TunerUseMask + 1 + + + + TunerUseMask + 2 + + + + TunerUseMask + 4 + + + + TunerUseMask + 8 + + + + NUMBER + 0,0 + + + + NUMBER + 1,1 + + + + NUMBER + 2,2 + + + + NUMBER + 3,3 + + + + + + + Name + + + Name + + + Progress + + + VFDRemaining + VFDNoSeconds + + + + + + + NameOnly + + + Name + + + Progress + + + VFDRemaining + VFDNoSeconds + + + + + + + + + + + + Name + + + VFDPosition + + + VFDPosition + + + + + + + + + + + + + + + RecordServiceName + + + + Duration + AsLength + + + FileSize + + + + + + + + + + Name + + + Name + + + Progress + + + VFDRemaining + VFDNoSeconds + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ShortDate + + + Format:%H:%M + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name + + + VFDPosition + + + + VFDPosition + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/display390/skin_display_picon.xml b/data/display390/skin_display_picon.xml new file mode 100644 index 00000000000..ff8590d4daa --- /dev/null +++ b/data/display390/skin_display_picon.xml @@ -0,0 +1,459 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IsHD + + + + IsMultichannel + + + + + + TunerUseMask + 1 + + + + TunerUseMask + 2 + + + + TunerUseMask + 4 + + + + TunerUseMask + 8 + + + + NUMBER + 0,0 + + + + NUMBER + 1,1 + + + + NUMBER + 2,2 + + + + NUMBER + 3,3 + + + + + + + Name + + + Name + + + Progress + + + VFDRemaining + VFDNoSeconds + + + + + + + Reference + + + Progress + + + Name + + + VFDRemaining + VFDNoSeconds + + + + + + + + + + + + Name + + + VFDPosition + + + VFDPosition + + + + + + + + + + + + + + + RecordServiceName + + + + Duration + AsLength + + + FileSize + + + + + + + + + + Reference + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FullDate + + + Format:%H:%M + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name + + + VFDPosition + + + + VFDPosition + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/display390/slow.png b/data/display390/slow.png new file mode 100644 index 0000000000000000000000000000000000000000..e6a81a9adf0a41e4a478ef15061463807877fc7a GIT binary patch literal 991 zcmeAS@N?(olHy`uVBq!ia0vp^8bGYZ!3-oDwKVmC6id3JuOkD)#(wTUiL49^%nSiO zA+A7i+5sjeCIJC~|3e4-{rmU#@893QfB*RL$uUofn?b@|# z)~s2*diAPRt5&XDxnjkN<;#~ZTefWJ(xpq5ELpsG@uEeG7A{=4V8Md<^XJc-H*fCT zxpU^snLT^W&YU@8#*FFHr%#(UZR*siQ>ILrJbCh@Ns}f{oH${^g#P~izP`TR z-rk;`p6>4MuCA`m&d!dGj`sHUwzjs`*4CDmmgeT>rlzLG#>R$*hWh&Yy1KgB+S;0$ zn(FH6s;a8W%F2q0it_UEva+($($bQWlH%gxqN1Y0!oq@rg8cmayu7^J+}xa;ob2rE ztgNie%*>38jP&&Mw6wI;)YO!el;q^(q@<+8#KeSzg!uUQxVX63*w~nunCR%}sHmvO z$jFF@i16_6u&}Vu(9n>Okl^6pprD|@z`%fj0DpgfKR-WTUtb>|A8&7OFE1}oPfrgI z4|jKWH#av|S63Go7iVW@CnqOIM@I(-2YY*aJ3BjDTU#3&8*6K8D=RBYOG^t23v+XG zGcz+&Q&STY6JujzBO@b2Lqh`t1ATpcJv}{LU0od=9c^uGEiElgO-&6A4Rv*OH8nL= zRaF%g6=h{*B_$??bp)!(pJ%y`>aE+KOsH(;GXyLRoGHEUL{UcGA7s+B8Ou2`{R`SRtIJ{Q2|d&6_)S?wmPuX3w5IYu2opGiT12F=P7l>C>i7n>uys zlqpjtPo6w!(xizKCr+3!p})VsudlDSx3{OKr@OnmtE;QCv$Lb4qrJVot*x!KwY84v9Y0{p}xMpuCA`Owzj6Grn^6GBP3}B0M}iEG#TEG&Ce6Bse%YC@3f}Ffbq> zz~A5B&(F`-*Vo6#$J^W6%gf8t)6>Jl!`p($d1h!ra{4%*@Qx)YQbp#Ms!_$jHdh(9poZKwn>9Pft%* zS64?zM_XH4OG`^rQ&U4jLtR~6O-)TzRaHerMOj%{Nl8gjQBgrbA!)bvYhVUYC<*cl z#-0%vnK^{j?Bi$b+Le6a@ou0RX-^l&5R22v1uAR?3)Z12_U09UHx3vIVCg!0D?rio&W#< literal 0 HcmV?d00001 diff --git a/data/display390/tuner-a-act.png b/data/display390/tuner-a-act.png new file mode 100644 index 0000000000000000000000000000000000000000..79cf5515a2d54631cd2283147a78a90230e7caff GIT binary patch literal 995 zcmV<9104K`P)U8P*7-ZbZ>KLZ*U+lnSp_Ufq@}0xwybFAi#%#fq@|}KQEO56)-X|e7nZL z$iTqBa9P*U#mSX{G{Bl%P*lRez;J+pfx##xwK$o9f#C}S14DXwNkIt%17i#W1A|CX zc0maP17iUL1A|C*NRTrF17iyV0~1e4YDEbH0|SF|enDkXW_m`6f}y3QrGjHhep0GJ zaAk2xYHqQDXI^rCQ9*uDVo7QW0|Nup4h9AW240u^5(W3f%sd4n162kpgNVo|1qcff zJ_s=cNG>fZg9jx8g8+j9g8_pBLjXe}Lp{R+hNBE`7{wV~7)u#fFy3PlV+vxLz;uCG zm^qSpA@ds+OO_6nTdaDlt*rOhEZL^9ePa)2-_4=K(Z%tFGm-NGmm}8}ZcXk5JW@PU zd4+f<@d@)yL(o<5icqT158+-B6_LH7;i6x}CW#w~Uy-Pgl#@Irl`kzV zeL|*8R$ca%T%Wv){2zs_iiJvgN^h0dsuZZ2sQy$tsNSU!s;Q*;LF<6_B%M@UD?LHI zSNcZ`78uqV#TeU~$eS{ozBIdFzSClfs*^S+dw;4dus<{M;#|MXC)T}S9v!D zcV!QCPhBq)ZyO(X-(bH4|NMaZz==UigLj2o41F2S6d@OB6%`R(5i>J(Puzn9wnW{e zu;hl6HK{k#IWjCVGqdJqU(99Cv(K+6*i`tgSi2;vbXD1#3jNBGs$DgVwO(~o>mN4i zHPtkqZIx>)Y(Ls5-Br|mx>vQYvH$Kwn@O`L|D75??eGkZnfg$5<;Xeg_o%+-I&+-3%01W^SH2RkDT>t<8AY({UO#lFTB>(_`g8%^e z{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ+MM*?KRCwBA{QsYU2*AWZ6kvfd7_mzK zM>UNRhbfH6${6uj$4HjjkX?f55F$+*2Fh4)1;Jo*+h}BsD#OhCR4upw0|0}O2TJLo R4A}qx002ovPDHLkV1o5Kq-FpB literal 0 HcmV?d00001 diff --git a/data/display390/tuner-a.png b/data/display390/tuner-a.png new file mode 100644 index 0000000000000000000000000000000000000000..6639458a8192c9ede7d88543f0ade5447beb71c2 GIT binary patch literal 992 zcmV<610Vc}P)U8P*7-ZbZ>KLZ*U+lnSp_Ufq@}0xwybFAi#%#fq@|}KQEO56)-X|e7nZL z$iTqBa9P*U#mSX{G{Bl%P*lRez;J+pfx##xwK$o9f#C}S14DXwNkIt%17i#W1A|CX zc0maP17iUL1A|C*NRTrF17iyV0~1e4YDEbH0|SF|enDkXW_m`6f}y3QrGjHhep0GJ zaAk2xYHqQDXI^rCQ9*uDVo7QW0|Nup4h9AW240u^5(W3f%sd4n162kpgNVo|1qcff zJ_s=cNG>fZg9jx8g8+j9g8_pBLjXe}Lp{R+hNBE`7{wV~7)u#fFy3PlV+vxLz;uCG zm^qSpA@ds+OO_6nTdaDlt*rOhEZL^9ePa)2-_4=K(Z%tFGm-NGmm}8}ZcXk5JW@PU zd4+f<@d@)yL(o<5icqT158+-B6_LH7;i6x}CW#w~Uy-Pgl#@Irl`kzV zeL|*8R$ca%T%Wv){2zs_iiJvgN^h0dsuZZ2sQy$tsNSU!s;Q*;LF<6_B%M@UD?LHI zSNcZ`78uqV#TeU~$eS{ozBIdFzSClfs*^S+dw;4dus<{M;#|MXC)T}S9v!D zcV!QCPhBq)ZyO(X-(bH4|NMaZz==UigLj2o41F2S6d@OB6%`R(5i>J(Puzn9wnW{e zu;hl6HK{k#IWjCVGqdJqU(99Cv(K+6*i`tgSi2;vbXD1#3jNBGs$DgVwO(~o>mN4i zHPtkqZIx>)Y(Ls5-Br|mx>vQYvH$Kwn@O`L|D75??eGkZnfg$5<;Xeg_o%+-I&+-3%01W^SH2RkDT>t<8AY({UO#lFTB>(_`g8%^e z{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ+LPU8P*7-ZbZ>KLZ*U+lnSp_Ufq@}0xwybFAi#%#fq@|}KQEO56)-X|e7nZL z$iTqBa9P*U#mSX{G{Bl%P*lRez;J+pfx##xwK$o9f#C}S14DXwNkIt%17i#W1A|CX zc0maP17iUL1A|C*NRTrF17iyV0~1e4YDEbH0|SF|enDkXW_m`6f}y3QrGjHhep0GJ zaAk2xYHqQDXI^rCQ9*uDVo7QW0|Nup4h9AW240u^5(W3f%sd4n162kpgNVo|1qcff zJ_s=cNG>fZg9jx8g8+j9g8_pBLjXe}Lp{R+hNBE`7{wV~7)u#fFy3PlV+vxLz;uCG zm^qSpA@ds+OO_6nTdaDlt*rOhEZL^9ePa)2-_4=K(Z%tFGm-NGmm}8}ZcXk5JW@PU zd4+f<@d@)yL(o<5icqT158+-B6_LH7;i6x}CW#w~Uy-Pgl#@Irl`kzV zeL|*8R$ca%T%Wv){2zs_iiJvgN^h0dsuZZ2sQy$tsNSU!s;Q*;LF<6_B%M@UD?LHI zSNcZ`78uqV#TeU~$eS{ozBIdFzSClfs*^S+dw;4dus<{M;#|MXC)T}S9v!D zcV!QCPhBq)ZyO(X-(bH4|NMaZz==UigLj2o41F2S6d@OB6%`R(5i>J(Puzn9wnW{e zu;hl6HK{k#IWjCVGqdJqU(99Cv(K+6*i`tgSi2;vbXD1#3jNBGs$DgVwO(~o>mN4i zHPtkqZIx>)Y(Ls5-Br|mx>vQYvH$Kwn@O`L|D75??eGkZnfg$5<;Xeg_o%+-I&+-3%01W^SH2RkDT>t<8AY({UO#lFTB>(_`g8%^e z{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ+O-V#SRCwBA{QsYU2*AWZ6kuUsU|?Xx zDgB=~(-?`hl#yh&p}PdtLJ~|H2Fh4)1p#Ux5ipH5aXK1VLn4Jx*HV(w8w+O2pulZ_ Z0RXRj3Qg)E@@D`5002ovPDHLkV1m(9rCb02 literal 0 HcmV?d00001 diff --git a/data/display390/tuner-b.png b/data/display390/tuner-b.png new file mode 100644 index 0000000000000000000000000000000000000000..a7dcdd531d4012326aceb94e7fa3a976668a2529 GIT binary patch literal 999 zcmVU8P*7-ZbZ>KLZ*U+lnSp_Ufq@}0xwybFAi#%#fq@|}KQEO56)-X|e7nZL z$iTqBa9P*U#mSX{G{Bl%P*lRez;J+pfx##xwK$o9f#C}S14DXwNkIt%17i#W1A|CX zc0maP17iUL1A|C*NRTrF17iyV0~1e4YDEbH0|SF|enDkXW_m`6f}y3QrGjHhep0GJ zaAk2xYHqQDXI^rCQ9*uDVo7QW0|Nup4h9AW240u^5(W3f%sd4n162kpgNVo|1qcff zJ_s=cNG>fZg9jx8g8+j9g8_pBLjXe}Lp{R+hNBE`7{wV~7)u#fFy3PlV+vxLz;uCG zm^qSpA@ds+OO_6nTdaDlt*rOhEZL^9ePa)2-_4=K(Z%tFGm-NGmm}8}ZcXk5JW@PU zd4+f<@d@)yL(o<5icqT158+-B6_LH7;i6x}CW#w~Uy-Pgl#@Irl`kzV zeL|*8R$ca%T%Wv){2zs_iiJvgN^h0dsuZZ2sQy$tsNSU!s;Q*;LF<6_B%M@UD?LHI zSNcZ`78uqV#TeU~$eS{ozBIdFzSClfs*^S+dw;4dus<{M;#|MXC)T}S9v!D zcV!QCPhBq)ZyO(X-(bH4|NMaZz==UigLj2o41F2S6d@OB6%`R(5i>J(Puzn9wnW{e zu;hl6HK{k#IWjCVGqdJqU(99Cv(K+6*i`tgSi2;vbXD1#3jNBGs$DgVwO(~o>mN4i zHPtkqZIx>)Y(Ls5-Br|mx>vQYvH$Kwn@O`L|D75??eGkZnfg$5<;Xeg_o%+-I&+-3%01W^SH2RkDT>t<8AY({UO#lFTB>(_`g8%^e z{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ+Nl8RORCwBAWcbfO1Ylwy3a~IRFyJwe zkvP--6Km;zlHG>x5>yLGFl`tpW5E>!sDVVlG}^@JXk-nE6hd7~NlI^wR4upw0|3OE V3r9;U8P*7-ZbZ>KLZ*U+lnSp_Ufq@}0xwybFAi#%#fq@|}KQEO56)-X|e7nZL z$iTqBa9P*U#mSX{G{Bl%P*lRez;J+pfx##xwK$o9f#C}S14DXwNkIt%17i#W1A|CX zc0maP17iUL1A|C*NRTrF17iyV0~1e4YDEbH0|SF|enDkXW_m`6f}y3QrGjHhep0GJ zaAk2xYHqQDXI^rCQ9*uDVo7QW0|Nup4h9AW240u^5(W3f%sd4n162kpgNVo|1qcff zJ_s=cNG>fZg9jx8g8+j9g8_pBLjXe}Lp{R+hNBE`7{wV~7)u#fFy3PlV+vxLz;uCG zm^qSpA@ds+OO_6nTdaDlt*rOhEZL^9ePa)2-_4=K(Z%tFGm-NGmm}8}ZcXk5JW@PU zd4+f<@d@)yL(o<5icqT158+-B6_LH7;i6x}CW#w~Uy-Pgl#@Irl`kzV zeL|*8R$ca%T%Wv){2zs_iiJvgN^h0dsuZZ2sQy$tsNSU!s;Q*;LF<6_B%M@UD?LHI zSNcZ`78uqV#TeU~$eS{ozBIdFzSClfs*^S+dw;4dus<{M;#|MXC)T}S9v!D zcV!QCPhBq)ZyO(X-(bH4|NMaZz==UigLj2o41F2S6d@OB6%`R(5i>J(Puzn9wnW{e zu;hl6HK{k#IWjCVGqdJqU(99Cv(K+6*i`tgSi2;vbXD1#3jNBGs$DgVwO(~o>mN4i zHPtkqZIx>)Y(Ls5-Br|mx>vQYvH$Kwn@O`L|D75??eGkZnfg$5<;Xeg_o%+-I&+-3%01W^SH2RkDT>t<8AY({UO#lFTB>(_`g8%^e z{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ+LrFwIRCwBA{QsYU2*AWZ6kvfd7;!53 zk1&mq7)u$c?lzb!C^BtS*{HH%uM8#2FcQknL|OWuShxKr)@}c(;Zwi>d;thXK>ke_ P00000NkvXXu0mjfo{*#M literal 0 HcmV?d00001 diff --git a/data/display390/tuner-c.png b/data/display390/tuner-c.png new file mode 100644 index 0000000000000000000000000000000000000000..cec48eae5af53dd2834390b47146b028eff2ef76 GIT binary patch literal 991 zcmV<510ei~P)U8P*7-ZbZ>KLZ*U+lnSp_Ufq@}0xwybFAi#%#fq@|}KQEO56)-X|e7nZL z$iTqBa9P*U#mSX{G{Bl%P*lRez;J+pfx##xwK$o9f#C}S14DXwNkIt%17i#W1A|CX zc0maP17iUL1A|C*NRTrF17iyV0~1e4YDEbH0|SF|enDkXW_m`6f}y3QrGjHhep0GJ zaAk2xYHqQDXI^rCQ9*uDVo7QW0|Nup4h9AW240u^5(W3f%sd4n162kpgNVo|1qcff zJ_s=cNG>fZg9jx8g8+j9g8_pBLjXe}Lp{R+hNBE`7{wV~7)u#fFy3PlV+vxLz;uCG zm^qSpA@ds+OO_6nTdaDlt*rOhEZL^9ePa)2-_4=K(Z%tFGm-NGmm}8}ZcXk5JW@PU zd4+f<@d@)yL(o<5icqT158+-B6_LH7;i6x}CW#w~Uy-Pgl#@Irl`kzV zeL|*8R$ca%T%Wv){2zs_iiJvgN^h0dsuZZ2sQy$tsNSU!s;Q*;LF<6_B%M@UD?LHI zSNcZ`78uqV#TeU~$eS{ozBIdFzSClfs*^S+dw;4dus<{M;#|MXC)T}S9v!D zcV!QCPhBq)ZyO(X-(bH4|NMaZz==UigLj2o41F2S6d@OB6%`R(5i>J(Puzn9wnW{e zu;hl6HK{k#IWjCVGqdJqU(99Cv(K+6*i`tgSi2;vbXD1#3jNBGs$DgVwO(~o>mN4i zHPtkqZIx>)Y(Ls5-Br|mx>vQYvH$Kwn@O`L|D75??eGkZnfg$5<;Xeg_o%+-I&+-3%01W^SH2RkDT>t<8AY({UO#lFTB>(_`g8%^e z{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ+K}keGRCwBAWcbfO1Ylwy3b4Q!xD91Q znD(C-OaD{dZ7^3*WZI~*QDwtk8A_Jg21dlP*oXiC N002ovPDHLkV1oQwp-cb( literal 0 HcmV?d00001 diff --git a/data/display390/tuner-d-act.png b/data/display390/tuner-d-act.png new file mode 100644 index 0000000000000000000000000000000000000000..a022923c30c64b9bed59ab2a132f6cbd0e90ac04 GIT binary patch literal 995 zcmV<9104K`P)U8P*7-ZbZ>KLZ*U+lnSp_Ufq@}0xwybFAi#%#fq@|}KQEO56)-X|e7nZL z$iTqBa9P*U#mSX{G{Bl%P*lRez;J+pfx##xwK$o9f#C}S14DXwNkIt%17i#W1A|CX zc0maP17iUL1A|C*NRTrF17iyV0~1e4YDEbH0|SF|enDkXW_m`6f}y3QrGjHhep0GJ zaAk2xYHqQDXI^rCQ9*uDVo7QW0|Nup4h9AW240u^5(W3f%sd4n162kpgNVo|1qcff zJ_s=cNG>fZg9jx8g8+j9g8_pBLjXe}Lp{R+hNBE`7{wV~7)u#fFy3PlV+vxLz;uCG zm^qSpA@ds+OO_6nTdaDlt*rOhEZL^9ePa)2-_4=K(Z%tFGm-NGmm}8}ZcXk5JW@PU zd4+f<@d@)yL(o<5icqT158+-B6_LH7;i6x}CW#w~Uy-Pgl#@Irl`kzV zeL|*8R$ca%T%Wv){2zs_iiJvgN^h0dsuZZ2sQy$tsNSU!s;Q*;LF<6_B%M@UD?LHI zSNcZ`78uqV#TeU~$eS{ozBIdFzSClfs*^S+dw;4dus<{M;#|MXC)T}S9v!D zcV!QCPhBq)ZyO(X-(bH4|NMaZz==UigLj2o41F2S6d@OB6%`R(5i>J(Puzn9wnW{e zu;hl6HK{k#IWjCVGqdJqU(99Cv(K+6*i`tgSi2;vbXD1#3jNBGs$DgVwO(~o>mN4i zHPtkqZIx>)Y(Ls5-Br|mx>vQYvH$Kwn@O`L|D75??eGkZnfg$5<;Xeg_o%+-I&+-3%01W^SH2RkDT>t<8AY({UO#lFTB>(_`g8%^e z{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ+MM*?KRCwBA{QsYU2*AWZ6kuUsU|?Xx zDgB=~(-?`hl#yh&p}PdtLJ~|HRW_<@*ehefl}Tu0>3?FB{YQ4&e`@&@FaV9W2S{*m RLz4gi002ovPDHLkV1h9hrHlXo literal 0 HcmV?d00001 diff --git a/data/display390/tuner-d.png b/data/display390/tuner-d.png new file mode 100644 index 0000000000000000000000000000000000000000..441cea314eda45633dbd80d80060bb6b5fc0a0cb GIT binary patch literal 992 zcmV<610Vc}P)U8P*7-ZbZ>KLZ*U+lnSp_Ufq@}0xwybFAi#%#fq@|}KQEO56)-X|e7nZL z$iTqBa9P*U#mSX{G{Bl%P*lRez;J+pfx##xwK$o9f#C}S14DXwNkIt%17i#W1A|CX zc0maP17iUL1A|C*NRTrF17iyV0~1e4YDEbH0|SF|enDkXW_m`6f}y3QrGjHhep0GJ zaAk2xYHqQDXI^rCQ9*uDVo7QW0|Nup4h9AW240u^5(W3f%sd4n162kpgNVo|1qcff zJ_s=cNG>fZg9jx8g8+j9g8_pBLjXe}Lp{R+hNBE`7{wV~7)u#fFy3PlV+vxLz;uCG zm^qSpA@ds+OO_6nTdaDlt*rOhEZL^9ePa)2-_4=K(Z%tFGm-NGmm}8}ZcXk5JW@PU zd4+f<@d@)yL(o<5icqT158+-B6_LH7;i6x}CW#w~Uy-Pgl#@Irl`kzV zeL|*8R$ca%T%Wv){2zs_iiJvgN^h0dsuZZ2sQy$tsNSU!s;Q*;LF<6_B%M@UD?LHI zSNcZ`78uqV#TeU~$eS{ozBIdFzSClfs*^S+dw;4dus<{M;#|MXC)T}S9v!D zcV!QCPhBq)ZyO(X-(bH4|NMaZz==UigLj2o41F2S6d@OB6%`R(5i>J(Puzn9wnW{e zu;hl6HK{k#IWjCVGqdJqU(99Cv(K+6*i`tgSi2;vbXD1#3jNBGs$DgVwO(~o>mN4i zHPtkqZIx>)Y(Ls5-Br|mx>vQYvH$Kwn@O`L|D75??eGkZnfg$5<;Xeg_o%+-I&+-3%01W^SH2RkDT>t<8AY({UO#lFTB>(_`g8%^e z{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ+LPx5>yLGFl|)XsIpKLZ*U+lnSp_Ufq@}0xwybFAi#%#fq@|}KQEO56)-X|e7nZL z$iTqBa9P*U#mSX{G{Bl%P*lRez;J+pfx##xwK$o9f#C}S14DXwNkIt%17i#W1A|CX zc0maP17iUL1A|C*NRTrF17iyV0~1e4YDEbH0|SF|enDkXW_m`6f}y3QrGjHhep0GJ zaAk2xYHqQDXI^rCQ9*uDVo7QW0|Nup4h9AW240u^5(W3f%sd4{Q&k2kgNVo|1qcff zJ_s=cNG>fZg9jx8g8+jTgC9dB!zzXcjM9uzjPn?uG8r;8FkNESU~Xi-%VNVakCmA< zoAoN26WbJk(nbKDkms+R=!8UN0C?Yg3=V_C>14@ z*Q#698rA(YWHsJu?$es6ovLH4E2R5M?}+|ghuuQb_ zv9_>LwH2{rvHNQO+~Kz41*c=qdtJ7=u6JAMzSLup=R&Uq-V1#e`!4fa<-a~)YvA6X zW5MS`ZiPMz`x3zvDHx>`Z5-nk8x@xq-;yvpadXny#c{8Bv*4S+lbD&|w7H};LTeNub$E6O-CMYHnI*EOxbxzS)#$L0rHt+q|w{$Z!@u2p+D_NMPUen9P!e)1|n}r>^TY4rKi~dU{r?XDE({%upgajN0000WV@Og>004R=004l4 z008;_004mL004C`008P>0026e000+nl3&F}0000kNklR>}a=rwg2t&eLv6hdVT+WUZ1=W;^vi_P)!gBv@*co zkEGgWOZ`1qHCIgUI8NyQy5oty$$U{cR!^X&? z#;9Y)=wG0g*(O#eOfb1Ht6Uf+A7)(uvo18XK4XeKYl=PhMUk1!1v8tAX1HI?mlS_> z*&O#3zQh7wVvfIJ@i*I23w)`CZJCAbb-0~MIoz(|s~d2;8*uwd6@=Z={GtkOUxl#0 z`PD6i!{4eA4&SOlIDD%X=~#<&s6{x|A^&k3>G-dDq~pIDkWLLKN7cN8QgLoXIjP+J z59cP-l6z?9X0%HS+NBlk+Ggq2VdehBYHcTG-E(V?ZflPotmiANCk?xvZnJ@b^XkQW z_u2aPJ8WUP2eQ@?SRO$v&rtTpV73>Ly*`BP9meq^aeTINHjz2Li;If@04SA8g+d{h z%NG_FWHQS*ycx-HJbaZrNWMp`FcxY(o=uo0aBswJe@wh1UfGFmmC@xF% zvrs79FWh-jn4Tnz76=5ff^7wY%s4@KykG~P&)>`6O5u}Y_+%cB7s(5Z;sr(XLW+2& zckzf^E;pR(zm5At1UG=g;jr24683o(i^XIz{h6-Un8kyGgPR7O1_lQD`}?c=%lrEJ z>iVjBdwXBMe$8MoS{cpFj7B=0{(|1sPH&^pXkE1DPiT*Em&|RbW>zOnEVH2KOei`7 z3QsY#NLpk5;~Mav9avQW%F{?h@_&M$rfKxJk0*XUCxgp7kpS=l4F`Gvr3nDMGN9=I zfCj(-G&O;h3>SdtwT`CaALy%e2vPQg$!{wZFY$^yHQQ|}Zz+?M2fLbL)07zz>Gy#0 zc!R8GyLTzCV-$J!p{<>#BITuKkFO$7inAR>SCp3&ii--l>ZvZJI+s$Zy4<%_krNdO z0;$sj{5FPR7_rpFU_A<~Yvz)~ZN@!`v%@WW4<>Jw4&+)urO$9oRq;+P^Bp9iK%9*v z7auv{*IIh<&87Wgix(P74zBIG(IO5`2DGY=99>^A-yq3&DA^?i+8;0^$|sL!!C8ap zWBFyB_RcW#6N?my+S%VBaP3w0kW~1@q)-lO$Qjm#8yVCaz|Muw<@fEVonE2!1c*mK z>uMTPu2-f_<$hji%FsXVMx`I0ftUGoXZ@6#jalsVO#h=At^#F&T;)ZtrcgIMr* zQDME7eqtIKG_tqBlPZXjC7zWKp6@`dI)Dz;nQR&7uc&Kq!#~m|d%Bes@iW?%d!G{7 zo}uhHp4=yUmg;2(wN`g;z2KRDCSosLO=GIqefz6h&t_*=*u{k-pVse` zuAWTcPQ-v}q}9Js$tfAXl$E^QjfbVw}(7cqu^t?7rbB3Xoh_%5E zkE&SU_-?zGknC+_-;Q@3@h%}rJ2JcsjeUrPsP262j@=-u79KO$(#!UsL`0puoi1Mh zv!3QKl}DoOSx(wkp5fqjS#p<{uDJ~BU&_{dY7c9J1lJGrn&yZl^D?a$mXn0YOsC^Z O=?mCI^t~6C#9^o0||2^eKvEKJ)6#-* zK}(CGr4^*DeOX&OSVzZKSNEE(E>%wt#xMH%zao**NMsBW8E0S+f|cL)p&dz0OSEcApjHrKn?&D0YD7^Q~|&{ z0H_CmR082WflyB%G!O_)1VZCBHxmf0APA#*n_EDz1Oy8~@GS^_0Kv9x{56FoJc79i z1mSD&sESA|CKBmHV#js?a~F}=N+Pw9NbMvNgG8z{F)1@K=`}IwAd~52avPbc@{CS5{V*mzS58mKGNm7Zw)g=jZ3< z=4NMSXJ%$35{XzW7Kubcp>TS7dTMHFa&mHFVnQGg@cI1l@$s>-vC+{{9*@W6ayc9h zo6Q~>8DX(l!^6WvLqmgug98Ht{r&w+CbO@vueZ0ir>BR(V03qPcXf4jc6N5Px5Mae zX<>Z$(A(J9*U-SMs~f1T9jvJts;*{LRgF|su*=K2Wo5k5(y@{fesS?+Vd2!GAxTSd=+ZLf8N)5gu-y ze;YwTVVEzRA6oycxY-ZM`{37Al=tknymORkF2CKQD37LD%b^}MGdsClb=Q4};imkJ z^DmIBlcce8$G4tT8Km^zFrOkw23??MpJ~(92lHxbDHR0|N-sgsV^mNh8j`)vI1Awj zvb29laBp#n=9q`CeOrC0C@)B)*Qz_C75GPA zXvX{FOXAgeX#-#HU9=vdLw4HV(xT%Ic7n(D&Q+~JJ=}RBUP{vk$b~;LUR$LES!=wr zQeSP~tu3vj?nXAzpSBJUzk2H7q;||^{chvwrv-3?fR9+VO6lG^?6VQ_B0LCC4PgPIK`Sm}Rh@LnB%V%;S&pGa-dAa|=6|--W z+H#`xRI`8`TMm_Vc2?d&bmP=?7FS8No#72~5wGoS2EyupSFhE~%GwpvVFDamqSHM? ztSV%Ak@qx$Z`4Bxhw5F&yp@)@Z?ccQ@C&I~d#I6`;%pU~2}!lOXV*>3N85Ew6Su`UR?ZzaRBfBV*rwml{YU~{s?6)f?(y`;RJ~7@rtzGBrll*!v-x|wf?o(g z=0U{21P50v(ZHuqas7toT8p znT9^!cHYCO`u7XwjNH1+@66tpnc8By&$^CfFGv=shl4EwTPY*49Rh=!`@FX_|4E-C q{?=$NzV7qKX!Mbv99jD;F&nyk;=~!#HfZUq>74A`Y>Q9$#r_FMS!odf literal 0 HcmV?d00001 From ee6d8bc227180f0c492135c42d1ae9b7e2bd633b Mon Sep 17 00:00:00 2001 From: Huevos Date: Thu, 13 Jun 2024 09:56:04 +0200 Subject: [PATCH 17/62] [display390] tweak url --- data/display390/skin_display.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/display390/skin_display.xml b/data/display390/skin_display.xml index 6d45e70db6f..1d520f2880a 100644 --- a/data/display390/skin_display.xml +++ b/data/display390/skin_display.xml @@ -1,6 +1,6 @@ - + From 004195fe0b4868b09581a96e6e38a08bf385dbab Mon Sep 17 00:00:00 2001 From: Huevos Date: Thu, 13 Jun 2024 10:03:15 +0200 Subject: [PATCH 18/62] [dm9x0] add patch --- dm9x0.patch | 1817 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1817 insertions(+) create mode 100644 dm9x0.patch diff --git a/dm9x0.patch b/dm9x0.patch new file mode 100644 index 00000000000..ab2107b90a9 --- /dev/null +++ b/dm9x0.patch @@ -0,0 +1,1817 @@ +diff --git a/.github/workflows/buildbot.yml b/.github/workflows/buildbot.yml +index 0db1c7f0853..e46e714b074 100644 +--- a/.github/workflows/buildbot.yml ++++ b/.github/workflows/buildbot.yml +@@ -2,7 +2,7 @@ name: buildbot + + on: + push: +- branches: [ Developer ] ++ branches: [ Developer, dm9x0 ] + + workflow_dispatch: + +diff --git a/.github/workflows/enigma2.yml b/.github/workflows/enigma2.yml +index c681dd91b34..c955896a3ff 100644 +--- a/.github/workflows/enigma2.yml ++++ b/.github/workflows/enigma2.yml +@@ -2,12 +2,12 @@ name: Enigma2 Python 3 + + on: + push: +- branches: [ Release, Developer, FCC ] ++ branches: [ Release, Developer, FCC, dm9x0 ] + paths-ignore: + - '**/README' + - '**/DOCS' + pull_request: +- branches: [Release, Developer, FCC ] ++ branches: [Release, Developer, FCC, dm9x0 ] + paths-ignore: + - '**/README' + - '**/DOCS' +diff --git a/CI/build.sh b/CI/build.sh +index e340647b4e3..f58eeae85cd 100755 +--- a/CI/build.sh ++++ b/CI/build.sh +@@ -13,7 +13,7 @@ commit_files() { + rm -rf *.pyc + rm -rf *.pyo + rm -rf *.mo +- git checkout Developer ++ git checkout dm9x0 + ./CI/chmod.sh + ./CI/dos2unix.sh + ./CI/PEP8.sh +@@ -21,7 +21,7 @@ commit_files() { + + upload_files() { + git remote add upstream https://${GITHUB_TOKEN}@github.com/OpenViX/enigma2.git > /dev/null 2>&1 +- git push --quiet upstream Developer || echo "failed to push with error $?" ++ git push --quiet upstream dm9x0 || echo "failed to push with error $?" + } + + setup_git +diff --git a/configure.ac b/configure.ac +index 094c1ff5691..05988050c51 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -91,6 +91,8 @@ AM_CONDITIONAL(DM800, test "$BOXTYPE" == "dm800") + AM_CONDITIONAL(DM8000, test "$BOXTYPE" == "dm8000") + AM_CONDITIONAL(DM800SE, test "$BOXTYPE" == "dm800se") + AM_CONDITIONAL(DM800SEV2, test "$BOXTYPE" == "dm800sev2") ++AM_CONDITIONAL(DM900, test "$BOXTYPE" == "dm900") ++AM_CONDITIONAL(DM920, test "$BOXTYPE" == "dm920") + AM_CONDITIONAL(E3HD, test "$BOXTYPE" == "e3hd") + AM_CONDITIONAL(EBOX5000, test "$BOXTYPE" == "ebox5000") + AM_CONDITIONAL(EBOX5100, test "$BOXTYPE" == "ebox5100") +@@ -306,6 +308,17 @@ if test x"$withcolorlcd220" != xno ; then + fi + AM_CONDITIONAL(HAVE_COLORLCD220, test x"$withcolorlcd220" != xno) + ++AC_ARG_WITH(colorlcd390, ++ AS_HELP_STRING([--with-colorlcd390], [use 390x240 16bpp color display, yes or no]), ++ [[withcolorlcd390=$withval]], ++ [[withcolorlcd390=no]] ++) ++if test x"$withcolorlcd390" != xno ; then ++ AC_DEFINE(HAVE_COLORLCD390, 1,[Define when using a 390x240 color display device]) ++fi ++ ++AM_CONDITIONAL(HAVE_COLORLCD390, test x"$withcolorlcd390" != xno) ++ + AC_ARG_WITH(colorlcd400, + AS_HELP_STRING([--with-colorlcd400], [use 400x176 16bpp color display, yes or no]), + [[withcolorlcd400=$withval]], +@@ -402,6 +415,14 @@ if test `echo "$BOXTYPE" | cut -b 1-2` == "vu"; then + AC_DEFINE(FORCE_ADVANCED_REMOTE, 1,[define to fixup the input device identification when the remote control is actually an 'advanced' remote (with play/forward/rewind keys)]) + fi + ++if test "$BOXTYPE" == "dm900" -o "$BOXTYPE" == "dm920"; then ++ AC_DEFINE(CONFIG_ION, 1,[define BOX use ION Allocator]) ++ AC_DEFINE(HAVE_HDMIIN_DM, 1,[has hdmi in dm]) ++ AC_DEFINE(LCD_DM900_Y_OFFSET, 4,[define LCD Y offset for dm900 and dm920]) ++ AC_DEFINE(DREAMBOX_DUAL_TUNER, 1,[define it is dreambox dual tuner present]) ++ AC_DEFINE(FORCE_NO_BLENDING_ACCELERATION, 1,[define when the framebuffer acceleration does not have alphablending support, though the autodetection might indicate that it does]) ++fi ++ + if test `echo "$BOXTYPE" | cut -b 1-2` == "gb"; then + AC_DEFINE(KEY_PLAY_ACTUALLY_IS_KEY_PLAYPAUSE, 1,[define when rc sends a KEY_PLAY event for its KEY_PLAYPAUSE key]) + AC_DEFINE(FORCE_NO_BLENDING_ACCELERATION, 1,[define when the framebuffer acceleration does not have alphablending support, though the autodetection might indicate that it does]) +@@ -586,6 +607,7 @@ data/7segment/Makefile + data/display96/Makefile + data/display128/Makefile + data/display220/Makefile ++data/display390/Makefile + data/display400/Makefile + data/display480/Makefile + data/display720/Makefile +diff --git a/data/Makefile.am b/data/Makefile.am +index 72c31ec8d3a..123c4f64f6e 100644 +--- a/data/Makefile.am ++++ b/data/Makefile.am +@@ -41,6 +41,10 @@ if HAVE_COLORLCD220 + SUBDIRS += display220 + endif + ++if HAVE_COLORLCD390 ++SUBDIRS += display390 ++endif ++ + if HAVE_COLORLCD400 + SUBDIRS += display400 + endif +diff --git a/data/display400/skin_display.xml b/data/display400/skin_display.xml +index 55d0d8a26e7..6d45e70db6f 100644 +--- a/data/display400/skin_display.xml ++++ b/data/display400/skin_display.xml +@@ -238,24 +238,13 @@ + + + +- +- FullDate ++ ++ ShortDate + +- ++ + Format:%H:%M + +- +- +- +- +- +- +- +- +- +- + +- + + + +diff --git a/interfaces/ion.h b/interfaces/ion.h +new file mode 100644 +index 00000000000..6370495f8d0 +--- /dev/null ++++ b/interfaces/ion.h +@@ -0,0 +1,204 @@ ++/* ++ * drivers/staging/android/uapi/ion.h ++ * ++ * Copyright (C) 2011 Google, Inc. ++ * ++ * This software is licensed under the terms of the GNU General Public ++ * License version 2, as published by the Free Software Foundation, and ++ * may be copied, distributed, and modified under those terms. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ */ ++ ++#ifndef _UAPI_LINUX_ION_H ++#define _UAPI_LINUX_ION_H ++ ++#include ++#include ++ ++typedef int ion_user_handle_t; ++ ++/** ++ * enum ion_heap_types - list of all possible types of heaps ++ * @ION_HEAP_TYPE_SYSTEM: memory allocated via vmalloc ++ * @ION_HEAP_TYPE_SYSTEM_CONTIG: memory allocated via kmalloc ++ * @ION_HEAP_TYPE_CARVEOUT: memory allocated from a prereserved ++ * carveout heap, allocations are physically ++ * contiguous ++ * @ION_HEAP_TYPE_DMA: memory allocated via DMA API ++ * @ION_NUM_HEAPS: helper for iterating over heaps, a bit mask ++ * is used to identify the heaps, so only 32 ++ * total heap types are supported ++ */ ++enum ion_heap_type { ++ ION_HEAP_TYPE_SYSTEM, ++ ION_HEAP_TYPE_SYSTEM_CONTIG, ++ ION_HEAP_TYPE_CARVEOUT, ++ ION_HEAP_TYPE_CHUNK, ++ ION_HEAP_TYPE_DMA, ++ ION_HEAP_TYPE_CUSTOM, /* must be last so device specific heaps always ++ are at the end of this enum */ ++ ION_NUM_HEAPS = 16, ++}; ++ ++#define ION_HEAP_SYSTEM_MASK (1 << ION_HEAP_TYPE_SYSTEM) ++#define ION_HEAP_SYSTEM_CONTIG_MASK (1 << ION_HEAP_TYPE_SYSTEM_CONTIG) ++#define ION_HEAP_CARVEOUT_MASK (1 << ION_HEAP_TYPE_CARVEOUT) ++#define ION_HEAP_TYPE_DMA_MASK (1 << ION_HEAP_TYPE_DMA) ++ ++#define ION_NUM_HEAP_IDS sizeof(unsigned int) * 8 ++ ++/** ++ * allocation flags - the lower 16 bits are used by core ion, the upper 16 ++ * bits are reserved for use by the heaps themselves. ++ */ ++#define ION_FLAG_CACHED 1 /* mappings of this buffer should be ++ cached, ion will do cache ++ maintenance when the buffer is ++ mapped for dma */ ++#define ION_FLAG_CACHED_NEEDS_SYNC 2 /* mappings of this buffer will created ++ at mmap time, if this is set ++ caches must be managed manually */ ++ ++/** ++ * DOC: Ion Userspace API ++ * ++ * create a client by opening /dev/ion ++ * most operations handled via following ioctls ++ * ++ */ ++ ++/** ++ * struct ion_allocation_data - metadata passed from userspace for allocations ++ * @len: size of the allocation ++ * @align: required alignment of the allocation ++ * @heap_id_mask: mask of heap ids to allocate from ++ * @flags: flags passed to heap ++ * @handle: pointer that will be populated with a cookie to use to ++ * refer to this allocation ++ * ++ * Provided by userspace as an argument to the ioctl ++ */ ++struct ion_allocation_data { ++ size_t len; ++ size_t align; ++ unsigned int heap_id_mask; ++ unsigned int flags; ++ ion_user_handle_t handle; ++}; ++ ++/** ++ * struct ion_fd_data - metadata passed to/from userspace for a handle/fd pair ++ * @handle: a handle ++ * @fd: a file descriptor representing that handle ++ * ++ * For ION_IOC_SHARE or ION_IOC_MAP userspace populates the handle field with ++ * the handle returned from ion alloc, and the kernel returns the file ++ * descriptor to share or map in the fd field. For ION_IOC_IMPORT, userspace ++ * provides the file descriptor and the kernel returns the handle. ++ */ ++struct ion_fd_data { ++ ion_user_handle_t handle; ++ int fd; ++}; ++ ++/** ++ * struct ion_handle_data - a handle passed to/from the kernel ++ * @handle: a handle ++ */ ++struct ion_handle_data { ++ ion_user_handle_t handle; ++}; ++ ++/** ++ * struct ion_custom_data - metadata passed to/from userspace for a custom ioctl ++ * @cmd: the custom ioctl function to call ++ * @arg: additional data to pass to the custom ioctl, typically a user ++ * pointer to a predefined structure ++ * ++ * This works just like the regular cmd and arg fields of an ioctl. ++ */ ++struct ion_custom_data { ++ unsigned int cmd; ++ unsigned long arg; ++}; ++ ++struct ion_phys_data { ++ ion_user_handle_t handle; ++ unsigned long addr; ++ size_t len; ++}; ++ ++#define ION_IOC_MAGIC 'I' ++ ++/** ++ * DOC: ION_IOC_ALLOC - allocate memory ++ * ++ * Takes an ion_allocation_data struct and returns it with the handle field ++ * populated with the opaque handle for the allocation. ++ */ ++#define ION_IOC_ALLOC _IOWR(ION_IOC_MAGIC, 0, \ ++ struct ion_allocation_data) ++ ++/** ++ * DOC: ION_IOC_FREE - free memory ++ * ++ * Takes an ion_handle_data struct and frees the handle. ++ */ ++#define ION_IOC_FREE _IOWR(ION_IOC_MAGIC, 1, struct ion_handle_data) ++ ++/** ++ * DOC: ION_IOC_MAP - get a file descriptor to mmap ++ * ++ * Takes an ion_fd_data struct with the handle field populated with a valid ++ * opaque handle. Returns the struct with the fd field set to a file ++ * descriptor open in the current address space. This file descriptor ++ * can then be used as an argument to mmap. ++ */ ++#define ION_IOC_MAP _IOWR(ION_IOC_MAGIC, 2, struct ion_fd_data) ++ ++/** ++ * DOC: ION_IOC_SHARE - creates a file descriptor to use to share an allocation ++ * ++ * Takes an ion_fd_data struct with the handle field populated with a valid ++ * opaque handle. Returns the struct with the fd field set to a file ++ * descriptor open in the current address space. This file descriptor ++ * can then be passed to another process. The corresponding opaque handle can ++ * be retrieved via ION_IOC_IMPORT. ++ */ ++#define ION_IOC_SHARE _IOWR(ION_IOC_MAGIC, 4, struct ion_fd_data) ++ ++/** ++ * DOC: ION_IOC_IMPORT - imports a shared file descriptor ++ * ++ * Takes an ion_fd_data struct with the fd field populated with a valid file ++ * descriptor obtained from ION_IOC_SHARE and returns the struct with the handle ++ * filed set to the corresponding opaque handle. ++ */ ++#define ION_IOC_IMPORT _IOWR(ION_IOC_MAGIC, 5, struct ion_fd_data) ++ ++/** ++ * DOC: ION_IOC_SYNC - syncs a shared file descriptors to memory ++ * ++ * Deprecated in favor of using the dma_buf api's correctly (syncing ++ * will happend automatically when the buffer is mapped to a device). ++ * If necessary should be used after touching a cached buffer from the cpu, ++ * this will make the buffer in memory coherent. ++ */ ++#define ION_IOC_SYNC _IOWR(ION_IOC_MAGIC, 7, struct ion_fd_data) ++ ++/** ++ * DOC: ION_IOC_CUSTOM - call architecture specific ion ioctl ++ * ++ * Takes the argument of the architecture specific ioctl to call and ++ * passes appropriate userdata for that ioctl ++ */ ++#define ION_IOC_CUSTOM _IOWR(ION_IOC_MAGIC, 6, struct ion_custom_data) ++ ++#define ION_IOC_PHYS _IOWR(ION_IOC_MAGIC, 8, struct ion_phys_data) ++ ++#endif /* _UAPI_LINUX_ION_H */ +diff --git a/lib/driver/avswitch.cpp b/lib/driver/avswitch.cpp +index 955c6c59fd7..7d601b56f40 100644 +--- a/lib/driver/avswitch.cpp ++++ b/lib/driver/avswitch.cpp +@@ -255,7 +255,12 @@ int eAVSwitch::getResolutionY(int defaultVal, int flags) const + int eAVSwitch::getFrameRate(int defaultVal, int flags) const + { + ++#ifdef DREAMBOX ++ const char *fileName = "/proc/stb/vmpeg/0/fallback_framerate"; ++#else + const char *fileName = "/proc/stb/vmpeg/0/framerate"; ++#endif ++ + int value = 0; + int ret = CFile::parseInt(&value, fileName, __MODULE__, flags); + if (ret != 0) +diff --git a/lib/dvb/decoder.cpp b/lib/dvb/decoder.cpp +index 95f5609dd9c..4fb21ec1667 100644 +--- a/lib/dvb/decoder.cpp ++++ b/lib/dvb/decoder.cpp +@@ -147,7 +147,11 @@ int eDVBAudio::startPid(int pid, int type) + bypass = 0x40; + break; + case aDDP: ++#ifdef DREAMBOX ++ bypass = 7; ++#else + bypass = 0x22; ++#endif + break; + } + +@@ -341,7 +345,11 @@ eDVBVideo::eDVBVideo(eDVBDemux *demux, int dev, bool fcc_enable) + #define VIDEO_STREAMTYPE_MPEG4_Part2 4 + #define VIDEO_STREAMTYPE_VC1_SM 5 + #define VIDEO_STREAMTYPE_MPEG1 6 ++#ifdef DREAMBOX ++#define VIDEO_STREAMTYPE_H265_HEVC 22 ++#else + #define VIDEO_STREAMTYPE_H265_HEVC 7 ++#endif + #define VIDEO_STREAMTYPE_AVS 16 + #define VIDEO_STREAMTYPE_AVS2 40 + +diff --git a/lib/dvb/fbc.cpp b/lib/dvb/fbc.cpp +index 6d8b06d3cc2..56a4c4f98d3 100644 +--- a/lib/dvb/fbc.cpp ++++ b/lib/dvb/fbc.cpp +@@ -13,6 +13,24 @@ + + int eFBCTunerManager::ReadProcInt(int fe_index, const std::string & entry) + { ++#ifdef DREAMBOX ++ std::string value; ++ std::stringstream path; ++ std::ifstream file; ++ ++ path << "/proc/stb/frontend/" << fe_index << "/" << entry; ++ file.open(path.str().c_str()); ++ ++ if(!file.is_open()) ++ return(-1); ++ ++ file >> value; ++ ++ if(file.bad() || file.fail()) ++ return(-1); ++ eDebug("[eFBCTunerManager::ReadProcInt] val: %s", value.c_str()); ++ return(value == "A" ? 0 : 1); ++#else + int value; + std::stringstream path; + std::ifstream file; +@@ -29,6 +47,7 @@ int eFBCTunerManager::ReadProcInt(int fe_index, const std::string & entry) + return(-1); + + return(value); ++#endif + } + + void eFBCTunerManager::WriteProcInt(int fe_index, const std::string & entry, int value) +@@ -45,6 +64,41 @@ void eFBCTunerManager::WriteProcInt(int fe_index, const std::string & entry, int + file << value; + } + ++void eFBCTunerManager::WriteProcStr(int fe_index, const std::string & entry, int value) ++{ ++ std::stringstream path; ++ std::ofstream file; ++ ++ path << "/proc/stb/frontend/" << fe_index << "/" << entry; ++ file.open(path.str().c_str()); ++ ++ if(!file.is_open()) ++ return; ++ eDebug("[eFBCTunerManager::WriteProcStr] val: %d", value); ++ file << (value == 0 ? "A" : "B"); ++} ++ ++#ifdef DREAMBOX ++void eFBCTunerManager::LoadConnectChoices(int fe_index, std::string &choices) ++{ ++ std::stringstream path; ++ std::ifstream file; ++ std::string line; ++ std::string::const_iterator it; ++ int fbc_id; ++ ++ path << "/proc/stb/frontend/" << fe_index << "/input_choices"; ++ file.open(path.str().c_str()); ++ ++ if(!file.is_open()) ++ return; ++ ++ file >> choices; ++ ++ if(file.bad() || file.fail()) ++ return; ++} ++#else + void eFBCTunerManager::LoadConnectChoices(int fe_index, connect_choices_t &choices) + { + std::stringstream path; +@@ -77,6 +131,7 @@ void eFBCTunerManager::LoadConnectChoices(int fe_index, connect_choices_t &choic + } + } + } ++#endif + + DEFINE_REF(eFBCTunerManager); + +@@ -93,7 +148,7 @@ eFBCTunerManager::eFBCTunerManager(ePtr res_mgr) + eSmartPtrList &frontends = m_res_mgr->m_frontend; + eSmartPtrList &frontends_simulate = m_res_mgr->m_simulate_frontend; + tuner_t tuner; +- int fe_id, fbc_prev_set_id; ++ int fe_id, fbc_prev_set_id; + + if(!m_instance) + m_instance = this; +@@ -109,22 +164,34 @@ eFBCTunerManager::eFBCTunerManager(ePtr res_mgr) + continue; // ignore DVB-C/T FBC tuners because they need no special treatment + + fe_id = FESlotID(it); +- tuner.set_id = ReadProcInt(fe_id, "fbc_set_id"); + ++#ifdef DREAMBOX ++ tuner.set_id = ReadProcInt(fe_id, "input"); ++#else ++ tuner.set_id = ReadProcInt(fe_id, "fbc_set_id"); ++#endif + if(tuner.set_id >= 0) + { + if(fbc_prev_set_id != tuner.set_id) + { + fbc_prev_set_id = tuner.set_id; ++#ifdef DREAMBOX ++ LoadConnectChoices(fe_id, tuner.input_choices); ++#else + LoadConnectChoices(fe_id, tuner.connect_choices); ++#endif + tuner.id = 0; + } +- ++#ifdef DREAMBOX ++ tuner.is_root = tuner.id < 2; ++#else + if(tuner.id < (int)tuner.connect_choices.size()) + tuner.is_root = tuner.connect_choices.test(tuner.id); + else + tuner.is_root = false; + ++#endif ++ + tuner.default_id = tuner.is_root ? tuner.id : 0; + m_tuners[fe_id] = tuner; + SetProcFBCID(fe_id, tuner.default_id, false); +@@ -141,8 +208,14 @@ eFBCTunerManager::eFBCTunerManager(ePtr res_mgr) + if (!(it->m_frontend->supportsDeliverySystem(SYS_DVBS, false) || it->m_frontend->supportsDeliverySystem(SYS_DVBS2, false))) + continue; + ++#ifdef DREAMBOX ++ if(ReadProcInt(FESlotID(it), "input") >= 0) ++ it->m_frontend->set_FBCTuner(true); ++#else + if(ReadProcInt(FESlotID(it), "fbc_set_id") >= 0) + it->m_frontend->set_FBCTuner(true); ++#endif ++ + } + } + +@@ -154,8 +227,12 @@ eFBCTunerManager::~eFBCTunerManager() + + void eFBCTunerManager::SetProcFBCID(int fe_id, int fbc_connect, bool fbc_is_linked) + { ++#ifdef DREAMBOX ++ WriteProcStr(fe_id, "input", fbc_connect); ++#else + WriteProcInt(fe_id, "fbc_connect", fbc_connect); + WriteProcInt(fe_id, "fbc_link", fbc_is_linked ? 1 : 0); ++#endif + } + + int eFBCTunerManager::FESlotID(eDVBRegisteredFrontend *fe) +@@ -412,7 +489,7 @@ int eFBCTunerManager::IsCompatibleWith(ePtr &feparm, eDV + + if(IsSCR(*it)) + continue; +- ++ + // temporarily add this leaf to the current "linked" chain, at the tail + + fe_insert_point = GetTail(*it); +diff --git a/lib/dvb/fbc.h b/lib/dvb/fbc.h +index a479961086a..b70f9b7dfc9 100644 +--- a/lib/dvb/fbc.h ++++ b/lib/dvb/fbc.h +@@ -25,6 +25,7 @@ private: + int id; + int default_id; + connect_choices_t connect_choices; ++ std::string input_choices; + } tuner_t; + + typedef std::map tuners_t; +@@ -42,7 +43,12 @@ private: + + static int ReadProcInt(int, const std::string &); + static void WriteProcInt(int, const std::string &, int); ++ static void WriteProcStr(int, const std::string &, int); ++#ifdef DREAMBOX ++ static void LoadConnectChoices(int, std::string &); ++#else + static void LoadConnectChoices(int, connect_choices_t &); ++#endif + static void SetProcFBCID(int, int, bool); + static int FESlotID(eDVBRegisteredFrontend *); + static bool IsLinked(eDVBRegisteredFrontend *); +diff --git a/lib/dvb_ci/dvbci.cpp b/lib/dvb_ci/dvbci.cpp +index a4681b1ff39..a744ae6a70b 100644 +--- a/lib/dvb_ci/dvbci.cpp ++++ b/lib/dvb_ci/dvbci.cpp +@@ -6,6 +6,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -33,6 +34,78 @@ eDVBCIInterfaces *eDVBCIInterfaces::instance = 0; + pthread_mutex_t eDVBCIInterfaces::m_pmt_handler_lock = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; + pthread_mutex_t eDVBCIInterfaces::m_slot_lock = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; + ++static char* readInputCI(int NimNumber) ++{ ++ char id1[] = "NIM Socket"; ++ char id2[] = "Input_Name"; ++ char keys1[] = "1234567890"; ++ char keys2[] = "12ABCDabcd"; ++ char *inputName = 0; ++ char buf[256]; ++ FILE *f; ++ ++ f = fopen("/proc/bus/nim_sockets", "rt"); ++ if (f) ++ { ++ while (fgets(buf, sizeof(buf), f)) ++ { ++ char *p = strcasestr(buf, id1); ++ if (!p) ++ continue; ++ ++ p += strlen(id1); ++ p += strcspn(p, keys1); ++ if (*p && strtol(p, 0, 0) == NimNumber) ++ break; ++ } ++ ++ while (fgets(buf, sizeof(buf), f)) ++ { ++ if (strcasestr(buf, id1)) ++ break; ++ ++ char *p = strcasestr(buf, id2); ++ if (!p) ++ continue; ++ ++ p = strchr(p + strlen(id2), ':'); ++ if (!p) ++ continue; ++ ++ p++; ++ p += strcspn(p, keys2); ++ size_t len = strspn(p, keys2); ++ if (len > 0) ++ { ++ inputName = strndup(p, len); ++ break; ++ } ++ } ++ ++ fclose(f); ++ } ++ ++ return inputName; ++} ++ ++static std::string getTunerLetterDM(int NimNumber) ++{ ++ char *srcCI = readInputCI(NimNumber); ++ if (srcCI) { ++ std::string ret = std::string(srcCI); ++ free(srcCI); ++ if (ret.size() == 1){ ++ int corr = 1; ++ if (NimNumber > 7) { ++ corr = -7; ++ } ++ return ret + std::to_string(NimNumber + corr); ++ } ++ return ret; ++ } ++ return eDVBCISlot::getTunerLetter(NimNumber); ++} ++ + eDVBCIInterfaces::eDVBCIInterfaces() + : m_messagepump_thread(this,1, "dvbci"), m_messagepump_main(eApp,1, "dvbci"), m_runTimer(eTimer::create(this)) + { +@@ -69,7 +142,11 @@ eDVBCIInterfaces::eDVBCIInterfaces() + } + + for (eSmartPtrList::iterator it(m_slots.begin()); it != m_slots.end(); ++it) ++#ifdef DREAMBOX_DUAL_TUNER ++ it->setSource(getTunerLetterDM(0)); ++#else + it->setSource("A"); ++#endif + + for (int tuner_no = 0; tuner_no < 26; ++tuner_no) // NOTE: this assumes tuners are A .. Z max. + { +@@ -80,7 +157,11 @@ eDVBCIInterfaces::eDVBCIInterfaces() + if(::access(path.str().c_str(), R_OK) < 0) + break; + ++#ifdef DREAMBOX_DUAL_TUNER ++ setInputSource(tuner_no, getTunerLetterDM(tuner_no)); ++#else + setInputSource(tuner_no, eDVBCISlot::getTunerLetter(tuner_no)); ++#endif + } + + eDebug("[CI] done, found %d common interface slots", num_ci); +@@ -310,7 +391,11 @@ void eDVBCIInterfaces::ciRemoved(eDVBCISlot *slot) + if (slot->linked_next) + slot->linked_next->setSource(slot->current_source); + else // last CI in chain ++#ifdef DREAMBOX_DUAL_TUNER ++ setInputSource(slot->current_tuner, getTunerLetterDM(slot->current_tuner)); ++#else + setInputSource(slot->current_tuner, eDVBCISlot::getTunerLetter(slot->current_tuner)); ++#endif + slot->linked_next = 0; + slot->use_count=0; + slot->plugged=true; +@@ -581,7 +666,11 @@ void eDVBCIInterfaces::recheckPMTHandlers() + if (tunernum != -1) + { + setInputSource(tunernum, ci_source.str()); ++#ifdef DREAMBOX_DUAL_TUNER ++ ci_it->setSource(getTunerLetterDM(tunernum)); ++#else + ci_it->setSource(eDVBCISlot::getTunerLetter(tunernum)); ++#endif + } + else + { +@@ -711,7 +800,11 @@ void eDVBCIInterfaces::removePMTHandler(eDVBServicePMTHandler *pmthandler) + { + case finish_use_tuner_a: + { ++#ifdef DREAMBOX_DUAL_TUNER ++ finish_source = getTunerLetterDM(0); ++#else + finish_source = "A"; ++#endif + break; + } + +@@ -734,7 +827,11 @@ void eDVBCIInterfaces::removePMTHandler(eDVBServicePMTHandler *pmthandler) + if(finish_source == "") + { + eDebug("[CI] warning: CI streaming finish mode not set, assuming \"tuner A\""); ++#ifdef DREAMBOX_DUAL_TUNER ++ finish_source = getTunerLetterDM(0); ++#else + finish_source = "A"; ++#endif + } + + slot->setSource(finish_source); +@@ -746,7 +843,11 @@ void eDVBCIInterfaces::removePMTHandler(eDVBServicePMTHandler *pmthandler) + if (slot->linked_next) + slot->linked_next->setSource(slot->current_source); + else ++#ifdef DREAMBOX_DUAL_TUNER ++ setInputSource(slot->current_tuner, getTunerLetterDM(slot->current_tuner)); ++#else + setInputSource(slot->current_tuner, eDVBCISlot::getTunerLetter(slot->current_tuner)); ++#endif + + if (base_slot != slot) + { +@@ -1134,7 +1235,11 @@ void eDVBCIInterfaces::setCIPlusRouting(int slotid) + new_input_source << "CI" << slot->getSlotID(); + + setInputSource(tunernum, new_input_source.str()); ++#ifdef DREAMBOX_DUAL_TUNER ++ slot->setSource(getTunerLetterDM(tunernum)); ++#else + slot->setSource(eDVBCISlot::getTunerLetter(tunernum)); ++#endif + + slot->setCIPlusRoutingParameter(tunernum, ciplus_routing_input, ciplus_routing_ci_input); + eDebug("[CI] CIRouting active slotid=%d tuner=%d old_input=%s old_ci_input=%s", slotid, tunernum, ciplus_routing_input.c_str(), ciplus_routing_ci_input.c_str()); +diff --git a/lib/dvb_ci/dvbci.h b/lib/dvb_ci/dvbci.h +index 511944b9770..5d11f624b45 100644 +--- a/lib/dvb_ci/dvbci.h ++++ b/lib/dvb_ci/dvbci.h +@@ -110,8 +110,8 @@ class eDVBCISlot: public iObject, public sigc::trackable + int setClockRate(const std::string &rate); + void determineCIVersion(); + int setEnabled(bool); +- static std::string getTunerLetter(int tuner_no) { return std::string(1, char(65 + tuner_no)); } + public: ++ static std::string getTunerLetter(int tuner_no) { return std::string(1, char(65 + tuner_no)); } + enum {stateRemoved, stateInserted, stateInvalid, stateResetted, stateDisabled}; + enum {versionUnknown = -1, versionCI = 0, versionCIPlus1 = 1, versionCIPlus2 = 2}; + eDVBCISlot(eMainloop *context, int nr); +diff --git a/lib/gdi/epng.cpp b/lib/gdi/epng.cpp +index 449ccc9c14e..8745975b723 100644 +--- a/lib/gdi/epng.cpp ++++ b/lib/gdi/epng.cpp +@@ -3,10 +3,15 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include ++#include ++ ++#include ++#include ++#include + + extern "C" { + #include +@@ -123,7 +128,7 @@ int loadPNG(ePtr &result, const char *filename, int accel, int cached) + + result = new gPixmap(width, height, bit_depth * channels, cached ? PixmapCache::PixmapDisposed : NULL, accel); + gUnmanagedSurface *surface = result->surface; +- ++ + png_bytep *rowptr = new png_bytep[height]; + for (unsigned int i = 0; i < height; i++) + rowptr[i] = ((png_byte*)(surface->data)) + i * surface->stride; +@@ -131,6 +136,18 @@ int loadPNG(ePtr &result, const char *filename, int accel, int cached) + + delete [] rowptr; + ++ if (color_type == PNG_COLOR_TYPE_RGBA || color_type == PNG_COLOR_TYPE_GA) ++ surface->transparent = true; ++ else ++ { ++ png_bytep trans_alpha = NULL; ++ int num_trans = 0; ++ png_color_16p trans_color = NULL; ++ ++ png_get_tRNS(png_ptr, info_ptr, &trans_alpha, &num_trans, &trans_color); ++ surface->transparent = (trans_alpha != NULL); ++ } ++ + int num_palette = -1, num_trans = -1; + if (color_type == PNG_COLOR_TYPE_PALETTE) { + if (png_get_valid(png_ptr, info_ptr, PNG_INFO_PLTE)) { +@@ -204,8 +221,8 @@ int loadJPG(ePtr &result, const char *filename, ePtr alpha, in + if (cached && (result = PixmapCache::Get(filename))) + return 0; + +- struct jpeg_decompress_struct cinfo = {}; +- struct my_error_mgr jerr = {}; ++ struct jpeg_decompress_struct cinfo; ++ struct my_error_mgr jerr; + JSAMPARRAY buffer; + int row_stride; + CFile infile(filename, "rb"); +@@ -248,13 +265,13 @@ int loadJPG(ePtr &result, const char *filename, ePtr alpha, in + } + if (grayscale) + { +- eWarning("[loadJPG] no support for grayscale + alpha at the moment"); ++ eWarning("[loadJPG] we don't support grayscale + alpha at the moment"); + alpha = 0; + } + } + + result = new gPixmap(cinfo.output_width, cinfo.output_height, grayscale ? 8 : 32, cached ? PixmapCache::PixmapDisposed : NULL); +- ++ result->surface->transparent = false; + row_stride = cinfo.output_width * cinfo.output_components; + buffer = (*cinfo.mem->alloc_sarray)((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1); + while (cinfo.output_scanline < cinfo.output_height) { +@@ -480,14 +497,12 @@ int loadImage(ePtr &result, const char *filename, int accel, int width, + return loadSVG(result, filename, cached == -1 ? 1 : cached, width, height, scale, keepAspect, align); + else if (endsWith(filename, ".jpg")) + return loadJPG(result, filename, cached == -1 ? 0 : cached); +- + return 0; + } + + int savePNG(const char *filename, gPixmap *pixmap) + { + int result; +- + { + eDebug("[ePNG] saving to %s",filename); + CFile fp(filename, "wb"); +diff --git a/lib/gdi/fb.cpp b/lib/gdi/fb.cpp +index 66c1e5e56a8..99b7f599ed0 100644 +--- a/lib/gdi/fb.cpp ++++ b/lib/gdi/fb.cpp +@@ -13,9 +13,19 @@ + #define FBIO_WAITFORVSYNC _IOW('F', 0x20, uint32_t) + #endif + +-#ifndef FBIO_BLIT ++#ifdef CONFIG_ION ++ ++#include ++#include ++#define ION_HEAP_TYPE_BMEM (ION_HEAP_TYPE_CUSTOM + 1) ++#define ION_HEAP_ID_MASK (1 << ION_HEAP_TYPE_BMEM) ++#define ACCEL_MEM_SIZE (32*1024*1024) ++ ++#elif !defined(FBIO_BLIT) ++ + #define FBIO_SET_MANUAL_BLIT _IOW('F', 0x21, __u8) + #define FBIO_BLIT 0x22 ++ + #endif + + fbClass *fbClass::instance; +@@ -38,6 +48,10 @@ fbClass::fbClass(const char *fb) + cmap.green=green; + cmap.blue=blue; + cmap.transp=trans; ++ ++#ifdef CONFIG_ION ++ int ion; ++#endif + + fbFd=open(fb, O_RDWR); + if (fbFd<0) +@@ -60,15 +74,96 @@ fbClass::fbClass(const char *fb) + goto nolfb; + } + +- available=fix.smem_len; ++ available = fix.smem_len; + m_phys_mem = fix.smem_start; + eDebug("[fb] %s: %dk video mem", fb, available/1024); ++#if defined(CONFIG_ION) ++ /* allocate accel memory here... its independent from the framebuffer */ ++ ion = open("/dev/ion", O_RDWR | O_CLOEXEC); ++ if (ion >= 0) ++ { ++ struct ion_allocation_data alloc_data; ++ struct ion_fd_data share_data; ++ struct ion_handle_data free_data; ++ struct ion_phys_data phys_data; ++ int ret; ++ unsigned char *lion; ++ ++ eDebug("[fb] Using ION allocator"); ++ ++ memset(&alloc_data, 0, sizeof(alloc_data)); ++ alloc_data.len = ACCEL_MEM_SIZE; ++ alloc_data.align = 4096; // 4k aligned ++ alloc_data.heap_id_mask = ION_HEAP_ID_MASK; ++ ret = ioctl(ion, ION_IOC_ALLOC, &alloc_data); ++ if (ret < 0) ++ { ++ eDebug("[fb] ION_IOC_ALLOC failed"); ++ eFatal("[fb] failed to allocate accel memory!!!"); ++ return; ++ } ++ ++ memset(&phys_data, 0, sizeof(phys_data)); ++ phys_data.handle = alloc_data.handle; ++ ret = ioctl(ion, ION_IOC_PHYS, &phys_data); ++ if (ret < 0) ++ { ++ eDebug("[fb] ION_IOC_PHYS failed"); ++ goto err_ioc_free; ++ } ++ ++ memset(&share_data, 0, sizeof(share_data)); ++ share_data.handle = alloc_data.handle; ++ ret = ioctl(ion, ION_IOC_SHARE, &share_data); ++ if (ret < 0) ++ { ++ eDebug("[fb] ION_IOC_SHARE failed"); ++ goto err_ioc_free; ++ } ++ ++ memset(&free_data, 0, sizeof(free_data)); ++ free_data.handle = alloc_data.handle; ++ if (ioctl(ion, ION_IOC_FREE, &free_data) < 0) ++ eDebug("[fb] ION_IOC_FREE failed"); ++ ++ m_accel_fd = share_data.fd; ++ lion=(unsigned char*)mmap(0, ACCEL_MEM_SIZE, PROT_WRITE|PROT_READ, MAP_SHARED, share_data.fd, 0); ++ ++ if (lion) ++ { ++ eDebug("[fb] %dkB available for acceleration surfaces (via ION).", ACCEL_MEM_SIZE / 1024); ++ gAccel::getInstance()->setAccelMemorySpace(lion, phys_data.addr, ACCEL_MEM_SIZE); ++ } ++ else ++ { ++ close(m_accel_fd); ++ eDebug("[fb] mmap lion failed"); ++err_ioc_free: ++ eFatal("[fb] failed to allocate accel memory via ION!!!"); ++ m_accel_fd = -1; ++ memset(&free_data, 0, sizeof(free_data)); ++ free_data.handle = alloc_data.handle; ++ if (ioctl(ion, ION_IOC_FREE, &free_data) < 0) ++ eDebug("[fb] ION_IOC_FREE %m"); ++ } ++ close(ion); ++ } ++ else ++ { ++ eFatal("[fb] failed to open ION device node! no allocate accel memory available !!"); ++ m_accel_fd = -1; ++ } ++#else ++ eDebug("[fb] %dk video mem", available/1024); + lfb=(unsigned char*)mmap(0, available, PROT_WRITE|PROT_READ, MAP_SHARED, fbFd, 0); ++#endif ++#ifndef CONFIG_ION + if (!lfb) + { +- eDebug("[fb] mmap: %m"); ++ eDebug("[fb] mmap %m"); + goto nolfb; + } ++#endif + + showConsole(0); + +@@ -80,7 +175,7 @@ nolfb: + ::close(fbFd); + fbFd = -1; + } +- eDebug("[fb] framebuffer %s not available", fb); ++ eDebug("[fb] framebuffer not available"); + return; + } + +@@ -101,6 +196,12 @@ int fbClass::showConsole(int state) + int fbClass::SetMode(int nxRes, int nyRes, int nbpp) + { + if (fbFd < 0) return -1; ++#ifdef CONFIG_ION ++ /* unmap old framebuffer with old size */ ++ if (lfb) ++ munmap(lfb, stride * screeninfo.yres_virtual); ++#endif ++ + screeninfo.xres_virtual=screeninfo.xres=nxRes; + screeninfo.yres_virtual=(screeninfo.yres=nyRes)*2; + screeninfo.height=0; +@@ -140,7 +241,7 @@ int fbClass::SetMode(int nxRes, int nyRes, int nbpp) + + if (ioctl(fbFd, FBIOPUT_VSCREENINFO, &screeninfo)<0) + { +- eDebug("[fb] FBIOPUT_VSCREENINFO: %m"); ++ eDebug("[fb] FBIOPUT_VSCREENINFO %m"); + return -1; + } + eDebug("[fb] double buffering not available."); +@@ -148,7 +249,7 @@ int fbClass::SetMode(int nxRes, int nyRes, int nbpp) + eDebug("[fb] double buffering available!"); + + m_number_of_pages = screeninfo.yres_virtual / nyRes; +- ++ + ioctl(fbFd, FBIOGET_VSCREENINFO, &screeninfo); + + if ((screeninfo.xres != (unsigned int)nxRes) || (screeninfo.yres != (unsigned int)nyRes) || +@@ -164,9 +265,17 @@ int fbClass::SetMode(int nxRes, int nyRes, int nbpp) + fb_fix_screeninfo fix; + if (ioctl(fbFd, FBIOGET_FSCREENINFO, &fix)<0) + { +- eDebug("[fb] FBIOGET_FSCREENINFO: %m"); ++ eDebug("[fb] FBIOGET_FSCREENINFO %m"); + } + stride=fix.line_length; ++ ++#ifdef CONFIG_ION ++ m_phys_mem = fix.smem_start; ++ available = fix.smem_len; ++ /* map new framebuffer */ ++ lfb=(unsigned char*)mmap(0, stride * screeninfo.yres_virtual, PROT_WRITE|PROT_READ, MAP_SHARED, fbFd, 0); ++#endif ++ + memset(lfb, 0, stride*yRes); + blit(); + return 0; +@@ -197,14 +306,20 @@ int fbClass::waitVSync() + void fbClass::blit() + { + if (fbFd < 0) return; ++#if !defined(CONFIG_ION) + if (m_manual_blit == 1) { + if (ioctl(fbFd, FBIO_BLIT) < 0) +- eDebug("[fb] FBIO_BLIT: %m"); ++ eDebug("[fb] FBIO_BLIT %m"); + } ++#endif + } + + fbClass::~fbClass() + { ++#ifdef CONFIG_ION ++ if (m_accel_fd > -1) ++ close(m_accel_fd); ++#endif + if (lfb) + { + msync(lfb, available, MS_SYNC); +@@ -252,21 +367,26 @@ void fbClass::unlock() + + void fbClass::enableManualBlit() + { +- unsigned char tmp = 1; + if (fbFd < 0) return; ++#ifndef CONFIG_ION ++ unsigned char tmp = 1; + if (ioctl(fbFd,FBIO_SET_MANUAL_BLIT, &tmp)<0) +- eDebug("[fb] enable FBIO_SET_MANUAL_BLIT: %m"); ++ eDebug("[fb] FBIO_SET_MANUAL_BLIT %m"); + else + m_manual_blit = 1; ++#endif + } + + void fbClass::disableManualBlit() + { ++#ifndef CONFIG_ION + unsigned char tmp = 0; + if (fbFd < 0) return; + if (ioctl(fbFd,FBIO_SET_MANUAL_BLIT, &tmp)<0) +- eDebug("[fb] disable FBIO_SET_MANUAL_BLIT: %m"); ++ eDebug("[fb] FBIO_SET_MANUAL_BLIT %m"); + else + m_manual_blit = 0; ++#endif + } + ++ +diff --git a/lib/gdi/fb.h b/lib/gdi/fb.h +index 0eb04915dce..6656dd84c57 100644 +--- a/lib/gdi/fb.h ++++ b/lib/gdi/fb.h +@@ -29,6 +29,9 @@ public: + #else + public: + unsigned char *lfb; ++#ifdef CONFIG_ION ++ int m_accel_fd; ++#endif + void enableManualBlit(); + void disableManualBlit(); + int showConsole(int state); +diff --git a/lib/gdi/gfbdc.cpp b/lib/gdi/gfbdc.cpp +index 19964401458..ffaf9873c4e 100644 +--- a/lib/gdi/gfbdc.cpp ++++ b/lib/gdi/gfbdc.cpp +@@ -15,7 +15,7 @@ + #include + #endif + +-#if defined(CONFIG_HISILICON_FB) ++#if defined(CONFIG_ION) || defined(CONFIG_HISILICON_FB) + #include + + extern void bcm_accel_blit( +@@ -25,17 +25,18 @@ extern void bcm_accel_blit( + int dst_x, int dst_y, int dwidth, int dheight, + int pal_addr, int flags); + #endif +- + #ifdef HAVE_HISILICON_ACCEL + extern void dinobot_accel_register(void *p1,void *p2); + extern void dinibot_accel_notify(void); + #endif ++ + gFBDC::gFBDC() + { + fb=new fbClass; +- ++#ifndef CONFIG_ION + if (!fb->Available()) + eFatal("[gFBDC] no framebuffer available"); ++#endif + + int xres; + int yres; +@@ -171,9 +172,34 @@ void gFBDC::exec(const gOpcode *o) + gles_do_animation(); + else + fb->blit(); ++ gles_flush(); + #else + fb->blit(); + #endif ++#ifdef CONFIG_ION ++ if (surface_back.data_phys) ++ { ++ gUnmanagedSurface s(surface); ++ surface = surface_back; ++ surface_back = s; ++ ++ fb->waitVSync(); ++ if (surface.data_phys > surface_back.data_phys) ++ { ++ fb->setOffset(0); ++ } ++ else ++ { ++ fb->setOffset(surface_back.y); ++ } ++ bcm_accel_blit( ++ surface_back.data_phys, surface_back.x, surface_back.y, surface_back.stride, 0, ++ surface.data_phys, surface.x, surface.y, surface.stride, ++ 0, 0, surface.x, surface.y, ++ 0, 0, surface.x, surface.y, ++ 0, 0); ++ } ++#endif + #if defined(CONFIG_HISILICON_FB) + if(islocked()==0) + { +@@ -198,7 +224,7 @@ void gFBDC::exec(const gOpcode *o) + gles_set_buffer((unsigned int *)surface.data); + gles_set_animation(1, o->parm.setShowHideInfo->point.x(), o->parm.setShowHideInfo->point.y(), o->parm.setShowHideInfo->size.width(), o->parm.setShowHideInfo->size.height()); + #endif +- break; ++ break; + } + case gOpcode::sendHide: + { +@@ -209,16 +235,28 @@ void gFBDC::exec(const gOpcode *o) + gles_set_buffer((unsigned int *)surface.data); + gles_set_animation(0, o->parm.setShowHideInfo->point.x(), o->parm.setShowHideInfo->point.y(), o->parm.setShowHideInfo->size.width(), o->parm.setShowHideInfo->size.height()); + #endif +- break; ++ break; + } + #ifdef USE_LIBVUGLES2 ++ case gOpcode::sendShowItem: ++ { ++ gles_set_buffer((unsigned int *)surface.data); ++ gles_set_animation_listbox(o->parm.setShowItemInfo->dir, o->parm.setShowItemInfo->point.x(), o->parm.setShowItemInfo->point.y(), o->parm.setShowItemInfo->size.width(), o->parm.setShowItemInfo->size.height()); ++ delete o->parm.setShowItemInfo; ++ break; ++ } ++ case gOpcode::setFlush: ++ { ++ gles_set_flush(o->parm.setFlush->enable); ++ delete o->parm.setFlush; ++ break; ++ } + case gOpcode::setView: + { + gles_viewport(o->parm.setViewInfo->size.width(), o->parm.setViewInfo->size.height(), fb->Stride()); +- break; ++ break; + } + #endif +- + default: + gDC::exec(o); + break; +@@ -257,10 +295,14 @@ void gFBDC::setResolution(int xres, int yres, int bpp) + #endif + ) + return; +- ++#ifndef CONFIG_ION + if (gAccel::getInstance()) + gAccel::getInstance()->releaseAccelMemorySpace(); +- ++#else ++ gRC *grc = gRC::getInstance(); ++ if (grc) ++ grc->lock(); ++#endif + fb->SetMode(xres, yres, bpp); + + surface.x = xres; +@@ -290,12 +332,14 @@ void gFBDC::setResolution(int xres, int yres, int bpp) + surface_back.data_phys = 0; + } + +- eDebug("[gFBDC] resolution: %dx%dx%d stride=%d, %dkB available for acceleration surfaces.", +- surface.x, surface.y, surface.bpp, fb->Stride(), (fb->Available() - fb_size)/1024); ++ eDebug("[gFBDC] resolution: %d x %d x %d (stride: %d) pages: %d", surface.x, surface.y, surface.bpp, fb->Stride(), fb->getNumPages()); + ++#ifndef CONFIG_ION ++ /* accel is already set in fb.cpp */ ++ eDebug("[gFBDC] %dkB available for acceleration surfaces.", (fb->Available() - fb_size)/1024); + if (gAccel::getInstance()) + gAccel::getInstance()->setAccelMemorySpace(fb->lfb + fb_size, surface.data_phys + fb_size, fb->Available() - fb_size); +- ++#endif + #ifdef HAVE_HISILICON_ACCEL + dinobot_accel_register(&surface,&surface_back); + #endif +@@ -318,6 +362,11 @@ void gFBDC::setResolution(int xres, int yres, int bpp) + #endif + + m_pixmap = new gPixmap(&surface); ++ ++#ifdef CONFIG_ION ++ if (grc) ++ grc->unlock(); ++#endif + } + + void gFBDC::saveSettings() +diff --git a/lib/gdi/grc.h b/lib/gdi/grc.h +index 2c218c56167..c2df1bb42f5 100644 +--- a/lib/gdi/grc.h ++++ b/lib/gdi/grc.h +@@ -259,6 +259,11 @@ public: + virtual ~gRC(); + + void submit(const gOpcode &o); ++ ++#ifdef CONFIG_ION ++ void lock(); ++ void unlock(); ++#endif + + sigc::signal notify; + +diff --git a/lib/gdi/lcd.cpp b/lib/gdi/lcd.cpp +index f86e2d644f3..1b39b34407a 100644 +--- a/lib/gdi/lcd.cpp ++++ b/lib/gdi/lcd.cpp +@@ -30,10 +30,13 @@ eLCD *eLCD::getInstance() + + void eLCD::setSize(int xres, int yres, int bpp) + { ++ _stride = xres * bpp / 8; ++ _buffer = new unsigned char[xres * yres * bpp / 8]; ++#ifdef LCD_DM900_Y_OFFSET ++ xres -= LCD_DM900_Y_OFFSET; ++#endif + res = eSize(xres, yres); +- _buffer = new unsigned char[xres * yres * bpp/8]; +- memset(_buffer, 0, res.height() * res.width() * bpp / 8); +- _stride = res.width() * bpp / 8; ++ memset(_buffer, 0, xres * yres * bpp / 8); + eDebug("[eLCD] (%dx%dx%d) buffer %p %d bytes, stride %d", xres, yres, bpp, _buffer, xres * yres * bpp / 8, _stride); + } + +@@ -399,7 +402,20 @@ void eDBoxLCD::update() + } + else + { ++#if defined(LCD_DM900_Y_OFFSET) ++ unsigned char gb_buffer[_stride * res.height()]; ++ for (int offset = 0; offset < ((_stride * res.height()) >> 2); offset++) ++ { ++ unsigned int src = 0; ++ if (offset % (_stride >> 2) >= LCD_DM900_Y_OFFSET) ++ src = ((unsigned int *)_buffer)[offset - LCD_DM900_Y_OFFSET]; ++ // blue red green low green high ++ ((unsigned int *)gb_buffer)[offset] = ((src >> 3) & 0x001F001F) | ((src << 3) & 0xF800F800) | ((src >> 8) & 0x00E000E0) | ((src << 8) & 0x07000700); ++ } ++ write(lcdfd, gb_buffer, _stride * res.height()); ++#else + write(lcdfd, _buffer, _stride * res.height()); ++#endif + } + } + else /* lcd_type == 1 */ +@@ -437,4 +453,4 @@ void eDBoxLCD::update() + void eDBoxLCD::dumpLCD(bool png) + { + return; +-} ++} +\ No newline at end of file +diff --git a/lib/python/Components/AVSwitch.py b/lib/python/Components/AVSwitch.py +index 3b3228792f3..18a40f551fc 100644 +--- a/lib/python/Components/AVSwitch.py ++++ b/lib/python/Components/AVSwitch.py +@@ -44,6 +44,12 @@ class AVSwitch: + "multi": {50: "2160p50", 60: "2160p"}, + "auto": {50: "2160p50", 60: "2160p", 24: "2160p24"}} + ++ if SystemInfo["boxtype"] in ("dm900", "dm920"): ++ rates["2160p"] = {"50Hz": {50: "2160p50"}, ++ "60Hz": {60: "2160p60"}, ++ "multi": {50: "2160p50", 60: "2160p60"}, ++ "auto": {50: "2160p50", 60: "2160p60", 24: "2160p24"}} ++ + rates["PC"] = { + "1024x768": {60: "1024x768"}, # not possible on DM7025 + "800x600": {60: "800x600"}, # also not possible +@@ -107,7 +113,6 @@ class AVSwitch: + self.on_hotplug("HDMI") # Must be HDMI. + + # Check if a high-level mode with a given rate is available. +- # + def isModeAvailable(self, port, mode, rate): + rateNew = self.rates[mode][rate] + for modeNew in rateNew.values(): +@@ -222,7 +227,7 @@ class AVSwitch: + ratelist = [] + for rate in rates: + if rate == "auto": +- if SystemInfo["Has24hz"]: ++ if SystemInfo["Has24hz"] or SystemInfo["boxtype"] in ("dm900", "dm920"): + ratelist.append((rate, mode == "2160p30" and "auto (25Hz/30Hz/24Hz)" or "auto (50Hz/60Hz/24Hz)")) + else: + ratelist.append((rate, rate == "multi" and (mode == "2160p30" and "multi (25Hz/30Hz)" or "multi (50Hz/60Hz)") or rate)) +@@ -270,8 +275,11 @@ class AVSwitch: + else: + wss = "auto" + print(f"[AVSwitch] setting wss:{wss} configElement.value:{configElement.value}") +- with open("/proc/stb/denc/0/wss", "w") as fd: +- fd.write(wss) ++ try: ++ with open("/proc/stb/denc/0/wss", "w") as fd: ++ fd.write(wss) ++ except (IOError, OSError): ++ pass + + def setPolicy43(self, configElement): + print(f"[AVSwitch] setting policy43:{configElement.value}") +@@ -634,6 +642,7 @@ def InitAVSwitch(): + config.av.autovolume.addNotifier(setAutoVolume) + else: + config.av.autovolume = ConfigNothing() ++ + if SystemInfo["supportPcmMultichannel"]: + def setPCMMultichannel(configElement): + open(SystemInfo["supportPcmMultichannel"], "w").write(configElement.value and "enable" or "disable") +diff --git a/lib/python/Components/About.py b/lib/python/Components/About.py +index bf5a28f805a..a81a96484a3 100644 +--- a/lib/python/Components/About.py ++++ b/lib/python/Components/About.py +@@ -1,10 +1,13 @@ +-from sys import modules, version_info +-from os import path as ospath +-from time import time +-import socket + import fcntl ++import socket + import struct + ++from os import path as ospath ++from os.path import join as pathjoin ++from sys import modules, version_info ++from time import time ++from Tools.Directories import fileExists, resolveFilename, SCOPE_LIBDIR ++ + from enigma import getEnigmaVersionString + + +@@ -69,7 +72,12 @@ def getChipSetString(): + try: + return str(open("/proc/stb/info/chipset").read().lower().replace("\n", "").replace("brcm", "").replace("bcm", "")) + except: +- return _("unavailable") ++ if fileExists("/proc/stb/info/model"): ++ getModel = str(open("/proc/stb/info/model").read()) ++ if getModel[0:5] in ("dm900", "dm920"): ++ return "7252s" ++ else: ++ return "unknown" + + + def getCPUSpeedMHzInt(): +@@ -110,7 +118,7 @@ def getCPUSpeedString(): + else: + cpu_speed = "%s MHz" % str(int(cpu_speed)) + return cpu_speed +- return _("unavailable") ++ return "unknown" + + + def getCPUArch(): +diff --git a/lib/python/Components/Harddisk.py b/lib/python/Components/Harddisk.py +index 30c2c8a8218..9836825bcf3 100644 +--- a/lib/python/Components/Harddisk.py ++++ b/lib/python/Components/Harddisk.py +@@ -4,7 +4,7 @@ from fcntl import ioctl + from time import sleep, time + + from enigma import eTimer +-from Components.SystemInfo import SystemInfo ++from Components.SystemInfo import SystemInfo, BoxInfo + import Components.Task + from Tools.CList import CList + +@@ -632,6 +632,7 @@ class HarddiskManager: + rootMajor = None + # rootMinor = None + # print("[Harddisk] DEBUG: rootMajor = '%s', rootMinor = '%s'" % (rootMajor, rootMinor)) ++ boxModel = BoxInfo.getItem("model") + for device in sorted(listdir("/sys/block")): + try: + physicalDevice = ospath.realpath(ospath.join("/sys/block", device, "device")) +@@ -644,18 +645,24 @@ class HarddiskManager: + print("[Harddisk] Error: Device '%s' (%s) does not appear to have valid device numbers!" % (device, physicalDevice)) + continue + devMajor = int(data.split(":")[0]) ++ devMinor = int(data.split(":")[1]) + if devMajor in blacklistedDisks: + # print("[Harddisk] DEBUG: Major device number '%s' for device '%s' (%s) is blacklisted." % (devMajor, device, physicalDevice)) + continue +- if devMajor == 179 and not SystemInfo["HasSDnomount"]: # Lets handle Zgemma SD card mounts - uses SystemInfo to determine SDcard status +- # print("[Harddisk] DEBUG: Major device number '%s' for device '%s' (%s) doesn't have 'HasSDnomount' set." % (devMajor, device, physicalDevice)) +- continue +- if devMajor == 179 and devMajor == rootMajor and not SystemInfo["HasSDnomount"][0]: +- # print("[Harddisk] DEBUG: Major device number '%s' for device '%s' (%s) is the root disk." % (devMajor, device, physicalDevice)) +- continue +- if SystemInfo["HasSDnomount"] and device.startswith("%s" % (SystemInfo["HasSDnomount"][1])) and SystemInfo["HasSDnomount"][0]: +- # print("[Harddisk] DEBUG: Major device number '%s' for device '%s' (%s) starts with 'mmcblk0' and has 'HasSDnomount' set." % (devMajor, device, physicalDevice)) +- continue ++ print(f"[Harddisk] DEBUG: boxModel:{boxModel} device:{device} devMajor = '{devMajor}', devMinor = '{devMinor}'") ++ if devMajor == 179 and boxModel in ("dm900", "dm920"): ++ if devMinor != 0: ++ continue ++ else: ++ if devMajor == 179 and not SystemInfo["HasSDnomount"]: # Lets handle Zgemma SD card mounts - uses SystemInfo to determine SDcard status ++ # print(f"[Harddisk] DEBUG: Major device number '{devMajor,}' for device '{device}' ({physicalDevice}) doesn't have 'HasSDnomount' set.") ++ continue ++ if devMajor == 179 and devMajor == rootMajor and not SystemInfo["HasSDnomount"][0]: ++ # print(f"[Harddisk] DEBUG: Major device number '{devMajor} for device '{device} ({physicalDevice}) is the root disk.") ++ continue ++ if SystemInfo["HasSDnomount"] and device.startswith(f"{SystemInfo['HasSDnomount'][1]}") and SystemInfo["HasSDnomount"][0]: ++ # print("f[Harddisk] DEBUG: Major device number '{devMajor} for device '{device}' ({physicalDevice}) starts with 'mmcblk0' and has 'HasSDnomount' set.") ++ continue + description = self.getUserfriendlyDeviceName(device, physicalDevice) + isCdrom = devMajor in opticalDisks or device.startswith("sr") + if isCdrom: +@@ -699,6 +706,8 @@ class HarddiskManager: + # self.partitions.append(Partition(mountpoint = self.getMountpoint(device), description = description, force_mounted, device = device)) + # print("[Harddisk] DEBUG: Partition(mountpoint=%s, description=%s, force_mounted=True, device=%s)" % (self.getMountpoint(device), description, device)) + for partition in partitions: ++ if devMajor == 179 and boxModel in ("dm900", "dm920") and partition != "mmcblk0p3": ++ continue + description = self.getUserfriendlyDeviceName(partition, physicalDevice) + print("[Harddisk] Found partition '%s', description='%s', device='%s'." % (partition, description, physicalDevice)) + # part = Partition(mountpoint=self.getMountpoint(partition), description=description, force_mounted=True, device=partition) +diff --git a/lib/python/Components/Lcd.py b/lib/python/Components/Lcd.py +index 2fb9294ac49..501e124b070 100644 +--- a/lib/python/Components/Lcd.py ++++ b/lib/python/Components/Lcd.py +@@ -351,7 +351,10 @@ def InitLcd(): + def setLCDminitvfps(configElement): + ilcd.setLCDMiniTVFPS(configElement.value) + +- standby_default = 0 ++ if SystemInfo["boxtype"] in ('dm900', 'dm920'): ++ standby_default = 4 ++ else: ++ standby_default = 0 + + if not ilcd.isOled(): + config.lcd.contrast = ConfigSlider(default=5, limits=(0, 20)) +diff --git a/lib/python/Components/NimManager.py b/lib/python/Components/NimManager.py +index 2ecd94c3f84..c13cbf87463 100644 +--- a/lib/python/Components/NimManager.py ++++ b/lib/python/Components/NimManager.py +@@ -1,7 +1,7 @@ + from os import access, path, F_OK + + from Components.About import about +-from Components.SystemInfo import SystemInfo ++from Components.SystemInfo import SystemInfo, MODEL + from Tools.BoundFunction import boundFunction + from Tools.Directories import fileReadXML + +@@ -535,8 +535,8 @@ class NIM: + sattype = None + + self.slot = slot +- self.type = sattype +- self.description = description ++ self.type = "DVB-S2X" if "45308X" in description.upper() and MODEL in ("dm900", "dm920") else sattype ++ self.description = "%s FBC" % description if "45308X" in description.upper() and MODEL in ("dm900", "dm920") else description + self.number_of_slots = number_of_slots + self.has_outputs = has_outputs + self.internally_connectable = internally_connectable +@@ -962,7 +962,7 @@ class NimManager: + entry["supports_blind_scan"] = False + + entry["fbc"] = [0, 0, 0] # not fbc +- if entry["name"] and ("fbc" in entry["name"].lower() or (entry["name"] in SystemInfo["HasFBCtuner"] and entry["frontend_device"] is not None and access("/proc/stb/frontend/%d/fbc_id" % entry["frontend_device"], F_OK))): ++ if entry["name"] and ("fbc" in entry["name"].lower() or ("45308X" in entry["name"].upper() and MODEL in ("dm900", "dm920")) or (entry["name"] in SystemInfo["HasFBCtuner"] and entry["frontend_device"] is not None and access("/proc/stb/frontend/%d/fbc_id" % entry["frontend_device"], F_OK))): + fbc_number += 1 + if fbc_number <= (entry["type"] and "DVB-C" in entry["type"] and 1 or 2): + entry["fbc"] = [1, fbc_number, fbc_tuner] # fbc root +diff --git a/lib/python/Components/SystemInfo.py b/lib/python/Components/SystemInfo.py +index 37119cb8750..f3ff95d3f09 100644 +--- a/lib/python/Components/SystemInfo.py ++++ b/lib/python/Components/SystemInfo.py +@@ -314,9 +314,9 @@ SystemInfo["VideoModes"] = getChipSetString() in ( # 2160p and 1080p capable ha + {"720p", "1080i"} # Widescreen modes. + ) + +-SystemInfo["FbcTunerPowerAlwaysOn"] = SystemInfo["boxtype"] in ("vusolo4k", "vuduo4k", "vuduo4kse", "vuultimo4k", "vuuno4k", "vuuno4kse") ++SystemInfo["FbcTunerPowerAlwaysOn"] = SystemInfo["boxtype"] in ("vusolo4k", "vuduo4k", "vuduo4kse", "vuultimo4k", "vuuno4k", "vuuno4kse", "dm900", "dm920") + SystemInfo["HasPhysicalLoopthrough"] = ["Vuplus DVB-S NIM(AVL2108)", "GIGA DVB-S2 NIM (Internal)"] +-SystemInfo["HasFBCtuner"] = ["Vuplus DVB-C NIM(BCM3158)", "Vuplus DVB-C NIM(BCM3148)", "Vuplus DVB-S NIM(7376 FBC)", "Vuplus DVB-S NIM(45308X FBC)", "Vuplus DVB-S NIM(45208 FBC)", "DVB-S2 NIM(45208 FBC)", "DVB-S2X NIM(45308X FBC)", "DVB-S2 NIM(45308 FBC)", "DVB-C NIM(3128 FBC)", "BCM45208", "BCM45308X", "BCM3158"] ++SystemInfo["HasFBCtuner"] = ["Vuplus DVB-C NIM(BCM3158)", "Vuplus DVB-C NIM(BCM3148)", "Vuplus DVB-S NIM(7376 FBC)", "Vuplus DVB-S NIM(45308X FBC)", "Vuplus DVB-S NIM(45208 FBC)", "DVB-S2 NIM(45208 FBC)", "DVB-S2X NIM(45308X FBC)", "DVB-S2 NIM(45308 FBC)", "DVB-C NIM(3128 FBC)", "BCM45208", "BCM45308X", "BCM45308X FBC", "BCM3158"] + SystemInfo["FCCactive"] = False + SystemInfo["rc_model"] = rc_model.getRcFolder() + SystemInfo["mapKeyInfoToEpgFunctions"] = SystemInfo["rc_model"] in ("vu", "vu2", "vu3", "vu4") # due to button limitations of the remote control +diff --git a/lib/python/Plugins/SystemPlugins/ViX/ImageManager.py b/lib/python/Plugins/SystemPlugins/ViX/ImageManager.py +index 020ff6645c7..d88c8437f7f 100644 +--- a/lib/python/Plugins/SystemPlugins/ViX/ImageManager.py ++++ b/lib/python/Plugins/SystemPlugins/ViX/ImageManager.py +@@ -586,34 +586,33 @@ class VIXImageManager(Screen): + def keyRestore6(self, ret): + MAINDEST = "%s/%s" % (self.TEMPDESTROOT, SystemInfo["imagedir"]) + print("[ImageManager] MAINDEST=%s" % MAINDEST) +- if ret == 0: +- CMD = "/usr/bin/ofgwrite -r -k '%s'" % MAINDEST # normal non multiboot receiver +- if SystemInfo["canMultiBoot"]: +- if self.multibootslot == 0 and SystemInfo["HasKexecMultiboot"]: # reset Vu Multiboot slot0 +- kz0 = SystemInfo["mtdkernel"] +- rz0 = SystemInfo["mtdrootfs"] +- CMD = "/usr/bin/ofgwrite -k%s -r%s '%s'" % (kz0, rz0, MAINDEST) # slot0 treat as kernel/root only multiboot receiver +- elif SystemInfo["HasHiSi"] and SystemInfo["canMultiBoot"][self.multibootslot]["rootsubdir"] is None: # sf8008 type receiver using SD card in multiboot +- CMD = "/usr/bin/ofgwrite -r%s -k%s -m0 '%s'" % (self.MTDROOTFS, self.MTDKERNEL, MAINDEST) +- print("[ImageManager] running commnd:%s slot = %s" % (CMD, self.multibootslot)) +- if fileExists("/boot/STARTUP") and fileExists("/boot/STARTUP_6"): +- copyfile("/boot/STARTUP_%s" % self.multibootslot, "/boot/STARTUP") +- elif SystemInfo["HasKexecMultiboot"]: +- if SystemInfo["HasKexecUSB"] and "mmcblk" not in self.MTDROOTFS: +- CMD = "/usr/bin/ofgwrite -r%s -kzImage -s'%s/linuxrootfs' -m%s '%s'" % (self.MTDROOTFS, SystemInfo["boxtype"][2:], self.multibootslot, MAINDEST) +- else: +- CMD = "/usr/bin/ofgwrite -r%s -kzImage -m%s '%s'" % (self.MTDROOTFS, self.multibootslot, MAINDEST) +- print("[ImageManager] running commnd:%s slot = %s" % (CMD, self.multibootslot)) ++ CMD = "/usr/bin/ofgwrite -r -k '%s'" % MAINDEST # normal non multiboot receiver ++ if SystemInfo["canMultiBoot"]: ++ if self.multibootslot == 0 and SystemInfo["HasKexecMultiboot"]: # reset Vu Multiboot slot0 ++ kz0 = SystemInfo["mtdkernel"] ++ rz0 = SystemInfo["mtdrootfs"] ++ CMD = "/usr/bin/ofgwrite -k%s -r%s '%s'" % (kz0, rz0, MAINDEST) # slot0 treat as kernel/root only multiboot receiver ++ elif SystemInfo["HasHiSi"] and SystemInfo["canMultiBoot"][self.multibootslot]["rootsubdir"] is None: # sf8008 type receiver using SD card in multiboot ++ CMD = "/usr/bin/ofgwrite -r%s -k%s -m0 '%s'" % (self.MTDROOTFS, self.MTDKERNEL, MAINDEST) ++ print("[ImageManager] running commnd:%s slot = %s" % (CMD, self.multibootslot)) ++ if fileExists("/boot/STARTUP") and fileExists("/boot/STARTUP_6"): ++ copyfile("/boot/STARTUP_%s" % self.multibootslot, "/boot/STARTUP") ++ elif SystemInfo["HasKexecMultiboot"]: ++ if SystemInfo["HasKexecUSB"] and "mmcblk" not in self.MTDROOTFS: ++ CMD = "/usr/bin/ofgwrite -r%s -kzImage -s'%s/linuxrootfs' -m%s '%s'" % (self.MTDROOTFS, SystemInfo["boxtype"][2:], self.multibootslot, MAINDEST) + else: +- CMD = "/usr/bin/ofgwrite -r -k -m%s '%s'" % (self.multibootslot, MAINDEST) # Normal multiboot +- elif SystemInfo["HasH9SD"]: +- if fileHas("/proc/cmdline", "root=/dev/mmcblk0p1") is True and fileExists("%s/rootfs.tar.bz2" % MAINDEST): # h9 using SD card +- CMD = "/usr/bin/ofgwrite -rmmcblk0p1 '%s'" % MAINDEST +- elif fileExists("%s/rootfs.ubi" % MAINDEST) and fileExists("%s/rootfs.tar.bz2" % MAINDEST): # h9 no SD card - build has both roots causes ofgwrite issue +- rename("%s/rootfs.tar.bz2" % MAINDEST, "%s/xx.txt" % MAINDEST) +- else: +- CMD = "/usr/bin/ofgwrite -rmtd4 -kmtd3 %s/" % MAINDEST # Xtrend ET8500 with OS2 multiboot +- print("[ImageManager] running commnd:", CMD) ++ CMD = "/usr/bin/ofgwrite -r%s -kzImage -m%s '%s'" % (self.MTDROOTFS, self.multibootslot, MAINDEST) ++ print("[ImageManager] running commnd:%s slot = %s" % (CMD, self.multibootslot)) ++ else: ++ CMD = "/usr/bin/ofgwrite -r -k -m%s '%s'" % (self.multibootslot, MAINDEST) # Normal multiboot ++ elif SystemInfo["HasH9SD"]: ++ if fileHas("/proc/cmdline", "root=/dev/mmcblk0p1") is True and fileExists("%s/rootfs.tar.bz2" % MAINDEST): # h9 using SD card ++ CMD = "/usr/bin/ofgwrite -rmmcblk0p1 '%s'" % MAINDEST ++ elif fileExists("%s/rootfs.ubi" % MAINDEST) and fileExists("%s/rootfs.tar.bz2" % MAINDEST): # h9 no SD card - build has both roots causes ofgwrite issue ++ rename("%s/rootfs.tar.bz2" % MAINDEST, "%s/xx.txt" % MAINDEST) ++ elif SystemInfo["machinebuild"] in ("dm900", "dm920"): # kernel:mmcblk0p1 root:mmcblk0p2 ++ CMD = "/usr/bin/ofgwrite -r%s '%s'" % (self.MTDROOTFS, MAINDEST) # No ofgwrite auto detection, so only flash root NOT kernel ++ print(f"[ImageManager] running command:{CMD} root:{self.MTDROOTFS}") + self.Console.ePopen(CMD, self.ofgwriteResult) + fbClass.getInstance().lock() + +diff --git a/lib/python/Plugins/SystemPlugins/ViX/MountManager.py b/lib/python/Plugins/SystemPlugins/ViX/MountManager.py +index b477a5d5bfa..6113f5e28a0 100644 +--- a/lib/python/Plugins/SystemPlugins/ViX/MountManager.py ++++ b/lib/python/Plugins/SystemPlugins/ViX/MountManager.py +@@ -10,7 +10,7 @@ from Components.ConfigList import ConfigListScreen + from Components.config import getConfigListEntry, ConfigSelection, NoSave + from Components.Console import Console + from Components.Sources.List import List +-from Components.SystemInfo import SystemInfo ++from Components.SystemInfo import SystemInfo, BoxInfo + from Screens.MessageBox import MessageBox + from Screens.Screen import Screen + from Screens.Standby import QUIT_REBOOT, TryQuitMainloop +@@ -41,6 +41,7 @@ def readFile(filename): + + def getProcPartitions(partitionList): + partitions = [] ++ boxModel = BoxInfo.getItem("model") + with open("/proc/partitions", "r") as fd: + for line in fd.readlines(): + line = line.strip() +@@ -53,21 +54,26 @@ def getProcPartitions(partitionList): + devMajor = int(devmajor) + if devMajor in blacklistedDisks: # Ignore all blacklisted devices. + continue +- if devMajor == 179: +- if not SystemInfo["HasSDnomount"]: # Only interested in h9/i55/h9combo(+dups) mmc partitions. h9combo(+dups) uses mmcblk1p[0-3]. ++ if devMajor == 179 and boxModel in ("dm900", "dm920"): ++ print("[MountManager]2 device='%s', devmajor='%s', devminor='%s'." % (device, devmajor, devminor)) ++ if device != "mmcblk0p3": + continue +- if SystemInfo["HasH9SD"]: +- if not re.search("mmcblk0p1", device): # h9/i55 only mmcblk0p1 mmc partition ++ else: ++ if devMajor == 179: ++ if not SystemInfo["HasSDnomount"]: # Only interested in h9/i55/h9combo(+dups) mmc partitions. h9combo(+dups) uses mmcblk1p[0-3]. + continue +- if SystemInfo["HasMMC"]: # With h9/i55 reject mmcblk0p1 mmc partition if root device. ++ if SystemInfo["HasH9SD"]: ++ if not re.search("mmcblk0p1", device): # h9/i55 only mmcblk0p1 mmc partition ++ continue ++ if SystemInfo["HasMMC"]: # With h9/i55 reject mmcblk0p1 mmc partition if root device. ++ continue ++ if SystemInfo["HasSDnomount"][0] and not re.search("mmcblk1p[0-3]", device): # h9combo(+dups) uses mmcblk1p[0-3] include ++ continue ++ if devMajor == 8: ++ if not re.search("sd[a-z][1-9]", device): # If storage use partitions only. ++ continue ++ if SystemInfo["HasHiSi"] and path.exists("/dev/sda4") and re.search("sd[a][1-4]", device): # Sf8008 using SDcard for slots ---> exclude + continue +- if SystemInfo["HasSDnomount"][0] and not re.search("mmcblk1p[0-3]", device): # h9combo(+dups) uses mmcblk1p[0-3] include +- continue +- if devMajor == 8: +- if not re.search("sd[a-z][1-9]", device): # If storage use partitions only. +- continue +- if SystemInfo["HasHiSi"] and path.exists("/dev/sda4") and re.search("sd[a][1-4]", device): # Sf8008 using SDcard for slots ---> exclude +- continue + if device in partitions: # If device is already in partition list ignore it. + continue + buildPartitionInfo(device, partitionList) +diff --git a/lib/python/Screens/Satconfig.py b/lib/python/Screens/Satconfig.py +index 9cb43fd3e96..b64ffc2da21 100644 +--- a/lib/python/Screens/Satconfig.py ++++ b/lib/python/Screens/Satconfig.py +@@ -858,7 +858,7 @@ class NimSelection(Screen): + if x.isCompatible("DVB-S"): + if nimConfig.configMode.value in ("loopthrough", "equal", "satposdepends"): + if x.isFBCLink(): +- text = _("FBC automatic\nconnected to") ++ text = "%s %s" % (_("FBC automatic\nconnected to"), nimmanager.getNim(int(nimConfig.connectedTo.value)).slot_name) + else: + text = "%s %s" % ({"loopthrough": _("Loop through from"), "equal": _("Equal to"), "satposdepends": _("Second cable of motorized LNB")}[nimConfig.configMode.value], + nimmanager.getNim(int(nimConfig.connectedTo.value)).slot_name) +diff --git a/lib/python/Screens/SessionGlobals.py b/lib/python/Screens/SessionGlobals.py +index 6577b9052b0..a759f04c7b9 100644 +--- a/lib/python/Screens/SessionGlobals.py ++++ b/lib/python/Screens/SessionGlobals.py +@@ -9,6 +9,7 @@ from Components.Sources.Boolean import Boolean + from Components.Sources.RecordState import RecordState + from Components.Converter.Combine import Combine + from Components.Renderer.FrontpanelLed import FrontpanelLed ++from Components.SystemInfo import MODEL + + + class SessionGlobals(Screen): +@@ -46,5 +47,9 @@ class SessionGlobals(Screen): + if nr_leds == 1: + FrontpanelLed(which=0, boolean=False, patterns=[PATTERN_OFF, PATTERN_BLINK, PATTERN_OFF, PATTERN_BLINK]).connect(combine) + elif nr_leds == 2: +- FrontpanelLed(which=0, boolean=False, patterns=[PATTERN_OFF, PATTERN_BLINK, PATTERN_ON, PATTERN_BLINK]).connect(combine) +- FrontpanelLed(which=1, boolean=False, patterns=[PATTERN_ON, PATTERN_ON, PATTERN_OFF, PATTERN_OFF]).connect(combine) ++ if MODEL in ("dm900", "dm920"): ++ FrontpanelLed(which=1, boolean=False, patterns=[PATTERN_OFF, PATTERN_BLINK, PATTERN_OFF, PATTERN_BLINK]).connect(combine) ++ FrontpanelLed(which=0, boolean=False, patterns=[PATTERN_ON, PATTERN_ON, PATTERN_OFF, PATTERN_OFF]).connect(combine) ++ else: ++ FrontpanelLed(which=0, boolean=False, patterns=[PATTERN_OFF, PATTERN_BLINK, PATTERN_ON, PATTERN_BLINK]).connect(combine) ++ FrontpanelLed(which=1, boolean=False, patterns=[PATTERN_ON, PATTERN_ON, PATTERN_OFF, PATTERN_OFF]).connect(combine) +diff --git a/lib/python/Screens/UserInterfacePositioner.py b/lib/python/Screens/UserInterfacePositioner.py +index 91d39cab265..43e204eae29 100644 +--- a/lib/python/Screens/UserInterfacePositioner.py ++++ b/lib/python/Screens/UserInterfacePositioner.py +@@ -1,20 +1,23 @@ +-from Screens.MessageBox import MessageBox +-from Screens.Screen import Screen ++from os import access, R_OK ++import traceback ++from enigma import getDesktop ++ + from Components.ActionMap import ActionMap + from Components.config import config, configfile, getConfigListEntry, ConfigSelectionNumber, ConfigSelection, ConfigSlider, ConfigYesNo, NoSave, ConfigNumber + from Components.ConfigList import ConfigListScreen +-from Components.SystemInfo import SystemInfo +-from Components.Sources.StaticText import StaticText + from Components.Console import Console ++from Components.Sources.StaticText import StaticText ++from Components.SystemInfo import SystemInfo, BRAND ++from Screens.Screen import Screen ++from Screens.MessageBox import MessageBox + from Tools.Directories import fileCheck, fileExists +-from enigma import getDesktop +-from os import access, R_OK +-import traceback + + + def getFilePath(setting): +- return "/proc/stb/fb/dst_%s" % (setting) +- ++ if BRAND in ("dreambox", ): ++ return "/proc/stb/vmpeg/0/dst_%s" % (setting) ++ else: ++ return "/proc/stb/fb/dst_%s" % (setting) + + def setPositionParameter(parameter, configElement): + f = open(getFilePath(parameter), "w") +@@ -65,7 +68,7 @@ def InitOsd(): + + def InitOsdPosition(): + SystemInfo["CanChangeOsdAlpha"] = access('/proc/stb/video/alpha', R_OK) and True or False +- SystemInfo["CanChangeOsdPosition"] = access('/proc/stb/fb/dst_left', R_OK) and True or False ++ SystemInfo["CanChangeOsdPosition"] = (access('/proc/stb/fb/dst_left', R_OK) or access('/proc/stb/vmpeg/0/dst_left', R_OK)) and True or False + SystemInfo["OsdSetup"] = SystemInfo["CanChangeOsdPosition"] + + if SystemInfo["CanChangeOsdAlpha"] is True or SystemInfo["CanChangeOsdPosition"] is True: From b8f2700822a8a46b41a17bdbcbd31e444d96f3ed Mon Sep 17 00:00:00 2001 From: Huevos Date: Thu, 13 Jun 2024 11:05:33 +0200 Subject: [PATCH 19/62] [Setup.py] createSetup, if self.setup is None, abort This was @Littlesat's idea to avoid updating the list in cases where the list does not require conditional reloads --- lib/python/Screens/Setup.py | 61 +++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/lib/python/Screens/Setup.py b/lib/python/Screens/Setup.py index 200646bb415..bc23133b585 100644 --- a/lib/python/Screens/Setup.py +++ b/lib/python/Screens/Setup.py @@ -64,36 +64,37 @@ def changedEntry(self): ConfigListScreen.changedEntry(self) # force summary update immediately, not just on select/deselect def createSetup(self, appendItems=None, prependItems=None): - oldList = self.list - self.showDefaultChanged = False - self.graphicSwitchChanged = False - self.list = prependItems or [] - title = None - xmlData = setupDom(self.setup, self.plugin) - for setup in xmlData.findall("setup"): - if setup.get("key") == self.setup: - self.addItems(setup) - skin = setup.get("skin", None) - if skin and skin != "": - self.skinName.insert(0, skin) - title = setup.get("title", None) - # print("[Setup] [createSetup] %s" % title) - # If this break is executed then there can only be one setup tag with this key. - # This may not be appropriate if conditional setup blocks become available. - break - if appendItems: - self.list += appendItems - if title: - title = dgettext(self.pluginLanguageDomain, title) if self.pluginLanguageDomain else _(title) - self.setTitle(title if title else _("Setup")) - if not self.list: # This forces the self["config"] list to be cleared if there are no eligible items available to be displayed. - self["config"].list = self.list - elif self.list != oldList or self.showDefaultChanged or self.graphicSwitchChanged: - currentItem = self["config"].getCurrent() - self["config"].list = self.list - if config.usage.sort_settings.value: - self["config"].list.sort(key=lambda x: x[0]) - self.moveToItem(currentItem) + if self.setup: + oldList = self.list + self.showDefaultChanged = False + self.graphicSwitchChanged = False + self.list = prependItems or [] + title = None + xmlData = setupDom(self.setup, self.plugin) + for setup in xmlData.findall("setup"): + if setup.get("key") == self.setup: + self.addItems(setup) + skin = setup.get("skin", None) + if skin and skin != "": + self.skinName.insert(0, skin) + title = setup.get("title", None) + # print("[Setup] [createSetup] %s" % title) + # If this break is executed then there can only be one setup tag with this key. + # This may not be appropriate if conditional setup blocks become available. + break + if appendItems: + self.list += appendItems + if title: + title = dgettext(self.pluginLanguageDomain, title) if self.pluginLanguageDomain else _(title) + self.setTitle(title if title else _("Setup")) + if not self.list: # This forces the self["config"] list to be cleared if there are no eligible items available to be displayed. + self["config"].list = self.list + elif self.list != oldList or self.showDefaultChanged or self.graphicSwitchChanged: + currentItem = self["config"].getCurrent() + self["config"].list = self.list + if config.usage.sort_settings.value: + self["config"].list.sort(key=lambda x: x[0]) + self.moveToItem(currentItem) def addItems(self, parentNode, including=True): for element in parentNode: From 8b8b811c40b988928fd137d9e07bd53ab4f38a52 Mon Sep 17 00:00:00 2001 From: Huevos Date: Thu, 13 Jun 2024 11:09:44 +0200 Subject: [PATCH 20/62] [ConfigList/Setup] add *args/**kwargs to maintain compatibility with other distros that are doing strange things --- lib/python/Components/ConfigList.py | 2 +- lib/python/Screens/Setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/python/Components/ConfigList.py b/lib/python/Components/ConfigList.py index ff863804e58..0396168fa41 100644 --- a/lib/python/Components/ConfigList.py +++ b/lib/python/Components/ConfigList.py @@ -144,7 +144,7 @@ def moveBottom(self): class ConfigListScreen: - def __init__(self, list, session=None, on_change=None, fullUI=False, yellow_button=None, blue_button=None): + def __init__(self, list, session=None, on_change=None, fullUI=False, yellow_button=None, blue_button=None, *args, **kwargs): self.entryChanged = on_change if on_change is not None else lambda: None if fullUI: if "key_red" not in self: diff --git a/lib/python/Screens/Setup.py b/lib/python/Screens/Setup.py index bc23133b585..c709f4f4505 100644 --- a/lib/python/Screens/Setup.py +++ b/lib/python/Screens/Setup.py @@ -20,7 +20,7 @@ class Setup(ConfigListScreen, Screen, HelpableScreen): - def __init__(self, session, setup=None, plugin=None, PluginLanguageDomain=None, yellow_button=None, blue_button=None): + def __init__(self, session, setup=None, plugin=None, PluginLanguageDomain=None, yellow_button=None, blue_button=None, *args, **kwargs): Screen.__init__(self, session) HelpableScreen.__init__(self) self.setup = setup From 8303b6436bf6b54891e2036cf47f51302da2aa30 Mon Sep 17 00:00:00 2001 From: Huevos Date: Thu, 13 Jun 2024 14:06:09 +0200 Subject: [PATCH 21/62] Centralise ScreenImage code Idea from https://github.com/openatv/enigma2/commit/2bbd48c3b65cdbe1433968dc801c562e7839d289 --- doc/MENU | 4 ++-- lib/python/Screens/Menu.py | 15 ++------------- lib/python/Screens/Screen.py | 21 +++++++++++++++++++-- lib/python/Screens/Setup.py | 18 +++--------------- lib/python/skin.py | 17 ++++++++++++++--- 5 files changed, 40 insertions(+), 35 deletions(-) diff --git a/doc/MENU b/doc/MENU index 0327d45f6db..cda1a46f873 100644 --- a/doc/MENU +++ b/doc/MENU @@ -34,12 +34,12 @@ In skin.xml add the list of images to the "menus" section based on menuID. In skin.xml add the widget to MainMenu and Menu screens: ... - + ... ... - + ... diff --git a/lib/python/Screens/Menu.py b/lib/python/Screens/Menu.py index b71155c638e..2549ce81629 100644 --- a/lib/python/Screens/Menu.py +++ b/lib/python/Screens/Menu.py @@ -1,4 +1,4 @@ -from skin import findSkinScreen, parameters, menus, menuicons +from skin import findSkinScreen, parameters, menuicons from Components.ActionMap import HelpableNumberActionMap, HelpableActionMap from Components.config import config, ConfigDictionarySet, configfile, NoSave @@ -244,7 +244,7 @@ def __init__(self, session, parent): title = self.__class__.__name__ == "MenuSort" and _("Menusort (%s)") % title or title self["title"] = StaticText(title) self.setTitle(title) - self.loadMenuImage() + self.setImage(self.menuID, "menu") self.number = 0 self.nextNumberTimer = eTimer() @@ -260,17 +260,6 @@ def __onExecBegin(self): def layoutFinished(self): self.screenContentChanged() - if self.menuImage and "menuimage" in self: - self["menuimage"].instance.setPixmap(self.menuImage) - - def loadMenuImage(self): - self.menuImage = None - if menus and self.menuID: - menuImage = menus.get(self.menuID, menus.get("default", "")) - if menuImage: - self.menuImage = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, menuImage)) - if self.menuImage: - self["menuimage"] = Pixmap() def createMenuList(self): if self.__class__.__name__ != "MenuSort": diff --git a/lib/python/Screens/Screen.py b/lib/python/Screens/Screen.py index 56f31f04086..fad8102094a 100644 --- a/lib/python/Screens/Screen.py +++ b/lib/python/Screens/Screen.py @@ -1,11 +1,16 @@ +from os.path import isfile + from enigma import eRCInput, eTimer, eWindow # , getDesktop -from skin import GUI_SKIN_ID, applyAllAttributes # noqa: F401 GUI_SKIN_ID used by debug +from skin import GUI_SKIN_ID, applyAllAttributes, menus, screens, setups from Components.config import config from Components.GUIComponent import GUIComponent +from Components.Pixmap import Pixmap from Components.Sources.Source import Source from Components.Sources.StaticText import StaticText from Tools.CList import CList +from Tools.Directories import SCOPE_GUISKIN, resolveFilename +from Tools.LoadPixmap import LoadPixmap # The lines marked DEBUG: are proposals for further fixes or improvements. # Other commented out code is historic and should probably be deleted if it is not going to be used. @@ -18,7 +23,8 @@ class Screen(dict): def __init__(self, session, parent=None, mandatoryWidgets=None): dict.__init__(self) - self.skinName = self.__class__.__name__ + className = self.__class__.__name__ + self.skinName = className self.session = session self.parent = parent self.mandatoryWidgets = mandatoryWidgets @@ -52,6 +58,7 @@ def __init__(self, session, parent=None, mandatoryWidgets=None): self.screenPath = "" # This is the current screen path without the title. self.screenTitle = "" # This is the current screen title without the path. self.handledWidgets = [] + self.setImage(className) def __repr__(self): return str(type(self)) @@ -184,6 +191,14 @@ def getTitle(self): title = property(getTitle, setTitle) + def setImage(self, image, source=None): + self.screenImage = None + if image and (images := {"menu": menus, "setup": setups}.get(source, screens)): + if (x := images.get(image, images.get("default", ""))) and isfile(x := resolveFilename(GUI_SKIN_ID, x)): + self.screenImage = x + if self.screenImage and "Image" not in self: + self["Image"] = Pixmap() + def setFocus(self, o): self.instance.setFocus(o.instance) @@ -278,6 +293,8 @@ def createGUIScreen(self, parent, desktop, updateonly=False): w.instance = w.widget(parent) # w.instance.thisown = 0 applyAllAttributes(w.instance, desktop, w.skinAttributes, self.scale) + if self.screenImage: + self["Image"].instance.setPixmap(LoadPixmap(self.screenImage)) for f in self.onLayoutFinish: if not isinstance(f, type(self.close)): exec(f, globals(), locals()) # Python 3 diff --git a/lib/python/Screens/Setup.py b/lib/python/Screens/Setup.py index c709f4f4505..20f53bbc315 100644 --- a/lib/python/Screens/Setup.py +++ b/lib/python/Screens/Setup.py @@ -2,7 +2,7 @@ from gettext import dgettext from os.path import getmtime, join as pathjoin -from skin import setups, findSkinScreen # noqa: F401 used in to check if a screen name is available in the skin +from skin import findSkinScreen # noqa: F401 used in to check if a screen name is available in the skin from Components.config import ConfigBoolean, ConfigNothing, ConfigSelection, config from Components.ConfigList import ConfigListScreen @@ -12,8 +12,7 @@ from Components.Sources.StaticText import StaticText from Screens.HelpMenu import HelpableScreen from Screens.Screen import Screen, ScreenSummary -from Tools.Directories import SCOPE_CURRENT_SKIN, SCOPE_PLUGINS, SCOPE_SKIN, fileReadXML, resolveFilename -from Tools.LoadPixmap import LoadPixmap +from Tools.Directories import SCOPE_PLUGINS, SCOPE_SKIN, fileReadXML, resolveFilename domSetups = {} setupModTimes = {} @@ -31,6 +30,7 @@ def __init__(self, session, setup=None, plugin=None, PluginLanguageDomain=None, if setup: self.skinName.append("Setup%s" % setup) # DEBUG: Proposed for new setup screens. self.skinName.append("setup_%s" % setup) + self.setImage(setup, "setup") self.skinName.append("Setup") self.list = [] ConfigListScreen.__init__(self, self.list, session=session, on_change=self.changedEntry, fullUI=True, yellow_button=yellow_button, blue_button=blue_button) @@ -38,21 +38,11 @@ def __init__(self, session, setup=None, plugin=None, PluginLanguageDomain=None, self["footnote"].hide() self["description"] = Label() self.createSetup() - self.loadSetupImage(setup) if self.layoutFinished not in self.onLayoutFinish: self.onLayoutFinish.append(self.layoutFinished) if self.selectionChanged not in self["config"].onSelectionChanged: self["config"].onSelectionChanged.append(self.selectionChanged) - def loadSetupImage(self, setup): - self.setupImage = None - if setups: - setupImage = setups.get(setup, setups.get("default", "")) - if setupImage: - self.setupImage = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, setupImage)) - if self.setupImage: - self["setupimage"] = Pixmap() - def changedEntry(self): current = self["config"].getCurrent() if current[1].isChanged(): @@ -163,8 +153,6 @@ def includeElement(self, element): return not conditional or eval(conditional) def layoutFinished(self): - if self.setupImage: - self["setupimage"].instance.setPixmap(self.setupImage) if not self["config"]: print("[Setup] No setup items available!") diff --git a/lib/python/skin.py b/lib/python/skin.py index ecd8b09fac1..f74ac81bb38 100644 --- a/lib/python/skin.py +++ b/lib/python/skin.py @@ -28,6 +28,7 @@ menus = {} # Dictionary of images associated with menu entries. menuicons = {} # Dictionary of icons associated with menu items. parameters = {} # Dictionary of skin parameters used to modify code behavior. +screens = {} # Dictionary of images associated with screen entries. setups = {} # Dictionary of images associated with setup menus. switchPixmap = {} # Dictionary of switch images. scrollbarStyle = None # When set, a dictionary of scrollbar styles @@ -64,7 +65,7 @@ def InitSkins(booting=True): global currentPrimarySkin, currentDisplaySkin - global domScreens, colors, BodyFont, fonts, menus, menuicons, parameters, setups, switchPixmap, scrollbarStyle, windowStyles, xres, yres + global domScreens, colors, BodyFont, fonts, menus, menuicons, parameters, screens, setups, switchPixmap, scrollbarStyle, windowStyles, xres, yres # Reset skin dictionaries. We can reload skins without a restart # Make sure we keep the original dictionaries as many modules now import skin globals explicitly domScreens.clear() @@ -76,6 +77,7 @@ def InitSkins(booting=True): menus.clear() menuicons.clear() parameters.clear() + screens.clear() setups.clear() switchPixmap.clear() scrollbarStyle = None @@ -807,7 +809,7 @@ def reloadWindowStyles(): def loadSingleSkinData(desktop, screenID, domSkin, pathSkin, scope=SCOPE_CURRENT_SKIN): """Loads skin data like colors, windowstyle etc.""" assert domSkin.tag == "skin", "root element in skin must be 'skin'!" - global colors, fonts, menus, menuicons, parameters, setups, switchPixmap, scrollbarStyle, xres, yres + global colors, fonts, menus, menuicons, parameters, screens, setups, switchPixmap, scrollbarStyle, xres, yres for tag in domSkin.findall("output"): scrnID = int(tag.attrib.get("id", GUI_SKIN_ID)) if scrnID == GUI_SKIN_ID: @@ -977,9 +979,18 @@ def loadResolvedPixmap(filename): image = menuicon.attrib.get("image") if key and image: menuicons[key] = image - # print("[Skin] DEBUG: Menu key='%s', image='%s'." % (key, image)) + # print("[Skin] DEBUG: Menuicon key='%s', image='%s'." % (key, image)) else: raise SkinError("Tag 'menuicon' needs key and image, got key='%s' and image='%s'" % (key, image)) + for tag in domSkin.findall("screens"): + for screen in tag.findall("screen"): + key = screen.attrib.get("key") + image = screen.attrib.get("image") + if key and image: + screens[key] = image + # print("[Skin] DEBUG: Screen key='%s', image='%s'." % (key, image)) + else: + raise SkinError("Tag 'screen' needs key and image, got key='%s' and image='%s'" % (key, image)) for tag in domSkin.findall("setups"): for setup in tag.findall("setup"): key = setup.attrib.get("key") From 6b4bdbeed6747f3eaa23c48097191e0fbbd80d64 Mon Sep 17 00:00:00 2001 From: Orlandoxx <95180049+Orlandoxx@users.noreply.github.com> Date: Thu, 13 Jun 2024 19:18:34 +0300 Subject: [PATCH 22/62] [Translations] Updated Finnish (fi.po) translation --- po/fi.po | 45 ++++++++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/po/fi.po b/po/fi.po index c1b58a5e95f..88089f37916 100644 --- a/po/fi.po +++ b/po/fi.po @@ -5,7 +5,7 @@ msgstr "" "Project-Id-Version: enigma2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-12-27 23:35+0000\n" -"PO-Revision-Date: 2024-06-11 10:32+0300\n" +"PO-Revision-Date: 2024-06-13 19:17+0300\n" "Last-Translator: Orlandox\n" "Language-Team: timoj/Kojo/Samzam/Orlandox\n" "Language: fi\n" @@ -2991,7 +2991,7 @@ msgstr "Kaapeliverkon haku" #, python-format msgid "Cable scan executable utility not found '%s'!" -msgstr "Kaapelin skannauksen suoritettavaa apuohjelmaa ei löytynyt '%s'!" +msgstr "Kaapeliverkon haun suoritettavaa apuohjelmaa ei löytynyt '%s'!" msgid "Cabo Verde" msgstr "Cabo Verde" @@ -4188,7 +4188,7 @@ msgid "Current time" msgstr "Aika" msgid "Current transponder" -msgstr "Valittu lähetin" +msgstr "Valittu transponderi" msgid "Current value: " msgstr "Arvo: " @@ -5383,7 +5383,7 @@ msgid "Enable Virgin EPG" msgstr "Ota käyttöön Virgin EPG" msgid "Enable auto cable scan" -msgstr "Ota käyttöön autom. kaapelihaku" +msgstr "Ota käyttöön autom. kaapeliverkon haku" msgid "Enable auto fastscan" msgstr "Ota käyttöön autom. pikahaku" @@ -8019,7 +8019,7 @@ msgid "Manual scan" msgstr "Manuaalihaku" msgid "Manual transponder" -msgstr "Manuaalinen lähetin" +msgstr "Manuaalinen transponderi" msgid "Manufacturer" msgstr "Valmistaja" @@ -8806,7 +8806,7 @@ msgid "" "No data on transponder!\n" "(Timeout reading PAT)" msgstr "" -"Lähettimessä ei dataa!\n" +"Transponderissa ei dataa!\n" "(Aikaraja ylittyi luettaessa PAT)" msgid "No delay" @@ -10047,7 +10047,7 @@ msgid "Predefined" msgstr "Esiasetettu" msgid "Predefined transponder" -msgstr "Ennalta määritelty lähetin" +msgstr "Ennalta määritelty transponderi" msgid "Prefer AC3 track" msgstr "Ensisijaisena AC3-ääniraita" @@ -12582,10 +12582,10 @@ msgid "Show translation packages" msgstr "Näytä käännöstiedostojen ohjelmapaketit" msgid "Show transponder info" -msgstr "Näytä lähettimen tietoja" +msgstr "Näytä transponderin tietoja" msgid "Show transponder remaining/elapsed as" -msgstr "Näytä lähettimen jäljellä oleva/kulunut aika:" +msgstr "Näytä transponderin jäljellä oleva/kulunut aika:" msgid "Show two lines per entry" msgstr "Näytä kaksi riviä per kanava" @@ -13500,7 +13500,7 @@ msgid "Sync time using" msgstr "Synkronoi aika käyttäen" msgid "Synchronize system time using transponder or internet." -msgstr "Synkronoi laitteen kello lähettimestä tai internetistä." +msgstr "Synkronoi laitteen kello transponderista tai internetistä." msgid "Syrian Arab Republic" msgstr "Syrian Arab Republic" @@ -13546,7 +13546,7 @@ msgstr "" "Suomenkielinen käännös: timoj, Kojo, Samzam, Orlandox\n" "\n" "Ylläpito : Orlandox\n" -"--- 11.06.2024 ---\n" +"--- 13.06.2024 ---\n" "\n" "http://www.huoltovalikko.com" @@ -14485,10 +14485,10 @@ msgid "True" msgstr "Tosi" msgid "Try to find used transponders in cable network.. please wait..." -msgstr "Haetaan kaapeliverkon lähetystaajuuksia...odota..." +msgstr "Haetaan kaapeliverkon transpondereita ...odota..." msgid "Try to find used transponders in terrestrial network... please wait..." -msgstr "Haetaan antenniverkon lähetystaajuuksia...odota..." +msgstr "Haetaan antenniverkon transpondereita ...odota..." msgid "Trying to download a new packetlist. Please wait..." msgstr "Ladataan uusinta IPKG-ohjelmapakettiluetteloa. Odota..." @@ -14989,7 +14989,7 @@ msgid "User defined 0x%02x" msgstr "Käyttäjän määrittelemä 0x%02x" msgid "User defined transponder" -msgstr "Käyttäjän määrittelemä lähetin" +msgstr "Käyttäjän määrittelemä transponderi" msgid "User installed plugins" msgstr "Käyttäjän asentamat lisäosat" @@ -15656,7 +15656,7 @@ msgid "When the receiver wakes from standby, it will send a command to the TV to msgstr "Kun vastaanotin herää valmiustilasta, se lähettää TV:lle komennon myös sen herättämiseksi valmiustilasta." msgid "When tuned to a service the system will normally scan the transponder for any changes and save them. Only set to 'yes' if you're absolutely sure of what you're doing." -msgstr "Kun vaihdat kanavalle, normaalisti laite hakee lähettimen tietojen muutokset ja tallentaa ne. Valitse 'kyllä' vain, jos olet täysin varma tekemästäsi." +msgstr "Kun vaihdat kanavalle, normaalisti laite hakee transponderin tietojen muutokset ja tallentaa ne. Valitse 'kyllä' vain, jos olet täysin varma tekemästäsi." msgid "Where do you want to backup your settings?" msgstr "Minne haluat varmuuskopioida asetukset?" @@ -19453,3 +19453,18 @@ msgstr "Vaihda asetustilaan tai AutoDisqc:n" msgid "Set all the settings back as they were" msgstr "Palauta kaikki asetukset entiselleen" + +msgid "Menu button function" +msgstr "Menu painikkeen toiminto" + +msgid "Looking for active transponders in the cable network. Please wait..." +msgstr "Etsitään aktiivisia transpondereita kaapeliverkosta. Odota..." + +msgid "Start CableScan" +msgstr "Aloita kaapeliverkon haku" + +msgid "Start Cablescan" +msgstr "Aloita kaapeliverkon haku" + +msgid "Start Fastscan" +msgstr "Aloita pikahaku" From bfbdb50caa08bcf207eb63a66e2c9c1cbc0c066d Mon Sep 17 00:00:00 2001 From: Huevos Date: Thu, 13 Jun 2024 10:02:26 +0200 Subject: [PATCH 23/62] Add support for dm900 and dm 920 --- .github/workflows/buildbot.yml | 2 +- .github/workflows/enigma2.yml | 4 +- CI/build.sh | 4 +- configure.ac | 22 ++ data/Makefile.am | 4 + data/display400/skin_display.xml | 17 +- interfaces/ion.h | 204 ++++++++++++++++++ lib/driver/avswitch.cpp | 5 + lib/dvb/decoder.cpp | 8 + lib/dvb/fbc.cpp | 85 +++++++- lib/dvb/fbc.h | 6 + lib/dvb_ci/dvbci.cpp | 105 +++++++++ lib/dvb_ci/dvbci.h | 2 +- lib/gdi/epng.cpp | 31 ++- lib/gdi/fb.cpp | 142 +++++++++++- lib/gdi/fb.h | 3 + lib/gdi/gfbdc.cpp | 73 +++++-- lib/gdi/grc.h | 5 + lib/gdi/lcd.cpp | 24 ++- lib/python/Components/AVSwitch.py | 17 +- lib/python/Components/About.py | 20 +- lib/python/Components/Harddisk.py | 29 ++- lib/python/Components/Lcd.py | 5 +- lib/python/Components/NimManager.py | 8 +- lib/python/Components/SystemInfo.py | 4 +- .../Plugins/SystemPlugins/ViX/ImageManager.py | 53 +++-- .../Plugins/SystemPlugins/ViX/MountManager.py | 32 +-- lib/python/Screens/Satconfig.py | 2 +- lib/python/Screens/SessionGlobals.py | 9 +- lib/python/Screens/UserInterfacePositioner.py | 23 +- 30 files changed, 809 insertions(+), 139 deletions(-) create mode 100644 interfaces/ion.h diff --git a/.github/workflows/buildbot.yml b/.github/workflows/buildbot.yml index 0db1c7f0853..e46e714b074 100644 --- a/.github/workflows/buildbot.yml +++ b/.github/workflows/buildbot.yml @@ -2,7 +2,7 @@ name: buildbot on: push: - branches: [ Developer ] + branches: [ Developer, dm9x0 ] workflow_dispatch: diff --git a/.github/workflows/enigma2.yml b/.github/workflows/enigma2.yml index c681dd91b34..c955896a3ff 100644 --- a/.github/workflows/enigma2.yml +++ b/.github/workflows/enigma2.yml @@ -2,12 +2,12 @@ name: Enigma2 Python 3 on: push: - branches: [ Release, Developer, FCC ] + branches: [ Release, Developer, FCC, dm9x0 ] paths-ignore: - '**/README' - '**/DOCS' pull_request: - branches: [Release, Developer, FCC ] + branches: [Release, Developer, FCC, dm9x0 ] paths-ignore: - '**/README' - '**/DOCS' diff --git a/CI/build.sh b/CI/build.sh index e340647b4e3..f58eeae85cd 100755 --- a/CI/build.sh +++ b/CI/build.sh @@ -13,7 +13,7 @@ commit_files() { rm -rf *.pyc rm -rf *.pyo rm -rf *.mo - git checkout Developer + git checkout dm9x0 ./CI/chmod.sh ./CI/dos2unix.sh ./CI/PEP8.sh @@ -21,7 +21,7 @@ commit_files() { upload_files() { git remote add upstream https://${GITHUB_TOKEN}@github.com/OpenViX/enigma2.git > /dev/null 2>&1 - git push --quiet upstream Developer || echo "failed to push with error $?" + git push --quiet upstream dm9x0 || echo "failed to push with error $?" } setup_git diff --git a/configure.ac b/configure.ac index 094c1ff5691..05988050c51 100644 --- a/configure.ac +++ b/configure.ac @@ -91,6 +91,8 @@ AM_CONDITIONAL(DM800, test "$BOXTYPE" == "dm800") AM_CONDITIONAL(DM8000, test "$BOXTYPE" == "dm8000") AM_CONDITIONAL(DM800SE, test "$BOXTYPE" == "dm800se") AM_CONDITIONAL(DM800SEV2, test "$BOXTYPE" == "dm800sev2") +AM_CONDITIONAL(DM900, test "$BOXTYPE" == "dm900") +AM_CONDITIONAL(DM920, test "$BOXTYPE" == "dm920") AM_CONDITIONAL(E3HD, test "$BOXTYPE" == "e3hd") AM_CONDITIONAL(EBOX5000, test "$BOXTYPE" == "ebox5000") AM_CONDITIONAL(EBOX5100, test "$BOXTYPE" == "ebox5100") @@ -306,6 +308,17 @@ if test x"$withcolorlcd220" != xno ; then fi AM_CONDITIONAL(HAVE_COLORLCD220, test x"$withcolorlcd220" != xno) +AC_ARG_WITH(colorlcd390, + AS_HELP_STRING([--with-colorlcd390], [use 390x240 16bpp color display, yes or no]), + [[withcolorlcd390=$withval]], + [[withcolorlcd390=no]] +) +if test x"$withcolorlcd390" != xno ; then + AC_DEFINE(HAVE_COLORLCD390, 1,[Define when using a 390x240 color display device]) +fi + +AM_CONDITIONAL(HAVE_COLORLCD390, test x"$withcolorlcd390" != xno) + AC_ARG_WITH(colorlcd400, AS_HELP_STRING([--with-colorlcd400], [use 400x176 16bpp color display, yes or no]), [[withcolorlcd400=$withval]], @@ -402,6 +415,14 @@ if test `echo "$BOXTYPE" | cut -b 1-2` == "vu"; then AC_DEFINE(FORCE_ADVANCED_REMOTE, 1,[define to fixup the input device identification when the remote control is actually an 'advanced' remote (with play/forward/rewind keys)]) fi +if test "$BOXTYPE" == "dm900" -o "$BOXTYPE" == "dm920"; then + AC_DEFINE(CONFIG_ION, 1,[define BOX use ION Allocator]) + AC_DEFINE(HAVE_HDMIIN_DM, 1,[has hdmi in dm]) + AC_DEFINE(LCD_DM900_Y_OFFSET, 4,[define LCD Y offset for dm900 and dm920]) + AC_DEFINE(DREAMBOX_DUAL_TUNER, 1,[define it is dreambox dual tuner present]) + AC_DEFINE(FORCE_NO_BLENDING_ACCELERATION, 1,[define when the framebuffer acceleration does not have alphablending support, though the autodetection might indicate that it does]) +fi + if test `echo "$BOXTYPE" | cut -b 1-2` == "gb"; then AC_DEFINE(KEY_PLAY_ACTUALLY_IS_KEY_PLAYPAUSE, 1,[define when rc sends a KEY_PLAY event for its KEY_PLAYPAUSE key]) AC_DEFINE(FORCE_NO_BLENDING_ACCELERATION, 1,[define when the framebuffer acceleration does not have alphablending support, though the autodetection might indicate that it does]) @@ -586,6 +607,7 @@ data/7segment/Makefile data/display96/Makefile data/display128/Makefile data/display220/Makefile +data/display390/Makefile data/display400/Makefile data/display480/Makefile data/display720/Makefile diff --git a/data/Makefile.am b/data/Makefile.am index 72c31ec8d3a..123c4f64f6e 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -41,6 +41,10 @@ if HAVE_COLORLCD220 SUBDIRS += display220 endif +if HAVE_COLORLCD390 +SUBDIRS += display390 +endif + if HAVE_COLORLCD400 SUBDIRS += display400 endif diff --git a/data/display400/skin_display.xml b/data/display400/skin_display.xml index 55d0d8a26e7..6d45e70db6f 100644 --- a/data/display400/skin_display.xml +++ b/data/display400/skin_display.xml @@ -238,24 +238,13 @@ - - FullDate + + ShortDate - + Format:%H:%M - - - - - - - - - - - diff --git a/interfaces/ion.h b/interfaces/ion.h new file mode 100644 index 00000000000..6370495f8d0 --- /dev/null +++ b/interfaces/ion.h @@ -0,0 +1,204 @@ +/* + * drivers/staging/android/uapi/ion.h + * + * Copyright (C) 2011 Google, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef _UAPI_LINUX_ION_H +#define _UAPI_LINUX_ION_H + +#include +#include + +typedef int ion_user_handle_t; + +/** + * enum ion_heap_types - list of all possible types of heaps + * @ION_HEAP_TYPE_SYSTEM: memory allocated via vmalloc + * @ION_HEAP_TYPE_SYSTEM_CONTIG: memory allocated via kmalloc + * @ION_HEAP_TYPE_CARVEOUT: memory allocated from a prereserved + * carveout heap, allocations are physically + * contiguous + * @ION_HEAP_TYPE_DMA: memory allocated via DMA API + * @ION_NUM_HEAPS: helper for iterating over heaps, a bit mask + * is used to identify the heaps, so only 32 + * total heap types are supported + */ +enum ion_heap_type { + ION_HEAP_TYPE_SYSTEM, + ION_HEAP_TYPE_SYSTEM_CONTIG, + ION_HEAP_TYPE_CARVEOUT, + ION_HEAP_TYPE_CHUNK, + ION_HEAP_TYPE_DMA, + ION_HEAP_TYPE_CUSTOM, /* must be last so device specific heaps always + are at the end of this enum */ + ION_NUM_HEAPS = 16, +}; + +#define ION_HEAP_SYSTEM_MASK (1 << ION_HEAP_TYPE_SYSTEM) +#define ION_HEAP_SYSTEM_CONTIG_MASK (1 << ION_HEAP_TYPE_SYSTEM_CONTIG) +#define ION_HEAP_CARVEOUT_MASK (1 << ION_HEAP_TYPE_CARVEOUT) +#define ION_HEAP_TYPE_DMA_MASK (1 << ION_HEAP_TYPE_DMA) + +#define ION_NUM_HEAP_IDS sizeof(unsigned int) * 8 + +/** + * allocation flags - the lower 16 bits are used by core ion, the upper 16 + * bits are reserved for use by the heaps themselves. + */ +#define ION_FLAG_CACHED 1 /* mappings of this buffer should be + cached, ion will do cache + maintenance when the buffer is + mapped for dma */ +#define ION_FLAG_CACHED_NEEDS_SYNC 2 /* mappings of this buffer will created + at mmap time, if this is set + caches must be managed manually */ + +/** + * DOC: Ion Userspace API + * + * create a client by opening /dev/ion + * most operations handled via following ioctls + * + */ + +/** + * struct ion_allocation_data - metadata passed from userspace for allocations + * @len: size of the allocation + * @align: required alignment of the allocation + * @heap_id_mask: mask of heap ids to allocate from + * @flags: flags passed to heap + * @handle: pointer that will be populated with a cookie to use to + * refer to this allocation + * + * Provided by userspace as an argument to the ioctl + */ +struct ion_allocation_data { + size_t len; + size_t align; + unsigned int heap_id_mask; + unsigned int flags; + ion_user_handle_t handle; +}; + +/** + * struct ion_fd_data - metadata passed to/from userspace for a handle/fd pair + * @handle: a handle + * @fd: a file descriptor representing that handle + * + * For ION_IOC_SHARE or ION_IOC_MAP userspace populates the handle field with + * the handle returned from ion alloc, and the kernel returns the file + * descriptor to share or map in the fd field. For ION_IOC_IMPORT, userspace + * provides the file descriptor and the kernel returns the handle. + */ +struct ion_fd_data { + ion_user_handle_t handle; + int fd; +}; + +/** + * struct ion_handle_data - a handle passed to/from the kernel + * @handle: a handle + */ +struct ion_handle_data { + ion_user_handle_t handle; +}; + +/** + * struct ion_custom_data - metadata passed to/from userspace for a custom ioctl + * @cmd: the custom ioctl function to call + * @arg: additional data to pass to the custom ioctl, typically a user + * pointer to a predefined structure + * + * This works just like the regular cmd and arg fields of an ioctl. + */ +struct ion_custom_data { + unsigned int cmd; + unsigned long arg; +}; + +struct ion_phys_data { + ion_user_handle_t handle; + unsigned long addr; + size_t len; +}; + +#define ION_IOC_MAGIC 'I' + +/** + * DOC: ION_IOC_ALLOC - allocate memory + * + * Takes an ion_allocation_data struct and returns it with the handle field + * populated with the opaque handle for the allocation. + */ +#define ION_IOC_ALLOC _IOWR(ION_IOC_MAGIC, 0, \ + struct ion_allocation_data) + +/** + * DOC: ION_IOC_FREE - free memory + * + * Takes an ion_handle_data struct and frees the handle. + */ +#define ION_IOC_FREE _IOWR(ION_IOC_MAGIC, 1, struct ion_handle_data) + +/** + * DOC: ION_IOC_MAP - get a file descriptor to mmap + * + * Takes an ion_fd_data struct with the handle field populated with a valid + * opaque handle. Returns the struct with the fd field set to a file + * descriptor open in the current address space. This file descriptor + * can then be used as an argument to mmap. + */ +#define ION_IOC_MAP _IOWR(ION_IOC_MAGIC, 2, struct ion_fd_data) + +/** + * DOC: ION_IOC_SHARE - creates a file descriptor to use to share an allocation + * + * Takes an ion_fd_data struct with the handle field populated with a valid + * opaque handle. Returns the struct with the fd field set to a file + * descriptor open in the current address space. This file descriptor + * can then be passed to another process. The corresponding opaque handle can + * be retrieved via ION_IOC_IMPORT. + */ +#define ION_IOC_SHARE _IOWR(ION_IOC_MAGIC, 4, struct ion_fd_data) + +/** + * DOC: ION_IOC_IMPORT - imports a shared file descriptor + * + * Takes an ion_fd_data struct with the fd field populated with a valid file + * descriptor obtained from ION_IOC_SHARE and returns the struct with the handle + * filed set to the corresponding opaque handle. + */ +#define ION_IOC_IMPORT _IOWR(ION_IOC_MAGIC, 5, struct ion_fd_data) + +/** + * DOC: ION_IOC_SYNC - syncs a shared file descriptors to memory + * + * Deprecated in favor of using the dma_buf api's correctly (syncing + * will happend automatically when the buffer is mapped to a device). + * If necessary should be used after touching a cached buffer from the cpu, + * this will make the buffer in memory coherent. + */ +#define ION_IOC_SYNC _IOWR(ION_IOC_MAGIC, 7, struct ion_fd_data) + +/** + * DOC: ION_IOC_CUSTOM - call architecture specific ion ioctl + * + * Takes the argument of the architecture specific ioctl to call and + * passes appropriate userdata for that ioctl + */ +#define ION_IOC_CUSTOM _IOWR(ION_IOC_MAGIC, 6, struct ion_custom_data) + +#define ION_IOC_PHYS _IOWR(ION_IOC_MAGIC, 8, struct ion_phys_data) + +#endif /* _UAPI_LINUX_ION_H */ diff --git a/lib/driver/avswitch.cpp b/lib/driver/avswitch.cpp index 955c6c59fd7..7d601b56f40 100644 --- a/lib/driver/avswitch.cpp +++ b/lib/driver/avswitch.cpp @@ -255,7 +255,12 @@ int eAVSwitch::getResolutionY(int defaultVal, int flags) const int eAVSwitch::getFrameRate(int defaultVal, int flags) const { +#ifdef DREAMBOX + const char *fileName = "/proc/stb/vmpeg/0/fallback_framerate"; +#else const char *fileName = "/proc/stb/vmpeg/0/framerate"; +#endif + int value = 0; int ret = CFile::parseInt(&value, fileName, __MODULE__, flags); if (ret != 0) diff --git a/lib/dvb/decoder.cpp b/lib/dvb/decoder.cpp index 95f5609dd9c..4fb21ec1667 100644 --- a/lib/dvb/decoder.cpp +++ b/lib/dvb/decoder.cpp @@ -147,7 +147,11 @@ int eDVBAudio::startPid(int pid, int type) bypass = 0x40; break; case aDDP: +#ifdef DREAMBOX + bypass = 7; +#else bypass = 0x22; +#endif break; } @@ -341,7 +345,11 @@ eDVBVideo::eDVBVideo(eDVBDemux *demux, int dev, bool fcc_enable) #define VIDEO_STREAMTYPE_MPEG4_Part2 4 #define VIDEO_STREAMTYPE_VC1_SM 5 #define VIDEO_STREAMTYPE_MPEG1 6 +#ifdef DREAMBOX +#define VIDEO_STREAMTYPE_H265_HEVC 22 +#else #define VIDEO_STREAMTYPE_H265_HEVC 7 +#endif #define VIDEO_STREAMTYPE_AVS 16 #define VIDEO_STREAMTYPE_AVS2 40 diff --git a/lib/dvb/fbc.cpp b/lib/dvb/fbc.cpp index 6d8b06d3cc2..56a4c4f98d3 100644 --- a/lib/dvb/fbc.cpp +++ b/lib/dvb/fbc.cpp @@ -13,6 +13,24 @@ int eFBCTunerManager::ReadProcInt(int fe_index, const std::string & entry) { +#ifdef DREAMBOX + std::string value; + std::stringstream path; + std::ifstream file; + + path << "/proc/stb/frontend/" << fe_index << "/" << entry; + file.open(path.str().c_str()); + + if(!file.is_open()) + return(-1); + + file >> value; + + if(file.bad() || file.fail()) + return(-1); + eDebug("[eFBCTunerManager::ReadProcInt] val: %s", value.c_str()); + return(value == "A" ? 0 : 1); +#else int value; std::stringstream path; std::ifstream file; @@ -29,6 +47,7 @@ int eFBCTunerManager::ReadProcInt(int fe_index, const std::string & entry) return(-1); return(value); +#endif } void eFBCTunerManager::WriteProcInt(int fe_index, const std::string & entry, int value) @@ -45,6 +64,41 @@ void eFBCTunerManager::WriteProcInt(int fe_index, const std::string & entry, int file << value; } +void eFBCTunerManager::WriteProcStr(int fe_index, const std::string & entry, int value) +{ + std::stringstream path; + std::ofstream file; + + path << "/proc/stb/frontend/" << fe_index << "/" << entry; + file.open(path.str().c_str()); + + if(!file.is_open()) + return; + eDebug("[eFBCTunerManager::WriteProcStr] val: %d", value); + file << (value == 0 ? "A" : "B"); +} + +#ifdef DREAMBOX +void eFBCTunerManager::LoadConnectChoices(int fe_index, std::string &choices) +{ + std::stringstream path; + std::ifstream file; + std::string line; + std::string::const_iterator it; + int fbc_id; + + path << "/proc/stb/frontend/" << fe_index << "/input_choices"; + file.open(path.str().c_str()); + + if(!file.is_open()) + return; + + file >> choices; + + if(file.bad() || file.fail()) + return; +} +#else void eFBCTunerManager::LoadConnectChoices(int fe_index, connect_choices_t &choices) { std::stringstream path; @@ -77,6 +131,7 @@ void eFBCTunerManager::LoadConnectChoices(int fe_index, connect_choices_t &choic } } } +#endif DEFINE_REF(eFBCTunerManager); @@ -93,7 +148,7 @@ eFBCTunerManager::eFBCTunerManager(ePtr res_mgr) eSmartPtrList &frontends = m_res_mgr->m_frontend; eSmartPtrList &frontends_simulate = m_res_mgr->m_simulate_frontend; tuner_t tuner; - int fe_id, fbc_prev_set_id; + int fe_id, fbc_prev_set_id; if(!m_instance) m_instance = this; @@ -109,22 +164,34 @@ eFBCTunerManager::eFBCTunerManager(ePtr res_mgr) continue; // ignore DVB-C/T FBC tuners because they need no special treatment fe_id = FESlotID(it); - tuner.set_id = ReadProcInt(fe_id, "fbc_set_id"); +#ifdef DREAMBOX + tuner.set_id = ReadProcInt(fe_id, "input"); +#else + tuner.set_id = ReadProcInt(fe_id, "fbc_set_id"); +#endif if(tuner.set_id >= 0) { if(fbc_prev_set_id != tuner.set_id) { fbc_prev_set_id = tuner.set_id; +#ifdef DREAMBOX + LoadConnectChoices(fe_id, tuner.input_choices); +#else LoadConnectChoices(fe_id, tuner.connect_choices); +#endif tuner.id = 0; } - +#ifdef DREAMBOX + tuner.is_root = tuner.id < 2; +#else if(tuner.id < (int)tuner.connect_choices.size()) tuner.is_root = tuner.connect_choices.test(tuner.id); else tuner.is_root = false; +#endif + tuner.default_id = tuner.is_root ? tuner.id : 0; m_tuners[fe_id] = tuner; SetProcFBCID(fe_id, tuner.default_id, false); @@ -141,8 +208,14 @@ eFBCTunerManager::eFBCTunerManager(ePtr res_mgr) if (!(it->m_frontend->supportsDeliverySystem(SYS_DVBS, false) || it->m_frontend->supportsDeliverySystem(SYS_DVBS2, false))) continue; +#ifdef DREAMBOX + if(ReadProcInt(FESlotID(it), "input") >= 0) + it->m_frontend->set_FBCTuner(true); +#else if(ReadProcInt(FESlotID(it), "fbc_set_id") >= 0) it->m_frontend->set_FBCTuner(true); +#endif + } } @@ -154,8 +227,12 @@ eFBCTunerManager::~eFBCTunerManager() void eFBCTunerManager::SetProcFBCID(int fe_id, int fbc_connect, bool fbc_is_linked) { +#ifdef DREAMBOX + WriteProcStr(fe_id, "input", fbc_connect); +#else WriteProcInt(fe_id, "fbc_connect", fbc_connect); WriteProcInt(fe_id, "fbc_link", fbc_is_linked ? 1 : 0); +#endif } int eFBCTunerManager::FESlotID(eDVBRegisteredFrontend *fe) @@ -412,7 +489,7 @@ int eFBCTunerManager::IsCompatibleWith(ePtr &feparm, eDV if(IsSCR(*it)) continue; - + // temporarily add this leaf to the current "linked" chain, at the tail fe_insert_point = GetTail(*it); diff --git a/lib/dvb/fbc.h b/lib/dvb/fbc.h index a479961086a..b70f9b7dfc9 100644 --- a/lib/dvb/fbc.h +++ b/lib/dvb/fbc.h @@ -25,6 +25,7 @@ class eFBCTunerManager: public iObject, public sigc::trackable int id; int default_id; connect_choices_t connect_choices; + std::string input_choices; } tuner_t; typedef std::map tuners_t; @@ -42,7 +43,12 @@ class eFBCTunerManager: public iObject, public sigc::trackable static int ReadProcInt(int, const std::string &); static void WriteProcInt(int, const std::string &, int); + static void WriteProcStr(int, const std::string &, int); +#ifdef DREAMBOX + static void LoadConnectChoices(int, std::string &); +#else static void LoadConnectChoices(int, connect_choices_t &); +#endif static void SetProcFBCID(int, int, bool); static int FESlotID(eDVBRegisteredFrontend *); static bool IsLinked(eDVBRegisteredFrontend *); diff --git a/lib/dvb_ci/dvbci.cpp b/lib/dvb_ci/dvbci.cpp index a4681b1ff39..a744ae6a70b 100644 --- a/lib/dvb_ci/dvbci.cpp +++ b/lib/dvb_ci/dvbci.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include #include @@ -33,6 +34,78 @@ eDVBCIInterfaces *eDVBCIInterfaces::instance = 0; pthread_mutex_t eDVBCIInterfaces::m_pmt_handler_lock = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; pthread_mutex_t eDVBCIInterfaces::m_slot_lock = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; +static char* readInputCI(int NimNumber) +{ + char id1[] = "NIM Socket"; + char id2[] = "Input_Name"; + char keys1[] = "1234567890"; + char keys2[] = "12ABCDabcd"; + char *inputName = 0; + char buf[256]; + FILE *f; + + f = fopen("/proc/bus/nim_sockets", "rt"); + if (f) + { + while (fgets(buf, sizeof(buf), f)) + { + char *p = strcasestr(buf, id1); + if (!p) + continue; + + p += strlen(id1); + p += strcspn(p, keys1); + if (*p && strtol(p, 0, 0) == NimNumber) + break; + } + + while (fgets(buf, sizeof(buf), f)) + { + if (strcasestr(buf, id1)) + break; + + char *p = strcasestr(buf, id2); + if (!p) + continue; + + p = strchr(p + strlen(id2), ':'); + if (!p) + continue; + + p++; + p += strcspn(p, keys2); + size_t len = strspn(p, keys2); + if (len > 0) + { + inputName = strndup(p, len); + break; + } + } + + fclose(f); + } + + return inputName; +} + +static std::string getTunerLetterDM(int NimNumber) +{ + char *srcCI = readInputCI(NimNumber); + if (srcCI) { + std::string ret = std::string(srcCI); + free(srcCI); + if (ret.size() == 1){ + int corr = 1; + if (NimNumber > 7) { + corr = -7; + } + return ret + std::to_string(NimNumber + corr); + } + return ret; + } + return eDVBCISlot::getTunerLetter(NimNumber); +} + eDVBCIInterfaces::eDVBCIInterfaces() : m_messagepump_thread(this,1, "dvbci"), m_messagepump_main(eApp,1, "dvbci"), m_runTimer(eTimer::create(this)) { @@ -69,7 +142,11 @@ eDVBCIInterfaces::eDVBCIInterfaces() } for (eSmartPtrList::iterator it(m_slots.begin()); it != m_slots.end(); ++it) +#ifdef DREAMBOX_DUAL_TUNER + it->setSource(getTunerLetterDM(0)); +#else it->setSource("A"); +#endif for (int tuner_no = 0; tuner_no < 26; ++tuner_no) // NOTE: this assumes tuners are A .. Z max. { @@ -80,7 +157,11 @@ eDVBCIInterfaces::eDVBCIInterfaces() if(::access(path.str().c_str(), R_OK) < 0) break; +#ifdef DREAMBOX_DUAL_TUNER + setInputSource(tuner_no, getTunerLetterDM(tuner_no)); +#else setInputSource(tuner_no, eDVBCISlot::getTunerLetter(tuner_no)); +#endif } eDebug("[CI] done, found %d common interface slots", num_ci); @@ -310,7 +391,11 @@ void eDVBCIInterfaces::ciRemoved(eDVBCISlot *slot) if (slot->linked_next) slot->linked_next->setSource(slot->current_source); else // last CI in chain +#ifdef DREAMBOX_DUAL_TUNER + setInputSource(slot->current_tuner, getTunerLetterDM(slot->current_tuner)); +#else setInputSource(slot->current_tuner, eDVBCISlot::getTunerLetter(slot->current_tuner)); +#endif slot->linked_next = 0; slot->use_count=0; slot->plugged=true; @@ -581,7 +666,11 @@ void eDVBCIInterfaces::recheckPMTHandlers() if (tunernum != -1) { setInputSource(tunernum, ci_source.str()); +#ifdef DREAMBOX_DUAL_TUNER + ci_it->setSource(getTunerLetterDM(tunernum)); +#else ci_it->setSource(eDVBCISlot::getTunerLetter(tunernum)); +#endif } else { @@ -711,7 +800,11 @@ void eDVBCIInterfaces::removePMTHandler(eDVBServicePMTHandler *pmthandler) { case finish_use_tuner_a: { +#ifdef DREAMBOX_DUAL_TUNER + finish_source = getTunerLetterDM(0); +#else finish_source = "A"; +#endif break; } @@ -734,7 +827,11 @@ void eDVBCIInterfaces::removePMTHandler(eDVBServicePMTHandler *pmthandler) if(finish_source == "") { eDebug("[CI] warning: CI streaming finish mode not set, assuming \"tuner A\""); +#ifdef DREAMBOX_DUAL_TUNER + finish_source = getTunerLetterDM(0); +#else finish_source = "A"; +#endif } slot->setSource(finish_source); @@ -746,7 +843,11 @@ void eDVBCIInterfaces::removePMTHandler(eDVBServicePMTHandler *pmthandler) if (slot->linked_next) slot->linked_next->setSource(slot->current_source); else +#ifdef DREAMBOX_DUAL_TUNER + setInputSource(slot->current_tuner, getTunerLetterDM(slot->current_tuner)); +#else setInputSource(slot->current_tuner, eDVBCISlot::getTunerLetter(slot->current_tuner)); +#endif if (base_slot != slot) { @@ -1134,7 +1235,11 @@ void eDVBCIInterfaces::setCIPlusRouting(int slotid) new_input_source << "CI" << slot->getSlotID(); setInputSource(tunernum, new_input_source.str()); +#ifdef DREAMBOX_DUAL_TUNER + slot->setSource(getTunerLetterDM(tunernum)); +#else slot->setSource(eDVBCISlot::getTunerLetter(tunernum)); +#endif slot->setCIPlusRoutingParameter(tunernum, ciplus_routing_input, ciplus_routing_ci_input); eDebug("[CI] CIRouting active slotid=%d tuner=%d old_input=%s old_ci_input=%s", slotid, tunernum, ciplus_routing_input.c_str(), ciplus_routing_ci_input.c_str()); diff --git a/lib/dvb_ci/dvbci.h b/lib/dvb_ci/dvbci.h index 511944b9770..5d11f624b45 100644 --- a/lib/dvb_ci/dvbci.h +++ b/lib/dvb_ci/dvbci.h @@ -110,8 +110,8 @@ class eDVBCISlot: public iObject, public sigc::trackable int setClockRate(const std::string &rate); void determineCIVersion(); int setEnabled(bool); - static std::string getTunerLetter(int tuner_no) { return std::string(1, char(65 + tuner_no)); } public: + static std::string getTunerLetter(int tuner_no) { return std::string(1, char(65 + tuner_no)); } enum {stateRemoved, stateInserted, stateInvalid, stateResetted, stateDisabled}; enum {versionUnknown = -1, versionCI = 0, versionCIPlus1 = 1, versionCIPlus2 = 2}; eDVBCISlot(eMainloop *context, int nr); diff --git a/lib/gdi/epng.cpp b/lib/gdi/epng.cpp index 449ccc9c14e..8745975b723 100644 --- a/lib/gdi/epng.cpp +++ b/lib/gdi/epng.cpp @@ -3,10 +3,15 @@ #include #include #include -#include +#include #include #include #include +#include + +#include +#include +#include extern "C" { #include @@ -123,7 +128,7 @@ int loadPNG(ePtr &result, const char *filename, int accel, int cached) result = new gPixmap(width, height, bit_depth * channels, cached ? PixmapCache::PixmapDisposed : NULL, accel); gUnmanagedSurface *surface = result->surface; - + png_bytep *rowptr = new png_bytep[height]; for (unsigned int i = 0; i < height; i++) rowptr[i] = ((png_byte*)(surface->data)) + i * surface->stride; @@ -131,6 +136,18 @@ int loadPNG(ePtr &result, const char *filename, int accel, int cached) delete [] rowptr; + if (color_type == PNG_COLOR_TYPE_RGBA || color_type == PNG_COLOR_TYPE_GA) + surface->transparent = true; + else + { + png_bytep trans_alpha = NULL; + int num_trans = 0; + png_color_16p trans_color = NULL; + + png_get_tRNS(png_ptr, info_ptr, &trans_alpha, &num_trans, &trans_color); + surface->transparent = (trans_alpha != NULL); + } + int num_palette = -1, num_trans = -1; if (color_type == PNG_COLOR_TYPE_PALETTE) { if (png_get_valid(png_ptr, info_ptr, PNG_INFO_PLTE)) { @@ -204,8 +221,8 @@ int loadJPG(ePtr &result, const char *filename, ePtr alpha, in if (cached && (result = PixmapCache::Get(filename))) return 0; - struct jpeg_decompress_struct cinfo = {}; - struct my_error_mgr jerr = {}; + struct jpeg_decompress_struct cinfo; + struct my_error_mgr jerr; JSAMPARRAY buffer; int row_stride; CFile infile(filename, "rb"); @@ -248,13 +265,13 @@ int loadJPG(ePtr &result, const char *filename, ePtr alpha, in } if (grayscale) { - eWarning("[loadJPG] no support for grayscale + alpha at the moment"); + eWarning("[loadJPG] we don't support grayscale + alpha at the moment"); alpha = 0; } } result = new gPixmap(cinfo.output_width, cinfo.output_height, grayscale ? 8 : 32, cached ? PixmapCache::PixmapDisposed : NULL); - + result->surface->transparent = false; row_stride = cinfo.output_width * cinfo.output_components; buffer = (*cinfo.mem->alloc_sarray)((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1); while (cinfo.output_scanline < cinfo.output_height) { @@ -480,14 +497,12 @@ int loadImage(ePtr &result, const char *filename, int accel, int width, return loadSVG(result, filename, cached == -1 ? 1 : cached, width, height, scale, keepAspect, align); else if (endsWith(filename, ".jpg")) return loadJPG(result, filename, cached == -1 ? 0 : cached); - return 0; } int savePNG(const char *filename, gPixmap *pixmap) { int result; - { eDebug("[ePNG] saving to %s",filename); CFile fp(filename, "wb"); diff --git a/lib/gdi/fb.cpp b/lib/gdi/fb.cpp index 66c1e5e56a8..99b7f599ed0 100644 --- a/lib/gdi/fb.cpp +++ b/lib/gdi/fb.cpp @@ -13,9 +13,19 @@ #define FBIO_WAITFORVSYNC _IOW('F', 0x20, uint32_t) #endif -#ifndef FBIO_BLIT +#ifdef CONFIG_ION + +#include +#include +#define ION_HEAP_TYPE_BMEM (ION_HEAP_TYPE_CUSTOM + 1) +#define ION_HEAP_ID_MASK (1 << ION_HEAP_TYPE_BMEM) +#define ACCEL_MEM_SIZE (32*1024*1024) + +#elif !defined(FBIO_BLIT) + #define FBIO_SET_MANUAL_BLIT _IOW('F', 0x21, __u8) #define FBIO_BLIT 0x22 + #endif fbClass *fbClass::instance; @@ -38,6 +48,10 @@ fbClass::fbClass(const char *fb) cmap.green=green; cmap.blue=blue; cmap.transp=trans; + +#ifdef CONFIG_ION + int ion; +#endif fbFd=open(fb, O_RDWR); if (fbFd<0) @@ -60,15 +74,96 @@ fbClass::fbClass(const char *fb) goto nolfb; } - available=fix.smem_len; + available = fix.smem_len; m_phys_mem = fix.smem_start; eDebug("[fb] %s: %dk video mem", fb, available/1024); +#if defined(CONFIG_ION) + /* allocate accel memory here... its independent from the framebuffer */ + ion = open("/dev/ion", O_RDWR | O_CLOEXEC); + if (ion >= 0) + { + struct ion_allocation_data alloc_data; + struct ion_fd_data share_data; + struct ion_handle_data free_data; + struct ion_phys_data phys_data; + int ret; + unsigned char *lion; + + eDebug("[fb] Using ION allocator"); + + memset(&alloc_data, 0, sizeof(alloc_data)); + alloc_data.len = ACCEL_MEM_SIZE; + alloc_data.align = 4096; // 4k aligned + alloc_data.heap_id_mask = ION_HEAP_ID_MASK; + ret = ioctl(ion, ION_IOC_ALLOC, &alloc_data); + if (ret < 0) + { + eDebug("[fb] ION_IOC_ALLOC failed"); + eFatal("[fb] failed to allocate accel memory!!!"); + return; + } + + memset(&phys_data, 0, sizeof(phys_data)); + phys_data.handle = alloc_data.handle; + ret = ioctl(ion, ION_IOC_PHYS, &phys_data); + if (ret < 0) + { + eDebug("[fb] ION_IOC_PHYS failed"); + goto err_ioc_free; + } + + memset(&share_data, 0, sizeof(share_data)); + share_data.handle = alloc_data.handle; + ret = ioctl(ion, ION_IOC_SHARE, &share_data); + if (ret < 0) + { + eDebug("[fb] ION_IOC_SHARE failed"); + goto err_ioc_free; + } + + memset(&free_data, 0, sizeof(free_data)); + free_data.handle = alloc_data.handle; + if (ioctl(ion, ION_IOC_FREE, &free_data) < 0) + eDebug("[fb] ION_IOC_FREE failed"); + + m_accel_fd = share_data.fd; + lion=(unsigned char*)mmap(0, ACCEL_MEM_SIZE, PROT_WRITE|PROT_READ, MAP_SHARED, share_data.fd, 0); + + if (lion) + { + eDebug("[fb] %dkB available for acceleration surfaces (via ION).", ACCEL_MEM_SIZE / 1024); + gAccel::getInstance()->setAccelMemorySpace(lion, phys_data.addr, ACCEL_MEM_SIZE); + } + else + { + close(m_accel_fd); + eDebug("[fb] mmap lion failed"); +err_ioc_free: + eFatal("[fb] failed to allocate accel memory via ION!!!"); + m_accel_fd = -1; + memset(&free_data, 0, sizeof(free_data)); + free_data.handle = alloc_data.handle; + if (ioctl(ion, ION_IOC_FREE, &free_data) < 0) + eDebug("[fb] ION_IOC_FREE %m"); + } + close(ion); + } + else + { + eFatal("[fb] failed to open ION device node! no allocate accel memory available !!"); + m_accel_fd = -1; + } +#else + eDebug("[fb] %dk video mem", available/1024); lfb=(unsigned char*)mmap(0, available, PROT_WRITE|PROT_READ, MAP_SHARED, fbFd, 0); +#endif +#ifndef CONFIG_ION if (!lfb) { - eDebug("[fb] mmap: %m"); + eDebug("[fb] mmap %m"); goto nolfb; } +#endif showConsole(0); @@ -80,7 +175,7 @@ fbClass::fbClass(const char *fb) ::close(fbFd); fbFd = -1; } - eDebug("[fb] framebuffer %s not available", fb); + eDebug("[fb] framebuffer not available"); return; } @@ -101,6 +196,12 @@ int fbClass::showConsole(int state) int fbClass::SetMode(int nxRes, int nyRes, int nbpp) { if (fbFd < 0) return -1; +#ifdef CONFIG_ION + /* unmap old framebuffer with old size */ + if (lfb) + munmap(lfb, stride * screeninfo.yres_virtual); +#endif + screeninfo.xres_virtual=screeninfo.xres=nxRes; screeninfo.yres_virtual=(screeninfo.yres=nyRes)*2; screeninfo.height=0; @@ -140,7 +241,7 @@ int fbClass::SetMode(int nxRes, int nyRes, int nbpp) if (ioctl(fbFd, FBIOPUT_VSCREENINFO, &screeninfo)<0) { - eDebug("[fb] FBIOPUT_VSCREENINFO: %m"); + eDebug("[fb] FBIOPUT_VSCREENINFO %m"); return -1; } eDebug("[fb] double buffering not available."); @@ -148,7 +249,7 @@ int fbClass::SetMode(int nxRes, int nyRes, int nbpp) eDebug("[fb] double buffering available!"); m_number_of_pages = screeninfo.yres_virtual / nyRes; - + ioctl(fbFd, FBIOGET_VSCREENINFO, &screeninfo); if ((screeninfo.xres != (unsigned int)nxRes) || (screeninfo.yres != (unsigned int)nyRes) || @@ -164,9 +265,17 @@ int fbClass::SetMode(int nxRes, int nyRes, int nbpp) fb_fix_screeninfo fix; if (ioctl(fbFd, FBIOGET_FSCREENINFO, &fix)<0) { - eDebug("[fb] FBIOGET_FSCREENINFO: %m"); + eDebug("[fb] FBIOGET_FSCREENINFO %m"); } stride=fix.line_length; + +#ifdef CONFIG_ION + m_phys_mem = fix.smem_start; + available = fix.smem_len; + /* map new framebuffer */ + lfb=(unsigned char*)mmap(0, stride * screeninfo.yres_virtual, PROT_WRITE|PROT_READ, MAP_SHARED, fbFd, 0); +#endif + memset(lfb, 0, stride*yRes); blit(); return 0; @@ -197,14 +306,20 @@ int fbClass::waitVSync() void fbClass::blit() { if (fbFd < 0) return; +#if !defined(CONFIG_ION) if (m_manual_blit == 1) { if (ioctl(fbFd, FBIO_BLIT) < 0) - eDebug("[fb] FBIO_BLIT: %m"); + eDebug("[fb] FBIO_BLIT %m"); } +#endif } fbClass::~fbClass() { +#ifdef CONFIG_ION + if (m_accel_fd > -1) + close(m_accel_fd); +#endif if (lfb) { msync(lfb, available, MS_SYNC); @@ -252,21 +367,26 @@ void fbClass::unlock() void fbClass::enableManualBlit() { - unsigned char tmp = 1; if (fbFd < 0) return; +#ifndef CONFIG_ION + unsigned char tmp = 1; if (ioctl(fbFd,FBIO_SET_MANUAL_BLIT, &tmp)<0) - eDebug("[fb] enable FBIO_SET_MANUAL_BLIT: %m"); + eDebug("[fb] FBIO_SET_MANUAL_BLIT %m"); else m_manual_blit = 1; +#endif } void fbClass::disableManualBlit() { +#ifndef CONFIG_ION unsigned char tmp = 0; if (fbFd < 0) return; if (ioctl(fbFd,FBIO_SET_MANUAL_BLIT, &tmp)<0) - eDebug("[fb] disable FBIO_SET_MANUAL_BLIT: %m"); + eDebug("[fb] FBIO_SET_MANUAL_BLIT %m"); else m_manual_blit = 0; +#endif } + diff --git a/lib/gdi/fb.h b/lib/gdi/fb.h index 0eb04915dce..6656dd84c57 100644 --- a/lib/gdi/fb.h +++ b/lib/gdi/fb.h @@ -29,6 +29,9 @@ class fbClass #else public: unsigned char *lfb; +#ifdef CONFIG_ION + int m_accel_fd; +#endif void enableManualBlit(); void disableManualBlit(); int showConsole(int state); diff --git a/lib/gdi/gfbdc.cpp b/lib/gdi/gfbdc.cpp index 19964401458..ffaf9873c4e 100644 --- a/lib/gdi/gfbdc.cpp +++ b/lib/gdi/gfbdc.cpp @@ -15,7 +15,7 @@ #include #endif -#if defined(CONFIG_HISILICON_FB) +#if defined(CONFIG_ION) || defined(CONFIG_HISILICON_FB) #include extern void bcm_accel_blit( @@ -25,17 +25,18 @@ extern void bcm_accel_blit( int dst_x, int dst_y, int dwidth, int dheight, int pal_addr, int flags); #endif - #ifdef HAVE_HISILICON_ACCEL extern void dinobot_accel_register(void *p1,void *p2); extern void dinibot_accel_notify(void); #endif + gFBDC::gFBDC() { fb=new fbClass; - +#ifndef CONFIG_ION if (!fb->Available()) eFatal("[gFBDC] no framebuffer available"); +#endif int xres; int yres; @@ -171,9 +172,34 @@ void gFBDC::exec(const gOpcode *o) gles_do_animation(); else fb->blit(); + gles_flush(); #else fb->blit(); #endif +#ifdef CONFIG_ION + if (surface_back.data_phys) + { + gUnmanagedSurface s(surface); + surface = surface_back; + surface_back = s; + + fb->waitVSync(); + if (surface.data_phys > surface_back.data_phys) + { + fb->setOffset(0); + } + else + { + fb->setOffset(surface_back.y); + } + bcm_accel_blit( + surface_back.data_phys, surface_back.x, surface_back.y, surface_back.stride, 0, + surface.data_phys, surface.x, surface.y, surface.stride, + 0, 0, surface.x, surface.y, + 0, 0, surface.x, surface.y, + 0, 0); + } +#endif #if defined(CONFIG_HISILICON_FB) if(islocked()==0) { @@ -198,7 +224,7 @@ void gFBDC::exec(const gOpcode *o) gles_set_buffer((unsigned int *)surface.data); gles_set_animation(1, o->parm.setShowHideInfo->point.x(), o->parm.setShowHideInfo->point.y(), o->parm.setShowHideInfo->size.width(), o->parm.setShowHideInfo->size.height()); #endif - break; + break; } case gOpcode::sendHide: { @@ -209,16 +235,28 @@ void gFBDC::exec(const gOpcode *o) gles_set_buffer((unsigned int *)surface.data); gles_set_animation(0, o->parm.setShowHideInfo->point.x(), o->parm.setShowHideInfo->point.y(), o->parm.setShowHideInfo->size.width(), o->parm.setShowHideInfo->size.height()); #endif - break; + break; } #ifdef USE_LIBVUGLES2 + case gOpcode::sendShowItem: + { + gles_set_buffer((unsigned int *)surface.data); + gles_set_animation_listbox(o->parm.setShowItemInfo->dir, o->parm.setShowItemInfo->point.x(), o->parm.setShowItemInfo->point.y(), o->parm.setShowItemInfo->size.width(), o->parm.setShowItemInfo->size.height()); + delete o->parm.setShowItemInfo; + break; + } + case gOpcode::setFlush: + { + gles_set_flush(o->parm.setFlush->enable); + delete o->parm.setFlush; + break; + } case gOpcode::setView: { gles_viewport(o->parm.setViewInfo->size.width(), o->parm.setViewInfo->size.height(), fb->Stride()); - break; + break; } #endif - default: gDC::exec(o); break; @@ -257,10 +295,14 @@ void gFBDC::setResolution(int xres, int yres, int bpp) #endif ) return; - +#ifndef CONFIG_ION if (gAccel::getInstance()) gAccel::getInstance()->releaseAccelMemorySpace(); - +#else + gRC *grc = gRC::getInstance(); + if (grc) + grc->lock(); +#endif fb->SetMode(xres, yres, bpp); surface.x = xres; @@ -290,12 +332,14 @@ void gFBDC::setResolution(int xres, int yres, int bpp) surface_back.data_phys = 0; } - eDebug("[gFBDC] resolution: %dx%dx%d stride=%d, %dkB available for acceleration surfaces.", - surface.x, surface.y, surface.bpp, fb->Stride(), (fb->Available() - fb_size)/1024); + eDebug("[gFBDC] resolution: %d x %d x %d (stride: %d) pages: %d", surface.x, surface.y, surface.bpp, fb->Stride(), fb->getNumPages()); +#ifndef CONFIG_ION + /* accel is already set in fb.cpp */ + eDebug("[gFBDC] %dkB available for acceleration surfaces.", (fb->Available() - fb_size)/1024); if (gAccel::getInstance()) gAccel::getInstance()->setAccelMemorySpace(fb->lfb + fb_size, surface.data_phys + fb_size, fb->Available() - fb_size); - +#endif #ifdef HAVE_HISILICON_ACCEL dinobot_accel_register(&surface,&surface_back); #endif @@ -318,6 +362,11 @@ void gFBDC::setResolution(int xres, int yres, int bpp) #endif m_pixmap = new gPixmap(&surface); + +#ifdef CONFIG_ION + if (grc) + grc->unlock(); +#endif } void gFBDC::saveSettings() diff --git a/lib/gdi/grc.h b/lib/gdi/grc.h index 2c218c56167..c2df1bb42f5 100644 --- a/lib/gdi/grc.h +++ b/lib/gdi/grc.h @@ -259,6 +259,11 @@ class gRC : public iObject, public sigc::trackable virtual ~gRC(); void submit(const gOpcode &o); + +#ifdef CONFIG_ION + void lock(); + void unlock(); +#endif sigc::signal notify; diff --git a/lib/gdi/lcd.cpp b/lib/gdi/lcd.cpp index f86e2d644f3..1b39b34407a 100644 --- a/lib/gdi/lcd.cpp +++ b/lib/gdi/lcd.cpp @@ -30,10 +30,13 @@ eLCD *eLCD::getInstance() void eLCD::setSize(int xres, int yres, int bpp) { + _stride = xres * bpp / 8; + _buffer = new unsigned char[xres * yres * bpp / 8]; +#ifdef LCD_DM900_Y_OFFSET + xres -= LCD_DM900_Y_OFFSET; +#endif res = eSize(xres, yres); - _buffer = new unsigned char[xres * yres * bpp/8]; - memset(_buffer, 0, res.height() * res.width() * bpp / 8); - _stride = res.width() * bpp / 8; + memset(_buffer, 0, xres * yres * bpp / 8); eDebug("[eLCD] (%dx%dx%d) buffer %p %d bytes, stride %d", xres, yres, bpp, _buffer, xres * yres * bpp / 8, _stride); } @@ -399,7 +402,20 @@ void eDBoxLCD::update() } else { +#if defined(LCD_DM900_Y_OFFSET) + unsigned char gb_buffer[_stride * res.height()]; + for (int offset = 0; offset < ((_stride * res.height()) >> 2); offset++) + { + unsigned int src = 0; + if (offset % (_stride >> 2) >= LCD_DM900_Y_OFFSET) + src = ((unsigned int *)_buffer)[offset - LCD_DM900_Y_OFFSET]; + // blue red green low green high + ((unsigned int *)gb_buffer)[offset] = ((src >> 3) & 0x001F001F) | ((src << 3) & 0xF800F800) | ((src >> 8) & 0x00E000E0) | ((src << 8) & 0x07000700); + } + write(lcdfd, gb_buffer, _stride * res.height()); +#else write(lcdfd, _buffer, _stride * res.height()); +#endif } } else /* lcd_type == 1 */ @@ -437,4 +453,4 @@ void eDBoxLCD::update() void eDBoxLCD::dumpLCD(bool png) { return; -} +} \ No newline at end of file diff --git a/lib/python/Components/AVSwitch.py b/lib/python/Components/AVSwitch.py index 3b3228792f3..18a40f551fc 100644 --- a/lib/python/Components/AVSwitch.py +++ b/lib/python/Components/AVSwitch.py @@ -44,6 +44,12 @@ class AVSwitch: "multi": {50: "2160p50", 60: "2160p"}, "auto": {50: "2160p50", 60: "2160p", 24: "2160p24"}} + if SystemInfo["boxtype"] in ("dm900", "dm920"): + rates["2160p"] = {"50Hz": {50: "2160p50"}, + "60Hz": {60: "2160p60"}, + "multi": {50: "2160p50", 60: "2160p60"}, + "auto": {50: "2160p50", 60: "2160p60", 24: "2160p24"}} + rates["PC"] = { "1024x768": {60: "1024x768"}, # not possible on DM7025 "800x600": {60: "800x600"}, # also not possible @@ -107,7 +113,6 @@ def readPreferredModes(self): self.on_hotplug("HDMI") # Must be HDMI. # Check if a high-level mode with a given rate is available. - # def isModeAvailable(self, port, mode, rate): rateNew = self.rates[mode][rate] for modeNew in rateNew.values(): @@ -222,7 +227,7 @@ def createConfig(self, *args): ratelist = [] for rate in rates: if rate == "auto": - if SystemInfo["Has24hz"]: + if SystemInfo["Has24hz"] or SystemInfo["boxtype"] in ("dm900", "dm920"): ratelist.append((rate, mode == "2160p30" and "auto (25Hz/30Hz/24Hz)" or "auto (50Hz/60Hz/24Hz)")) else: ratelist.append((rate, rate == "multi" and (mode == "2160p30" and "multi (25Hz/30Hz)" or "multi (50Hz/60Hz)") or rate)) @@ -270,8 +275,11 @@ def setWss(self, configElement): else: wss = "auto" print(f"[AVSwitch] setting wss:{wss} configElement.value:{configElement.value}") - with open("/proc/stb/denc/0/wss", "w") as fd: - fd.write(wss) + try: + with open("/proc/stb/denc/0/wss", "w") as fd: + fd.write(wss) + except (IOError, OSError): + pass def setPolicy43(self, configElement): print(f"[AVSwitch] setting policy43:{configElement.value}") @@ -634,6 +642,7 @@ def setAutoVolume(configElement): config.av.autovolume.addNotifier(setAutoVolume) else: config.av.autovolume = ConfigNothing() + if SystemInfo["supportPcmMultichannel"]: def setPCMMultichannel(configElement): open(SystemInfo["supportPcmMultichannel"], "w").write(configElement.value and "enable" or "disable") diff --git a/lib/python/Components/About.py b/lib/python/Components/About.py index bf5a28f805a..a81a96484a3 100644 --- a/lib/python/Components/About.py +++ b/lib/python/Components/About.py @@ -1,10 +1,13 @@ -from sys import modules, version_info -from os import path as ospath -from time import time -import socket import fcntl +import socket import struct +from os import path as ospath +from os.path import join as pathjoin +from sys import modules, version_info +from time import time +from Tools.Directories import fileExists, resolveFilename, SCOPE_LIBDIR + from enigma import getEnigmaVersionString @@ -69,7 +72,12 @@ def getChipSetString(): try: return str(open("/proc/stb/info/chipset").read().lower().replace("\n", "").replace("brcm", "").replace("bcm", "")) except: - return _("unavailable") + if fileExists("/proc/stb/info/model"): + getModel = str(open("/proc/stb/info/model").read()) + if getModel[0:5] in ("dm900", "dm920"): + return "7252s" + else: + return "unknown" def getCPUSpeedMHzInt(): @@ -110,7 +118,7 @@ def getCPUSpeedString(): else: cpu_speed = "%s MHz" % str(int(cpu_speed)) return cpu_speed - return _("unavailable") + return "unknown" def getCPUArch(): diff --git a/lib/python/Components/Harddisk.py b/lib/python/Components/Harddisk.py index 30c2c8a8218..9836825bcf3 100644 --- a/lib/python/Components/Harddisk.py +++ b/lib/python/Components/Harddisk.py @@ -4,7 +4,7 @@ from time import sleep, time from enigma import eTimer -from Components.SystemInfo import SystemInfo +from Components.SystemInfo import SystemInfo, BoxInfo import Components.Task from Tools.CList import CList @@ -632,6 +632,7 @@ def enumerateBlockDevices(self): rootMajor = None # rootMinor = None # print("[Harddisk] DEBUG: rootMajor = '%s', rootMinor = '%s'" % (rootMajor, rootMinor)) + boxModel = BoxInfo.getItem("model") for device in sorted(listdir("/sys/block")): try: physicalDevice = ospath.realpath(ospath.join("/sys/block", device, "device")) @@ -644,18 +645,24 @@ def enumerateBlockDevices(self): print("[Harddisk] Error: Device '%s' (%s) does not appear to have valid device numbers!" % (device, physicalDevice)) continue devMajor = int(data.split(":")[0]) + devMinor = int(data.split(":")[1]) if devMajor in blacklistedDisks: # print("[Harddisk] DEBUG: Major device number '%s' for device '%s' (%s) is blacklisted." % (devMajor, device, physicalDevice)) continue - if devMajor == 179 and not SystemInfo["HasSDnomount"]: # Lets handle Zgemma SD card mounts - uses SystemInfo to determine SDcard status - # print("[Harddisk] DEBUG: Major device number '%s' for device '%s' (%s) doesn't have 'HasSDnomount' set." % (devMajor, device, physicalDevice)) - continue - if devMajor == 179 and devMajor == rootMajor and not SystemInfo["HasSDnomount"][0]: - # print("[Harddisk] DEBUG: Major device number '%s' for device '%s' (%s) is the root disk." % (devMajor, device, physicalDevice)) - continue - if SystemInfo["HasSDnomount"] and device.startswith("%s" % (SystemInfo["HasSDnomount"][1])) and SystemInfo["HasSDnomount"][0]: - # print("[Harddisk] DEBUG: Major device number '%s' for device '%s' (%s) starts with 'mmcblk0' and has 'HasSDnomount' set." % (devMajor, device, physicalDevice)) - continue + print(f"[Harddisk] DEBUG: boxModel:{boxModel} device:{device} devMajor = '{devMajor}', devMinor = '{devMinor}'") + if devMajor == 179 and boxModel in ("dm900", "dm920"): + if devMinor != 0: + continue + else: + if devMajor == 179 and not SystemInfo["HasSDnomount"]: # Lets handle Zgemma SD card mounts - uses SystemInfo to determine SDcard status + # print(f"[Harddisk] DEBUG: Major device number '{devMajor,}' for device '{device}' ({physicalDevice}) doesn't have 'HasSDnomount' set.") + continue + if devMajor == 179 and devMajor == rootMajor and not SystemInfo["HasSDnomount"][0]: + # print(f"[Harddisk] DEBUG: Major device number '{devMajor} for device '{device} ({physicalDevice}) is the root disk.") + continue + if SystemInfo["HasSDnomount"] and device.startswith(f"{SystemInfo['HasSDnomount'][1]}") and SystemInfo["HasSDnomount"][0]: + # print("f[Harddisk] DEBUG: Major device number '{devMajor} for device '{device}' ({physicalDevice}) starts with 'mmcblk0' and has 'HasSDnomount' set.") + continue description = self.getUserfriendlyDeviceName(device, physicalDevice) isCdrom = devMajor in opticalDisks or device.startswith("sr") if isCdrom: @@ -699,6 +706,8 @@ def enumerateBlockDevices(self): # self.partitions.append(Partition(mountpoint = self.getMountpoint(device), description = description, force_mounted, device = device)) # print("[Harddisk] DEBUG: Partition(mountpoint=%s, description=%s, force_mounted=True, device=%s)" % (self.getMountpoint(device), description, device)) for partition in partitions: + if devMajor == 179 and boxModel in ("dm900", "dm920") and partition != "mmcblk0p3": + continue description = self.getUserfriendlyDeviceName(partition, physicalDevice) print("[Harddisk] Found partition '%s', description='%s', device='%s'." % (partition, description, physicalDevice)) # part = Partition(mountpoint=self.getMountpoint(partition), description=description, force_mounted=True, device=partition) diff --git a/lib/python/Components/Lcd.py b/lib/python/Components/Lcd.py index 2fb9294ac49..501e124b070 100644 --- a/lib/python/Components/Lcd.py +++ b/lib/python/Components/Lcd.py @@ -351,7 +351,10 @@ def setLCDminitvpipmode(configElement): def setLCDminitvfps(configElement): ilcd.setLCDMiniTVFPS(configElement.value) - standby_default = 0 + if SystemInfo["boxtype"] in ('dm900', 'dm920'): + standby_default = 4 + else: + standby_default = 0 if not ilcd.isOled(): config.lcd.contrast = ConfigSlider(default=5, limits=(0, 20)) diff --git a/lib/python/Components/NimManager.py b/lib/python/Components/NimManager.py index 2ecd94c3f84..c13cbf87463 100644 --- a/lib/python/Components/NimManager.py +++ b/lib/python/Components/NimManager.py @@ -1,7 +1,7 @@ from os import access, path, F_OK from Components.About import about -from Components.SystemInfo import SystemInfo +from Components.SystemInfo import SystemInfo, MODEL from Tools.BoundFunction import boundFunction from Tools.Directories import fileReadXML @@ -535,8 +535,8 @@ def __init__(self, slot, sattype, description, has_outputs=True, internally_conn sattype = None self.slot = slot - self.type = sattype - self.description = description + self.type = "DVB-S2X" if "45308X" in description.upper() and MODEL in ("dm900", "dm920") else sattype + self.description = "%s FBC" % description if "45308X" in description.upper() and MODEL in ("dm900", "dm920") else description self.number_of_slots = number_of_slots self.has_outputs = has_outputs self.internally_connectable = internally_connectable @@ -962,7 +962,7 @@ def enumerateNIMs(self): entry["supports_blind_scan"] = False entry["fbc"] = [0, 0, 0] # not fbc - if entry["name"] and ("fbc" in entry["name"].lower() or (entry["name"] in SystemInfo["HasFBCtuner"] and entry["frontend_device"] is not None and access("/proc/stb/frontend/%d/fbc_id" % entry["frontend_device"], F_OK))): + if entry["name"] and ("fbc" in entry["name"].lower() or ("45308X" in entry["name"].upper() and MODEL in ("dm900", "dm920")) or (entry["name"] in SystemInfo["HasFBCtuner"] and entry["frontend_device"] is not None and access("/proc/stb/frontend/%d/fbc_id" % entry["frontend_device"], F_OK))): fbc_number += 1 if fbc_number <= (entry["type"] and "DVB-C" in entry["type"] and 1 or 2): entry["fbc"] = [1, fbc_number, fbc_tuner] # fbc root diff --git a/lib/python/Components/SystemInfo.py b/lib/python/Components/SystemInfo.py index 37119cb8750..f3ff95d3f09 100644 --- a/lib/python/Components/SystemInfo.py +++ b/lib/python/Components/SystemInfo.py @@ -314,9 +314,9 @@ def hasInitCam(): {"720p", "1080i"} # Widescreen modes. ) -SystemInfo["FbcTunerPowerAlwaysOn"] = SystemInfo["boxtype"] in ("vusolo4k", "vuduo4k", "vuduo4kse", "vuultimo4k", "vuuno4k", "vuuno4kse") +SystemInfo["FbcTunerPowerAlwaysOn"] = SystemInfo["boxtype"] in ("vusolo4k", "vuduo4k", "vuduo4kse", "vuultimo4k", "vuuno4k", "vuuno4kse", "dm900", "dm920") SystemInfo["HasPhysicalLoopthrough"] = ["Vuplus DVB-S NIM(AVL2108)", "GIGA DVB-S2 NIM (Internal)"] -SystemInfo["HasFBCtuner"] = ["Vuplus DVB-C NIM(BCM3158)", "Vuplus DVB-C NIM(BCM3148)", "Vuplus DVB-S NIM(7376 FBC)", "Vuplus DVB-S NIM(45308X FBC)", "Vuplus DVB-S NIM(45208 FBC)", "DVB-S2 NIM(45208 FBC)", "DVB-S2X NIM(45308X FBC)", "DVB-S2 NIM(45308 FBC)", "DVB-C NIM(3128 FBC)", "BCM45208", "BCM45308X", "BCM3158"] +SystemInfo["HasFBCtuner"] = ["Vuplus DVB-C NIM(BCM3158)", "Vuplus DVB-C NIM(BCM3148)", "Vuplus DVB-S NIM(7376 FBC)", "Vuplus DVB-S NIM(45308X FBC)", "Vuplus DVB-S NIM(45208 FBC)", "DVB-S2 NIM(45208 FBC)", "DVB-S2X NIM(45308X FBC)", "DVB-S2 NIM(45308 FBC)", "DVB-C NIM(3128 FBC)", "BCM45208", "BCM45308X", "BCM45308X FBC", "BCM3158"] SystemInfo["FCCactive"] = False SystemInfo["rc_model"] = rc_model.getRcFolder() SystemInfo["mapKeyInfoToEpgFunctions"] = SystemInfo["rc_model"] in ("vu", "vu2", "vu3", "vu4") # due to button limitations of the remote control diff --git a/lib/python/Plugins/SystemPlugins/ViX/ImageManager.py b/lib/python/Plugins/SystemPlugins/ViX/ImageManager.py index 020ff6645c7..d88c8437f7f 100644 --- a/lib/python/Plugins/SystemPlugins/ViX/ImageManager.py +++ b/lib/python/Plugins/SystemPlugins/ViX/ImageManager.py @@ -586,34 +586,33 @@ def keyRestore5_ET8500(self, answer): def keyRestore6(self, ret): MAINDEST = "%s/%s" % (self.TEMPDESTROOT, SystemInfo["imagedir"]) print("[ImageManager] MAINDEST=%s" % MAINDEST) - if ret == 0: - CMD = "/usr/bin/ofgwrite -r -k '%s'" % MAINDEST # normal non multiboot receiver - if SystemInfo["canMultiBoot"]: - if self.multibootslot == 0 and SystemInfo["HasKexecMultiboot"]: # reset Vu Multiboot slot0 - kz0 = SystemInfo["mtdkernel"] - rz0 = SystemInfo["mtdrootfs"] - CMD = "/usr/bin/ofgwrite -k%s -r%s '%s'" % (kz0, rz0, MAINDEST) # slot0 treat as kernel/root only multiboot receiver - elif SystemInfo["HasHiSi"] and SystemInfo["canMultiBoot"][self.multibootslot]["rootsubdir"] is None: # sf8008 type receiver using SD card in multiboot - CMD = "/usr/bin/ofgwrite -r%s -k%s -m0 '%s'" % (self.MTDROOTFS, self.MTDKERNEL, MAINDEST) - print("[ImageManager] running commnd:%s slot = %s" % (CMD, self.multibootslot)) - if fileExists("/boot/STARTUP") and fileExists("/boot/STARTUP_6"): - copyfile("/boot/STARTUP_%s" % self.multibootslot, "/boot/STARTUP") - elif SystemInfo["HasKexecMultiboot"]: - if SystemInfo["HasKexecUSB"] and "mmcblk" not in self.MTDROOTFS: - CMD = "/usr/bin/ofgwrite -r%s -kzImage -s'%s/linuxrootfs' -m%s '%s'" % (self.MTDROOTFS, SystemInfo["boxtype"][2:], self.multibootslot, MAINDEST) - else: - CMD = "/usr/bin/ofgwrite -r%s -kzImage -m%s '%s'" % (self.MTDROOTFS, self.multibootslot, MAINDEST) - print("[ImageManager] running commnd:%s slot = %s" % (CMD, self.multibootslot)) + CMD = "/usr/bin/ofgwrite -r -k '%s'" % MAINDEST # normal non multiboot receiver + if SystemInfo["canMultiBoot"]: + if self.multibootslot == 0 and SystemInfo["HasKexecMultiboot"]: # reset Vu Multiboot slot0 + kz0 = SystemInfo["mtdkernel"] + rz0 = SystemInfo["mtdrootfs"] + CMD = "/usr/bin/ofgwrite -k%s -r%s '%s'" % (kz0, rz0, MAINDEST) # slot0 treat as kernel/root only multiboot receiver + elif SystemInfo["HasHiSi"] and SystemInfo["canMultiBoot"][self.multibootslot]["rootsubdir"] is None: # sf8008 type receiver using SD card in multiboot + CMD = "/usr/bin/ofgwrite -r%s -k%s -m0 '%s'" % (self.MTDROOTFS, self.MTDKERNEL, MAINDEST) + print("[ImageManager] running commnd:%s slot = %s" % (CMD, self.multibootslot)) + if fileExists("/boot/STARTUP") and fileExists("/boot/STARTUP_6"): + copyfile("/boot/STARTUP_%s" % self.multibootslot, "/boot/STARTUP") + elif SystemInfo["HasKexecMultiboot"]: + if SystemInfo["HasKexecUSB"] and "mmcblk" not in self.MTDROOTFS: + CMD = "/usr/bin/ofgwrite -r%s -kzImage -s'%s/linuxrootfs' -m%s '%s'" % (self.MTDROOTFS, SystemInfo["boxtype"][2:], self.multibootslot, MAINDEST) else: - CMD = "/usr/bin/ofgwrite -r -k -m%s '%s'" % (self.multibootslot, MAINDEST) # Normal multiboot - elif SystemInfo["HasH9SD"]: - if fileHas("/proc/cmdline", "root=/dev/mmcblk0p1") is True and fileExists("%s/rootfs.tar.bz2" % MAINDEST): # h9 using SD card - CMD = "/usr/bin/ofgwrite -rmmcblk0p1 '%s'" % MAINDEST - elif fileExists("%s/rootfs.ubi" % MAINDEST) and fileExists("%s/rootfs.tar.bz2" % MAINDEST): # h9 no SD card - build has both roots causes ofgwrite issue - rename("%s/rootfs.tar.bz2" % MAINDEST, "%s/xx.txt" % MAINDEST) - else: - CMD = "/usr/bin/ofgwrite -rmtd4 -kmtd3 %s/" % MAINDEST # Xtrend ET8500 with OS2 multiboot - print("[ImageManager] running commnd:", CMD) + CMD = "/usr/bin/ofgwrite -r%s -kzImage -m%s '%s'" % (self.MTDROOTFS, self.multibootslot, MAINDEST) + print("[ImageManager] running commnd:%s slot = %s" % (CMD, self.multibootslot)) + else: + CMD = "/usr/bin/ofgwrite -r -k -m%s '%s'" % (self.multibootslot, MAINDEST) # Normal multiboot + elif SystemInfo["HasH9SD"]: + if fileHas("/proc/cmdline", "root=/dev/mmcblk0p1") is True and fileExists("%s/rootfs.tar.bz2" % MAINDEST): # h9 using SD card + CMD = "/usr/bin/ofgwrite -rmmcblk0p1 '%s'" % MAINDEST + elif fileExists("%s/rootfs.ubi" % MAINDEST) and fileExists("%s/rootfs.tar.bz2" % MAINDEST): # h9 no SD card - build has both roots causes ofgwrite issue + rename("%s/rootfs.tar.bz2" % MAINDEST, "%s/xx.txt" % MAINDEST) + elif SystemInfo["machinebuild"] in ("dm900", "dm920"): # kernel:mmcblk0p1 root:mmcblk0p2 + CMD = "/usr/bin/ofgwrite -r%s '%s'" % (self.MTDROOTFS, MAINDEST) # No ofgwrite auto detection, so only flash root NOT kernel + print(f"[ImageManager] running command:{CMD} root:{self.MTDROOTFS}") self.Console.ePopen(CMD, self.ofgwriteResult) fbClass.getInstance().lock() diff --git a/lib/python/Plugins/SystemPlugins/ViX/MountManager.py b/lib/python/Plugins/SystemPlugins/ViX/MountManager.py index b477a5d5bfa..6113f5e28a0 100644 --- a/lib/python/Plugins/SystemPlugins/ViX/MountManager.py +++ b/lib/python/Plugins/SystemPlugins/ViX/MountManager.py @@ -10,7 +10,7 @@ from Components.config import getConfigListEntry, ConfigSelection, NoSave from Components.Console import Console from Components.Sources.List import List -from Components.SystemInfo import SystemInfo +from Components.SystemInfo import SystemInfo, BoxInfo from Screens.MessageBox import MessageBox from Screens.Screen import Screen from Screens.Standby import QUIT_REBOOT, TryQuitMainloop @@ -41,6 +41,7 @@ def readFile(filename): def getProcPartitions(partitionList): partitions = [] + boxModel = BoxInfo.getItem("model") with open("/proc/partitions", "r") as fd: for line in fd.readlines(): line = line.strip() @@ -53,21 +54,26 @@ def getProcPartitions(partitionList): devMajor = int(devmajor) if devMajor in blacklistedDisks: # Ignore all blacklisted devices. continue - if devMajor == 179: - if not SystemInfo["HasSDnomount"]: # Only interested in h9/i55/h9combo(+dups) mmc partitions. h9combo(+dups) uses mmcblk1p[0-3]. + if devMajor == 179 and boxModel in ("dm900", "dm920"): + print("[MountManager]2 device='%s', devmajor='%s', devminor='%s'." % (device, devmajor, devminor)) + if device != "mmcblk0p3": continue - if SystemInfo["HasH9SD"]: - if not re.search("mmcblk0p1", device): # h9/i55 only mmcblk0p1 mmc partition + else: + if devMajor == 179: + if not SystemInfo["HasSDnomount"]: # Only interested in h9/i55/h9combo(+dups) mmc partitions. h9combo(+dups) uses mmcblk1p[0-3]. continue - if SystemInfo["HasMMC"]: # With h9/i55 reject mmcblk0p1 mmc partition if root device. + if SystemInfo["HasH9SD"]: + if not re.search("mmcblk0p1", device): # h9/i55 only mmcblk0p1 mmc partition + continue + if SystemInfo["HasMMC"]: # With h9/i55 reject mmcblk0p1 mmc partition if root device. + continue + if SystemInfo["HasSDnomount"][0] and not re.search("mmcblk1p[0-3]", device): # h9combo(+dups) uses mmcblk1p[0-3] include + continue + if devMajor == 8: + if not re.search("sd[a-z][1-9]", device): # If storage use partitions only. + continue + if SystemInfo["HasHiSi"] and path.exists("/dev/sda4") and re.search("sd[a][1-4]", device): # Sf8008 using SDcard for slots ---> exclude continue - if SystemInfo["HasSDnomount"][0] and not re.search("mmcblk1p[0-3]", device): # h9combo(+dups) uses mmcblk1p[0-3] include - continue - if devMajor == 8: - if not re.search("sd[a-z][1-9]", device): # If storage use partitions only. - continue - if SystemInfo["HasHiSi"] and path.exists("/dev/sda4") and re.search("sd[a][1-4]", device): # Sf8008 using SDcard for slots ---> exclude - continue if device in partitions: # If device is already in partition list ignore it. continue buildPartitionInfo(device, partitionList) diff --git a/lib/python/Screens/Satconfig.py b/lib/python/Screens/Satconfig.py index 9cb43fd3e96..b64ffc2da21 100644 --- a/lib/python/Screens/Satconfig.py +++ b/lib/python/Screens/Satconfig.py @@ -858,7 +858,7 @@ def updateList(self, index=None): if x.isCompatible("DVB-S"): if nimConfig.configMode.value in ("loopthrough", "equal", "satposdepends"): if x.isFBCLink(): - text = _("FBC automatic\nconnected to") + text = "%s %s" % (_("FBC automatic\nconnected to"), nimmanager.getNim(int(nimConfig.connectedTo.value)).slot_name) else: text = "%s %s" % ({"loopthrough": _("Loop through from"), "equal": _("Equal to"), "satposdepends": _("Second cable of motorized LNB")}[nimConfig.configMode.value], nimmanager.getNim(int(nimConfig.connectedTo.value)).slot_name) diff --git a/lib/python/Screens/SessionGlobals.py b/lib/python/Screens/SessionGlobals.py index 6577b9052b0..a759f04c7b9 100644 --- a/lib/python/Screens/SessionGlobals.py +++ b/lib/python/Screens/SessionGlobals.py @@ -9,6 +9,7 @@ from Components.Sources.RecordState import RecordState from Components.Converter.Combine import Combine from Components.Renderer.FrontpanelLed import FrontpanelLed +from Components.SystemInfo import MODEL class SessionGlobals(Screen): @@ -46,5 +47,9 @@ def __init__(self, session): if nr_leds == 1: FrontpanelLed(which=0, boolean=False, patterns=[PATTERN_OFF, PATTERN_BLINK, PATTERN_OFF, PATTERN_BLINK]).connect(combine) elif nr_leds == 2: - FrontpanelLed(which=0, boolean=False, patterns=[PATTERN_OFF, PATTERN_BLINK, PATTERN_ON, PATTERN_BLINK]).connect(combine) - FrontpanelLed(which=1, boolean=False, patterns=[PATTERN_ON, PATTERN_ON, PATTERN_OFF, PATTERN_OFF]).connect(combine) + if MODEL in ("dm900", "dm920"): + FrontpanelLed(which=1, boolean=False, patterns=[PATTERN_OFF, PATTERN_BLINK, PATTERN_OFF, PATTERN_BLINK]).connect(combine) + FrontpanelLed(which=0, boolean=False, patterns=[PATTERN_ON, PATTERN_ON, PATTERN_OFF, PATTERN_OFF]).connect(combine) + else: + FrontpanelLed(which=0, boolean=False, patterns=[PATTERN_OFF, PATTERN_BLINK, PATTERN_ON, PATTERN_BLINK]).connect(combine) + FrontpanelLed(which=1, boolean=False, patterns=[PATTERN_ON, PATTERN_ON, PATTERN_OFF, PATTERN_OFF]).connect(combine) diff --git a/lib/python/Screens/UserInterfacePositioner.py b/lib/python/Screens/UserInterfacePositioner.py index 91d39cab265..43e204eae29 100644 --- a/lib/python/Screens/UserInterfacePositioner.py +++ b/lib/python/Screens/UserInterfacePositioner.py @@ -1,20 +1,23 @@ -from Screens.MessageBox import MessageBox -from Screens.Screen import Screen +from os import access, R_OK +import traceback +from enigma import getDesktop + from Components.ActionMap import ActionMap from Components.config import config, configfile, getConfigListEntry, ConfigSelectionNumber, ConfigSelection, ConfigSlider, ConfigYesNo, NoSave, ConfigNumber from Components.ConfigList import ConfigListScreen -from Components.SystemInfo import SystemInfo -from Components.Sources.StaticText import StaticText from Components.Console import Console +from Components.Sources.StaticText import StaticText +from Components.SystemInfo import SystemInfo, BRAND +from Screens.Screen import Screen +from Screens.MessageBox import MessageBox from Tools.Directories import fileCheck, fileExists -from enigma import getDesktop -from os import access, R_OK -import traceback def getFilePath(setting): - return "/proc/stb/fb/dst_%s" % (setting) - + if BRAND in ("dreambox", ): + return "/proc/stb/vmpeg/0/dst_%s" % (setting) + else: + return "/proc/stb/fb/dst_%s" % (setting) def setPositionParameter(parameter, configElement): f = open(getFilePath(parameter), "w") @@ -65,7 +68,7 @@ def set3DZnorm(configElement): def InitOsdPosition(): SystemInfo["CanChangeOsdAlpha"] = access('/proc/stb/video/alpha', R_OK) and True or False - SystemInfo["CanChangeOsdPosition"] = access('/proc/stb/fb/dst_left', R_OK) and True or False + SystemInfo["CanChangeOsdPosition"] = (access('/proc/stb/fb/dst_left', R_OK) or access('/proc/stb/vmpeg/0/dst_left', R_OK)) and True or False SystemInfo["OsdSetup"] = SystemInfo["CanChangeOsdPosition"] if SystemInfo["CanChangeOsdAlpha"] is True or SystemInfo["CanChangeOsdPosition"] is True: From 95477bf04b980bd2e74526645e0385d128e9f9c4 Mon Sep 17 00:00:00 2001 From: Huevos Date: Thu, 13 Jun 2024 23:23:29 +0000 Subject: [PATCH 24/62] openvix: developer 6.6.002.002 --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 576d7b78780..793ea7e600d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1272,3 +1272,4 @@ openvix: developer 6.6.001.002 openvix: developer 6.6.001.003 openvix: developer 6.6.001.004 openvix: developer 6.6.002.001 +openvix: developer 6.6.002.002 From 8d4a369746886aff70f931b3f487fb0d4b6dba11 Mon Sep 17 00:00:00 2001 From: Dimitar Tsenev Date: Fri, 14 Jun 2024 15:39:05 +0300 Subject: [PATCH 25/62] [Added] Screen icons in ScreenHeader addon --- lib/python/Components/Addons/ScreenHeader.py | 70 ++++++++++++++------ lib/python/Components/Pixmap.py | 4 +- lib/python/Screens/MessageBox.py | 2 +- lib/python/Screens/Screen.py | 4 +- 4 files changed, 56 insertions(+), 24 deletions(-) diff --git a/lib/python/Components/Addons/ScreenHeader.py b/lib/python/Components/Addons/ScreenHeader.py index 8126e105aba..a7b87bc04d3 100644 --- a/lib/python/Components/Addons/ScreenHeader.py +++ b/lib/python/Components/Addons/ScreenHeader.py @@ -4,8 +4,9 @@ from skin import applySkinFactor, parseFont, parseColor -from Components.MultiContent import MultiContentEntryText +from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaBlend from Components.Sources.StaticText import StaticText +from Components.Pixmap import Pixmap class ScreenHeader(GUIAddon): @@ -25,7 +26,7 @@ def __init__(self): def onContainerShown(self): for x, val in self.sources.items(): - if self.constructTitleItem not in val.onChanged: + if hasattr(val, "onChanged") and self.constructTitleItem not in val.onChanged: val.onChanged.append(self.constructTitleItem) self.l.setItemHeight(self.instance.size().height()) self.l.setItemWidth(self.instance.size().width()) @@ -40,26 +41,52 @@ def updateAddon(self, sequence): def buildEntry(self, sequence): yPos = 0 + xPos = 0 + textItemsCount = 0 + textItemsOffset = 0 res = [None] - isOneItem = len(sequence) == 1 - + + for idx, x in enumerate(sequence): + if isinstance(x, StaticText): + textItemsCount += 1 + if idx > 0 and textItemsOffset == 0: + textItemsOffset = idx + + isOneItem = textItemsCount == 1 + for idx, x in enumerate(sequence): - foreColor = self.titleForeground if idx == 0 else self.pathForeground - if isOneItem: + if not isinstance(x, StaticText): # assume it is Pixmap itemHeight = self.instance.size().height() - if not isOneItem and idx == 0: - itemHeight = self.instance.size().height() * 2 // 3 - elif idx == 1: - yPos = self.instance.size().height() * 2 // 3 - 3 - itemHeight = self.instance.size().height() // 3 - res.append(MultiContentEntryText( - pos=(0, yPos), - size=(self.instance.size().width(), itemHeight), - font=2 if isOneItem and idx == 0 else idx, flags=RT_HALIGN_LEFT | RT_VALIGN_CENTER, - text=x.text, - color=foreColor, color_sel=foreColor, - backcolor=self.backgroundColor, backcolor_sel=self.backgroundColor)) + pix_size = x.pixmap.size() + pixWidth = pix_size.width() + pixHeight = pix_size.height() + offset = (itemHeight - pixHeight) // 2 + res.append(MultiContentEntryPixmapAlphaBlend( + pos=(0, offset), + size=(pixWidth, pixHeight), + png=x.pixmap)) + xPos += pixWidth + offset + else: + foreColor = self.titleForeground if idx == 0 else self.pathForeground + if isOneItem: + itemHeight = self.instance.size().height() + yPos = 3 + if not isOneItem and idx == textItemsOffset: + itemHeight = self.instance.size().height() * 2 // 3 + elif idx == 1 + textItemsOffset: + yPos = self.instance.size().height() * 2 // 3 - 5 + itemHeight = self.instance.size().height() // 3 + + fontIndex = 2 if isOneItem and idx == textItemsOffset else idx - textItemsOffset + + res.append(MultiContentEntryText( + pos=(xPos, yPos), + size=(self.instance.size().width() - xPos, itemHeight), + font=fontIndex, flags=RT_HALIGN_LEFT | RT_VALIGN_CENTER, + text=x.text, + color=foreColor, color_sel=foreColor, + backcolor=self.backgroundColor, backcolor_sel=self.backgroundColor)) return res def postWidgetCreate(self, instance): @@ -70,8 +97,11 @@ def postWidgetCreate(self, instance): def constructTitleItem(self): sequence = [] for x, val in self.sources.items(): - if isinstance(val, StaticText) and val.text: - if val not in sequence: + if isinstance(val, StaticText): + if hasattr(val, "text") and val.text and val not in sequence: + sequence.append(val) + elif isinstance(val, Pixmap): + if val and val not in sequence: sequence.append(val) self.updateAddon(sequence) diff --git a/lib/python/Components/Pixmap.py b/lib/python/Components/Pixmap.py index fbb55fb9c5e..157d9388a26 100644 --- a/lib/python/Components/Pixmap.py +++ b/lib/python/Components/Pixmap.py @@ -14,13 +14,15 @@ class Pixmap(GUIComponent): def __init__(self): GUIComponent.__init__(self) self.xOffset, self.yOffset = 0, 0 + self.pixmap = None def getSize(self): s = self.instance.size() return s.width(), s.height() def setPixmap(self, pixmap): - self.instance.setPixmap(pixmap) + self.pixmap = pixmap + self.instance.setPixmap(self.pixmap) def applySkin(self, desktop, screen): if self.skinAttributes is not None: diff --git a/lib/python/Screens/MessageBox.py b/lib/python/Screens/MessageBox.py index aa0b32d4679..ff6323d3dd2 100644 --- a/lib/python/Screens/MessageBox.py +++ b/lib/python/Screens/MessageBox.py @@ -296,7 +296,7 @@ def move(self, direction): self["selectedChoice"].setText(self["list"].getCurrent()[0]) def __repr__(self): - return "%s(%s)" % (str(type(self)), self.text) + return "%s(%s)" % (str(type(self)), self.text if hasattr(self, "text") else "") def getListWidth(self): return self["list"].instance.getMaxItemTextWidth() diff --git a/lib/python/Screens/Screen.py b/lib/python/Screens/Screen.py index fad8102094a..58698ae484a 100644 --- a/lib/python/Screens/Screen.py +++ b/lib/python/Screens/Screen.py @@ -194,7 +194,7 @@ def getTitle(self): def setImage(self, image, source=None): self.screenImage = None if image and (images := {"menu": menus, "setup": setups}.get(source, screens)): - if (x := images.get(image, images.get("default", ""))) and isfile(x := resolveFilename(GUI_SKIN_ID, x)): + if (x := images.get(image, images.get("default", ""))) and isfile(x := resolveFilename(SCOPE_GUISKIN, x)): self.screenImage = x if self.screenImage and "Image" not in self: self["Image"] = Pixmap() @@ -294,7 +294,7 @@ def createGUIScreen(self, parent, desktop, updateonly=False): # w.instance.thisown = 0 applyAllAttributes(w.instance, desktop, w.skinAttributes, self.scale) if self.screenImage: - self["Image"].instance.setPixmap(LoadPixmap(self.screenImage)) + self["Image"].setPixmap(LoadPixmap(self.screenImage)) for f in self.onLayoutFinish: if not isinstance(f, type(self.close)): exec(f, globals(), locals()) # Python 3 From 69147f902a15deec8fc30ff72b53ce0d70c83796 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Fri, 14 Jun 2024 13:35:38 +0000 Subject: [PATCH 26/62] openvix: developer 6.6.002.003 --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 793ea7e600d..d36817fb483 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1273,3 +1273,4 @@ openvix: developer 6.6.001.003 openvix: developer 6.6.001.004 openvix: developer 6.6.002.001 openvix: developer 6.6.002.002 +openvix: developer 6.6.002.003 From 4a09bf5e0206a4df8a5aebe3089ef096e15c27c7 Mon Sep 17 00:00:00 2001 From: Dimitar Tsenev <dimitar_tsenev@outlook.com> Date: Sat, 15 Jun 2024 09:33:35 +0300 Subject: [PATCH 27/62] [Fixed] ScreenHeader exceptions --- lib/python/Components/Addons/ScreenHeader.py | 27 +++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/lib/python/Components/Addons/ScreenHeader.py b/lib/python/Components/Addons/ScreenHeader.py index a7b87bc04d3..b45f871245b 100644 --- a/lib/python/Components/Addons/ScreenHeader.py +++ b/lib/python/Components/Addons/ScreenHeader.py @@ -43,30 +43,33 @@ def buildEntry(self, sequence): yPos = 0 xPos = 0 textItemsCount = 0 - textItemsOffset = 0 + textItemsOffset = -1 res = [None] for idx, x in enumerate(sequence): if isinstance(x, StaticText): textItemsCount += 1 - if idx > 0 and textItemsOffset == 0: + if textItemsOffset == -1: textItemsOffset = idx isOneItem = textItemsCount == 1 + itemHeight = self.instance.size().height() + for idx, x in enumerate(sequence): if not isinstance(x, StaticText): # assume it is Pixmap - itemHeight = self.instance.size().height() - pix_size = x.pixmap.size() - pixWidth = pix_size.width() - pixHeight = pix_size.height() - offset = (itemHeight - pixHeight) // 2 - res.append(MultiContentEntryPixmapAlphaBlend( - pos=(0, offset), - size=(pixWidth, pixHeight), - png=x.pixmap)) - xPos += pixWidth + offset + if x.pixmap: + itemHeight = self.instance.size().height() + pix_size = x.pixmap.size() + pixWidth = pix_size.width() + pixHeight = pix_size.height() + offset = (itemHeight - pixHeight) // 2 + res.append(MultiContentEntryPixmapAlphaBlend( + pos=(0, offset), + size=(pixWidth, pixHeight), + png=x.pixmap)) + xPos += pixWidth + offset else: foreColor = self.titleForeground if idx == 0 else self.pathForeground if isOneItem: From 66b665c0c2cd1290824c7989c6bea9a486e7039e Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Sun, 16 Jun 2024 07:02:13 +0000 Subject: [PATCH 28/62] openvix: developer 6.6.002.004 --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index d36817fb483..38e9e742478 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1274,3 +1274,4 @@ openvix: developer 6.6.001.004 openvix: developer 6.6.002.001 openvix: developer 6.6.002.002 openvix: developer 6.6.002.003 +openvix: developer 6.6.002.004 From 1fae889cad2a1139e0796219c796bd13757a7920 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Tue, 18 Jun 2024 15:04:35 +0200 Subject: [PATCH 29/62] [setup.xml] SoftcamScript, add title --- data/setup.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/setup.xml b/data/setup.xml index bec78c0b25c..21f4c56664b 100644 --- a/data/setup.xml +++ b/data/setup.xml @@ -338,7 +338,7 @@ <item level="0" text="Automatically update Client/Server View" description="Automatically update Client/Server View">config.oscaminfo.autoupdate</item> <item level="0" text="Update interval (in seconds)" description="Update interval (in seconds)" conditional="config.oscaminfo.autoupdate.value">config.oscaminfo.intervall</item> </setup> - <setup key="softcamscriptsetup" title=""> + <setup key="softcamscriptsetup" title="Softcam Script"> <item level="0" text="SoftcamScript select camscript" description="Select a softcam script from the available list.">config.misc.softcams</item> <item level="0" text="SoftcamScript enable/disable cam restart" description="Allow reinitialisation of selected cam script.">config.misc.softcamrestarts</item> </setup> From 4810f46701cc9e9269f9b5595a3afd98898304b7 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Wed, 19 Jun 2024 03:19:14 +0200 Subject: [PATCH 30/62] [ChannelSelection] addBouquet, tweak filename --- lib/python/Screens/ChannelSelection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py index df30e300c78..7868ae68083 100644 --- a/lib/python/Screens/ChannelSelection.py +++ b/lib/python/Screens/ChannelSelection.py @@ -1021,8 +1021,8 @@ def addBouquet(self, bName, services): serviceHandler = eServiceCenter.getInstance() mutableBouquetList = serviceHandler.list(self.bouquet_root).startEdit() if mutableBouquetList: + name = sanitizeFilename(bName.replace(" ", "_")) bName += ' ' + (_("(TV)") if self.mode == MODE_TV else _("(Radio)")) - name = sanitizeFilename(bName) while os_path.isfile((self.mode == MODE_TV and '/etc/enigma2/userbouquet.%s.tv' or '/etc/enigma2/userbouquet.%s.radio') % name): name = name.rsplit('_', 1) name = ('_').join((name[0], len(name) == 2 and name[1].isdigit() and str(int(name[1]) + 1) or '1')) From 08bcb7d653429ea09f49fec053535b71621722bc Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Thu, 20 Jun 2024 21:54:01 +0000 Subject: [PATCH 31/62] openvix: developer 6.6.003.001 --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 38e9e742478..069ea1c206a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1275,3 +1275,4 @@ openvix: developer 6.6.002.001 openvix: developer 6.6.002.002 openvix: developer 6.6.002.003 openvix: developer 6.6.002.004 +openvix: developer 6.6.003.001 From e119075ef6babd659fa88acb6ae92fba50d7d1c4 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Sat, 22 Jun 2024 16:15:58 +0000 Subject: [PATCH 32/62] openvix: developer 6.6.003.002 --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 069ea1c206a..0a9990b56b0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1276,3 +1276,4 @@ openvix: developer 6.6.002.002 openvix: developer 6.6.002.003 openvix: developer 6.6.002.004 openvix: developer 6.6.003.001 +openvix: developer 6.6.003.002 From 37228eab801f1e02cf50d4ec7780f33c489944ce Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Sat, 22 Jun 2024 19:13:20 +0200 Subject: [PATCH 33/62] [Screen.py] add skinName ScreenSummary --- lib/python/Screens/Screen.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/python/Screens/Screen.py b/lib/python/Screens/Screen.py index 58698ae484a..afbb58fb4cf 100644 --- a/lib/python/Screens/Screen.py +++ b/lib/python/Screens/Screen.py @@ -338,4 +338,5 @@ def __init__(self, session, parent): if className != "ScreenSummary" and className not in self.skinName: # e.g. if a module uses Screens.Setup.SetupSummary the skin needs to be available directly self.skinName.append(className) self.skinName.append("SimpleSummary") + self.skinName.append("ScreenSummary") self.skin = parent.__dict__.get("skinSummary", self.skin) # If parent has a "skinSummary" defined, use that as default. From 278c4c85650580e8f90662c947ed9d63dc69bf5f Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Sat, 22 Jun 2024 19:21:06 +0200 Subject: [PATCH 34/62] [skin.py] make error message reflect the skin being loaded Messages from "readSkin" will still show the wrong value. Solution to be added. --- lib/python/skin.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/python/skin.py b/lib/python/skin.py index f74ac81bb38..0de42428cc3 100644 --- a/lib/python/skin.py +++ b/lib/python/skin.py @@ -47,6 +47,7 @@ currentPrimarySkin = None currentDisplaySkin = None +currentLoadingSkin = None onLoadCallbacks = [] # Skins are loaded in order of priority. Skin with highest priority is @@ -146,9 +147,11 @@ def loadSkinData(desktop): def loadSkin(filename, scope=SCOPE_SKIN, desktop=getDesktop(GUI_SKIN_ID), screenID=GUI_SKIN_ID): - global windowStyles + global windowStyles, currentLoadingSkin + retval = False filename = resolveFilename(scope, filename) if isfile(filename): + currentLoadingSkin = filename print("[Skin] Loading skin file '%s'." % filename) domSkin = fileReadXML(filename) if domSkin: @@ -175,8 +178,9 @@ def loadSkin(filename, scope=SCOPE_SKIN, desktop=getDesktop(GUI_SKIN_ID), screen # Element is not a screen or windowstyle element so no need for it any longer. reloadWindowStyles() # Reload the window style to ensure all skin changes are taken into account. print("[Skin] Loading skin file '%s' complete." % filename) - return True - return False + retval = True + currentLoadingSkin = None + return retval def addOnLoadCallback(callback): @@ -194,7 +198,7 @@ def __init__(self, message): self.msg = message def __str__(self): - return "[Skin] {%s}: %s! Please contact the skin's author!" % (config.skin.primary_skin.value, self.msg) + return "[Skin] {%s}: %s! Please contact the skin's author!" % (currentLoadingSkin or config.skin.primary_skin.value, self.msg) # Convert a coordinate string into a number. Used to convert object position and # size attributes into a number. From 7b5091737790e8c64000bc98dbf2f397c6bf3afe Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Sat, 22 Jun 2024 22:55:35 +0200 Subject: [PATCH 35/62] [LanguageSelection] fix BSoD < 34604.135217> Traceback (most recent call last): < 34604.135270> File "/usr/lib/enigma2/python/StartEnigma.py", line 73, in processDelay < 34604.135794> callback(*retval) < 34604.136039> TypeError: LanguageSelection.update_after_installLanguage() takes 1 positional argument but 2 were given --- lib/python/Screens/LanguageSelection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/python/Screens/LanguageSelection.py b/lib/python/Screens/LanguageSelection.py index 6080bd6246e..8517819a24c 100644 --- a/lib/python/Screens/LanguageSelection.py +++ b/lib/python/Screens/LanguageSelection.py @@ -193,7 +193,7 @@ def installLanguage(self): from Screens.PluginBrowser import PluginDownloadBrowser self.session.openWithCallback(self.update_after_installLanguage, PluginDownloadBrowser, 0) - def update_after_installLanguage(self): + def update_after_installLanguage(self, retval=None): language.InitLang() self.updateList() self.updateCache() From ba0f94ba1e753adbf2e456aceac741beee4774f8 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Tue, 25 Jun 2024 11:56:01 +0200 Subject: [PATCH 36/62] [ScreenSummary] tweak skinName --- lib/python/Screens/Screen.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/python/Screens/Screen.py b/lib/python/Screens/Screen.py index afbb58fb4cf..3ecc7ae2e04 100644 --- a/lib/python/Screens/Screen.py +++ b/lib/python/Screens/Screen.py @@ -333,7 +333,8 @@ def __init__(self, session, parent): names = parent.skinName if not isinstance(names, list): names = [names] - self.skinName = ["%s_summary" % x for x in names] + self.skinName = [f"{x}Summary" for x in names] + self.skinName += [f"{x}_summary" for x in names] # Used by some screens in /enigma2/data/display and enigma2-display-skins repo. className = self.__class__.__name__ if className != "ScreenSummary" and className not in self.skinName: # e.g. if a module uses Screens.Setup.SetupSummary the skin needs to be available directly self.skinName.append(className) From 9ba03526989de2805bc17b8c11fbee514f09dfb6 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Sun, 30 Jun 2024 14:34:00 +0000 Subject: [PATCH 37/62] openvix: developer 6.6.004.001 --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 0a9990b56b0..b3fdf1fa7ea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1277,3 +1277,4 @@ openvix: developer 6.6.002.003 openvix: developer 6.6.002.004 openvix: developer 6.6.003.001 openvix: developer 6.6.003.002 +openvix: developer 6.6.004.001 From 875862a2f68921c4d659ba57a15b2492d17968d8 Mon Sep 17 00:00:00 2001 From: jbleyel <jbleyel@gmx.net> Date: Fri, 26 Jan 2024 20:53:42 +0100 Subject: [PATCH 38/62] [dvbci-appmgr] fix menu string encoding * fix menu string encoding --- lib/dvb_ci/dvbci_appmgr.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/dvb_ci/dvbci_appmgr.cpp b/lib/dvb_ci/dvbci_appmgr.cpp index 5c35566fe69..482ebdd08aa 100644 --- a/lib/dvb_ci/dvbci_appmgr.cpp +++ b/lib/dvb_ci/dvbci_appmgr.cpp @@ -45,17 +45,16 @@ int eDVBCIApplicationManagerSession::receivedAPDU(const unsigned char *tag,const char str[dl + 1]; memcpy(str, ((char*)data) + 6, dl); str[dl] = '\0'; - eDebugNoNewLine("[CI%d AM] menu string: ", slot->getSlotID()); - for (int i = 0; i < dl; ++i) - eDebugNoNewLine("%c", ((unsigned char*)data)[i+6]); - eDebugNoNewLine("\n"); m_app_name = str; - if (m_app_name.size() > 0 && !isUTF8(m_app_name)) - { - m_app_name = repairUTF8(m_app_name.c_str(), m_app_name.size()); + if(m_app_name.size() > 0 && !isUTF8(m_app_name)) { + eDebug("[CI%d AM] menu string is not UTF8 hex output:%s\nstr output:%s\n",slot->getSlotID(),string_to_hex(m_app_name).c_str(),m_app_name.c_str()); + m_app_name = convertLatin1UTF8(m_app_name); eDebug("[CI%d AM] fixed menu string: %s", slot->getSlotID(), m_app_name.c_str()); } + else { + eDebug("[CI%d AM] menu string: %s", slot->getSlotID(), m_app_name.c_str()); + } /* emit */ eDVBCI_UI::getInstance()->m_messagepump.send(eDVBCIInterfaces::Message(eDVBCIInterfaces::Message::appNameChanged, slot->getSlotID(), m_app_name.c_str())); /* emit */ eDVBCI_UI::getInstance()->m_messagepump.send(eDVBCIInterfaces::Message(eDVBCIInterfaces::Message::slotStateChanged, slot->getSlotID(), 2)); From 946b24d29a7416fd8a9bfe8ba0cf2d9de2a0c5e9 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Tue, 2 Jul 2024 00:34:59 +0200 Subject: [PATCH 39/62] [StartEnigma] change indent --- lib/python/StartEnigma.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/python/StartEnigma.py b/lib/python/StartEnigma.py index 71005147717..b890f310ea1 100644 --- a/lib/python/StartEnigma.py +++ b/lib/python/StartEnigma.py @@ -638,9 +638,9 @@ def RCSelectionChanged(configelement): from Components.VolumeControl import VolumeControl # noqa: E402 from Tools.StbHardware import setFPWakeuptime, setRTCtime # noqa: E402 - profile("StackTracePrinter") - from Components.StackTrace import StackTracePrinter # noqa: E402 - StackTracePrinterInst = StackTracePrinter() +profile("StackTracePrinter") +from Components.StackTrace import StackTracePrinter # noqa: E402 +StackTracePrinterInst = StackTracePrinter() profile("Init:skin") print("[StartEnigma] Initialising Skins.") From aae542395780cad83cd7e45f52020fdcaffb7931 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Tue, 2 Jul 2024 02:53:57 +0200 Subject: [PATCH 40/62] [TunerInfo] KeyError: 'TunerAvailable' For compatibility with enigma-display-skins --- lib/python/Components/Converter/TunerInfo.py | 8 +++++++- lib/python/Components/Sources/TunerInfo.py | 6 +++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/python/Components/Converter/TunerInfo.py b/lib/python/Components/Converter/TunerInfo.py index 3bf7fc170eb..4f52df92ec1 100644 --- a/lib/python/Components/Converter/TunerInfo.py +++ b/lib/python/Components/Converter/TunerInfo.py @@ -7,13 +7,15 @@ class TunerInfo(Converter): def __init__(self, type): Converter.__init__(self, type) self.type = { - "TunerUseMask": TunerInfoSource.FE_USE_MASK + "TunerUseMask": TunerInfoSource.FE_USE_MASK, + 'TunerAvailable': TunerInfoSource.TUNER_AVAILABLE, }[type] @cached def getBoolean(self): if self.type == TunerInfoSource.FE_USE_MASK: return self.source.getTunerUseMask() and True or False + boolean = property(getBoolean) @cached @@ -21,13 +23,17 @@ def getText(self): if self.type == TunerInfoSource.FE_USE_MASK: return str(self.source.getTunerUseMask()) return "" + text = property(getText) @cached def getValue(self): if self.type == TunerInfoSource.FE_USE_MASK: return self.source.getTunerUseMask() + if self.type == TunerInfoSource.TUNER_AVAILABLE: + return self.source.getTunerAmount() return -1 + value = property(getValue) def changed(self, what): diff --git a/lib/python/Components/Sources/TunerInfo.py b/lib/python/Components/Sources/TunerInfo.py index 8edefdee0e9..ae7b786d651 100644 --- a/lib/python/Components/Sources/TunerInfo.py +++ b/lib/python/Components/Sources/TunerInfo.py @@ -1,10 +1,11 @@ from Components.Sources.Source import Source - +from Components.NimManager import nimmanager from enigma import eDVBResourceManager class TunerInfo(Source): FE_USE_MASK = 0 + TUNER_AVAILABLE = 1 def __init__(self): Source.__init__(self) @@ -22,6 +23,9 @@ def tunerUseMaskChanged(self, mask): def getTunerUseMask(self): return self.tuner_use_mask + def getTunerAmount(self): + return len(nimmanager.nim_slots) + def destroy(self): res_mgr = eDVBResourceManager.getInstance() if res_mgr: From e53fdb998ffb5724182ab1c9cef3ebcff0888827 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Tue, 2 Jul 2024 00:56:21 +0000 Subject: [PATCH 41/62] openvix: developer 6.6.004.002 --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index b3fdf1fa7ea..3157fb58ec2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1278,3 +1278,4 @@ openvix: developer 6.6.002.004 openvix: developer 6.6.003.001 openvix: developer 6.6.003.002 openvix: developer 6.6.004.001 +openvix: developer 6.6.004.002 From 5958f2b5b9047ce3b5379ab2f127d364cb128129 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Tue, 2 Jul 2024 14:41:39 +0200 Subject: [PATCH 42/62] [SkinSelector] update list sorting Previous sort was: LCDSkin 1 LCDSkin 10 LCDSkin 19 LCDSkin 2 LCDSkin 20 LCDSkin 21 LCDSkin 6 With this commit these are sorted correctly. --- lib/python/Screens/SkinSelector.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/python/Screens/SkinSelector.py b/lib/python/Screens/SkinSelector.py index 6e311815c3d..a2a475a0af2 100644 --- a/lib/python/Screens/SkinSelector.py +++ b/lib/python/Screens/SkinSelector.py @@ -126,7 +126,7 @@ def refreshList(self): skinEntry.append("%s %s" % (skinEntry[0], skinEntry[1])) # 0=SortKey, 1=Label, 2=Flag, 3=Directory, 4=Skin, 5=Resolution, 6=SkinSize, 7=Preview, 8=Label + Flag skinList.append(tuple([skinEntry[0].upper()] + skinEntry)) - skinList.sort() + skinList.sort(key=lambda s: tuple([(int(x) if x.isnumeric() else x.lower()) for x in re.split(r'(\d+)', s[0]) if x])) self["skins"].setList(skinList) # Set the list pointer to the current skin... for index in range(len(skinList)): From 9922b56751c05fc4fb779cd6dbf185ee2ba6d16c Mon Sep 17 00:00:00 2001 From: Dimitar Tsenev <dimitar_tsenev@outlook.com> Date: Tue, 2 Jul 2024 16:31:23 +0300 Subject: [PATCH 43/62] [Fixed] Various Dreambox LCD color issues [Fixed] Some png alpha blending issues Some of the code is taken from OpenATV..... --- lib/gdi/gpixmap.cpp | 252 ++++++---- lib/gdi/lcd.cpp | 21 + lib/gdi/picload.cpp | 1156 ++++++++++++++++++++++++------------------- lib/gdi/picload.h | 19 +- 4 files changed, 823 insertions(+), 625 deletions(-) diff --git a/lib/gdi/gpixmap.cpp b/lib/gdi/gpixmap.cpp index 4ec0f1b7eba..e9bf5adcd76 100644 --- a/lib/gdi/gpixmap.cpp +++ b/lib/gdi/gpixmap.cpp @@ -1668,8 +1668,8 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i { ASSERT(src.size().width()); ASSERT(src.size().height()); - scale_x = pos.size().width() * FIX / src.size().width(); - scale_y = pos.size().height() * FIX / src.size().height(); + scale_x = pos.size().width() * FIX / src.size().width(); // NOSONAR + scale_y = pos.size().height() * FIX / src.size().height(); // NOSONAR if (flag & blitKeepAspectRatio) { if (scale_x > scale_y) @@ -1698,11 +1698,11 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i if (accumulate) { int totalsurface = 0; - for (unsigned int i=0; i<clip.rects.size(); ++i) + for (unsigned int i = 0; i < clip.rects.size(); ++i) { eRect area = pos; /* pos is the virtual (pre-clipping) area on the dest, which can be larger/smaller than src if scaling is enabled */ - area&=clip.rects[i]; - area&=eRect(ePoint(0, 0), size()); + area &= clip.rects[i]; + area &= eRect(ePoint(0, 0), size()); if (area.empty()) continue; @@ -1725,14 +1725,14 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i } } -// eDebug("[gPixmap] SCALE %x %x", scale_x, scale_y); + // eDebug("[gPixmap] SCALE %x %x", scale_x, scale_y); - for (unsigned int i=0; i<clip.rects.size(); ++i) + for (unsigned int i = 0; i < clip.rects.size(); ++i) { -// eDebug("[gPixmap] clip rect: %d %d %d %d", clip.rects[i].x(), clip.rects[i].y(), clip.rects[i].width(), clip.rects[i].height()); + // eDebug("[gPixmap] clip rect: %d %d %d %d", clip.rects[i].x(), clip.rects[i].y(), clip.rects[i].width(), clip.rects[i].height()); eRect area = pos; /* pos is the virtual (pre-clipping) area on the dest, which can be larger/smaller than src if scaling is enabled */ - area&=clip.rects[i]; - area&=eRect(ePoint(0, 0), size()); + area &= clip.rects[i]; + area &= eRect(ePoint(0, 0), size()); if (area.empty()) continue; @@ -1740,15 +1740,16 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i eRect srcarea = area; srcarea.moveBy(-pos.x(), -pos.y()); - // eDebug("[gPixmap] srcarea before scale: %d %d %d %d", - // srcarea.x(), srcarea.y(), srcarea.width(), srcarea.height()); + // eDebug("[gPixmap] srcarea before scale: %d %d %d %d", + // srcarea.x(), srcarea.y(), srcarea.width(), srcarea.height()); if (flag & blitScale) srcarea = eRect(srcarea.x() * FIX / scale_x, srcarea.y() * FIX / scale_y, srcarea.width() * FIX / scale_x, srcarea.height() * FIX / scale_y); - // eDebug("[gPixmap] srcarea after scale: %d %d %d %d", - // srcarea.x(), srcarea.y(), srcarea.width(), srcarea.height()); - if (cornerRadius && surface->bpp == 32) + // eDebug("[gPixmap] srcarea after scale: %d %d %d %d", + // srcarea.x(), srcarea.y(), srcarea.width(), srcarea.height()); + + if (cornerRadius && surface->bpp == 32) { if (src.surface->bpp == 32) { @@ -1767,6 +1768,7 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i continue; } + #ifdef FORCE_NO_ACCELNEVER accel = false; #else @@ -1816,8 +1818,10 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i #ifdef GPIXMAP_DEBUG Stopwatch s; #endif - if (accel) { - if (!gAccel::getInstance()->blit(surface, src.surface, area, srcarea, flag)) { + if (accel) + { + if (!gAccel::getInstance()->blit(surface, src.surface, area, srcarea, flag)) + { #ifdef GPIXMAP_DEBUG s.stop(); eDebug("[gPixmap] [BLITBENCH] accel blit (%d bytes) took %u us", srcarea.surface() * src.surface->bypp, s.elapsed_us()); @@ -1833,16 +1837,16 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i if (flag & blitScale) { - if ((surface->bpp == 32) && (src.surface->bpp==8)) + if ((surface->bpp == 32) && (src.surface->bpp == 8)) { - const uint8_t *srcptr = (uint8_t*)src.surface->data; - uint8_t *dstptr=(uint8_t*)surface->data; // !! + const uint8_t *srcptr = (uint8_t *)src.surface->data; + uint8_t *dstptr = (uint8_t *)surface->data; // !! uint32_t pal[256]; convert_palette(pal, src.surface->clut); const int src_stride = src.surface->stride; - srcptr += srcarea.left()*src.surface->bypp + srcarea.top()*src_stride; - dstptr += area.left()*surface->bypp + area.top()*surface->stride; + srcptr += srcarea.left() * src.surface->bypp + srcarea.top() * src_stride; + dstptr += area.left() * surface->bypp + area.top() * surface->stride; const int width = area.width(); const int height = area.height(); const int src_height = srcarea.height(); @@ -1852,10 +1856,10 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i for (int y = 0; y < height; ++y) { const uint8_t *src_row_ptr = srcptr + (((y * src_height) / height) * src_stride); - uint32_t *dst = (uint32_t*)dstptr; + uint32_t *dst = (uint32_t *)dstptr; for (int x = 0; x < width; ++x) { - uint32_t pixel = pal[src_row_ptr[(x *src_width) / width]]; + uint32_t pixel = pal[src_row_ptr[(x * src_width) / width]]; if (pixel & 0x80000000) *dst = pixel; ++dst; @@ -1868,7 +1872,7 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i for (int y = 0; y < height; ++y) { const uint8_t *src_row_ptr = srcptr + (((y * src_height) / height) * src_stride); - gRGB *dst = (gRGB*)dstptr; + gRGB *dst = (gRGB *)dstptr; for (int x = 0; x < width; ++x) { dst->alpha_blend(pal[src_row_ptr[(x * src_width) / width]]); @@ -1882,7 +1886,7 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i for (int y = 0; y < height; ++y) { const uint8_t *src_row_ptr = srcptr + (((y * src_height) / height) * src_stride); - uint32_t *dst = (uint32_t*)dstptr; + uint32_t *dst = (uint32_t *)dstptr; for (int x = 0; x < width; ++x) { *dst = pal[src_row_ptr[(x * src_width) / width]]; @@ -1895,8 +1899,8 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i else if ((surface->bpp == 32) && (src.surface->bpp == 32)) { const int src_stride = src.surface->stride; - const uint8_t* srcptr = (const uint8_t*)src.surface->data + srcarea.left()*src.surface->bypp + srcarea.top()*src_stride; - uint8_t* dstptr = (uint8_t*)surface->data + area.left()*surface->bypp + area.top()*surface->stride; + const uint8_t *srcptr = (const uint8_t *)src.surface->data + srcarea.left() * src.surface->bypp + srcarea.top() * src_stride; + uint8_t *dstptr = (uint8_t *)surface->data + area.left() * surface->bypp + area.top() * surface->stride; const int width = area.width(); const int height = area.height(); const int src_height = srcarea.height(); @@ -1905,11 +1909,11 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i { for (int y = 0; y < height; ++y) { - const uint32_t *src_row_ptr = (uint32_t*)(srcptr + (((y * src_height) / height) * src_stride)); - uint32_t *dst = (uint32_t*)dstptr; + const uint32_t *src_row_ptr = (uint32_t *)(srcptr + (((y * src_height) / height) * src_stride)); + uint32_t *dst = (uint32_t *)dstptr; for (int x = 0; x < width; ++x) { - uint32_t pixel = src_row_ptr[(x *src_width) / width]; + uint32_t pixel = src_row_ptr[(x * src_width) / width]; if (pixel & 0x80000000) *dst = pixel; ++dst; @@ -1922,7 +1926,8 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i for (int y = 0; y < height; ++y) { const gRGB *src_row_ptr = (gRGB *)(srcptr + (((y * src_height) / height) * src_stride)); - gRGB *dst = (gRGB*)dstptr; + gRGB *dst = (gRGB *)dstptr; + for (int x = 0; x < width; ++x) { const gRGB &src_pixel = src_row_ptr[(x * src_width) / width]; @@ -1936,8 +1941,8 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i { for (int y = 0; y < height; ++y) { - const uint32_t *src_row_ptr = (uint32_t*)(srcptr + (((y * src_height) / height) * src_stride)); - uint32_t *dst = (uint32_t*)dstptr; + const uint32_t *src_row_ptr = (uint32_t *)(srcptr + (((y * src_height) / height) * src_stride)); + uint32_t *dst = (uint32_t *)dstptr; for (int x = 0; x < width; ++x) { *dst = src_row_ptr[(x * src_width) / width]; @@ -1953,7 +1958,7 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i } #ifdef GPIXMAP_DEBUG s.stop(); - eDebug("[gPixmap] [BLITBENCH] CPU scale blit (%d bytes) took %u us", srcarea.surface() * src.surface->bypp, s.elapsed_us()); + eDebug("[gPixmap] [BLITBENCH] CPU scale blit %dx%d transparent %d (%d bytes) took %u us", pos.width(), pos.height(), src.surface->transparent, srcarea.surface() * src.surface->bypp, s.elapsed_us()); #ifdef GPIXMAP_CHECK_THRESHOLD if (accel) { @@ -1966,19 +1971,19 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i if ((surface->bpp == 8) && (src.surface->bpp == 8)) { - uint8_t *srcptr=(uint8_t*)src.surface->data; - uint8_t *dstptr=(uint8_t*)surface->data; + uint8_t *srcptr = (uint8_t *)src.surface->data; + uint8_t *dstptr = (uint8_t *)surface->data; - srcptr+=srcarea.left()*src.surface->bypp+srcarea.top()*src.surface->stride; - dstptr+=area.left()*surface->bypp+area.top()*surface->stride; - if (flag & (blitAlphaTest|blitAlphaBlend)) + srcptr += srcarea.left() * src.surface->bypp + srcarea.top() * src.surface->stride; + dstptr += area.left() * surface->bypp + area.top() * surface->stride; + if (flag & (blitAlphaTest | blitAlphaBlend)) { for (int y = area.height(); y != 0; --y) { // no real alphatest yet - int width=area.width(); - uint8_t *s = srcptr; - uint8_t *d = dstptr; + int width = area.width(); + unsigned char *s = (unsigned char *)srcptr; + unsigned char *d = (unsigned char *)dstptr; // use duff's device here! while (width--) { @@ -1998,7 +2003,7 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i } else { - int linesize = area.width()*surface->bypp; + int linesize = area.width() * surface->bypp; for (int y = area.height(); y != 0; --y) { memcpy(dstptr, srcptr, linesize); @@ -2007,13 +2012,13 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i } } } - else if ((surface->bpp == 32) && (src.surface->bpp==32)) + else if ((surface->bpp == 32) && (src.surface->bpp == 32)) { - uint32_t *srcptr=(uint32_t*)src.surface->data; - uint32_t *dstptr=(uint32_t*)surface->data; + uint32_t *srcptr = (uint32_t *)src.surface->data; + uint32_t *dstptr = (uint32_t *)surface->data; - srcptr+=srcarea.left()+srcarea.top()*src.surface->stride/4; - dstptr+=area.left()+area.top()*surface->stride/4; + srcptr += srcarea.left() + srcarea.top() * src.surface->stride / 4; + dstptr += area.left() + area.top() * surface->stride / 4; for (int y = area.height(); y != 0; --y) { if (flag & blitAlphaTest) @@ -2021,21 +2026,23 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i int width = area.width(); uint32_t *src = srcptr; uint32_t *dst = dstptr; + while (width--) { - if (!((*src)&0xFF000000)) + if (!((*src) & 0xFF000000)) { - ++src; - ++dst; - } else - *dst++=*src++; + src++; + dst++; + } + else + *dst++ = *src++; } } else if (flag & blitAlphaBlend) { int width = area.width(); - gRGB *src = (gRGB*)srcptr; - gRGB *dst = (gRGB*)dstptr; + gRGB *src = (gRGB *)srcptr; + gRGB *dst = (gRGB *)dstptr; while (width--) { dst->alpha_blend(*src++); @@ -2043,99 +2050,135 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i } } else - memcpy(dstptr, srcptr, area.width()*surface->bypp); - srcptr = (uint32_t*)((uint8_t*)srcptr + src.surface->stride); - dstptr = (uint32_t*)((uint8_t*)dstptr + surface->stride); + memcpy(dstptr, srcptr, area.width() * surface->bypp); + srcptr = (uint32_t *)((uint8_t *)srcptr + src.surface->stride); + dstptr = (uint32_t *)((uint8_t *)dstptr + surface->stride); } } - else if ((surface->bpp == 32) && (src.surface->bpp==8)) + else if ((surface->bpp == 32) && (src.surface->bpp == 8)) { - const uint8_t *srcptr = (uint8_t*)src.surface->data; - uint8_t *dstptr=(uint8_t*)surface->data; // !! + const uint8_t *srcptr = (uint8_t *)src.surface->data; + uint8_t *dstptr = (uint8_t *)surface->data; // !! uint32_t pal[256]; convert_palette(pal, src.surface->clut); - srcptr+=srcarea.left()*src.surface->bypp+srcarea.top()*src.surface->stride; - dstptr+=area.left()*surface->bypp+area.top()*surface->stride; - const int width=area.width(); + srcptr += srcarea.left() * src.surface->bypp + srcarea.top() * src.surface->stride; + dstptr += area.left() * surface->bypp + area.top() * surface->stride; + const int width = area.width(); for (int y = area.height(); y != 0; --y) { if (flag & blitAlphaTest) - blit_8i_to_32_at((uint32_t*)dstptr, srcptr, pal, width); + blit_8i_to_32_at((uint32_t *)dstptr, srcptr, pal, width); else if (flag & blitAlphaBlend) - blit_8i_to_32_ab((gRGB*)dstptr, srcptr, (const gRGB*)pal, width); + blit_8i_to_32_ab((gRGB *)dstptr, srcptr, (const gRGB *)pal, width); else - blit_8i_to_32((uint32_t*)dstptr, srcptr, pal, width); + blit_8i_to_32((uint32_t *)dstptr, srcptr, pal, width); srcptr += src.surface->stride; dstptr += surface->stride; } } - else if ((surface->bpp == 16) && (src.surface->bpp==8)) + else if ((surface->bpp == 16) && (src.surface->bpp == 8)) { - uint8_t *srcptr=(uint8_t*)src.surface->data; - uint8_t *dstptr=(uint8_t*)surface->data; // !! + uint8_t *srcptr = (uint8_t *)src.surface->data; + uint8_t *dstptr = (uint8_t *)surface->data; // !! uint32_t pal[256]; - for (int i=0; i != 256; ++i) + for (int i = 0; i != 256; ++i) { uint32_t icol; - if (src.surface->clut.data && (i<src.surface->clut.colors)) + if (src.surface->clut.data && (i < src.surface->clut.colors)) icol = src.surface->clut.data[i].argb(); else - icol=0x010101*i; + icol = 0x010101 * i; #if BYTE_ORDER == LITTLE_ENDIAN pal[i] = bswap_16(((icol & 0xFF) >> 3) << 11 | ((icol & 0xFF00) >> 10) << 5 | (icol & 0xFF0000) >> 19); #else pal[i] = ((icol & 0xFF) >> 3) << 11 | ((icol & 0xFF00) >> 10) << 5 | (icol & 0xFF0000) >> 19; #endif - pal[i]^=0xFF000000; + pal[i] ^= 0xFF000000; } - srcptr+=srcarea.left()*src.surface->bypp+srcarea.top()*src.surface->stride; - dstptr+=area.left()*surface->bypp+area.top()*surface->stride; + srcptr += srcarea.left() * src.surface->bypp + srcarea.top() * src.surface->stride; + dstptr += area.left() * surface->bypp + area.top() * surface->stride; if (flag & blitAlphaBlend) eWarning("[gPixmap] ignore unsupported 8bpp -> 16bpp alphablend!"); - for (int y=0; y<area.height(); y++) + for (int y = 0; y < area.height(); y++) { - int width=area.width(); - unsigned char *psrc=(unsigned char*)srcptr; - uint16_t *dst=(uint16_t*)dstptr; + int width = area.width(); + unsigned char *psrc = (unsigned char *)srcptr; + uint16_t *dst = (uint16_t *)dstptr; if (flag & blitAlphaTest) blit_8i_to_16_at(dst, psrc, pal, width); else blit_8i_to_16(dst, psrc, pal, width); - srcptr+=src.surface->stride; - dstptr+=surface->stride; + srcptr += src.surface->stride; + dstptr += surface->stride; } } - else if ((surface->bpp == 16) && (src.surface->bpp==32)) + else if ((surface->bpp == 16) && (src.surface->bpp == 32)) { - uint8_t *srcptr=(uint8_t*)src.surface->data; - uint8_t *dstptr=(uint8_t*)surface->data; + uint8_t *srcptr = (uint8_t *)src.surface->data; + uint8_t *dstptr = (uint8_t *)surface->data; - srcptr+=srcarea.left()+srcarea.top()*src.surface->stride; - dstptr+=area.left()+area.top()*surface->stride; + srcptr += srcarea.left() * src.surface->bypp + srcarea.top() * src.surface->stride; + dstptr += area.left() * surface->bypp + area.top() * surface->stride; - if (flag & blitAlphaBlend) - eWarning("[gPixmap] ignore unsupported 32bpp -> 16bpp alphablend!"); - - for (int y=0; y<area.height(); y++) + for (int y = 0; y < area.height(); y++) { - int width=area.width(); - uint32_t *srcp=(uint32_t*)srcptr; - uint16_t *dstp=(uint16_t*)dstptr; + int width = area.width(); + uint32_t *srcp = (uint32_t *)srcptr; + uint16_t *dstp = (uint16_t *)dstptr; - if (flag & blitAlphaTest) + if (flag & blitAlphaBlend) { while (width--) { - if (!((*srcp)&0xFF000000)) + if (!((*srcp) & 0xFF000000)) { - ++srcp; - ++dstp; - } else + srcp++; + dstp++; + } + else + { + gRGB icol = *srcp++; +#if BYTE_ORDER == LITTLE_ENDIAN + uint32_t jcol = bswap_16(*dstp); +#else + uint32_t jcol = *dstp; +#endif + int bg_b = (jcol >> 8) & 0xF8; + int bg_g = (jcol >> 3) & 0xFC; + int bg_r = (jcol << 3) & 0xF8; + + int a = icol.a; + int r = icol.r; + int g = icol.g; + int b = icol.b; + + r = ((r - bg_r) * a) / 255 + bg_r; + g = ((g - bg_g) * a) / 255 + bg_g; + b = ((b - bg_b) * a) / 255 + bg_b; + +#if BYTE_ORDER == LITTLE_ENDIAN + *dstp++ = bswap_16((b >> 3) << 11 | (g >> 2) << 5 | r >> 3); +#else + *dstp++ = (b >> 3) << 11 | (g >> 2) << 5 | r >> 3; +#endif + } + } + } + else if (flag & blitAlphaTest) + { + while (width--) + { + if (!((*srcp) & 0xFF000000)) + { + srcp++; + dstp++; + } + else { uint32_t icol = *srcp++; #if BYTE_ORDER == LITTLE_ENDIAN @@ -2145,7 +2188,8 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i #endif } } - } else + } + else { while (width--) { @@ -2157,15 +2201,15 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i #endif } } - srcptr+=src.surface->stride; - dstptr+=surface->stride; + srcptr += src.surface->stride; + dstptr += surface->stride; } } else eWarning("[gPixmap] cannot blit %dbpp from %dbpp", surface->bpp, src.surface->bpp); #ifdef GPIXMAP_DEBUG s.stop(); - eDebug("[gPixmap] [BLITBENCH] cpu blit (%d bytes) took %u us", srcarea.surface() * src.surface->bypp, s.elapsed_us()); + eDebug("[gPixmap] [BLITBENCH] cpu blit %dx%d transparent %d (%d bytes) took %u us", pos.width(), pos.height(), src.surface->transparent, srcarea.surface() * src.surface->bypp, s.elapsed_us()); #ifdef GPIXMAP_CHECK_THRESHOLD if (accel) { diff --git a/lib/gdi/lcd.cpp b/lib/gdi/lcd.cpp index 1b39b34407a..bb57bf08270 100644 --- a/lib/gdi/lcd.cpp +++ b/lib/gdi/lcd.cpp @@ -413,6 +413,27 @@ void eDBoxLCD::update() ((unsigned int *)gb_buffer)[offset] = ((src >> 3) & 0x001F001F) | ((src << 3) & 0xF800F800) | ((src >> 8) & 0x00E000E0) | ((src << 8) & 0x07000700); } write(lcdfd, gb_buffer, _stride * res.height()); +#elif defined(DREAMBOX) + // gggrrrrrbbbbbggg bit order from memory + // gggbbbbbrrrrrggg bit order to LCD + unsigned char gb_buffer[_stride * res.height()]; + if (!(0x03 & (_stride * res.height()))) + { // fast + for (int offset = 0; offset < ((_stride * res.height()) >> 2); offset++) + { + unsigned int src = ((unsigned int *)_buffer)[offset]; + ((unsigned int *)gb_buffer)[offset] = src & 0xE007E007 | (src & 0x1F001F00) >> 5 | (src & 0x00F800F8) << 5; + } + } + else + { // slow + for (int offset = 0; offset < _stride * res.height(); offset += 2) + { + gb_buffer[offset] = (_buffer[offset] & 0x07) | ((_buffer[offset + 1] << 3) & 0xE8); + gb_buffer[offset + 1] = (_buffer[offset + 1] & 0xE0) | ((_buffer[offset] >> 3) & 0x1F); + } + } + ret = write(lcdfd, gb_buffer, _stride * res.height()); #else write(lcdfd, _buffer, _stride * res.height()); #endif diff --git a/lib/gdi/picload.cpp b/lib/gdi/picload.cpp index 08706ad32ef..193cdd128f2 100644 --- a/lib/gdi/picload.cpp +++ b/lib/gdi/picload.cpp @@ -4,7 +4,9 @@ #include <lib/base/cfile.h> #include <lib/base/estring.h> +#include <lib/base/wrappers.h> #include <lib/gdi/picload.h> +#include <lib/gdi/picexif.h> extern "C" { #define HAVE_BOOLEAN @@ -28,7 +30,79 @@ static std::string getSize(const char* file) struct stat64 s = {}; if (stat64(file, &s) < 0) return ""; - return std::to_string((long)(s.st_size / 1024)) + " kB"; + char tmp[21]; + snprintf(tmp, 21, "%ld kB", (long)s.st_size / 1024); + return tmp; +} + +static int convert_8Bit_to_24Bit(Cfilepara *filepara, unsigned char *dest) +{ + if( (!filepara) || (!dest)) + return -1; + + unsigned char *src = filepara->pic_buffer; + gRGB * palette = filepara->palette; + int pixel_cnt = filepara->ox * filepara->oy; + + if( (!src) || (!palette) || (!pixel_cnt)) + return -1; + + for( int i = 0; i < pixel_cnt; i++) + { + *dest++ = palette[*src].r; + *dest++ = palette[*src].g; + *dest++ = palette[*src++].b; + } + return 0; +} + +static unsigned char *simple_resize_24(unsigned char *orgin, int ox, int oy, int dx, int dy) +{ + unsigned char *cr = new unsigned char[dx * dy * 3]; + if (cr == NULL) + { + eDebug("[ePicLoad] Error malloc"); + return orgin; + } + const int stride = 3 * dx; + #pragma omp parallel for + for (int j = 0; j < dy; ++j) + { + unsigned char* k = cr + (j * stride); + const unsigned char* p = orgin + (j * oy / dy * ox) * 3; + for (int i = 0; i < dx; i++) + { + const unsigned char* ip = p + (i * ox / dx) * 3; + *k++ = ip[0]; + *k++ = ip[1]; + *k++ = ip[2]; + } + } + delete [] orgin; + return cr; +} + +static unsigned char *simple_resize_8(unsigned char *orgin, int ox, int oy, int dx, int dy) +{ + unsigned char* cr = new unsigned char[dx * dy]; + if (cr == NULL) + { + eDebug("[ePicLoad] Error malloc"); + return(orgin); + } + const int stride = dx; + #pragma omp parallel for + for (int j = 0; j < dy; ++j) + { + unsigned char* k = cr + (j * stride); + const unsigned char* p = orgin + (j * oy / dy * ox); + for (int i = 0; i < dx; i++) + { + *k++ = p[i * ox / dx]; + } + } + delete [] orgin; + return cr; } static unsigned char *color_resize(unsigned char * orgin, int ox, int oy, int dx, int dy) @@ -68,7 +142,7 @@ static unsigned char *color_resize(unsigned char * orgin, int ox, int oy, int dx b += q[2]; } } - if (sq == 0) // prevent division by zero + if (sq == 0) // prevent Division by zero sq = 1; p[0] = r / sq; p[1] = g / sq; @@ -118,8 +192,7 @@ static unsigned char *bmp_load(const char *file, int *x, int *y) int fd = open(file, O_RDONLY); if (fd == -1) return NULL; - if (lseek(fd, BMP_SIZE_OFFSET, SEEK_SET) == -1) - { + if (lseek(fd, BMP_SIZE_OFFSET, SEEK_SET) == -1) { close(fd); return NULL; } @@ -169,13 +242,13 @@ static unsigned char *bmp_load(const char *file, int *x, int *y) fetch_pallete(fd, pallete, 16); lseek(fd, raster, SEEK_SET); unsigned char * tbuffer = new unsigned char[*x / 2 + 1]; - if (tbuffer == NULL) - { + if (tbuffer == NULL) { close(fd); return NULL; } for (int i = 0; i < *y; i++) { + if (read(fd, tbuffer, (*x) / 2 + *x % 2) != ((*x) / 2 + *x % 2)) { eDebug("[ePicLoad] failed to read %d bytes...", ((*x) / 2 + *x % 2)); @@ -217,8 +290,7 @@ static unsigned char *bmp_load(const char *file, int *x, int *y) fetch_pallete(fd, pallete, 256); lseek(fd, raster, SEEK_SET); unsigned char * tbuffer = new unsigned char[*x]; - if (tbuffer == NULL) - { + if (tbuffer == NULL) { close(fd); return NULL; } @@ -238,7 +310,7 @@ static unsigned char *bmp_load(const char *file, int *x, int *y) { if (read(fd, buff, skip) != skip) { - eDebug("[ePicLoad] failed to skip %d bytes...", skip); + eDebug("[ePicLoad] failed to read %d bytes...", skip); } } wr_buffer -= (*x) * 3; @@ -252,10 +324,7 @@ static unsigned char *bmp_load(const char *file, int *x, int *y) lseek(fd, raster, SEEK_SET); for (int i = 0; i < (*y); i++) { - if (read(fd, wr_buffer, (*x) * 3) != ((*x) * 3)) - { - eDebug("[picload] failed to read %d bytes...", ((*x) * 3)); - } + [[maybe_unused]] size_t ret = read(fd, wr_buffer, (*x) * 3); for (int j = 0; j < (*x) * 3 ; j = j + 3) { unsigned char c = wr_buffer[j]; @@ -266,7 +335,7 @@ static unsigned char *bmp_load(const char *file, int *x, int *y) { if (read(fd, buff, skip) != skip) { - eDebug("[ePicLoad] failed to skip %d bytes...", skip); + eDebug("[ePicLoad] failed to read %d bytes...", skip); } } wr_buffer -= (*x) * 3; @@ -281,14 +350,23 @@ static unsigned char *bmp_load(const char *file, int *x, int *y) close(fd); return(pic_buffer); -} -//--------------------------------------------------------------------- +} -static void png_load(Cfilepara* filepara, int background, bool forceRGB=false) +/** + * @brief Load a png + * + * If you make change to png_load, check the functionality with PngSuite + * http://www.schaik.com/pngsuite/ + * These are test images in all standard PNG. + * + * @param filepara + * @param background + * @return void + */ +static void png_load(Cfilepara *filepara, unsigned int background) { png_uint_32 width, height; - unsigned int i; int bit_depth, color_type, interlace_type; png_byte *fbptr; CFile fh(filepara->file, "rb"); @@ -297,16 +375,21 @@ static void png_load(Cfilepara* filepara, int background, bool forceRGB=false) png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); if (png_ptr == NULL) + { + eDebug("[ePicLoad] Error png_create_read_struct"); return; + } png_infop info_ptr = png_create_info_struct(png_ptr); if (info_ptr == NULL) { + eDebug("[ePicLoad] Error png_create_info_struct"); png_destroy_read_struct(&png_ptr, (png_infopp)NULL, (png_infopp)NULL); return; } if (setjmp(png_jmpbuf(png_ptr))) { + eDebug("[ePicLoad] Error setjmp"); png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); return; } @@ -315,98 +398,171 @@ static void png_load(Cfilepara* filepara, int background, bool forceRGB=false) png_read_info(png_ptr, info_ptr); png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_type, NULL, NULL); + int pixel_cnt = width * height; + + filepara->ox = width; + filepara->oy = height; + + // This is a hack to support 8bit pngs with transparency since the detection is not really correct for some reason.... + if (color_type == PNG_COLOR_TYPE_PALETTE && bit_depth == 8) { + color_type = PNG_COLOR_TYPE_RGBA; + } + + + if (color_type == PNG_COLOR_TYPE_RGBA || color_type == PNG_COLOR_TYPE_GA) { + filepara->transparent = true; + filepara->bits = 32; // Here set bits to 32 explicitly to simulate alpha transparency if it is not explicitly set + } + else + { + png_bytep trans_alpha = NULL; + int num_trans = 0; + png_color_16p trans_color = NULL; + + png_get_tRNS(png_ptr, info_ptr, &trans_alpha, &num_trans, &trans_color); + filepara->transparent = (trans_alpha != NULL); + } - if (!forceRGB && (color_type == PNG_COLOR_TYPE_GRAY || color_type & PNG_COLOR_MASK_PALETTE)) + if ((bit_depth <= 8) && (color_type == PNG_COLOR_TYPE_GRAY || color_type & PNG_COLOR_MASK_PALETTE)) { if (bit_depth < 8) - { png_set_packing(png_ptr); - bit_depth = 8; + + unsigned char *pic_buffer = new unsigned char[pixel_cnt]; + if (!pic_buffer) + { + eDebug("[ePicLoad] Error malloc"); + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); + return; } - unsigned char *pic_buffer = new unsigned char[height * width]; - filepara->ox = width; - filepara->oy = height; - filepara->pic_buffer = pic_buffer; - filepara->bits = 8; - png_bytep *rowptr=new png_bytep[height]; - for (unsigned int i=0; i!=height; i++) + int number_passes = png_set_interlace_handling(png_ptr); + png_read_update_info(png_ptr, info_ptr); + + for (int pass = 0; pass < number_passes; pass++) { - rowptr[i]=(png_byte*)pic_buffer; - pic_buffer += width; + fbptr = (png_byte *)pic_buffer; + for (unsigned int i = 0; i < height; i++, fbptr += width) + png_read_row(png_ptr, fbptr, NULL); } - png_read_rows(png_ptr, rowptr, 0, height); - delete [] rowptr; if (png_get_valid(png_ptr, info_ptr, PNG_INFO_PLTE)) { png_color *palette; int num_palette; png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette); + filepara->palette_size = num_palette; if (num_palette) filepara->palette = new gRGB[num_palette]; - for (int i=0; i<num_palette; i++) + + for (unsigned int i = 0; i < num_palette; i++) { - filepara->palette[i].a=0; - filepara->palette[i].r=palette[i].red; - filepara->palette[i].g=palette[i].green; - filepara->palette[i].b=palette[i].blue; + filepara->palette[i].a = 0; + filepara->palette[i].r = palette[i].red; + filepara->palette[i].g = palette[i].green; + filepara->palette[i].b = palette[i].blue; } + if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) { png_byte *trans; png_get_tRNS(png_ptr, info_ptr, &trans, &num_palette, 0); - for (int i=0; i<num_palette; i++) - filepara->palette[i].a=255-trans[i]; + for (unsigned int i = 0; i < num_palette; i++) + filepara->palette[i].a = 255 - trans[i]; } } + else + { + int c_cnt = 1 << bit_depth; + int c_step = (256 - 1) / (c_cnt - 1); + filepara->palette_size = c_cnt; + filepara->palette = new gRGB[c_cnt]; + for (unsigned int i = 0; i < c_cnt; i++) + { + filepara->palette[i].a = 0; + filepara->palette[i].r = i * c_step; + filepara->palette[i].g = i * c_step; + filepara->palette[i].b = i * c_step; + } + } + filepara->pic_buffer = pic_buffer; + filepara->bits = 8; + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); } else { if (bit_depth == 16) png_set_strip_16(png_ptr); + if (color_type == PNG_COLOR_TYPE_GRAY || color_type == PNG_COLOR_TYPE_GRAY_ALPHA) png_set_gray_to_rgb(png_ptr); - if (color_type & PNG_COLOR_MASK_PALETTE) - png_set_palette_to_rgb(png_ptr); - if (color_type & PNG_COLOR_MASK_ALPHA || png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) - { - png_set_strip_alpha(png_ptr); - png_color_16 bg; - bg.red = (background >> 16) & 0xFF; - bg.green = (background >> 8) & 0xFF; - bg.blue = (background) & 0xFF; - bg.gray = bg.green; - bg.index = 0; - png_set_background(png_ptr, &bg, PNG_BACKGROUND_GAMMA_SCREEN, 0, 1.0); - } + + if ((color_type == PNG_COLOR_TYPE_PALETTE) || (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) || (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))) + png_set_expand(png_ptr); + + int number_passes = png_set_interlace_handling(png_ptr); png_read_update_info(png_ptr, info_ptr); - if (width * 3 != png_get_rowbytes(png_ptr, info_ptr)) + int bpp = png_get_rowbytes(png_ptr, info_ptr) / width; + if ((bpp != 4) && (bpp != 3)) { - eDebug("[ePicLoad] Error processing (did not get RGB data from PNG file)"); + eDebug("[ePicLoad] Error processing"); png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); return; } - unsigned char *pic_buffer = new unsigned char[height * width * 3]; - filepara->ox = width; - filepara->oy = height; - filepara->pic_buffer = pic_buffer; + unsigned char *pic_buffer = new unsigned char[pixel_cnt * bpp]; + if (!pic_buffer) + { + eDebug("[ePicLoad] Error malloc"); + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); + return; + } - int number_passes = png_set_interlace_handling(png_ptr); - for(int pass = 0; pass < number_passes; pass++) + for (int pass = 0; pass < number_passes; pass++) { fbptr = (png_byte *)pic_buffer; - for (i = 0; i < height; i++, fbptr += width * 3) + for (unsigned int i = 0; i < height; i++, fbptr += width * bpp) png_read_row(png_ptr, fbptr, NULL); } png_read_end(png_ptr, info_ptr); + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); + + if (bpp == 4) + { + unsigned char *pic_buffer24 = new unsigned char[pixel_cnt * 3]; + if (!pic_buffer24) + { + eDebug("[ePicLoad] Error malloc"); + delete[] pic_buffer; + return; + } + + unsigned char *src = pic_buffer; + unsigned char *dst = pic_buffer24; + int bg_r = (background >> 16) & 0xFF; + int bg_g = (background >> 8) & 0xFF; + int bg_b = background & 0xFF; + for (unsigned int i = 0; i < pixel_cnt; i++) + { + int r = (int)*src++; + int g = (int)*src++; + int b = (int)*src++; + int a = (int)*src++; + + *dst++ = ((r - bg_r) * a) / 255 + bg_r; + *dst++ = ((g - bg_g) * a) / 255 + bg_g; + *dst++ = ((b - bg_b) * a) / 255 + bg_b; + } + delete[] pic_buffer; + filepara->pic_buffer = pic_buffer24; + } + else + filepara->pic_buffer = pic_buffer; + filepara->bits = 24; } - png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); } - //------------------------------------------------------------------- struct r_jpeg_error_mgr @@ -425,14 +581,12 @@ void jpeg_cb_error_exit(j_common_ptr cinfo) static unsigned char *jpeg_load(const char *file, int *ox, int *oy, unsigned int max_x, unsigned int max_y) { - struct jpeg_decompress_struct cinfo = {}; + struct jpeg_decompress_struct cinfo; struct jpeg_decompress_struct *ciptr = &cinfo; - struct r_jpeg_error_mgr emgr = {}; - unsigned char *pic_buffer; + struct r_jpeg_error_mgr emgr; + unsigned char *pic_buffer=NULL; CFile fh(file, "rb"); - pic_buffer = nullptr; - if (!fh) return NULL; @@ -448,22 +602,24 @@ static unsigned char *jpeg_load(const char *file, int *ox, int *oy, unsigned int jpeg_stdio_src(ciptr, fh); jpeg_read_header(ciptr, TRUE); ciptr->out_color_space = JCS_RGB; - + int s = 8; if (max_x == 0) max_x = 1280; // sensible default if (max_y == 0) max_y = 720; - // define scale to always fit vertically or horizontally in all orientations - ciptr->scale_denom = 8; - unsigned int screenmax = max_x > max_y ? max_x : max_y; - unsigned int imagemin = ciptr->image_width < ciptr->image_height ? ciptr->image_width : ciptr->image_height; - ciptr->scale_num = (ciptr->scale_denom * screenmax + imagemin -1) / imagemin; - if (ciptr->scale_num < 1) ciptr->scale_num = 1; - if (ciptr->scale_num > 16) ciptr->scale_num = 16; + while (s != 1) + { + if ((ciptr->image_width >= (s * max_x)) || + (ciptr->image_height >= (s * max_y))) + break; + s /= 2; + } + ciptr->scale_num = 1; + ciptr->scale_denom = s; jpeg_start_decompress(ciptr); *ox=ciptr->output_width; *oy=ciptr->output_height; - //eDebug("[jpeg_load] ox=%d oy=%d w=%d (%d), h=%d (%d) scale=%d rec_outbuf_height=%d", ciptr->output_width, ciptr->output_height, ciptr->image_width, max_x, ciptr->image_height, max_y, ciptr->scale_num, ciptr->rec_outbuf_height); + // eDebug("[jpeg_load] jpeg_read ox=%d oy=%d w=%d (%d), h=%d (%d) scale=%d rec_outbuf_height=%d", ciptr->output_width, ciptr->output_height, ciptr->image_width, max_x, ciptr->image_height, max_y, ciptr->scale_denom, ciptr->rec_outbuf_height); if(ciptr->output_components == 3) { @@ -485,8 +641,8 @@ static unsigned char *jpeg_load(const char *file, int *ox, int *oy, unsigned int static int jpeg_save(const char * filename, int ox, int oy, unsigned char *pic_buffer) { - struct jpeg_compress_struct cinfo = {}; - struct jpeg_error_mgr jerr = {}; + struct jpeg_compress_struct cinfo; + struct jpeg_error_mgr jerr; JSAMPROW row_pointer[1]; int row_stride; CFile outfile(filename, "wb"); @@ -500,7 +656,7 @@ static int jpeg_save(const char * filename, int ox, int oy, unsigned char *pic_b cinfo.err = jpeg_std_error(&jerr); jpeg_create_compress(&cinfo); - eDebug("[ePicLoad] save Thumbnail... %s",filename); + // eDebug("[ePicLoad] save Thumbnail... %s",filename); jpeg_stdio_dest(&cinfo, outfile); @@ -605,11 +761,11 @@ static void svg_load(Cfilepara* filepara, bool forceRGB = false) free(pic_buffer); } } - -static void gif_load(Cfilepara* filepara, bool forceRGB = false) +static void gif_load(Cfilepara* filepara) { unsigned char *pic_buffer = NULL; int px, py, i, j; + unsigned char *fbptr; unsigned char *slb=NULL; GifFileType *gft; GifRecordType rt; @@ -618,10 +774,13 @@ static void gif_load(Cfilepara* filepara, bool forceRGB = false) int cmaps; int extcode; -#if GIFLIB_MAJOR > 5 || GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1 - gft = DGifOpenFileName(filepara->file, &extcode); -#else +#if !defined(GIFLIB_MAJOR) || ( GIFLIB_MAJOR < 5) gft = DGifOpenFileName(filepara->file); +#else + { + int err; + gft = DGifOpenFileName(filepara->file, &err); + } #endif if (gft == NULL) return; @@ -655,9 +814,10 @@ static void gif_load(Cfilepara* filepara, bool forceRGB = false) filepara->palette[i].b = cmap->Colors[i].Blue; } + fbptr = pic_buffer; if (!(gft->Image.Interlace)) { - for (i = 0; i < py; i++) + for (i = 0; i < py; i++, fbptr += px * 3) { if (DGifGetLine(gft, slb, px) == GIF_ERROR) goto ERROR_R; @@ -666,37 +826,17 @@ static void gif_load(Cfilepara* filepara, bool forceRGB = false) } else { - int IOffset[] = { 0, 4, 2, 1 }; // The way Interlaced image should. - int IJumps[] = { 8, 8, 4, 2 }; // be read - offsets and jumps... for (j = 0; j < 4; j++) { - for (i = IOffset[j]; i < py; i += IJumps[j]) + slb = pic_buffer; + for (i = 0; i < py; i++) { - if (DGifGetLine(gft, pic_buffer + i*px, px) == GIF_ERROR) + if (DGifGetLine(gft, slb, px) == GIF_ERROR) goto ERROR_R; + slb += px; } } } - if (forceRGB) { - unsigned char *pic_buffer2 = new unsigned char[px * py * 3]; - if (pic_buffer2 != NULL) { - unsigned char *slb2 = pic_buffer2; - slb = pic_buffer; - for (j = 0; j < py; j++) { - for (i = 0; i < px; i++) { - int c = *slb++; - *slb2++ = filepara->palette[c].r; - *slb2++ = filepara->palette[c].g; - *slb2++ = filepara->palette[c].b; - } - } - filepara->bits = 24; - filepara->pic_buffer = pic_buffer2; - delete [] pic_buffer; - delete [] filepara->palette; - filepara->palette = NULL; - } - } } break; case EXTENSION_RECORD_TYPE: @@ -712,18 +852,24 @@ static void gif_load(Cfilepara* filepara, bool forceRGB = false) } while (rt != TERMINATE_RECORD_TYPE); -#if GIFLIB_MAJOR > 5 || GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1 - DGifCloseFile(gft, &extcode); -#else +#if !defined(GIFLIB_MAJOR) || ( GIFLIB_MAJOR < 5) || (GIFLIB_MAJOR == 5 && GIFLIB_MINOR == 0) DGifCloseFile(gft); +#else + { + int err; + DGifCloseFile(gft, &err); + } #endif return; ERROR_R: eDebug("[ePicLoad] <Error gif>"); -#if GIFLIB_MAJOR > 5 || GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1 - DGifCloseFile(gft, &extcode); -#else +#if !defined(GIFLIB_MAJOR) || ( GIFLIB_MAJOR < 5) || (GIFLIB_MAJOR == 5 && GIFLIB_MINOR == 0) DGifCloseFile(gft); +#else + { + int err; + DGifCloseFile(gft, &err); + } #endif } @@ -731,11 +877,10 @@ static void gif_load(Cfilepara* filepara, bool forceRGB = false) ePicLoad::ePicLoad(): m_filepara(NULL), - m_exif(NULL), threadrunning(false), m_conf(), - msg_thread(this,1, "ePicLoad_thread"), - msg_main(eApp,1, "ePicLoad_main") + msg_thread(this,1,"ePicLoad_thread"), + msg_main(eApp,1,"ePicLoad_main") { CONNECT(msg_thread.recv_msg, ePicLoad::gotMessage); CONNECT(msg_main.recv_msg, ePicLoad::gotMessage); @@ -748,7 +893,6 @@ ePicLoad::PConf::PConf(): background(0), resizetype(1), usecache(false), - auto_orientation(false), thumbnailsize(180) { } @@ -763,98 +907,96 @@ ePicLoad::~ePicLoad() { if (threadrunning) waitFinished(); - if (m_filepara != NULL) + if(m_filepara != NULL) delete m_filepara; - if (m_exif != NULL) { - m_exif->ClearExif(); - delete m_exif; - } } void ePicLoad::thread_finished() { - threadrunning = false; + threadrunning=false; } void ePicLoad::thread() { - threadrunning = true; + threadrunning=true; hasStarted(); - if (nice(4)) - { - eDebug("[ePicLoad] thread failed to modify scheduling priority (%m)"); - } + [[maybe_unused]] int ret = nice(4); runLoop(); } void ePicLoad::decodePic() { - eDebug("[ePicLoad] decode picture... %s", m_filepara->file); + eDebug("[ePicLoad] decode picture... %s",m_filepara->file); - getExif(m_filepara->file, m_filepara->id); switch(m_filepara->id) { - case F_PNG: png_load(m_filepara, m_conf.background); - break; - case F_JPEG: m_filepara->pic_buffer = jpeg_load(m_filepara->file, &m_filepara->ox, &m_filepara->oy, m_filepara->max_x, m_filepara->max_y); - break; - case F_BMP: m_filepara->pic_buffer = bmp_load(m_filepara->file, &m_filepara->ox, &m_filepara->oy); - break; - case F_GIF: gif_load(m_filepara); - break; - case F_SVG: svg_load(m_filepara); - break; + case F_PNG: png_load(m_filepara, m_conf.background); break; + case F_JPEG: m_filepara->pic_buffer = jpeg_load(m_filepara->file, &m_filepara->ox, &m_filepara->oy, m_filepara->max_x, m_filepara->max_y); m_filepara->transparent = false; break; + case F_BMP: m_filepara->pic_buffer = bmp_load(m_filepara->file, &m_filepara->ox, &m_filepara->oy); m_filepara->transparent = false; break; + case F_GIF: gif_load(m_filepara); break; + case F_SVG: svg_load(m_filepara); break; } + + if(m_filepara->pic_buffer != NULL) + resizePic(); } void ePicLoad::decodeThumb() { - eDebug("[ePicLoad] get Thumbnail... %s", m_filepara->file); + eDebug("[ePicLoad] get Thumbnail... %s",m_filepara->file); bool exif_thumbnail = false; bool cachefile_found = false; std::string cachefile = ""; std::string cachedir = "/.Thumbnails"; - getExif(m_filepara->file, m_filepara->id, 1); - if (m_exif && m_exif->m_exifinfo->IsExif) + if(m_filepara->id == F_JPEG) { - if (m_exif->m_exifinfo->Thumnailstate == 2) + Cexif *exif = new Cexif; + if(exif->DecodeExif(m_filepara->file, 1)) { - free(m_filepara->file); - m_filepara->file = strdup(THUMBNAILTMPFILE); - m_filepara->id = F_JPEG; // imbedded thumbnail seem to be jpeg - exif_thumbnail = true; - eDebug("[ePicLoad] decodeThumb: Exif Thumbnail found"); + if(exif->m_exifinfo->IsExif) + { + if(exif->m_exifinfo->Thumnailstate==2) + { + free(m_filepara->file); + m_filepara->file = strdup(THUMBNAILTMPFILE); + exif_thumbnail = true; + eDebug("[ePicLoad] Exif Thumbnail found"); + } + m_filepara->addExifInfo(exif->m_exifinfo->CameraMake); + m_filepara->addExifInfo(exif->m_exifinfo->CameraModel); + m_filepara->addExifInfo(exif->m_exifinfo->DateTime); + char buf[20]; + snprintf(buf, 20, "%d x %d", exif->m_exifinfo->Width, exif->m_exifinfo->Height); + m_filepara->addExifInfo(buf); + } + exif->ClearExif(); } - //else - // eDebug("[ePicLoad] decodeThumb: NO Exif Thumbnail found"); - m_filepara->addExifInfo(m_exif->m_exifinfo->CameraMake); - m_filepara->addExifInfo(m_exif->m_exifinfo->CameraModel); - m_filepara->addExifInfo(m_exif->m_exifinfo->DateTime); - char buf[20]; - snprintf(buf, 20, "%d x %d", m_exif->m_exifinfo->Width, m_exif->m_exifinfo->Height); - m_filepara->addExifInfo(buf); + delete exif; } - else - eDebug("[ePicLoad] decodeThumb: NO Exif info"); - if (!exif_thumbnail && m_conf.usecache) + if((! exif_thumbnail) && m_conf.usecache) { - if (FILE *f = fopen(m_filepara->file, "rb")) + if(FILE *f=fopen(m_filepara->file, "rb")) { int c; - int count = 1024*100; // get checksum data out of max 100kB - uint32_t crc32 = 0; - char crcstr[9]; - *crcstr = 0; + int count = 1024*100; + unsigned long crc32 = 0; + char crcstr[16];*crcstr=0; - while (count-- > 0 && (c = getc(f)) != EOF) + while ((c=getc(f))!=EOF) + { crc32 = crc32_table[((crc32) ^ (c)) & 0xFF] ^ ((crc32) >> 8); + if(--count < 0) break; + } fclose(f); crc32 = ~crc32; - sprintf(crcstr, "%08X", crc32); +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wformat-truncation" + snprintf(crcstr, 16, "%08lX", crc32); +#pragma GCC diagnostic pop cachedir = m_filepara->file; size_t pos = cachedir.find_last_of("/"); @@ -862,44 +1004,38 @@ void ePicLoad::decodeThumb() cachedir = cachedir.substr(0, pos) + "/.Thumbnails"; cachefile = cachedir + std::string("/pc_") + crcstr; - if (!access(cachefile.c_str(), R_OK)) + if(!access(cachefile.c_str(), R_OK)) { cachefile_found = true; free(m_filepara->file); m_filepara->file = strdup(cachefile.c_str()); m_filepara->id = F_JPEG; - eDebug("[ePicLoad] Cache File %s found", cachefile.c_str()); + eDebug("[ePicLoad] Cache File found"); } } } - switch (m_filepara->id) + switch(m_filepara->id) { - case F_PNG: png_load(m_filepara, m_conf.background, true); - break; - case F_JPEG: m_filepara->pic_buffer = jpeg_load(m_filepara->file, &m_filepara->ox, &m_filepara->oy, m_filepara->max_x, m_filepara->max_y); - break; - case F_BMP: m_filepara->pic_buffer = bmp_load(m_filepara->file, &m_filepara->ox, &m_filepara->oy); - break; - case F_GIF: gif_load(m_filepara, true); - break; - case F_SVG: svg_load(m_filepara, true); - break; + case F_PNG: png_load(m_filepara, m_conf.background); break; + case F_JPEG: m_filepara->pic_buffer = jpeg_load(m_filepara->file, &m_filepara->ox, &m_filepara->oy, m_filepara->max_x, m_filepara->max_y); break; + case F_BMP: m_filepara->pic_buffer = bmp_load(m_filepara->file, &m_filepara->ox, &m_filepara->oy); break; + case F_GIF: gif_load(m_filepara); break; + case F_SVG: svg_load(m_filepara); break; } - //eDebug("[ePicLoad] getThumb picture loaded %s", m_filepara->file); - if (exif_thumbnail) + if(exif_thumbnail) ::unlink(THUMBNAILTMPFILE); - if (m_filepara->pic_buffer != NULL) + if(m_filepara->pic_buffer != NULL) { - // Save cachefile - if (m_conf.usecache && !exif_thumbnail && !cachefile_found) + //save cachefile + if(m_conf.usecache && (! exif_thumbnail) && (! cachefile_found)) { - if (access(cachedir.c_str(), R_OK)) + if(access(cachedir.c_str(), R_OK)) ::mkdir(cachedir.c_str(), 0755); - // Resize for Thumbnail + //resize for Thumbnail int imx, imy; if (m_filepara->ox <= m_filepara->oy) { @@ -912,15 +1048,68 @@ void ePicLoad::decodeThumb() imy = (int)( (m_conf.thumbnailsize * ((double)m_filepara->oy)) / ((double)m_filepara->ox) ); } - // eDebug("[ePicLoad] getThumb resize from %dx%d to %dx%d", m_filepara->ox, m_filepara->oy, imx, imy); - m_filepara->pic_buffer = color_resize(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); + if (m_filepara->bits == 8) + m_filepara->pic_buffer = simple_resize_8(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); + else + m_filepara->pic_buffer = color_resize(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); + m_filepara->ox = imx; m_filepara->oy = imy; - if (jpeg_save(cachefile.c_str(), m_filepara->ox, m_filepara->oy, m_filepara->pic_buffer)) - eDebug("[ePicLoad] getThumb: error saving cachefile"); + if (m_filepara->bits == 8) + { + unsigned char * tmp = new unsigned char [m_filepara->ox * m_filepara->oy * 3]; + if(tmp) + { + if(!convert_8Bit_to_24Bit(m_filepara, tmp)) + { + if(jpeg_save(cachefile.c_str(), m_filepara->ox, m_filepara->oy, tmp)) + eDebug("[ePicLoad] error saving cachefile"); + } + else + eDebug("[ePicLoad] error saving cachefile"); + delete [] tmp; + } + else + eDebug("[ePicLoad] Error malloc"); + } + else + if(jpeg_save(cachefile.c_str(), m_filepara->ox, m_filepara->oy, m_filepara->pic_buffer)) + eDebug("[ePicLoad] error saving cachefile"); } + resizePic(); + } +} + +void ePicLoad::resizePic() +{ + int imx, imy; + + if (m_conf.aspect_ratio == 0) // do not keep aspect ration but just fill the destination area + { + imx = m_filepara->max_x; + imy = m_filepara->max_y; + } + else if ((m_conf.aspect_ratio * m_filepara->oy * m_filepara->max_x / m_filepara->ox) <= m_filepara->max_y) + { + imx = m_filepara->max_x; + imy = (int)(m_conf.aspect_ratio * m_filepara->oy * m_filepara->max_x / m_filepara->ox); } + else + { + imx = (int)((1.0/m_conf.aspect_ratio) * m_filepara->ox * m_filepara->max_y / m_filepara->oy); + imy = m_filepara->max_y; + } + + if (m_filepara->bits == 8) + m_filepara->pic_buffer = simple_resize_8(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); + else if (m_conf.resizetype) + m_filepara->pic_buffer = color_resize(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); + else + m_filepara->pic_buffer = simple_resize_24(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); + + m_filepara->ox = imx; + m_filepara->oy = imy; } void ePicLoad::gotMessage(const Message &msg) @@ -941,11 +1130,8 @@ void ePicLoad::gotMessage(const Message &msg) break; case Message::decode_finished: // called from main thread //eDebug("[ePicLoad] decode finished... %s", m_filepara->file); - if(m_filepara->callback) - { - eDebug("[ePicLoad] picinfo... %s", m_filepara->picinfo.c_str()); + if((m_filepara != NULL) && (m_filepara->callback)) PictureData(m_filepara->picinfo.c_str()); - } else { if(m_filepara != NULL) @@ -953,13 +1139,11 @@ void ePicLoad::gotMessage(const Message &msg) delete m_filepara; m_filepara = NULL; } - if (m_exif != NULL) { - m_exif->ClearExif(); - delete m_exif; - m_exif = NULL; - } } break; + case Message::decode_error: + msg_main.send(Message(Message::decode_finished)); + break; default: eDebug("[ePicLoad] unhandled thread message"); } @@ -979,42 +1163,80 @@ int ePicLoad::startThread(int what, const char *file, int x, int y, bool async) delete m_filepara; m_filepara = NULL; } - if (m_exif != NULL) { - m_exif->ClearExif(); - delete m_exif; - m_exif = NULL; - } - int file_id = getFileType(file); - if(file_id < 0) - { - eDebug("[ePicLoad] <format not supported>"); - return 1; - } + + int file_id = -1; + unsigned char id[10]; + int fd = ::open(file, O_RDONLY); + if (fd == -1) return -errno; + [[maybe_unused]] size_t ret = ::read(fd, id, 10); + ::close(fd); + + if(id[1] == 'P' && id[2] == 'N' && id[3] == 'G') file_id = F_PNG; + else if(id[6] == 'J' && id[7] == 'F' && id[8] == 'I' && id[9] == 'F') file_id = F_JPEG; + else if(id[0] == 0xff && id[1] == 0xd8 && id[2] == 0xff) file_id = F_JPEG; + else if(id[0] == 'B' && id[1] == 'M' ) file_id = F_BMP; + else if(id[0] == 'G' && id[1] == 'I' && id[2] == 'F') file_id = F_GIF; + else if(id[0] == '<' && id[1] == 's' && id[2] == 'v' && id[3] == 'g') file_id = F_SVG; + else if(endsWith(file, ".svg")) file_id = F_SVG; m_filepara = new Cfilepara(file, file_id, getSize(file)); m_filepara->max_x = x > 0 ? x : m_conf.max_x; m_filepara->max_y = x > 0 ? y : m_conf.max_y; - if(m_filepara->max_x <= 0 || m_filepara->max_y <= 0) + if(file_id < 0 || m_filepara->max_x <= 0 || m_filepara->max_y <= 0) { + if(file_id < 0) + eDebug("[ePicLoad] <format not supported>"); + else + eDebug("[ePicLoad] <error in Para>"); + if(async) + { + msg_thread.send(Message(Message::decode_error)); + run(); + return 0; + } + delete m_filepara; m_filepara = NULL; - eDebug("[ePicLoad] <error in Para>"); - return 1; - } - if (async) { - if(what == 1) + if(file_id < 0) + return 2; + else + return 3; + } + if(async) + { + if(what==1) msg_thread.send(Message(Message::decode_Pic)); else msg_thread.send(Message(Message::decode_Thumb)); run(); } else if (what == 1) + { decodePic(); + if(!m_filepara->pic_buffer) + { + // in case of memeory leak, maybe we need this + // delete m_filepara; + // m_filepara = NULL; + eDebug("[ePicLoad] <no data>"); + return 4; + } + } else + { decodeThumb(); + if(!m_filepara->pic_buffer) + { + //in case of memeory leak, maybe we need this + // delete m_filepara; + // m_filepara = NULL; + eDebug("[ePicLoad] <no data>"); + return 4; + } + } return 0; } @@ -1032,51 +1254,61 @@ PyObject *ePicLoad::getInfo(const char *filename) { ePyObject list; - // FIXME : m_filepara destroyed by getData. Need refactor this but plugins rely in it :( - getExif(filename, m_filepara ? m_filepara->id : -1); - if(m_exif && m_exif->m_exifinfo->IsExif) + Cexif *exif = new Cexif; + if(exif->DecodeExif(filename)) { - char tmp[256]; - int pos = 0; - list = PyList_New(23); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(filename)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->Version)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->CameraMake)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->CameraModel)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->DateTime)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromFormat("%d x %d", m_exif->m_exifinfo->Width, m_exif->m_exifinfo->Height)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->FlashUsed)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->Orientation)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->Comments)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->MeteringMode)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->ExposureProgram)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->LightSource)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromFormat("%d", m_exif->m_exifinfo->CompressionLevel)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromFormat("%d", m_exif->m_exifinfo->ISOequivalent)); - snprintf(tmp, sizeof(tmp) - 1, "%.2f", m_exif->m_exifinfo->Xresolution); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); - snprintf(tmp, sizeof(tmp) - 1, "%.2f", m_exif->m_exifinfo->Yresolution); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->ResolutionUnit)); - snprintf(tmp, sizeof(tmp) - 1, "%.2f", m_exif->m_exifinfo->Brightness); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); - snprintf(tmp, sizeof(tmp) - 1, "%.5f sec.", m_exif->m_exifinfo->ExposureTime); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); - snprintf(tmp, sizeof(tmp) - 1, "%.5f", m_exif->m_exifinfo->ExposureBias); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); - snprintf(tmp, sizeof(tmp) - 1, "%.5f", m_exif->m_exifinfo->Distance); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); - snprintf(tmp, sizeof(tmp) - 1, "%.5f", m_exif->m_exifinfo->CCDWidth); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); - snprintf(tmp, sizeof(tmp) - 1, "%.2f", m_exif->m_exifinfo->ApertureFNumber); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); + if(exif->m_exifinfo->IsExif) + { + char tmp[256]; + int pos=0; + list = PyList_New(23); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(filename)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->Version)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->CameraMake)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->CameraModel)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->DateTime)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromFormat("%d x %d", exif->m_exifinfo->Width, exif->m_exifinfo->Height)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->FlashUsed)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->Orientation)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->Comments)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->MeteringMode)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->ExposureProgram)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->LightSource)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromFormat("%d", exif->m_exifinfo->CompressionLevel)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromFormat("%d", exif->m_exifinfo->ISOequivalent)); + sprintf(tmp, "%.2f", exif->m_exifinfo->Xresolution); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); + sprintf(tmp, "%.2f", exif->m_exifinfo->Yresolution); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->ResolutionUnit)); + sprintf(tmp, "%.2f", exif->m_exifinfo->Brightness); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); + sprintf(tmp, "%.5f sec.", exif->m_exifinfo->ExposureTime); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); + sprintf(tmp, "%.5f", exif->m_exifinfo->ExposureBias); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); + sprintf(tmp, "%.5f", exif->m_exifinfo->Distance); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); + sprintf(tmp, "%.5f", exif->m_exifinfo->CCDWidth); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); + sprintf(tmp, "%.2f", exif->m_exifinfo->ApertureFNumber); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); + } + else + { + list = PyList_New(2); + PyList_SET_ITEM(list, 0, PyUnicode_FromString(filename)); + PyList_SET_ITEM(list, 1, PyUnicode_FromString(exif->m_szLastError)); + } + exif->ClearExif(); } else { list = PyList_New(2); PyList_SET_ITEM(list, 0, PyUnicode_FromString(filename)); - PyList_SET_ITEM(list, 1, PyUnicode_FromString(m_exif->m_szLastError)); + PyList_SET_ITEM(list, 1, PyUnicode_FromString(exif->m_szLastError)); } + delete exif; return list ? (PyObject*)list : (PyObject*)PyList_New(0); } @@ -1096,7 +1328,7 @@ int ePicLoad::getData(ePtr<gPixmap> &result) { if (m_filepara == NULL) { - eDebug("[ePicLoad] Weird situation, was not decoding anything!"); + eDebug("[ePicLoad] - Weird situation, I wasn't decoding anything!"); result = 0; return 1; } @@ -1105,283 +1337,165 @@ int ePicLoad::getData(ePtr<gPixmap> &result) delete m_filepara; m_filepara = NULL; result = 0; - if (m_exif != NULL) { - m_exif->ClearExif(); - delete m_exif; - m_exif = NULL; - } return 0; } - result = new gPixmap(m_filepara->max_x, m_filepara->max_y, m_filepara->bits == 8 ? 8 : 32, - NULL, m_filepara->bits == 8 ? gPixmap::accelAlways : gPixmap::accelAuto); - gUnmanagedSurface *surface = result->surface; - - // original image : ox, oy - // surface size : max_x, max_y - // after aspect calc : scrx, scry - // center image : xoff, yoff - int scrx, scry; // Aspect ratio calculation - int orientation = m_conf.auto_orientation ? (m_exif && m_exif->m_exifinfo->Orient ? m_exif->m_exifinfo->Orient : 1) : 1; - if ((m_conf.aspect_ratio > -0.1) && (m_conf.aspect_ratio < 0.1)) // do not keep aspect ratio but just fill the destination area + if (m_filepara->bits == 8) { - scrx = m_filepara->max_x; - scry = m_filepara->max_y; - } - else if (orientation < 5) { - if ((m_conf.aspect_ratio * m_filepara->oy * m_filepara->max_x / m_filepara->ox) <= m_filepara->max_y) + result=new gPixmap(eSize(m_filepara->max_x, m_filepara->max_y), 8, gPixmap::accelAlways); + gUnmanagedSurface *surface = result->surface; + surface->transparent = m_filepara->transparent; + surface->clut.data = m_filepara->palette; + surface->clut.colors = m_filepara->palette_size; + m_filepara->palette = NULL; // transfer ownership + int o_y=0, u_y=0, v_x=0, h_x=0; + int extra_stride = surface->stride - surface->x; + + unsigned char *tmp_buffer=((unsigned char *)(surface->data)); + unsigned char *origin = m_filepara->pic_buffer; + + gColor background; + gRGB bg(m_conf.background); + background = surface->clut.findColor(bg); + unsigned char alpha = (background >> 24) & 0xFF; + + if(m_filepara->oy < m_filepara->max_y) { - scrx = m_filepara->max_x; - scry = (int)(m_conf.aspect_ratio * m_filepara->oy * m_filepara->max_x / m_filepara->ox); + o_y = (m_filepara->max_y - m_filepara->oy) / 2; + u_y = m_filepara->max_y - m_filepara->oy - o_y; + if (alpha < 255) + surface->transparent = true; } - else + if(m_filepara->ox < m_filepara->max_x) { - scrx = (int)((1.0/m_conf.aspect_ratio) * m_filepara->ox * m_filepara->max_y / m_filepara->oy); - scry = m_filepara->max_y; + v_x = (m_filepara->max_x - m_filepara->ox) / 2; + h_x = m_filepara->max_x - m_filepara->ox - v_x; + if (alpha < 255) + surface->transparent = true; } - } - else { - if ((m_conf.aspect_ratio * m_filepara->ox * m_filepara->max_x / m_filepara->oy) <= m_filepara->max_y) - { - scrx = m_filepara->max_x; - scry = (int)(m_conf.aspect_ratio * m_filepara->ox * m_filepara->max_x / m_filepara->oy); - } - else + + if(m_filepara->oy < m_filepara->max_y) { - scrx = (int)((1.0/m_conf.aspect_ratio) * m_filepara->oy * m_filepara->max_y / m_filepara->ox); - scry = m_filepara->max_y; + memset(tmp_buffer, background, o_y * surface->stride); + tmp_buffer += o_y * surface->stride; } - } - float xscale = (float)(orientation < 5 ? m_filepara->ox : m_filepara->oy) / (float)scrx; // scale factor as result of screen and image size - float yscale = (float)(orientation < 5 ? m_filepara->oy : m_filepara->ox) / (float)scry; - int xoff = (m_filepara->max_x - scrx) / 2; // borders as result of screen and image aspect - int yoff = (m_filepara->max_y - scry) / 2; - //eDebug("[getData] ox=%d oy=%d max_x=%d max_y=%d scrx=%d scry=%d xoff=%d yoff=%d xscale=%f yscale=%f aspect=%f bits=%d orientation=%d", m_filepara->ox, m_filepara->oy, m_filepara->max_x, m_filepara->max_y, scrx, scry, xoff, yoff, xscale, yscale, m_conf.aspect_ratio, m_filepara->bits, orientation); - - unsigned char *tmp_buffer = ((unsigned char *)(surface->data)); - unsigned char *origin = m_filepara->pic_buffer; - if (m_filepara->bits == 8) { - surface->clut.data = m_filepara->palette; - surface->clut.colors = m_filepara->palette_size; - m_filepara->palette = NULL; // transfer ownership - } - // fill borders with background color - if (xoff != 0 || yoff != 0) { - unsigned int background; - if (m_filepara->bits == 8) { - gRGB bg(m_conf.background); - background = surface->clut.findColor(bg); - } - else { - background = m_conf.background; - } - if (yoff != 0) { - if (m_filepara->bits == 8) - { - unsigned char* row_buffer; - row_buffer = (unsigned char *) tmp_buffer; - for (int x = 0; x < m_filepara->max_x; ++x) // fill first line - *row_buffer++ = background; - } - else + for(int a = m_filepara->oy; a > 0; --a) + { + if(m_filepara->ox < m_filepara->max_x) { - unsigned int* row_buffer; - row_buffer = (unsigned int *) tmp_buffer; - for (int x = 0; x < m_filepara->max_x; ++x) // fill first line - *row_buffer++ = background; + memset(tmp_buffer, background, v_x); + tmp_buffer += v_x; } - int y; - #pragma omp parallel for - for (y = 1; y < yoff; ++y) // copy from first line - memcpy(tmp_buffer + y*surface->stride, tmp_buffer, - m_filepara->max_x * surface->bypp); - #pragma omp parallel for - for (y = yoff + scry; y < m_filepara->max_y; ++y) - memcpy(tmp_buffer + y * surface->stride, tmp_buffer, - m_filepara->max_x * surface->bypp); - } - if (xoff != 0) { - if (m_filepara->bits == 8) + + memcpy(tmp_buffer, origin, m_filepara->ox); + tmp_buffer += m_filepara->ox; + origin += m_filepara->ox; + + if(m_filepara->ox < m_filepara->max_x) { - unsigned char* row_buffer = (unsigned char *) (tmp_buffer + yoff * surface->stride); - int x; - for (x = 0; x < xoff; ++x) // fill left side of first line - *row_buffer++ = background; - row_buffer += scrx; - for (x = xoff + scrx; x < m_filepara->max_x; ++x) // fill right side of first line - *row_buffer++ = background; - } - else { - unsigned int* row_buffer = (unsigned int *) (tmp_buffer + yoff * surface->stride); - int x; - for (x = 0; x < xoff; ++x) // fill left side of first line - *row_buffer++ = background; - row_buffer += scrx; - for (x = xoff + scrx; x < m_filepara->max_x; ++x) // fill right side of first line - *row_buffer++ = background; - } - #pragma omp parallel for - for (int y = yoff + 1; y < scry; ++y) { // copy from first line - memcpy(tmp_buffer + y*surface->stride, - tmp_buffer + yoff * surface->stride, - xoff * surface->bypp); - memcpy(tmp_buffer + y*surface->stride + (xoff + scrx) * surface->bypp, - tmp_buffer + yoff * surface->stride + (xoff + scrx) * surface->bypp, - (m_filepara->max_x - scrx - xoff) * surface->bypp); + memset(tmp_buffer, background, h_x); + tmp_buffer += h_x; } - } - tmp_buffer += yoff * surface->stride + xoff * surface->bypp; - } - // Setup input image base pointers and x/y increment factors according to orientation - // 1 2 3 4 5 6 7 8 - // - // 888888 888888 88 88 8888888888 88 88 8888888888 - // 88 88 88 88 88 88 88 88 88 88 88 88 - // 8888 8888 8888 8888 88 8888888888 8888888888 88 - // 88 88 88 88 - // 88 88 888888 888888 - // - // ori ori-1 yfax xfac origin - // 0001 000 b * x b 0 - // 0010 001 b * x -b b * (x - 1) - // 0011 010 -b * x -b b * yscale * (sy - 1) * x + b * (x - 1) - // 0100 011 -b * x b b * yscale * (sy - 1) * x - // 0101 100 b b * x 0 - // 0110 101 b -b * x b * (y - 1) * x - // 0111 110 -b -b * x b * yscale * (sy - 1) + b * (y - 1) * x - // 1000 111 -b b * x b * yscale * (sy - 1) - int bpp = m_filepara->bits / 8; -#if 0 - int iyfac = ((orientation-1) & 0x2) ? -bpp : bpp; - int ixfac = (orientation & 0x2) ? -bpp : bpp; - if (orientation < 5) - iyfac *= m_filepara->ox; - else - ixfac *= m_filepara->ox; - if (((orientation-1) & 0x6) == 2) - origin += bpp * (int)(yscale * (scry - 1)) * m_filepara->ox; - if (((orientation-1) & 0x6) == 6) - origin += bpp * (int)(yscale * (scry - 1)); - if (((orientation) & 0x6) == 2) - origin += bpp * (m_filepara->ox - 1); - if (((orientation) & 0x6) == 6) - origin += bpp * (m_filepara->oy - 1) * m_filepara->ox; -#else - int ixfac; - int iyfac; - if (orientation < 5) { - if (orientation == 1 || orientation == 2) - iyfac = bpp * m_filepara->ox; // run y across rows - else { - origin += bpp * (int)(yscale * (scry - 1)) * m_filepara->ox; - iyfac = -bpp * m_filepara->ox; + + tmp_buffer += extra_stride; } - if (orientation == 2 || orientation == 3) { - origin += bpp * (m_filepara->ox - 1); - ixfac = -bpp; + + if(m_filepara->oy < m_filepara->max_y) + { + memset(tmp_buffer, background, u_y * surface->stride); } - else - ixfac = bpp; } - else { - if (orientation == 5 || orientation == 6) - iyfac = bpp; - else { - origin += bpp * (int)(yscale * (scry - 1)); - iyfac = -bpp ; + else + { + result=new gPixmap(eSize(m_filepara->max_x, m_filepara->max_y), 32, gPixmap::accelAuto); + gUnmanagedSurface *surface = result->surface; + surface->transparent = m_filepara->transparent; + int o_y=0, u_y=0, v_x=0, h_x=0; + + unsigned int background = m_conf.background; + unsigned char alpha = (background >> 24) & 0xFF; + unsigned char *tmp_buffer=((unsigned char *)(surface->data)); + unsigned char *origin = m_filepara->pic_buffer; + int extra_stride = surface->stride - (surface->x * surface->bypp); + + if(m_filepara->oy < m_filepara->max_y) + { + o_y = (m_filepara->max_y - m_filepara->oy) / 2; + u_y = m_filepara->max_y - m_filepara->oy - o_y; + if (alpha < 255) + surface->transparent = true; } - if (orientation == 6 || orientation == 7) { - origin += bpp * (m_filepara->oy - 1) * m_filepara->ox; - ixfac = -bpp * m_filepara->ox; + if(m_filepara->ox < m_filepara->max_x) + { + v_x = (m_filepara->max_x - m_filepara->ox) / 2; + h_x = m_filepara->max_x - m_filepara->ox - v_x; + if (alpha < 255) + surface->transparent = true; } - else - ixfac = bpp * m_filepara->ox; - } -#endif - // Build output according to screen y by x loops - // Fill surface with image data, resize and correct for orientation on the fly - if (m_filepara->bits == 8) - { - #pragma omp parallel for - for (int y = 0; y < scry; ++y) { - const unsigned char *irow, *irowy = origin + iyfac * (int)(y * yscale); - unsigned char *srow = tmp_buffer + surface->stride * y; - float xind = 0.0; - for (int x = 0; x < scrx; ++x) { - irow = irowy + ixfac * (int)xind; - *srow++ = *irow; - xind += xscale; + + if(m_filepara->oy < m_filepara->max_y) + { + for (int y = o_y; y != 0; --y) + { + int* row_buffer = (int*)tmp_buffer; + for (int x = m_filepara->ox; x !=0; --x) + *row_buffer++ = background; + tmp_buffer += surface->stride; } } - } - else // 24-bit images - { - #pragma omp parallel for - for (int y = 0; y < scry; ++y) { - const unsigned char *irow, *irowy = origin + iyfac * (int)(yscale * y); - unsigned char *srow = tmp_buffer + surface->stride * y; - float xind = 0.0; - - if (m_conf.resizetype != 1) { - // simple resizing - for (int x = 0; x < scrx; ++x) { - irow = irowy + ixfac * (int)xind; - srow[2] = irow[0]; - srow[1] = irow[1]; - srow[0] = irow[2]; - srow[3] = 0xFF; // alpha - srow += 4; - xind += xscale; + + + for(int a = m_filepara->oy; a > 0; --a) + { + if(m_filepara->ox < m_filepara->max_x) + { + for(int b = v_x; b != 0; --b) + { + *(int*)tmp_buffer = background; + tmp_buffer += 4; } } - else { - // color average resizing - // determine block range for resize - int yr = (int)((y+1) * yscale) - (int) (y * yscale); - if (y + yr >= scry) - yr = scry - y - 1; - for (int x = 0; x < scrx; x++) { - // determine x range for resize - int xr = (int)(xind + xscale) - (int) xind; - if (x + xr >= scrx) - xr = scrx - x - 1; - int r = 0; - int g = 0; - int b = 0; - int sq = 0; - irow = irowy + ixfac * (int)xind; - // average over all pixels in x by y block - for (int l = 0; l <= yr; l++) { - for (int k = 0; k <= xr; k++) { - r += irow[0]; - g += irow[1]; - b += irow[2]; - sq++; - irow += ixfac; - } - irow -= (xr + 1) * ixfac; // go back to starting point of this subrow - irow += iyfac; - } - srow[2] = r / sq; - srow[1] = g / sq; - srow[0] = b / sq; - srow[3] = 0xFF; // alpha - srow += 4; - xind += xscale; + + for(int b = m_filepara->ox; b != 0; --b) + { + tmp_buffer[2] = *origin; + ++origin; + tmp_buffer[1] = *origin; + ++origin; + tmp_buffer[0] = *origin; + ++origin; + tmp_buffer[3] = 0xFF; // alpha + tmp_buffer += 4; + } + + if(m_filepara->ox < m_filepara->max_x) + { + for(int b = h_x; b != 0; --b) + { + *(int*)tmp_buffer = background; + tmp_buffer += 4; } } + + tmp_buffer += extra_stride; + } + + if(m_filepara->oy < m_filepara->max_y) + { + for (int y = u_y; y != 0; --y) + { + int* row_buffer = (int*)tmp_buffer; + for (int x = m_filepara->ox; x !=0; --x) + *row_buffer++ = background; + tmp_buffer += surface->stride; + } } } - delete m_filepara; // so caller can start a new decode in background + delete m_filepara; m_filepara = NULL; - if (m_exif) { - m_exif->ClearExif(); - delete m_exif; - m_exif = NULL; - } return 0; } @@ -1393,15 +1507,22 @@ RESULT ePicLoad::setPara(PyObject *val) if (PySequence_Size(val) < 7) return 0; else { - ePyObject fast = PySequence_Fast(val, ""); - int width = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 0)); - int height = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 1)); + ePyObject fast = PySequence_Fast(val, ""); + int width = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 0)); + int height = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 1)); + ePyObject pas = PySequence_Fast_GET_ITEM(fast, 2); - double aspectRatio = PyFloat_Check(pas) ? PyFloat_AsDouble(pas) : PyLong_AsDouble(pas); - int as = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 3)); - bool useCache = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 4)); - int resizeType = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 5)); - const char *bg_str = PyUnicode_AsUTF8(PySequence_Fast_GET_ITEM(fast, 6)); + + #if PY_VERSION_HEX >= 0x030a0000 + double aspectRatio = PyFloat_Check(pas) ? PyFloat_AsDouble(pas) : PyLong_AsDouble(pas); + #else + double aspectRatio = PyLong_AsLong(pas); + #endif + + int as = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 3)); + bool useCache = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 4)); + int resizeType = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 5)); + const char *bg_str = PyUnicode_AsUTF8(PySequence_Fast_GET_ITEM(fast, 6)); bool auto_orientation = (PySequence_Size(val) > 7) ? PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 7)) : 0; return setPara(width, height, aspectRatio, as, useCache, resizeType, bg_str, auto_orientation); } @@ -1417,8 +1538,8 @@ RESULT ePicLoad::setPara(int width, int height, double aspectRatio, int as, bool m_conf.resizetype = resizeType; if(bg_str[0] == '#' && strlen(bg_str)==9) - m_conf.background = strtoul(bg_str+1, NULL, 16) | 0xFF000000; - eDebug("[ePicLoad] setPara max-X=%d max-Y=%d aspect_ratio=%lf cache=%d resize=%d bg=#%08X auto_orient=%d", + m_conf.background = strtoul(bg_str+1, NULL, 16); + eDebug("[ePicLoad] setPara max-X=%d max-Y=%d aspect_ratio=%lf cache=%d resize=%d bg=#%08X", m_conf.max_x, m_conf.max_y, m_conf.aspect_ratio, (int)m_conf.usecache, (int)m_conf.resizetype, m_conf.background, m_conf.auto_orientation); return 1; @@ -1451,10 +1572,10 @@ int ePicLoad::getFileType(const char * file) //------------------------------------------------------------------------------------ //for old plugins -SWIG_VOID(int) loadPic(ePtr<gPixmap> &result, std::string filename, int x, int y, int aspect, int resize_mode, int rotate, int background, std::string cachefile) +SWIG_VOID(int) loadPic(ePtr<gPixmap> &result, std::string filename, int x, int y, int aspect, int resize_mode, int rotate, unsigned int background, std::string cachefile) { long asp1, asp2; - eDebug("[loadPic] deprecated loadPic function used!!! please use the non blocking version! you can see demo code in Pictureplayer plugin... this function is removed in the near future!"); + eDebug("[ePicLoad] deprecated loadPic function used!!! please use the non blocking version! you can see demo code in Pictureplayer plugin... this function is removed in the near future!"); switch(aspect) { @@ -1486,3 +1607,4 @@ SWIG_VOID(int) loadPic(ePtr<gPixmap> &result, std::string filename, int x, int y return 0; } + diff --git a/lib/gdi/picload.h b/lib/gdi/picload.h index 85114c1ee1c..5844bdaca82 100644 --- a/lib/gdi/picload.h +++ b/lib/gdi/picload.h @@ -23,6 +23,7 @@ struct Cfilepara int oy; std::string picinfo; bool callback; + bool transparent; Cfilepara(const char *mfile, int mid, std::string size): file(strdup(mfile)), @@ -31,13 +32,19 @@ struct Cfilepara palette_size(0), bits(24), id(mid), - picinfo(""), - callback(true) + max_x(0), + max_y(0), + ox(0), + oy(0), + picinfo(mfile), + callback(true), + transparent(true) { if (is_valid_utf8(mfile)) picinfo += std::string(mfile) + "\n" + size + "\n"; else picinfo += "\n" + size + "\n"; + picinfo += "\n" + size + "\n"; } ~Cfilepara() @@ -108,8 +115,11 @@ class ePicLoad: public eMainloop, public eThread, public sigc::trackable, public { DECLARE_REF(ePicLoad); + enum{ F_PNG, F_JPEG, F_BMP, F_GIF, F_SVG}; + void decodePic(); void decodeThumb(); + void resizePic(); Cfilepara *m_filepara; Cexif *m_exif; @@ -120,7 +130,7 @@ class ePicLoad: public eMainloop, public eThread, public sigc::trackable, public int max_x; int max_y; double aspect_ratio; - int background; + unsigned int background; bool resizetype; bool usecache; bool auto_orientation; @@ -137,6 +147,7 @@ class ePicLoad: public eMainloop, public eThread, public sigc::trackable, public decode_Pic, decode_Thumb, decode_finished, + decode_error, quit }; Message(int type=0) @@ -175,6 +186,6 @@ class ePicLoad: public eMainloop, public eThread, public sigc::trackable, public }; //for old plugins -SWIG_VOID(int) loadPic(ePtr<gPixmap> &SWIG_OUTPUT, std::string filename, int x, int y, int aspect, int resize_mode=0, int rotate=0, int background=0, std::string cachefile=""); +SWIG_VOID(int) loadPic(ePtr<gPixmap> &SWIG_OUTPUT, std::string filename, int x, int y, int aspect, int resize_mode=0, int rotate=0, unsigned int background=0, std::string cachefile=""); #endif // __picload_h__ From 418c3d45143ef8500f10f1cebc79777c31b6e2c5 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Tue, 2 Jul 2024 21:11:22 +0200 Subject: [PATCH 44/62] [ServiceInfo] add picon --- lib/python/Screens/ServiceInfo.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/python/Screens/ServiceInfo.py b/lib/python/Screens/ServiceInfo.py index ca6ce171e06..3656245fbc8 100644 --- a/lib/python/Screens/ServiceInfo.py +++ b/lib/python/Screens/ServiceInfo.py @@ -1,9 +1,12 @@ +from os.path import isfile + from enigma import eListboxPythonMultiContent, gFont, iServiceInformation, eServiceCenter, eDVBFrontendParametersSatellite, RT_HALIGN_LEFT, RT_HALIGN_RIGHT, RT_VALIGN_CENTER from Components.ActionMap import ActionMap from Components.GUIComponent import GUIComponent from Components.Label import Label from Components.MenuList import MenuList +from Components.Renderer.Picon import getPiconName from Screens.Screen import Screen from ServiceReference import ServiceReference from Tools.Transponder import ConvertToHumanReadable, getChannelNumber @@ -195,7 +198,7 @@ def ShowServiceInformation(self): fillList = [ (_("Service name"), name, TYPE_TEXT), (_("Videocodec, size & format"), resolution, TYPE_TEXT), - (_("Service reference"), ":".join(refstr.split(":")[:9]) if ":/" in refstr or "%3a//" in refstr else refstr, TYPE_TEXT) + (_("Service reference"), (srefShort := (":".join(refstr.split(":")[:9]) if ":/" in refstr or "%3a//" in refstr else refstr)), TYPE_TEXT) ] if self.IPTV: # IPTV 4097 5001, no PIDs shown fillList.append((_("URL"), refstr.split(":")[10].replace("%3a", ":"), TYPE_TEXT)) @@ -223,6 +226,9 @@ def ShowServiceInformation(self): if self.show_all is True: fillList.extend(self.sub_list) + if (piconPath := getPiconName(srefShort)) and isfile(piconPath): + fillList.append((_("Picon"), piconPath, TYPE_TEXT)) + self.fillList(fillList) elif self.transponder_info: self.fillList(self.getFEData(self.transponder_info)) From 93fa02804ab2087f5b66a12ff97096db8c2755f1 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Tue, 2 Jul 2024 19:28:43 +0000 Subject: [PATCH 45/62] openvix: developer 6.6.004.003 --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 3157fb58ec2..e417ae9c44d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1279,3 +1279,4 @@ openvix: developer 6.6.003.001 openvix: developer 6.6.003.002 openvix: developer 6.6.004.001 openvix: developer 6.6.004.002 +openvix: developer 6.6.004.003 From 4a1e1068bb003565eaa999c17e50c43e20474830 Mon Sep 17 00:00:00 2001 From: Dimitar Tsenev <dimitar_tsenev@outlook.com> Date: Wed, 3 Jul 2024 12:49:27 +0300 Subject: [PATCH 46/62] [Removed] Code that actually does nothing and nothing fix.... --- lib/gdi/lcd.cpp | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/lib/gdi/lcd.cpp b/lib/gdi/lcd.cpp index bb57bf08270..8fc2e8bb14a 100644 --- a/lib/gdi/lcd.cpp +++ b/lib/gdi/lcd.cpp @@ -412,28 +412,8 @@ void eDBoxLCD::update() // blue red green low green high ((unsigned int *)gb_buffer)[offset] = ((src >> 3) & 0x001F001F) | ((src << 3) & 0xF800F800) | ((src >> 8) & 0x00E000E0) | ((src << 8) & 0x07000700); } + write(lcdfd, gb_buffer, _stride * res.height()); -#elif defined(DREAMBOX) - // gggrrrrrbbbbbggg bit order from memory - // gggbbbbbrrrrrggg bit order to LCD - unsigned char gb_buffer[_stride * res.height()]; - if (!(0x03 & (_stride * res.height()))) - { // fast - for (int offset = 0; offset < ((_stride * res.height()) >> 2); offset++) - { - unsigned int src = ((unsigned int *)_buffer)[offset]; - ((unsigned int *)gb_buffer)[offset] = src & 0xE007E007 | (src & 0x1F001F00) >> 5 | (src & 0x00F800F8) << 5; - } - } - else - { // slow - for (int offset = 0; offset < _stride * res.height(); offset += 2) - { - gb_buffer[offset] = (_buffer[offset] & 0x07) | ((_buffer[offset + 1] << 3) & 0xE8); - gb_buffer[offset + 1] = (_buffer[offset + 1] & 0xE0) | ((_buffer[offset] >> 3) & 0x1F); - } - } - ret = write(lcdfd, gb_buffer, _stride * res.height()); #else write(lcdfd, _buffer, _stride * res.height()); #endif From 19ad6baa2d191fe96f6f25f39b17750c2521b0f4 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Wed, 3 Jul 2024 15:09:46 +0200 Subject: [PATCH 47/62] [displayskins] change XX_summary -> XXSummary This is the format used by PLi and ATV --- data/7segment/skin_display.xml | 22 +++---- data/display128/skin_display.xml | 12 ++-- data/display220/skin_display.xml | 42 +++++++------- data/display220/skin_display_picon.xml | 42 +++++++------- data/display390/skin_display.xml | 42 +++++++------- data/display390/skin_display_picon.xml | 42 +++++++------- data/display400/skin_display.xml | 42 +++++++------- data/display400/skin_display_picon.xml | 42 +++++++------- data/display480/skin_display.xml | 36 ++++++------ data/display480/skin_display_picon.xml | 58 +++++++++---------- .../skin_display.xml | 12 ++-- .../skin_display.xml | 12 ++-- .../skin_display.xml | 12 ++-- .../skin_display.xml | 12 ++-- data/display720/skin_display.xml | 12 ++-- data/display720/skin_display_picon.xml | 12 ++-- data/display720/skin_display_templates.xml | 16 ++--- .../skin_display.xml | 12 ++-- data/display800/skin_display.xml | 12 ++-- data/display800/skin_display_picon.xml | 12 ++-- data/display800/skin_display_templates.xml | 16 ++--- data/display96/skin_display.xml | 10 ++-- data/displaytext/skin_display.xml | 14 ++--- data/vfd128/skin_display.xml | 46 +++++++-------- data/vfd140/skin_display.xml | 46 +++++++-------- data/vfd255/skin_display.xml | 42 +++++++------- data/vfd255/skin_display_picon.xml | 42 +++++++------- lib/python/Screens/Screen.py | 1 - 28 files changed, 360 insertions(+), 361 deletions(-) diff --git a/data/7segment/skin_display.xml b/data/7segment/skin_display.xml index 3fbc3764166..625f8ab65ba 100644 --- a/data/7segment/skin_display.xml +++ b/data/7segment/skin_display.xml @@ -16,7 +16,7 @@ <color color="#ffffff" name="WindowTitleForeground"/> <color color="#000000" name="WindowTitleBackground"/> </windowstyle> -<!-- MyClockPanel --> +<!-- MyClockPanel --> <screen name="MyClockPanel"> <widget source="session.CurrentService" render="Label" position="0,0" size="1,1"> <convert type="VfdDisplay"></convert> @@ -52,16 +52,16 @@ <panel name="MyClockPanel" /> <panel name="MyRecPanel" /> </screen> - <screen name="QuickMenu_summary" position="0,0" size="1,1"> + <screen name="QuickMenuSummary" position="0,0" size="1,1"> <panel name="MyClockPanel" /> <panel name="MyRecPanel" /> </screen> -<!-- Numberzap --> - <screen name="NumberZap_summary" position="0,0" size="1,1"> +<!-- Numberzap --> + <screen name="NumberZapSummary" position="0,0" size="1,1"> <widget source="parent.number_summary" render="Label" position="0,0" size="1,1" /> - </screen> - <screen name="NumberZapPicon_summary" position="0,0" size="1,1"> + </screen> + <screen name="NumberZapPiconSummary" position="0,0" size="1,1"> <widget source="parent.number_summary" render="Label" position="0,0" size="1,1" /> </screen> @@ -74,19 +74,19 @@ <panel name="MyClockPanel" /> <panel name="MyRecPanel" /> </screen> - <screen name="ChoiceBox_summary" position="0,0" size="1,1"> + <screen name="ChoiceBoxSummary" position="0,0" size="1,1"> <panel name="MyClockPanel" /> <panel name="MyRecPanel" /> </screen> - <screen name="MessageBox_summary" position="0,0" size="1,1"> + <screen name="MessageBoxSummary" position="0,0" size="1,1"> <panel name="MyClockPanel" /> <panel name="MyRecPanel" /> </screen> - <screen name="MessageBoxSimple_summary" position="0,0" size="1,1"> + <screen name="MessageBoxSimpleSummary" position="0,0" size="1,1"> <panel name="MyClockPanel" /> <panel name="MyRecPanel" /> </screen> - <screen name="JobView_summary" position="0,0" size="1,1"> + <screen name="JobViewSummary" position="0,0" size="1,1"> <widget source="parent.summary_job_progress" render="Label" position="0,0" size="1,1" > <convert type="ProgressToText">InPercent</convert> </widget> @@ -111,7 +111,7 @@ </screen> <!-- EMC --> - <screen name="EMCSelection_summary" position="0,0" size="1,1"> + <screen name="EMCSelectionSummary" position="0,0" size="1,1"> <panel name="MyClockPanel" /> <panel name="MyRecPanel" /> </screen> diff --git a/data/display128/skin_display.xml b/data/display128/skin_display.xml index 339942f2905..413cce09e02 100644 --- a/data/display128/skin_display.xml +++ b/data/display128/skin_display.xml @@ -55,7 +55,7 @@ <!-- channelselection--> - <screen name="ChannelSelection_summary" position="fill"> + <screen name="ChannelSelectionSummary" position="fill"> <widget source="parent.ServiceEvent" render="Label" position="top" size="*,65" font="FdLcD;30" halign="center" > <convert type="ServiceName">Name</convert> </widget> @@ -179,7 +179,7 @@ </screen> <!-- JobView Summary --> - <screen name="JobView_summary" position="fill"> + <screen name="JobViewSummary" position="fill"> <widget source="parent.summary_job_name" render="Label" position="top" size="*,51" font="FdLcD;25" halign="center" /> <widget source="parent.summary_job_task" render="Label" position="top" size="*,41" font="FdLcD;20" halign="center" /> <widget source="parent.summary_job_progress" render="Progress" position="top" size="80,16" borderWidth="1" zPosition="1" halign="center" /> @@ -188,16 +188,16 @@ </widget> </screen> - <screen name="ChoiceBox_summary" position="fill"> + <screen name="ChoiceBoxSummary" position="fill"> <widget source="parent.summary_list" render="Label" position="top" size="*,181" font="FdLcD;25" halign="left" /> - </screen> + </screen> - <screen name="MessageBox_summary" position="fill"> + <screen name="MessageBoxSummary" position="fill"> <widget source="parent.Text" render="Label" position="top" size="*,95" font="FdLcD;31" halign="center" valign="center" /> <widget source="parent.selectedChoice" render="Label" position="bottom" size="*,44" font="FdLcD;44" halign="center" valign="center" /> </screen> - <screen name="MessageBoxSimple_summary" position="fill"> + <screen name="MessageBoxSimpleSummary" position="fill"> <widget source="parent.Text" render="Label" position="top" size="*,95" font="FdLcD;31" halign="center" valign="center" /> <widget source="parent.selectedChoice" render="Label" position="bottom" size="*,44" font="FdLcD;44" halign="center" valign="center" /> </screen> diff --git a/data/display220/skin_display.xml b/data/display220/skin_display.xml index 171f9edce26..94c74ef3a36 100644 --- a/data/display220/skin_display.xml +++ b/data/display220/skin_display.xml @@ -168,7 +168,7 @@ </screen> <!-- channelselection--> - <screen name="ChannelSelection_summary" position="0,0" size="220,176"> + <screen name="ChannelSelectionSummary" position="0,0" size="220,176"> <widget source="parent.ServiceEvent" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1"> <convert type="ServiceName">Name</convert> </widget> @@ -254,7 +254,7 @@ </screen> <!-- JobView Summary --> - <screen name="JobView_summary" position="0,0" size="220,176"> + <screen name="JobViewSummary" position="0,0" size="220,176"> <widget source="parent.summary_job_name" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_job_task" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.summary_job_progress" render="Progress" position="6,50" size="60,12" borderWidth="1" zPosition="1" /> @@ -265,51 +265,51 @@ <panel name="SummaryClockPanel" /> </screen> - <screen name="EventView_summary" position="0,0" size="220,176"> + <screen name="EventViewSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;20" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="220,140" font="FdLcD;17" /> </screen> - <screen name="EventViewSimple_summary" position="0,0" size="220,176"> + <screen name="EventViewSimpleSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;20" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="220,140" font="FdLcD;17" /> </screen> <!-- EPG Screens --> - <screen name="EPGSelection_summary" position="0,0" size="220,176"> + <screen name="EPGSelectionSummary" position="0,0" size="220,176"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="QuickEPG_summary" position="0,0" size="220,176"> + <screen name="QuickEPGSummary" position="0,0" size="220,176"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="220,176"> + <screen name="GraphicalEPGSummary" position="0,0" size="220,176"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="220,176"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="220,176"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="ChoiceBox_summary" position="0,0" size="220,176"> + <screen name="ChoiceBoxSummary" position="0,0" size="220,176"> <widget source="parent.summary_list" render="Label" position="0,0" size="220,176" font="FdLcD;16" noWrap="1" /> </screen> - <screen name="MessageBox_summary" position="0,0" size="220,176"> + <screen name="MessageBoxSummary" position="0,0" size="220,176"> <widget source="parent.Text" render="Label" position="0,0" size="220,176" font="FdLcD;17" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,135" size="220,28" font="FdLcD;26" halign="center" noWrap="1" /> </screen> - <screen name="MessageBoxSimple_summary" position="0,0" size="220,176"> + <screen name="MessageBoxSimpleSummary" position="0,0" size="220,176"> <widget source="parent.Text" render="Label" position="0,0" size="220,176" font="FdLcD;17" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,135" size="220,28" font="FdLcD;26" halign="center" noWrap="1" /> </screen> @@ -363,7 +363,7 @@ </panel> </screen> - <screen name="NumberZap_summary" position="0,0" size="220,176"> + <screen name="NumberZapSummary" position="0,0" size="220,176"> <widget source="parent.channel_summary" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.number_summary" render="Label" position="0,66" size="220,52" font="FdLcD;50" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> @@ -377,21 +377,21 @@ <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="VIXSwap_summary" position="0,0" size="220,176"> + <screen name="VIXSwapSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.swapname_summary" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.swapactive_summary" render="Label" position="0,93" size="220,16" font="FdLcD;14" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="UpdatePlugin_summary" position="0,0" size="220,176"> + <screen name="UpdatePluginSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.package" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.status" render="Label" position="0,93" size="220,16" font="FdLcD;14" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="SoftwareUpdateChanges_summary" position="0,0" size="220,176"> + <screen name="SoftwareUpdateChangesSummary" position="0,0" size="220,176"> <widget source="parent.title_summary" render="Label" position="0,0" size="160,15" font="FdLcD;15" halign="left" noWrap="1" /> <widget source="parent.text_summary" render="Label" position="0,16" size="220,54" font="FdLcD;12" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> @@ -419,42 +419,42 @@ <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Rytec_Update_summary" position="0,0" size="220,176"> + <screen name="CrossEPG_Rytec_UpdateSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Xepgdb_Update_summary" position="0,0" size="220,176"> + <screen name="CrossEPG_Xepgdb_UpdateSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Converter_summary" position="0,0" size="220,176"> + <screen name="CrossEPG_ConverterSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Importer_summary" position="0,0" size="220,176"> + <screen name="CrossEPG_ImporterSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Loader_summary" position="0,0" size="220,176"> + <screen name="CrossEPG_LoaderSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Downloader_summary" position="0,0" size="220,176"> + <screen name="CrossEPG_DownloaderSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.summary_status" render="Label" position="0,41" size="220,18" font="FdLcD;16" halign="left" noWrap="1" /> diff --git a/data/display220/skin_display_picon.xml b/data/display220/skin_display_picon.xml index dc263317823..ee83a06cc3c 100644 --- a/data/display220/skin_display_picon.xml +++ b/data/display220/skin_display_picon.xml @@ -146,7 +146,7 @@ </screen> <!-- channelselection--> - <screen name="ChannelSelection_summary" position="0,0" size="220,176"> + <screen name="ChannelSelectionSummary" position="0,0" size="220,176"> <widget source="parent.ServiceEvent" render="LcdPicon" position="0,35" size="220,132" zPosition="1" alphatest="on"> <convert type="ServiceName">Reference</convert> </widget> @@ -212,7 +212,7 @@ </screen> <!-- JobView Summary --> - <screen name="JobView_summary" position="0,0" size="220,176"> + <screen name="JobViewSummary" position="0,0" size="220,176"> <widget source="parent.summary_job_name" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_job_task" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.summary_job_progress" render="Progress" position="6,50" size="60,12" borderWidth="1" zPosition="1" /> @@ -223,43 +223,43 @@ <panel name="SummaryClockPanel" /> </screen> - <screen name="EventView_summary" position="0,0" size="220,176"> + <screen name="EventViewSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;20" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="220,140" font="FdLcD;17" /> </screen> - <screen name="EventViewSimple_summary" position="0,0" size="220,176"> + <screen name="EventViewSimpleSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;20" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="220,140" font="FdLcD;17" /> </screen> <!-- EPG Screens --> - <screen name="EPGSelection_summary" position="0,0" size="220,176"> + <screen name="EPGSelectionSummary" position="0,0" size="220,176"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> </screen> - <screen name="QuickEPG_summary" position="0,0" size="220,176"> + <screen name="QuickEPGSummary" position="0,0" size="220,176"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="220,176"> + <screen name="GraphicalEPGSummary" position="0,0" size="220,176"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> </screen> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="220,176"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="220,176"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> </screen> - <screen name="ChoiceBox_summary" position="0,0" size="220,176"> + <screen name="ChoiceBoxSummary" position="0,0" size="220,176"> <widget source="parent.summary_list" render="Label" position="0,0" size="220,176" font="FdLcD;16" noWrap="1" /> </screen> - <screen name="MessageBox_summary" position="0,0" size="220,176"> + <screen name="MessageBoxSummary" position="0,0" size="220,176"> <widget source="parent.Text" render="Label" position="0,0" size="220,176" font="FdLcD;17" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,135" size="220,28" font="FdLcD;26" halign="center" noWrap="1" /> </screen> - <screen name="MessageBoxSimple_summary" position="0,0" size="220,176"> + <screen name="MessageBoxSimpleSummary" position="0,0" size="220,176"> <widget source="parent.Text" render="Label" position="0,0" size="220,176" font="FdLcD;17" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,135" size="220,28" font="FdLcD;26" halign="center" noWrap="1" /> </screen> @@ -313,7 +313,7 @@ </panel> </screen> - <screen name="NumberZap_summary" position="0,0" size="220,176"> + <screen name="NumberZapSummary" position="0,0" size="220,176"> <widget source="parent.channel_summary" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.number_summary" render="Label" position="0,66" size="220,52" font="FdLcD;50" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> @@ -327,21 +327,21 @@ <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="VIXSwap_summary" position="0,0" size="220,176"> + <screen name="VIXSwapSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.swapname_summary" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.swapactive_summary" render="Label" position="0,93" size="220,16" font="FdLcD;14" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="UpdatePlugin_summary" position="0,0" size="220,176"> + <screen name="UpdatePluginSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.package" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.status" render="Label" position="0,93" size="220,16" font="FdLcD;14" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="SoftwareUpdateChanges_summary" position="0,0" size="220,176"> + <screen name="SoftwareUpdateChangesSummary" position="0,0" size="220,176"> <widget source="parent.title_summary" render="Label" position="0,0" size="160,15" font="FdLcD;15" halign="left" noWrap="1" /> <widget source="parent.text_summary" render="Label" position="0,16" size="220,54" font="FdLcD;12" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> @@ -369,42 +369,42 @@ <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Rytec_Update_summary" position="0,0" size="220,176"> + <screen name="CrossEPG_Rytec_UpdateSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Xepgdb_Update_summary" position="0,0" size="220,176"> + <screen name="CrossEPG_Xepgdb_UpdateSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Converter_summary" position="0,0" size="220,176"> + <screen name="CrossEPG_ConverterSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Importer_summary" position="0,0" size="220,176"> + <screen name="CrossEPG_ImporterSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Loader_summary" position="0,0" size="220,176"> + <screen name="CrossEPG_LoaderSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Downloader_summary" position="0,0" size="220,176"> + <screen name="CrossEPG_DownloaderSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="220,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.summary_status" render="Label" position="0,41" size="220,18" font="FdLcD;16" halign="left" noWrap="1" /> diff --git a/data/display390/skin_display.xml b/data/display390/skin_display.xml index 1d520f2880a..ff123735775 100644 --- a/data/display390/skin_display.xml +++ b/data/display390/skin_display.xml @@ -181,7 +181,7 @@ </screen> <!-- channelselection--> - <screen name="ChannelSelection_summary" position="0,0" size="400,240"> + <screen name="ChannelSelectionSummary" position="0,0" size="400,240"> <widget source="parent.ServiceEvent" render="Label" position="0,30" size="400,45" font="FdLcD;40" halign="left" noWrap="1"> <convert type="ServiceName">Name</convert> </widget> @@ -255,7 +255,7 @@ </screen> <!-- JobView Summary --> - <screen name="JobView_summary" position="0,0" size="400,240"> + <screen name="JobViewSummary" position="0,0" size="400,240"> <widget source="parent.summary_job_name" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_job_task" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.summary_job_progress" render="Progress" position="6,50" size="60,12" borderWidth="2" borderColor="white" foregroundColor="yellow" zPosition="1" /> @@ -266,51 +266,51 @@ <panel name="SummaryClockPanel" /> </screen> - <screen name="EventView_summary" position="0,0" size="400,240"> + <screen name="EventViewSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;20" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="400,140" font="FdLcD;17" /> </screen> - <screen name="EventViewSimple_summary" position="0,0" size="400,240"> + <screen name="EventViewSimpleSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;20" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="400,140" font="FdLcD;17" /> </screen> <!-- EPG Screens --> - <screen name="EPGSelection_summary" position="0,0" size="400,240"> + <screen name="EPGSelectionSummary" position="0,0" size="400,240"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="QuickEPG_summary" position="0,0" size="400,240"> + <screen name="QuickEPGSummary" position="0,0" size="400,240"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="400,240"> + <screen name="GraphicalEPGSummary" position="0,0" size="400,240"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="400,240"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="400,240"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="ChoiceBox_summary" position="0,0" size="400,240"> + <screen name="ChoiceBoxSummary" position="0,0" size="400,240"> <widget source="parent.summary_list" render="Label" position="0,0" size="400,240" font="FdLcD;16" noWrap="1" /> </screen> - <screen name="MessageBox_summary" position="0,0" size="400,240"> + <screen name="MessageBoxSummary" position="0,0" size="400,240"> <widget source="parent.Text" render="Label" position="0,0" size="400,240" font="FdLcD;17" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,135" size="400,28" font="FdLcD;26" halign="center" noWrap="1" /> </screen> - <screen name="MessageBoxSimple_summary" position="0,0" size="400,240"> + <screen name="MessageBoxSimpleSummary" position="0,0" size="400,240"> <widget source="parent.Text" render="Label" position="0,0" size="400,240" font="FdLcD;17" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,135" size="400,28" font="FdLcD;26" halign="center" noWrap="1" /> </screen> @@ -364,7 +364,7 @@ </panel> </screen> - <screen name="NumberZap_summary" position="0,0" size="400,240"> + <screen name="NumberZapSummary" position="0,0" size="400,240"> <widget source="parent.channel_summary" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.number_summary" render="Label" position="0,66" size="400,52" font="FdLcD;50" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> @@ -378,21 +378,21 @@ <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="VIXSwap_summary" position="0,0" size="400,240"> + <screen name="VIXSwapSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.swapname_summary" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.swapactive_summary" render="Label" position="0,93" size="400,16" font="FdLcD;14" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="UpdatePlugin_summary" position="0,0" size="400,240"> + <screen name="UpdatePluginSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.package" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.status" render="Label" position="0,93" size="400,16" font="FdLcD;14" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="SoftwareUpdateChanges_summary" position="0,0" size="400,240"> + <screen name="SoftwareUpdateChangesSummary" position="0,0" size="400,240"> <widget source="parent.title_summary" render="Label" position="0,0" size="160,15" font="FdLcD;15" halign="left" noWrap="1" /> <widget source="parent.text_summary" render="Label" position="0,16" size="400,54" font="FdLcD;12" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> @@ -420,42 +420,42 @@ <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Rytec_Update_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_Rytec_UpdateSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Xepgdb_Update_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_Xepgdb_UpdateSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Converter_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_ConverterSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Importer_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_ImporterSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Loader_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_LoaderSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Downloader_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_DownloaderSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.summary_status" render="Label" position="0,41" size="400,18" font="FdLcD;16" halign="left" noWrap="1" /> diff --git a/data/display390/skin_display_picon.xml b/data/display390/skin_display_picon.xml index ff8590d4daa..8699371478c 100644 --- a/data/display390/skin_display_picon.xml +++ b/data/display390/skin_display_picon.xml @@ -181,7 +181,7 @@ </screen> <!-- channelselection--> - <screen name="ChannelSelection_summary" position="0,0" size="400,240"> + <screen name="ChannelSelectionSummary" position="0,0" size="400,240"> <widget source="parent.ServiceEvent" render="LcdPicon" position="0,33" size="220,132" zPosition="1" alphatest="on"> <convert type="ServiceName">Reference</convert> </widget> @@ -248,7 +248,7 @@ </screen> <!-- JobView Summary --> - <screen name="JobView_summary" position="0,0" size="400,240"> + <screen name="JobViewSummary" position="0,0" size="400,240"> <widget source="parent.summary_job_name" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_job_task" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.summary_job_progress" render="Progress" position="6,50" size="60,12" borderWidth="2" borderColor="white" foregroundColor="yellow" zPosition="1" /> @@ -259,46 +259,46 @@ <panel name="SummaryClockPanel" /> </screen> - <screen name="EventView_summary" position="0,0" size="400,240"> + <screen name="EventViewSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;20" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="400,140" font="FdLcD;17" /> </screen> - <screen name="EventViewSimple_summary" position="0,0" size="400,240"> + <screen name="EventViewSimpleSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;20" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="400,140" font="FdLcD;17" /> </screen> <!-- EPG Screens --> - <screen name="EPGSelection_summary" position="0,0" size="400,240"> + <screen name="EPGSelectionSummary" position="0,0" size="400,240"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> </screen> - <screen name="QuickEPG_summary" position="0,0" size="400,240"> + <screen name="QuickEPGSummary" position="0,0" size="400,240"> <panel name="SummaryClockPanel" /> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="400,240"> + <screen name="GraphicalEPGSummary" position="0,0" size="400,240"> <panel name="SummaryClockPanel" /> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> </screen> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="400,240"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="400,240"> <panel name="SummaryClockPanel" /> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> </screen> - <screen name="ChoiceBox_summary" position="0,0" size="400,240"> + <screen name="ChoiceBoxSummary" position="0,0" size="400,240"> <widget source="parent.summary_list" render="Label" position="0,0" size="400,176" font="FdLcD;16" noWrap="1" /> </screen> - <screen name="MessageBox_summary" position="0,0" size="400,240"> + <screen name="MessageBoxSummary" position="0,0" size="400,240"> <widget source="parent.Text" render="Label" position="0,0" size="400,176" font="FdLcD;17" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,135" size="400,28" font="FdLcD;26" halign="center" noWrap="1" /> </screen> - <screen name="MessageBoxSimple_summary" position="0,0" size="400,240"> + <screen name="MessageBoxSimpleSummary" position="0,0" size="400,240"> <widget source="parent.Text" render="Label" position="0,0" size="400,176" font="FdLcD;17" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,135" size="400,28" font="FdLcD;26" halign="center" noWrap="1" /> </screen> @@ -352,7 +352,7 @@ </panel> </screen> - <screen name="NumberZap_summary" position="0,0" size="400,240"> + <screen name="NumberZapSummary" position="0,0" size="400,240"> <widget source="parent.channel_summary" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.number_summary" render="Label" position="0,66" size="400,52" font="FdLcD;50" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> @@ -366,21 +366,21 @@ <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="VIXSwap_summary" position="0,0" size="400,240"> + <screen name="VIXSwapSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.swapname_summary" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.swapactive_summary" render="Label" position="0,93" size="400,16" font="FdLcD;14" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="UpdatePlugin_summary" position="0,0" size="400,240"> + <screen name="UpdatePluginSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.package" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.status" render="Label" position="0,93" size="400,16" font="FdLcD;14" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="SoftwareUpdateChanges_summary" position="0,0" size="400,240"> + <screen name="SoftwareUpdateChangesSummary" position="0,0" size="400,240"> <widget source="parent.title_summary" render="Label" position="0,0" size="160,15" font="FdLcD;15" halign="left" noWrap="1" /> <widget source="parent.text_summary" render="Label" position="0,16" size="400,54" font="FdLcD;12" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> @@ -408,42 +408,42 @@ <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Rytec_Update_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_Rytec_UpdateSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Xepgdb_Update_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_Xepgdb_UpdateSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Converter_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_ConverterSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Importer_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_ImporterSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Loader_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_LoaderSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Downloader_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_DownloaderSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.summary_status" render="Label" position="0,41" size="400,18" font="FdLcD;16" halign="left" noWrap="1" /> diff --git a/data/display400/skin_display.xml b/data/display400/skin_display.xml index 6d45e70db6f..76f0d89a332 100644 --- a/data/display400/skin_display.xml +++ b/data/display400/skin_display.xml @@ -181,7 +181,7 @@ </screen> <!-- channelselection--> - <screen name="ChannelSelection_summary" position="0,0" size="400,240"> + <screen name="ChannelSelectionSummary" position="0,0" size="400,240"> <widget source="parent.ServiceEvent" render="Label" position="0,30" size="400,45" font="FdLcD;40" halign="left" noWrap="1"> <convert type="ServiceName">Name</convert> </widget> @@ -255,7 +255,7 @@ </screen> <!-- JobView Summary --> - <screen name="JobView_summary" position="0,0" size="400,240"> + <screen name="JobViewSummary" position="0,0" size="400,240"> <widget source="parent.summary_job_name" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_job_task" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.summary_job_progress" render="Progress" position="6,50" size="60,12" borderWidth="2" borderColor="white" foregroundColor="yellow" zPosition="1" /> @@ -266,51 +266,51 @@ <panel name="SummaryClockPanel" /> </screen> - <screen name="EventView_summary" position="0,0" size="400,240"> + <screen name="EventViewSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;20" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="400,140" font="FdLcD;17" /> </screen> - <screen name="EventViewSimple_summary" position="0,0" size="400,240"> + <screen name="EventViewSimpleSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;20" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="400,140" font="FdLcD;17" /> </screen> <!-- EPG Screens --> - <screen name="EPGSelection_summary" position="0,0" size="400,240"> + <screen name="EPGSelectionSummary" position="0,0" size="400,240"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="QuickEPG_summary" position="0,0" size="400,240"> + <screen name="QuickEPGSummary" position="0,0" size="400,240"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="400,240"> + <screen name="GraphicalEPGSummary" position="0,0" size="400,240"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="400,240"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="400,240"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="ChoiceBox_summary" position="0,0" size="400,240"> + <screen name="ChoiceBoxSummary" position="0,0" size="400,240"> <widget source="parent.summary_list" render="Label" position="0,0" size="400,240" font="FdLcD;16" noWrap="1" /> </screen> - <screen name="MessageBox_summary" position="0,0" size="400,240"> + <screen name="MessageBoxSummary" position="0,0" size="400,240"> <widget source="parent.Text" render="Label" position="0,0" size="400,240" font="FdLcD;17" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,135" size="400,28" font="FdLcD;26" halign="center" noWrap="1" /> </screen> - <screen name="MessageBoxSimple_summary" position="0,0" size="400,240"> + <screen name="MessageBoxSimpleSummary" position="0,0" size="400,240"> <widget source="parent.Text" render="Label" position="0,0" size="400,240" font="FdLcD;17" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,135" size="400,28" font="FdLcD;26" halign="center" noWrap="1" /> </screen> @@ -364,7 +364,7 @@ </panel> </screen> - <screen name="NumberZap_summary" position="0,0" size="400,240"> + <screen name="NumberZapSummary" position="0,0" size="400,240"> <widget source="parent.channel_summary" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.number_summary" render="Label" position="0,66" size="400,52" font="FdLcD;50" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> @@ -378,21 +378,21 @@ <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="VIXSwap_summary" position="0,0" size="400,240"> + <screen name="VIXSwapSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.swapname_summary" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.swapactive_summary" render="Label" position="0,93" size="400,16" font="FdLcD;14" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="UpdatePlugin_summary" position="0,0" size="400,240"> + <screen name="UpdatePluginSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.package" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.status" render="Label" position="0,93" size="400,16" font="FdLcD;14" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="SoftwareUpdateChanges_summary" position="0,0" size="400,240"> + <screen name="SoftwareUpdateChangesSummary" position="0,0" size="400,240"> <widget source="parent.title_summary" render="Label" position="0,0" size="160,15" font="FdLcD;15" halign="left" noWrap="1" /> <widget source="parent.text_summary" render="Label" position="0,16" size="400,54" font="FdLcD;12" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> @@ -420,42 +420,42 @@ <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Rytec_Update_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_Rytec_UpdateSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Xepgdb_Update_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_Xepgdb_UpdateSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Converter_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_ConverterSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Importer_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_ImporterSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Loader_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_LoaderSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Downloader_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_DownloaderSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.summary_status" render="Label" position="0,41" size="400,18" font="FdLcD;16" halign="left" noWrap="1" /> diff --git a/data/display400/skin_display_picon.xml b/data/display400/skin_display_picon.xml index ff8590d4daa..8699371478c 100644 --- a/data/display400/skin_display_picon.xml +++ b/data/display400/skin_display_picon.xml @@ -181,7 +181,7 @@ </screen> <!-- channelselection--> - <screen name="ChannelSelection_summary" position="0,0" size="400,240"> + <screen name="ChannelSelectionSummary" position="0,0" size="400,240"> <widget source="parent.ServiceEvent" render="LcdPicon" position="0,33" size="220,132" zPosition="1" alphatest="on"> <convert type="ServiceName">Reference</convert> </widget> @@ -248,7 +248,7 @@ </screen> <!-- JobView Summary --> - <screen name="JobView_summary" position="0,0" size="400,240"> + <screen name="JobViewSummary" position="0,0" size="400,240"> <widget source="parent.summary_job_name" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_job_task" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.summary_job_progress" render="Progress" position="6,50" size="60,12" borderWidth="2" borderColor="white" foregroundColor="yellow" zPosition="1" /> @@ -259,46 +259,46 @@ <panel name="SummaryClockPanel" /> </screen> - <screen name="EventView_summary" position="0,0" size="400,240"> + <screen name="EventViewSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;20" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="400,140" font="FdLcD;17" /> </screen> - <screen name="EventViewSimple_summary" position="0,0" size="400,240"> + <screen name="EventViewSimpleSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;20" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="400,140" font="FdLcD;17" /> </screen> <!-- EPG Screens --> - <screen name="EPGSelection_summary" position="0,0" size="400,240"> + <screen name="EPGSelectionSummary" position="0,0" size="400,240"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> </screen> - <screen name="QuickEPG_summary" position="0,0" size="400,240"> + <screen name="QuickEPGSummary" position="0,0" size="400,240"> <panel name="SummaryClockPanel" /> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="400,240"> + <screen name="GraphicalEPGSummary" position="0,0" size="400,240"> <panel name="SummaryClockPanel" /> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> </screen> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="400,240"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="400,240"> <panel name="SummaryClockPanel" /> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> </screen> - <screen name="ChoiceBox_summary" position="0,0" size="400,240"> + <screen name="ChoiceBoxSummary" position="0,0" size="400,240"> <widget source="parent.summary_list" render="Label" position="0,0" size="400,176" font="FdLcD;16" noWrap="1" /> </screen> - <screen name="MessageBox_summary" position="0,0" size="400,240"> + <screen name="MessageBoxSummary" position="0,0" size="400,240"> <widget source="parent.Text" render="Label" position="0,0" size="400,176" font="FdLcD;17" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,135" size="400,28" font="FdLcD;26" halign="center" noWrap="1" /> </screen> - <screen name="MessageBoxSimple_summary" position="0,0" size="400,240"> + <screen name="MessageBoxSimpleSummary" position="0,0" size="400,240"> <widget source="parent.Text" render="Label" position="0,0" size="400,176" font="FdLcD;17" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,135" size="400,28" font="FdLcD;26" halign="center" noWrap="1" /> </screen> @@ -352,7 +352,7 @@ </panel> </screen> - <screen name="NumberZap_summary" position="0,0" size="400,240"> + <screen name="NumberZapSummary" position="0,0" size="400,240"> <widget source="parent.channel_summary" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.number_summary" render="Label" position="0,66" size="400,52" font="FdLcD;50" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> @@ -366,21 +366,21 @@ <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="VIXSwap_summary" position="0,0" size="400,240"> + <screen name="VIXSwapSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.swapname_summary" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.swapactive_summary" render="Label" position="0,93" size="400,16" font="FdLcD;14" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="UpdatePlugin_summary" position="0,0" size="400,240"> + <screen name="UpdatePluginSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.package" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.status" render="Label" position="0,93" size="400,16" font="FdLcD;14" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="SoftwareUpdateChanges_summary" position="0,0" size="400,240"> + <screen name="SoftwareUpdateChangesSummary" position="0,0" size="400,240"> <widget source="parent.title_summary" render="Label" position="0,0" size="160,15" font="FdLcD;15" halign="left" noWrap="1" /> <widget source="parent.text_summary" render="Label" position="0,16" size="400,54" font="FdLcD;12" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> @@ -408,42 +408,42 @@ <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Rytec_Update_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_Rytec_UpdateSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Xepgdb_Update_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_Xepgdb_UpdateSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Converter_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_ConverterSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Importer_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_ImporterSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Loader_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_LoaderSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Downloader_summary" position="0,0" size="400,240"> + <screen name="CrossEPG_DownloaderSummary" position="0,0" size="400,240"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.summary_status" render="Label" position="0,41" size="400,18" font="FdLcD;16" halign="left" noWrap="1" /> diff --git a/data/display480/skin_display.xml b/data/display480/skin_display.xml index 20112bad905..a2a6f8b1203 100644 --- a/data/display480/skin_display.xml +++ b/data/display480/skin_display.xml @@ -148,7 +148,7 @@ </screen> <!-- channelselection--> - <screen name="ChannelSelection_summary" position="0,0" size="480,320"> + <screen name="ChannelSelectionSummary" position="0,0" size="480,320"> <widget source="parent.ServiceEvent" render="Label" position="0,5" size="480,70" font="FdLcD;55" halign="center" valign="center" foregroundColor="yellow" > <convert type="ServiceName">Name</convert> </widget> @@ -225,7 +225,7 @@ </screen> <!-- EPG Screens --> - <screen name="EPGSelection_summary" position="0,0" size="480,320"> + <screen name="EPGSelectionSummary" position="0,0" size="480,320"> <widget source="parent.Service" render="Label" position="0,5" size="480,70" font="FdLcD;55" halign="center" valign="center" foregroundColor="yellow" > <convert type="ServiceName">Name</convert> </widget> @@ -304,28 +304,28 @@ </widget> <panel name="SummaryClockPanel" /> </screen> - <screen name="QuickEPG_summary" position="0,0" size="480,320"> + <screen name="QuickEPGSummary" position="0,0" size="480,320"> <panel name="EPGSelection_summary" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="480,320"> + <screen name="GraphicalEPGSummary" position="0,0" size="480,320"> <panel name="EPGSelection_summary" /> </screen> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="480,320"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="480,320"> <panel name="EPGSelection_summary" /> </screen> - <screen name="GraphicalInfoBarEPG_summary" position="0,0" size="480,320"> + <screen name="GraphicalInfoBarEPGSummary" position="0,0" size="480,320"> <panel name="EPGSelection_summary" /> </screen> - <screen name="EPGSelectionMulti_summary" position="0,0" size="480,320"> + <screen name="EPGSelectionMultiSummary" position="0,0" size="480,320"> <panel name="EPGSelection_summary" /> </screen> <!-- messagebox--> - <screen name="MessageBox_summary" position="0,0" size="480,320"> + <screen name="MessageBoxSummary" position="0,0" size="480,320"> <widget source="parent.Text" render="Label" position="0,20" size="480,180" font="FdLcD;40" halign="center" valign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,220" size="400,70" font="FdLcD;40" halign="center" valign="center" noWrap="1" /> </screen> - <screen name="MessageBoxSimple_summary" position="0,0" size="480,320"> + <screen name="MessageBoxSimpleSummary" position="0,0" size="480,320"> <panel name="MessageBox_summary" /> </screen> @@ -409,7 +409,7 @@ </screen> <!-- JobView Summary --> - <screen name="JobView_summary" position="0,0" size="480,320"> + <screen name="JobViewSummary" position="0,0" size="480,320"> <widget source="parent.summary_job_name" render="Label" position="0,38" size="400,58" font="FdLcD;24" halign="left" /> <widget source="parent.summary_job_task" render="Label" position="0,100" size="400,25" font="FdLcD;19" halign="left" /> <widget source="parent.summary_job_progress" render="Progress" position="0,0" size="285,30" borderWidth="1" zPosition="1" /> @@ -418,17 +418,17 @@ </widget> </screen> - <screen name="EventView_summary" position="0,0" size="480,320"> + <screen name="EventViewSummary" position="0,0" size="480,320"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;20" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="400,140" font="FdLcD;24" /> </screen> - <screen name="EventViewSimple_summary" position="0,0" size="480,320"> + <screen name="EventViewSimpleSummary" position="0,0" size="480,320"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;20" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="400,140" font="FdLcD;24" /> </screen> - <screen name="ChoiceBox_summary" position="0,0" size="480,320"> + <screen name="ChoiceBoxSummary" position="0,0" size="480,320"> <widget source="parent.summary_list" render="Label" position="0,0" size="480,320" font="FdLcD;18" noWrap="1" /> </screen> @@ -493,21 +493,21 @@ <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="VIXSwap_summary" position="0,0" size="480,320"> + <screen name="VIXSwapSummary" position="0,0" size="480,320"> <panel name="Parent_Title" /> <widget source="parent.swapname_summary" render="Label" position="0,65" size="480,90" font="FdLcD;40" halign="center" valign="center" /> <widget source="parent.swapactive_summary" render="Label" position="0,160" size="480,90" font="FdLcD;35" halign="center" valign="center" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="UpdatePlugin_summary" position="0,0" size="480,320"> + <screen name="UpdatePluginSummary" position="0,0" size="480,320"> <panel name="Parent_Title" /> <widget source="parent.package" render="Label" position="0,65" size="480,90" font="FdLcD;40" halign="center" valign="center" /> <widget source="parent.status" render="Label" position="0,160" size="480,90" font="FdLcD;35" halign="center" valign="center" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="SoftwareUpdateChanges_summary" position="0,0" size="480,320"> + <screen name="SoftwareUpdateChangesSummary" position="0,0" size="480,320"> <widget source="parent.title_summary" render="Label" position="0,0" size="160,15" font="FdLcD;15" halign="left" noWrap="1" /> <widget source="parent.text_summary" render="Label" position="0,16" size="400,54" font="FdLcD;12" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> @@ -546,7 +546,7 @@ <convert type="ConditionalShowHide" /> </widget> </screen> - <screen name="CrossEPG_Downloader_summary" position="0,0" size="480,320"> + <screen name="CrossEPG_DownloaderSummary" position="0,0" size="480,320"> <widget source="parent.Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,66" size="400,20" font="FdLcD;19" halign="left" noWrap="1" /> <widget source="parent.summary_status" render="Label" position="0,41" size="400,18" font="FdLcD;16" halign="left" noWrap="1" /> @@ -565,7 +565,7 @@ </screen> <!-- NUMBERZAP --> - <screen name="NumberZap_summary" position="0,0" size="480,320"> + <screen name="NumberZapSummary" position="0,0" size="480,320"> <widget source="parent.servicename_summary" render="Label" position="0,5" size="480,70" font="FdLcD;55" halign="center" valign="center" foregroundColor="yellow" /> <widget source="parent.number_summary" render="Label" position="10,100" size="480,80" foregroundColor="white" font="FdLcD;75" halign="center" valign="center" /> </screen> diff --git a/data/display480/skin_display_picon.xml b/data/display480/skin_display_picon.xml index d54cfa64c54..ae0a76ad770 100644 --- a/data/display480/skin_display_picon.xml +++ b/data/display480/skin_display_picon.xml @@ -163,7 +163,7 @@ <panel name="MainTunerInfoPanel" /> </screen> <!-- channelselection --> - <screen name="ChannelSelection_summary" position="0,0" size="480,320"> + <screen name="ChannelSelectionSummary" position="0,0" size="480,320"> <widget source="parent.Service" render="LcdPicon" position="125,0" size="150,90" zPosition="2" alphatest="on"> <convert type="ServiceName">Reference</convert> </widget> @@ -186,7 +186,7 @@ <panel name="MainRecordingPanel" /> </screen> <!-- RadioChannelselection --> - <screen name="ChannelSelectionRadio_summary" position="0,0" size="480,320"> + <screen name="ChannelSelectionRadioSummary" position="0,0" size="480,320"> <widget source="session.CurrentService" render="Label" position="0,0" size="400,40" foregroundColor="#87CEFA" font="FdLcD;38" halign="center"> <convert type="ServiceName">Name</convert> </widget> @@ -196,12 +196,12 @@ <panel name="SummaryClockPanel" /> </screen> <!-- Numberzap --> - <screen name="NumberZap_summary" position="0,0" size="480,320"> + <screen name="NumberZapSummary" position="0,0" size="480,320"> <widget source="parent.servicename_summary" render="Label" position="0,5" size="480,70" font="FdLcD;55" halign="center" valign="center" foregroundColor="yellow" /> <widget source="parent.number_summary" render="Label" position="10,100" size="480,80" foregroundColor="white" font="FdLcD;75" halign="center" valign="center" /> </screen> <!-- NumberZapExt --> - <screen name="NumberZapExt_summary" position="0,0" size="480,320"> + <screen name="NumberZapExtSummary" position="0,0" size="480,320"> <widget source="parent.number_summary" render="Label" position="0,0" size="400,99" font="FdLcD;105" halign="center" valign="center" transparent="1" /> <widget source="parent.service_summary" render="Label" position="0,101" size="400,139" font="FdLcD;55" halign="center" valign="center" transparent="1" /> </screen> @@ -214,18 +214,18 @@ </widget> </screen> <!-- Schnellstartmenue --> - <screen name="QuickMenu_summary" position="0,0" size="480,320"> + <screen name="QuickMenuSummary" position="0,0" size="480,320"> <widget source="parent.title" render="Label" position="0,0" size="400,85" font="FdLcD;38" foregroundColor="#87CEFA" halign="center" valign="center" /> <eLabel position="0,87" size="400,1" backgroundColor="white" /> <widget source="parent.summary_description" render="Label" position="0,88" size="400,152" zPosition="1" font="FdLcD;35" halign="center" valign="center" /> </screen> <!-- Metrix-Menu --> - <screen name="MainSettingsView_summary" position="0,0" size="480,320"> + <screen name="MainSettingsViewSummary" position="0,0" size="480,320"> <widget source="parent.titleText" render="Label" position="0,0" size="400,178" font="FdLcD;35" foregroundColor="#87CEFA" halign="center" valign="center" /> <panel name="SummaryClockPanel" /> </screen> <!-- Infopanel --> - <screen name="Infopanel_summary" position="0,0" size="480,320"> + <screen name="InfopanelSummary" position="0,0" size="480,320"> <widget source="parent.title" render="Label" position="0,0" size="400,85" font="FdLcD;38" foregroundColor="#87CEFA" halign="center" valign="center" /> <eLabel position="0,87" size="400,1" backgroundColor="white" /> <widget source="parent.summary_description" render="Label" position="0,88" size="400,152" zPosition="1" font="FdLcD;35" halign="center" valign="center" /> @@ -296,7 +296,7 @@ <widget source="desc" render="Label" position="fill" font="FdLcD;22" valign="top" /> </screen> <!-- JobView Summary --> - <screen name="JobView_summary" position="0,0" size="480,320"> + <screen name="JobViewSummary" position="0,0" size="480,320"> <widget source="parent.summary_job_progress" render="Label" position="0,0" size="400,70" font="FdLcD;70" zposition="0" halign="center" valign="center" transparent="1" > <convert type="ProgressToText">InPercent</convert> </widget> @@ -305,27 +305,27 @@ <!-- <widget source="parent.summary_job_task" render="Label" position="0,145" size="400,95" font="FdLcD;26" halign="left" /> --> </screen> - <screen name="EventView_summary" position="0,0" size="480,320"> + <screen name="EventViewSummary" position="0,0" size="480,320"> <widget source="parent.title" render="Label" position="0,0" size="160,22" font="FdLcD;20" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="400,140" font="FdLcD;24" /> </screen> - <screen name="EventViewSimple_summary" position="0,0" size="480,320"> + <screen name="EventViewSimpleSummary" position="0,0" size="480,320"> <widget source="parent.title" render="Label" position="0,0" size="160,22" font="FdLcD;20" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="400,140" font="FdLcD;24" /> </screen> <!-- EPG Screens --> - <screen name="GraphicalEPG_summary" position="0,0" size="480,320"> + <screen name="GraphicalEPGSummary" position="0,0" size="480,320"> <panel name="MyEPGPanel" /> </screen> - <screen name="GraphicalInfoBarEPG_summary" position="0,0" size="480,320"> + <screen name="GraphicalInfoBarEPGSummary" position="0,0" size="480,320"> <panel name="MyEPGPanel" /> </screen> - <screen name="EPGSelectionMulti_summary" position="0,0" size="480,320"> + <screen name="EPGSelectionMultiSummary" position="0,0" size="480,320"> <panel name="MyEPGPanel" /> </screen> - <screen name="EPGSelection_summary" position="0,0" size="480,320"> + <screen name="EPGSelectionSummary" position="0,0" size="480,320"> <widget source="parent.Service" render="Label" position="0,0" size="400,38" foregroundColor="#87CEFA" font="FdLcD;34" transparent="1" halign="center" noWrap="1" > <convert type="ServiceName">Name</convert> </widget> @@ -349,14 +349,14 @@ <panel name="SummaryClockPanel" /> </screen> <!-- System --> - <screen name="ChoiceBox_summary" position="fill" > + <screen name="ChoiceBoxSummary" position="fill" > <widget source="parent.summary_list" render="Label" position="fill" font="FdLcD;21" noWrap="1" valign="top" /> </screen> - <screen name="MessageBox_summary" position="0,0" size="480,320"> + <screen name="MessageBoxSummary" position="0,0" size="480,320"> <widget source="parent.Text" render="Label" position="0,0" size="480,320" font="FdLcD;24" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,135" size="400,28" font="FdLcD;26" foregroundColor="#F4FA58" halign="center" noWrap="1" /> </screen> - <screen name="MessageBoxSimple_summary" position="0,0" size="480,320"> + <screen name="MessageBoxSimpleSummary" position="0,0" size="480,320"> <widget source="parent.Text" render="Label" position="0,0" size="480,320" font="FdLcD;24" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,135" size="400,28" font="FdLcD;26" foregroundColor="#F4FA58" halign="center" noWrap="1" /> </screen> @@ -364,12 +364,12 @@ <widget source="AboutText" render="Label" position="0,0" size="480,320" font="FdLcD;11" /> </screen> <!-- LocationBox_summary --> - <screen name="LocationBox_summary" position="0,0" size="480,320"> + <screen name="LocationBoxSummary" position="0,0" size="480,320"> <widget source="parent.text" render="Label" position="0,0" size="400,178" font="FdLcD;40" foregroundColor="#87CEFA" halign="center" valign="center" /> <panel name="SummaryClockPanel" /> </screen> <!-- console --> - <screen name="Console_summary" position="0,0" size="480,320"> + <screen name="ConsoleSummary" position="0,0" size="480,320"> <widget source="parent.title" render="Label" position="0,0" size="400,85" font="FdLcD;38" foregroundColor="#87CEFA" halign="center" valign="center" /> <eLabel position="0,87" size="400,1" backgroundColor="white" /> <widget source="parent.summary_description" render="Label" position="0,88" size="400,152" zPosition="1" font="FdLcD;35" halign="center" valign="center" /> @@ -399,7 +399,7 @@ <widget source="state" render="Label" position="0,214" size="400,28" font="FdLcD;24" halign="right" transparent="1" /> </screen> <!-- TimerLog_summary --> - <screen name="TimerLog_summary" position="0,0" size="480,320"> + <screen name="TimerLogSummary" position="0,0" size="480,320"> <widget source="parent.title" render="Label" position="0,0" size="400,30" font="FdLcD;28" foregroundColor="#87CEFA" halign="center" noWrap="1" /> <eLabel position="0,31" size="400,1" backgroundColor="white" /> <widget source="parent.summary_description" render="Label" position="0,32" size="400,208" font="FdLcD;26" transparent="1" halign="center" valign="center" /> @@ -411,12 +411,12 @@ <widget source="entry" render="Label" position="0,45" size="400,197" font="FdLcD;42" transparent="1" halign="center" valign="center" /> </screen> <!-- SoftwareUpdate --> - <screen name="UpdatePlugin_summary" position="0,0" size="480,320"> + <screen name="UpdatePluginSummary" position="0,0" size="480,320"> <widget source="parent.title" render="Label" position="0,0" size="400,32" font="FdLcD;28" foregroundColor="#87CEFA" halign="center" noWrap="1" /> <widget source="parent.package" render="Label" position="0,33" size="400,174" font="FdLcD;33" halign="center" valign="center" /> <widget source="parent.status" render="Label" position="0,208" size="400,32" font="FdLcD;28" halign="left" transparent="1" /> </screen> - <screen name="SoftwareUpdateChanges_summary" position="0,0" size="480,320"> + <screen name="SoftwareUpdateChangesSummary" position="0,0" size="480,320"> <widget source="parent.title_summary" render="Label" position="0,0" size="400,26" font="FdLcD;24" foregroundColor="#87CEFA" halign="center" noWrap="1" /> <widget source="parent.text_summary" render="Label" position="0,28" size="400,212" font="FdLcD;24" halign="left" transparent="1" /> </screen> @@ -437,32 +437,32 @@ </widget> </screen> <!-- Neu --> - <screen name="BackupSelection_summary" position="0,0" size="480,320"> + <screen name="BackupSelectionSummary" position="0,0" size="480,320"> <widget source="parent.title" render="Label" position="0,0" size="400,105" font="FdLcD;38" foregroundColor="#87CEFA" halign="center" valign="center" /> <eLabel position="0,106" size="400,1" backgroundColor="white" /> <widget source="parent.summary_description" render="Label" position="0,107" size="400,133" zPosition="1" font="FdLcD;35" halign="center" valign="center" /> </screen> - <screen name="RestoreScreen_summary" position="0,0" size="480,320"> + <screen name="RestoreScreenSummary" position="0,0" size="480,320"> <widget source="parent.title" render="Label" position="0,0" size="400,105" font="FdLcD;38" foregroundColor="#87CEFA" halign="center" valign="center" /> <eLabel position="0,106" size="400,1" backgroundColor="white" /> <widget source="parent.summary_description" render="Label" position="0,107" size="400,133" zPosition="1" font="FdLcD;35" halign="center" valign="center" /> </screen> - <screen name="installedPlugins_summary" position="0,0" size="480,320"> + <screen name="installedPluginsSummary" position="0,0" size="480,320"> <widget source="parent.title" render="Label" position="0,0" size="400,105" font="FdLcD;38" foregroundColor="#87CEFA" halign="center" valign="center" /> <eLabel position="0,106" size="400,1" backgroundColor="white" /> <widget source="parent.summary_description" render="Label" position="0,107" size="400,133" zPosition="1" font="FdLcD;35" halign="center" valign="center" /> </screen> - <screen name="RestartNetwork_summary" position="0,0" size="480,320"> + <screen name="RestartNetworkSummary" position="0,0" size="480,320"> <widget source="parent.title" render="Label" position="0,0" size="400,105" font="FdLcD;38" foregroundColor="#87CEFA" halign="center" valign="center" /> <eLabel position="0,106" size="400,1" backgroundColor="white" /> <widget source="parent.summary_description" render="Label" position="0,107" size="400,133" zPosition="1" font="FdLcD;35" halign="center" valign="center" /> </screen> - <screen name="RestorePlugins_summary" position="0,0" size="480,320"> + <screen name="RestorePluginsSummary" position="0,0" size="480,320"> <widget source="parent.title" render="Label" position="0,0" size="400,105" font="FdLcD;38" foregroundColor="#87CEFA" halign="center" valign="center" /> <eLabel position="0,106" size="400,1" backgroundColor="white" /> <widget source="parent.summary_description" render="Label" position="0,107" size="400,133" zPosition="1" font="FdLcD;35" halign="center" valign="center" /> </screen> - <screen name="RestoreMenu_summary" position="0,0" size="480,320"> + <screen name="RestoreMenuSummary" position="0,0" size="480,320"> <widget source="parent.title" render="Label" position="0,0" size="400,105" font="FdLcD;38" foregroundColor="#87CEFA" halign="center" valign="center" /> <eLabel position="0,106" size="400,1" backgroundColor="white" /> <widget source="parent.summary_description" render="Label" position="0,107" size="400,133" zPosition="1" font="FdLcD;35" halign="center" valign="center" /> @@ -489,7 +489,7 @@ <panel name="SummaryClockPanel" /> </screen> <!-- EMC Screen --> - <screen name="EMCSelection_summary" position="0,0" size="480,320"> + <screen name="EMCSelectionSummary" position="0,0" size="480,320"> <widget source="parent.title" render="Label" position="0,0" size="400,72" font="FdLcD;32" foregroundColor="#87CEFA" halign="center" valign="center" /> <eLabel position="0,74" size="400,1" backgroundColor="white" /> <widget source="parent.Service" render="Label" position="0,74" size="400,131" font="FdLcD;34" halign="center" valign="center"> diff --git a/data/display720/Default_with_Analogue_Clock_Standby/skin_display.xml b/data/display720/Default_with_Analogue_Clock_Standby/skin_display.xml index 967b4cb546c..ddc6e44a0f4 100644 --- a/data/display720/Default_with_Analogue_Clock_Standby/skin_display.xml +++ b/data/display720/Default_with_Analogue_Clock_Standby/skin_display.xml @@ -34,7 +34,7 @@ <!-- MAIN --> <!-- CHANNEL SELECTION--> - <screen name="ChannelSelection_summary" position="0,0" size="720,576"> + <screen name="ChannelSelectionSummary" position="0,0" size="720,576"> <panel name="LCDChannelSelectionChannelName" /> <panel name="LCDChannelSelectionProgramName" /> <panel name="LCDChannelSelectionProgress" /> @@ -44,14 +44,14 @@ <panel name="LCDTunerInfo" /> <panel name="LCDTime" /> </screen> - <screen name="ChannelSelectionRadio_summary" position="0,0" size="720,576"> + <screen name="ChannelSelectionRadioSummary" position="0,0" size="720,576"> <widget source="parent.RdsDecoder" render="Label" position="10,200" size="700,150" foregroundColor="white" font="FdLcDLight;65" halign="center" valign="center" zPosition="2"> <convert type="RdsInfo">RtpText</convert> </widget> </screen> <!-- EPG --> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="720,576"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="720,576"> <panel name="LCDEPGChannelName" /> <panel name="LCDEPGProgramName" /> <panel name="LCDEPGProgress" /> @@ -61,13 +61,13 @@ <panel name="LCDTunerInfo" /> <panel name="LCDTime" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="720,576"> + <screen name="GraphicalEPGSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="GraphicalInfoBarEPG_summary" position="0,0" size="720,576"> + <screen name="GraphicalInfoBarEPGSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="EPGSelectionMulti_summary" position="0,0" size="720,576"> + <screen name="EPGSelectionMultiSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> diff --git a/data/display720/Default_with_Picon_Fullscreen/skin_display.xml b/data/display720/Default_with_Picon_Fullscreen/skin_display.xml index cf8ae4db452..da987c46f91 100644 --- a/data/display720/Default_with_Picon_Fullscreen/skin_display.xml +++ b/data/display720/Default_with_Picon_Fullscreen/skin_display.xml @@ -34,26 +34,26 @@ <!-- MAIN --> <!-- CHANNEL SELECTION--> - <screen name="ChannelSelection_summary" position="0,0" size="720,576"> + <screen name="ChannelSelectionSummary" position="0,0" size="720,576"> <panel name="LCDFullChannelSelectionPicon" /> </screen> - <screen name="ChannelSelectionRadio_summary" position="0,0" size="720,576"> + <screen name="ChannelSelectionRadioSummary" position="0,0" size="720,576"> <widget source="parent.RdsDecoder" render="Label" position="10,200" size="700,150" foregroundColor="white" font="FdLcDLight;65" halign="center" valign="center" zPosition="2"> <convert type="RdsInfo">RtpText</convert> </widget> </screen> <!-- EPG --> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="720,576"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="720,576"> <panel name="LCDFullEPGPicon" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="720,576"> + <screen name="GraphicalEPGSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="GraphicalInfoBarEPG_summary" position="0,0" size="720,576"> + <screen name="GraphicalInfoBarEPGSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="EPGSelectionMulti_summary" position="0,0" size="720,576"> + <screen name="EPGSelectionMultiSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> diff --git a/data/display720/Default_with_Picon_Fullscreen_and_Analogue_Clock_Standby/skin_display.xml b/data/display720/Default_with_Picon_Fullscreen_and_Analogue_Clock_Standby/skin_display.xml index 58f66b498b2..02ce36bb737 100644 --- a/data/display720/Default_with_Picon_Fullscreen_and_Analogue_Clock_Standby/skin_display.xml +++ b/data/display720/Default_with_Picon_Fullscreen_and_Analogue_Clock_Standby/skin_display.xml @@ -34,26 +34,26 @@ <!-- MAIN --> <!-- CHANNEL SELECTION--> - <screen name="ChannelSelection_summary" position="0,0" size="720,576"> + <screen name="ChannelSelectionSummary" position="0,0" size="720,576"> <panel name="LCDFullChannelSelectionPicon" /> </screen> - <screen name="ChannelSelectionRadio_summary" position="0,0" size="720,576"> + <screen name="ChannelSelectionRadioSummary" position="0,0" size="720,576"> <widget source="parent.RdsDecoder" render="Label" position="10,200" size="700,150" foregroundColor="white" font="FdLcDLight;65" halign="center" valign="center" zPosition="2"> <convert type="RdsInfo">RtpText</convert> </widget> </screen> <!-- EPG --> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="720,576"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="720,576"> <panel name="LCDFullEPGPicon" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="720,576"> + <screen name="GraphicalEPGSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="GraphicalInfoBarEPG_summary" position="0,0" size="720,576"> + <screen name="GraphicalInfoBarEPGSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="EPGSelectionMulti_summary" position="0,0" size="720,576"> + <screen name="EPGSelectionMultiSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> diff --git a/data/display720/Default_with_Picon_and_Analogue_Clock_Standby/skin_display.xml b/data/display720/Default_with_Picon_and_Analogue_Clock_Standby/skin_display.xml index 951b1cef27a..b42be1229ef 100644 --- a/data/display720/Default_with_Picon_and_Analogue_Clock_Standby/skin_display.xml +++ b/data/display720/Default_with_Picon_and_Analogue_Clock_Standby/skin_display.xml @@ -34,7 +34,7 @@ <!-- MAIN --> <!-- CHANNEL SELECTION--> - <screen name="ChannelSelection_summary" position="0,0" size="720,576"> + <screen name="ChannelSelectionSummary" position="0,0" size="720,576"> <panel name="LCDPiconChannelSelectionProgramName" /> <panel name="LCDPiconChannelSelectionProgress" /> <panel name="LCDPiconChannelSelectionRemainingTime" /> @@ -46,14 +46,14 @@ <panel name="LCDTunerInfo" /> <panel name="LCDTime" /> </screen> - <screen name="ChannelSelectionRadio_summary" position="0,0" size="720,576"> + <screen name="ChannelSelectionRadioSummary" position="0,0" size="720,576"> <widget source="parent.RdsDecoder" render="Label" position="10,200" size="700,150" foregroundColor="white" font="FdLcDLight;65" halign="center" valign="center" zPosition="2"> <convert type="RdsInfo">RtpText</convert> </widget> </screen> <!-- EPG --> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="720,576"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="720,576"> <panel name="LCDPiconEPGProgramName" /> <panel name="LCDPiconEPGProgress" /> <panel name="LCDPiconEPGRemainingTime" /> @@ -65,13 +65,13 @@ <panel name="LCDTunerInfo" /> <panel name="LCDTime" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="720,576"> + <screen name="GraphicalEPGSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="GraphicalInfoBarEPG_summary" position="0,0" size="720,576"> + <screen name="GraphicalInfoBarEPGSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="EPGSelectionMulti_summary" position="0,0" size="720,576"> + <screen name="EPGSelectionMultiSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> diff --git a/data/display720/skin_display.xml b/data/display720/skin_display.xml index 135b688d01a..93d1a7a955e 100644 --- a/data/display720/skin_display.xml +++ b/data/display720/skin_display.xml @@ -35,7 +35,7 @@ <!-- MAIN --> <!-- CHANNEL SELECTION--> - <screen name="ChannelSelection_summary" position="0,0" size="720,576"> + <screen name="ChannelSelectionSummary" position="0,0" size="720,576"> <panel name="LCDChannelSelectionChannelName" /> <panel name="LCDChannelSelectionProgramName" /> <panel name="LCDChannelSelectionProgress" /> @@ -45,14 +45,14 @@ <panel name="LCDTunerInfo" /> <panel name="LCDTime" /> </screen> - <screen name="ChannelSelectionRadio_summary" position="0,0" size="720,576"> + <screen name="ChannelSelectionRadioSummary" position="0,0" size="720,576"> <widget source="parent.RdsDecoder" render="Label" position="10,200" size="700,150" foregroundColor="white" font="FdLcDLight;65" halign="center" valign="center" zPosition="2"> <convert type="RdsInfo">RtpText</convert> </widget> </screen> <!-- EPG --> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="720,576"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="720,576"> <panel name="LCDEPGChannelName" /> <panel name="LCDEPGProgramName" /> <panel name="LCDEPGProgress" /> @@ -62,13 +62,13 @@ <panel name="LCDTunerInfo" /> <panel name="LCDTime" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="720,576"> + <screen name="GraphicalEPGSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="GraphicalInfoBarEPG_summary" position="0,0" size="720,576"> + <screen name="GraphicalInfoBarEPGSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="EPGSelectionMulti_summary" position="0,0" size="720,576"> + <screen name="EPGSelectionMultiSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> diff --git a/data/display720/skin_display_picon.xml b/data/display720/skin_display_picon.xml index 63c4b906a28..26158d231bf 100644 --- a/data/display720/skin_display_picon.xml +++ b/data/display720/skin_display_picon.xml @@ -35,7 +35,7 @@ <!-- MAIN --> <!-- CHANNEL SELECTION--> - <screen name="ChannelSelection_summary" position="0,0" size="720,576"> + <screen name="ChannelSelectionSummary" position="0,0" size="720,576"> <panel name="LCDPiconChannelSelectionProgramName" /> <panel name="LCDPiconChannelSelectionProgress" /> <panel name="LCDPiconChannelSelectionRemainingTime" /> @@ -47,14 +47,14 @@ <panel name="LCDTunerInfo" /> <panel name="LCDTime" /> </screen> - <screen name="ChannelSelectionRadio_summary" position="0,0" size="720,576"> + <screen name="ChannelSelectionRadioSummary" position="0,0" size="720,576"> <widget source="parent.RdsDecoder" render="Label" position="10,200" size="700,150" foregroundColor="white" font="FdLcDLight;65" halign="center" valign="center" zPosition="2"> <convert type="RdsInfo">RtpText</convert> </widget> </screen> <!-- EPG --> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="720,576"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="720,576"> <panel name="LCDPiconEPGProgramName" /> <panel name="LCDPiconEPGProgress" /> <panel name="LCDPiconEPGRemainingTime" /> @@ -66,13 +66,13 @@ <panel name="LCDTunerInfo" /> <panel name="LCDTime" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="720,576"> + <screen name="GraphicalEPGSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="GraphicalInfoBarEPG_summary" position="0,0" size="720,576"> + <screen name="GraphicalInfoBarEPGSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="EPGSelectionMulti_summary" position="0,0" size="720,576"> + <screen name="EPGSelectionMultiSummary" position="0,0" size="720,576"> <panel name="GraphicalEPGPIG_summary" /> </screen> diff --git a/data/display720/skin_display_templates.xml b/data/display720/skin_display_templates.xml index f94f5418c22..ac7b8e2e1d8 100644 --- a/data/display720/skin_display_templates.xml +++ b/data/display720/skin_display_templates.xml @@ -354,7 +354,7 @@ </screen> <!-- CHOICEBOX --> - <screen name="ChoiceBox_summary" position="0,0" size="720,576"> + <screen name="ChoiceBoxSummary" position="0,0" size="720,576"> <widget source="parent.summary_list" render="Label" position="10,50" size="700,110" foregroundColor="yellow" font="FdLcD;85" halign="center" valign="center" zPosition="2" /> <widget source="parent.summary_selection" render="Label" position="10,200" size="700,160" foregroundColor="white" font="FdLcDLight;65" halign="center" valign="top" zPosition="2" /> <panel name="LCDTime" /> @@ -367,7 +367,7 @@ </screen> <!-- JOBVIEW SUMMARY --> - <screen name="JobView_summary" position="0,0" size="720,576"> + <screen name="JobViewSummary" position="0,0" size="720,576"> <widget source="parent.summary_job_name" render="Label" position="10,50" size="700,110" foregroundColor="yellow" font="FdLcD;85" halign="center" valign="center" zPosition="2" /> <widget source="parent.summary_job_task" render="Label" position="10,200" size="700,160" foregroundColor="white" font="FdLcDLight;65" halign="center" valign="top" zPosition="2" /> <widget source="parent.summary_job_progress" render="Label" position="20,410" size="680,60" foregroundColor="white" font="FdLcDLight;60" halign="left" valign="center" zPosition="3"> @@ -392,12 +392,12 @@ </screen> <!-- MESSAGEBOX --> - <screen name="MessageBox_summary" position="0,0" size="720,576"> + <screen name="MessageBoxSummary" position="0,0" size="720,576"> <widget source="parent.Text" render="Label" position="10,50" size="700,310" foregroundColor="yellow" font="FdLcD;70" halign="center" valign="center" zPosition="2" /> <widget source="parent.selectedChoice" render="Label" position="10,380" size="700,70" foregroundColor="white" font="FdLcDLight;60" halign="center" valign="top" zPosition="2" /> <panel name="LCDTime" /> </screen> - <screen name="MessageBoxSimple_summary" position="0,0" size="720,576"> + <screen name="MessageBoxSimpleSummary" position="0,0" size="720,576"> <panel name="MessageBox_summary" /> </screen> @@ -441,7 +441,7 @@ </screen> <!-- NUMBERZAP --> - <screen name="NumberZap_summary" position="0,0" size="720,576"> + <screen name="NumberZapSummary" position="0,0" size="720,576"> <widget source="parent.servicename_summary" render="Label" position="10,50" size="700,110" foregroundColor="yellow" font="FdLcD;85" halign="center" valign="center" zPosition="2" /> <widget source="parent.number_summary" render="Label" position="10,190" size="700,250" foregroundColor="white" font="FdLcD;90" halign="center" valign="center" zPosition="2" /> <panel name="LCDTime" /> @@ -463,7 +463,7 @@ </screen> <!-- ET PORTAL --> - <screen name="EtPortalScreen_summary" position="0,0" size="720,576"> + <screen name="EtPortalScreenSummary" position="0,0" size="720,576"> <eLabel text="EtPortal" position="15,20" foregroundColor="yellow" size="670,120" font="FdLcD;70" halign="center" valign="top" noWrap="1" /> <widget source="parent.label" render="Label" position="white" size="670,200" font="FdLcD;60" halign="center" valign="top" /> <panel name="LCDTime" /> @@ -489,13 +489,13 @@ </screen> <!-- ExtensionsList --> - <screen name="ExtensionsList_summary" position="0,0" size="720,576"> + <screen name="ExtensionsListSummary" position="0,0" size="720,576"> <widget source="parent.Title" render="Label" position="10,20" size="670,376" font="FdLcD;70" halign="center" valign="center" /> <panel name="LCDTime" /> </screen> <!-- EPG --> - <screen name="EPGExtensionsList_summary" position="0,0" size="720,576"> + <screen name="EPGExtensionsListSummary" position="0,0" size="720,576"> <widget source="parent.Title" render="Label" position="10,20" size="670,250" font="FdLcD;80" halign="center" valign="center" foregroundColor="#e5b243" /> <panel name="LCDTime" /> </screen> diff --git a/data/display800/Default_with_Picon_Fullscreen/skin_display.xml b/data/display800/Default_with_Picon_Fullscreen/skin_display.xml index 737fc5ac2c4..1c6c832242e 100644 --- a/data/display800/Default_with_Picon_Fullscreen/skin_display.xml +++ b/data/display800/Default_with_Picon_Fullscreen/skin_display.xml @@ -34,26 +34,26 @@ <!-- MAIN --> <!-- CHANNEL SELECTION--> - <screen name="ChannelSelection_summary" position="0,0" size="800,480"> + <screen name="ChannelSelectionSummary" position="0,0" size="800,480"> <panel name="LCDFullChannelSelectionPicon" /> </screen> - <screen name="ChannelSelectionRadio_summary" position="0,0" size="800,480"> + <screen name="ChannelSelectionRadioSummary" position="0,0" size="800,480"> <widget source="parent.RdsDecoder" render="Label" position="40,200" size="720,150" foregroundColor="white" font="FdLcDLight;65" halign="center" valign="center" zPosition="2"> <convert type="RdsInfo">RtpText</convert> </widget> </screen> <!-- EPG --> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="800,480"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="800,480"> <panel name="LCDFullEPGPicon" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="800,480"> + <screen name="GraphicalEPGSummary" position="0,0" size="800,480"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="GraphicalInfoBarEPG_summary" position="0,0" size="800,480"> + <screen name="GraphicalInfoBarEPGSummary" position="0,0" size="800,480"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="EPGSelectionMulti_summary" position="0,0" size="800,480"> + <screen name="EPGSelectionMultiSummary" position="0,0" size="800,480"> <panel name="GraphicalEPGPIG_summary" /> </screen> diff --git a/data/display800/skin_display.xml b/data/display800/skin_display.xml index e0a1a0c18c3..14f4e6e9515 100644 --- a/data/display800/skin_display.xml +++ b/data/display800/skin_display.xml @@ -44,7 +44,7 @@ </screen> <!-- CHANNEL SELECTION --> - <screen name="ChannelSelection_summary" position="0,0" size="800,480"> + <screen name="ChannelSelectionSummary" position="0,0" size="800,480"> <panel name="LCDChannelSelectionChannelName" /> <panel name="LCDChannelSelectionProgramName" /> <panel name="LCDChannelSelectionProgress" /> @@ -52,14 +52,14 @@ <panel name="LCDChannelSelectionStartEndTime" /> <panel name="LCDRecordIcon" /> </screen> - <screen name="ChannelSelectionRadio_summary" position="0,0" size="800,480"> + <screen name="ChannelSelectionRadioSummary" position="0,0" size="800,480"> <widget source="parent.RdsDecoder" render="Label" position="40,200" size="720,150" foregroundColor="white" font="FdLcDLight;65" halign="center" valign="center" zPosition="2"> <convert type="RdsInfo">RtpText</convert> </widget> </screen> <!-- EPG --> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="800,480"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="800,480"> <panel name="LCDEPGChannelName" /> <panel name="LCDEPGProgramName" /> <panel name="LCDEPGProgress" /> @@ -67,13 +67,13 @@ <panel name="LCDEPGStartEndTime" /> <panel name="LCDRecordIcon" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="800,480"> + <screen name="GraphicalEPGSummary" position="0,0" size="800,480"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="GraphicalInfoBarEPG_summary" position="0,0" size="800,480"> + <screen name="GraphicalInfoBarEPGSummary" position="0,0" size="800,480"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="EPGSelectionMulti_summary" position="0,0" size="800,480"> + <screen name="EPGSelectionMultiSummary" position="0,0" size="800,480"> <panel name="GraphicalEPGPIG_summary" /> </screen> diff --git a/data/display800/skin_display_picon.xml b/data/display800/skin_display_picon.xml index 2d0c279af35..47cb0074f92 100644 --- a/data/display800/skin_display_picon.xml +++ b/data/display800/skin_display_picon.xml @@ -35,7 +35,7 @@ <!-- MAIN --> <!-- CHANNEL SELECTION--> - <screen name="ChannelSelection_summary" position="0,0" size="800,480"> + <screen name="ChannelSelectionSummary" position="0,0" size="800,480"> <panel name="LCDPiconChannelSelectionProgramName" /> <panel name="LCDPiconChannelSelectionProgress" /> <panel name="LCDPiconChannelSelectionRemainingTime" /> @@ -44,14 +44,14 @@ <panel name="LCDPiconStatusIcons" /> <panel name="LCDRecordIcon" /> </screen> - <screen name="ChannelSelectionRadio_summary" position="0,0" size="800,480"> + <screen name="ChannelSelectionRadioSummary" position="0,0" size="800,480"> <widget source="parent.RdsDecoder" render="Label" position="40,200" size="720,150" foregroundColor="white" font="FdLcDLight;65" halign="center" valign="center" zPosition="2"> <convert type="RdsInfo">RtpText</convert> </widget> </screen> <!-- EPG --> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="800,480"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="800,480"> <panel name="LCDPiconEPGProgramName" /> <panel name="LCDPiconEPGProgress" /> <panel name="LCDPiconEPGRemainingTime" /> @@ -60,13 +60,13 @@ <panel name="LCDPiconStatusIcons" /> <panel name="LCDRecordIcon" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="800,480"> + <screen name="GraphicalEPGSummary" position="0,0" size="800,480"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="GraphicalInfoBarEPG_summary" position="0,0" size="800,480"> + <screen name="GraphicalInfoBarEPGSummary" position="0,0" size="800,480"> <panel name="GraphicalEPGPIG_summary" /> </screen> - <screen name="EPGSelectionMulti_summary" position="0,0" size="800,480"> + <screen name="EPGSelectionMultiSummary" position="0,0" size="800,480"> <panel name="GraphicalEPGPIG_summary" /> </screen> diff --git a/data/display800/skin_display_templates.xml b/data/display800/skin_display_templates.xml index 0b47936d2f8..c5f38528edc 100644 --- a/data/display800/skin_display_templates.xml +++ b/data/display800/skin_display_templates.xml @@ -268,7 +268,7 @@ </screen> <!-- CHOICEBOX --> - <screen name="ChoiceBox_summary" position="0,0" size="800,480"> + <screen name="ChoiceBoxSummary" position="0,0" size="800,480"> <widget source="parent.summary_list" render="Label" position="40,50" size="720,110" foregroundColor="white" font="FdLcD;85" halign="center" valign="center" zPosition="2" /> <widget source="parent.summary_selection" render="Label" position="40,200" size="720,160" foregroundColor="white" font="FdLcDLight;65" halign="center" valign="top" zPosition="2" /> </screen> @@ -279,7 +279,7 @@ </screen> <!-- JOBVIEW SUMMARY --> - <screen name="JobView_summary" position="0,0" size="800,480"> + <screen name="JobViewSummary" position="0,0" size="800,480"> <widget source="parent.summary_job_name" render="Label" position="40,50" size="720,110" foregroundColor="white" font="FdLcD;85" halign="left" valign="center" zPosition="2" /> <widget source="parent.summary_job_task" render="Label" position="40,200" size="720,100" foregroundColor="white" font="FdLcD;75" halign="left" valign="center" zPosition="2" /> <widget source="parent.summary_job_progress" render="Progress" position="38,348" size="724,84" borderWidth="2" foregroundColor="white" zPosition="3"/> @@ -302,11 +302,11 @@ </screen> <!-- MESSAGEBOX --> - <screen name="MessageBox_summary" position="0,0" size="800,480"> + <screen name="MessageBoxSummary" position="0,0" size="800,480"> <widget source="parent.Text" render="Label" position="40,50" size="720,310" foregroundColor="white" font="FdLcD;70" halign="center" valign="center" zPosition="2" /> <widget source="parent.selectedChoice" render="Label" position="40,380" size="720,70" foregroundColor="white" font="FdLcDLight;60" halign="center" valign="top" zPosition="2" /> </screen> - <screen name="MessageBoxSimple_summary" position="0,0" size="800,480"> + <screen name="MessageBoxSimpleSummary" position="0,0" size="800,480"> <panel name="MessageBox_summary" /> </screen> @@ -349,7 +349,7 @@ </screen> <!-- NUMBERZAP --> - <screen name="NumberZap_summary" position="0,0" size="800,480"> + <screen name="NumberZapSummary" position="0,0" size="800,480"> <widget source="parent.servicename_summary" render="Label" position="40,50" size="720,110" foregroundColor="white" font="FdLcD;85" halign="center" valign="center" zPosition="2" /> <widget source="parent.number_summary" render="Label" position="40,190" size="720,250" foregroundColor="white" font="FdLcD;90" halign="center" valign="center" zPosition="2" /> </screen> @@ -388,7 +388,7 @@ </screen> <!-- ET PORTAL --> - <screen name="EtPortalScreen_summary" position="0,0" size="800,480"> + <screen name="EtPortalScreenSummary" position="0,0" size="800,480"> <eLabel text="EtPortal" position="15,20" foregroundColor="white" size="670,120" font="FdLcD;70" halign="center" valign="top" noWrap="1" /> <widget source="parent.label" render="Label" position="white" size="670,200" font="FdLcD;60" halign="center" valign="top" /> </screen> @@ -408,12 +408,12 @@ </screen> <!-- ExtensionsList --> - <screen name="ExtensionsList_summary" position="0,0" size="800,480"> + <screen name="ExtensionsListSummary" position="0,0" size="800,480"> <widget source="parent.Title" render="Label" position="40,20" size="720,376" font="FdLcD;70" halign="center" valign="center" /> </screen> <!-- EPG --> - <screen name="EPGExtensionsList_summary" position="0,0" size="800,480"> + <screen name="EPGExtensionsListSummary" position="0,0" size="800,480"> <widget source="parent.Title" render="Label" position="40,20" size="720,250" font="FdLcD;80" halign="center" valign="center" foregroundColor="white" /> </screen> diff --git a/data/display96/skin_display.xml b/data/display96/skin_display.xml index bdfe508aa60..b6b698488a0 100644 --- a/data/display96/skin_display.xml +++ b/data/display96/skin_display.xml @@ -71,7 +71,7 @@ </screen> <!-- channelselection--> - <screen name="ChannelSelection_summary" position="0,0" size="96,64"> + <screen name="ChannelSelectionSummary" position="0,0" size="96,64"> <widget source="parent.ServiceEvent" render="Label" position="0,0" size="96,21" font="FdLcD;20" halign="left" noWrap="1" > <convert type="ServiceName">Name</convert> </widget> @@ -206,7 +206,7 @@ </screen> <!-- JobView Summary --> - <screen name="JobView_summary" position="0,0" size="96,64"> + <screen name="JobViewSummary" position="0,0" size="96,64"> <widget source="parent.summary_job_name" render="Label" position="0,4" size="96,42" font="FdLcD;16" /> <widget source="parent.summary_job_task" render="Label" position="0,22" size="96,26" font="FdLcD;12" /> <widget source="parent.summary_job_progress" render="Progress" position="0,50" size="60,12" borderWidth="1" zPosition="1" /> @@ -215,17 +215,17 @@ </widget> </screen> - <screen name="ChoiceBox_summary" position="0,0" size="96,64"> + <screen name="ChoiceBoxSummary" position="0,0" size="96,64"> <widget source="parent.Title" render="Label" position="0,0" size="96,14" font="FdLcD;14" halign="left" noWrap="1" foregroundColor="lightyellow" /> <widget source="parent.summary_selection" render="Label" position="0,14" size="96,50" font="FdLcD;14" halign="left" /> </screen> - <screen name="MessageBox_summary" position="0,0" size="96,64"> + <screen name="MessageBoxSummary" position="0,0" size="96,64"> <widget source="parent.Text" render="Label" position="0,0" size="96,52" font="FdLcD;11" halign="center" valign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,50" size="96,14" font="FdLcD;14" halign="center" valign="center" /> </screen> - <screen name="MessageBoxSimple_summary" position="0,0" size="96,64"> + <screen name="MessageBoxSimpleSummary" position="0,0" size="96,64"> <widget source="parent.Text" render="Label" position="0,0" size="96,52" font="FdLcD;11" halign="center" valign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,50" size="96,14" font="FdLcD;14" halign="center" valign="center" /> </screen> diff --git a/data/displaytext/skin_display.xml b/data/displaytext/skin_display.xml index 19abe8353c5..4e4ca47598a 100644 --- a/data/displaytext/skin_display.xml +++ b/data/displaytext/skin_display.xml @@ -37,12 +37,12 @@ </screen> <!-- channelselection--> - <screen name="ChannelSelection_summary" position="0,0" size="132,64"> + <screen name="ChannelSelectionSummary" position="0,0" size="132,64"> <widget source="parent.ServiceEvent" render="Label" position="0,0" size="120,25" halign="left" noWrap="1" > <convert type="ServiceName">Name</convert> </widget> </screen> - <screen name="NumberZap_summary" position="0,0" size="132,64"> + <screen name="NumberZapSummary" position="0,0" size="132,64"> <widget source="parent.number_summary" render="Label" position="0,0" size="132,64" halign="left" noWrap="1" /> </screen> @@ -93,18 +93,18 @@ <screen name="VIXMenuSummary" position="0,0" size="132,64"> <widget source="entry" render="Label" position="0,0" size="120,20" font="Regular;18" noWrap="1" /> </screen> - <screen name="ChoiceBox_summary" position="0,0" size="132,64"> + <screen name="ChoiceBoxSummary" position="0,0" size="132,64"> <widget source="parent.summary_selection" render="Label" position="0,0" size="126,64" font="Regular;11" noWrap="1" /> </screen> - <screen name="MessageBox_summary" position="0,0" size="132,64"> + <screen name="MessageBoxSummary" position="0,0" size="132,64"> <widget source="parent.Text" render="Label" position="0,0" size="132,52" font="Regular;11" valign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,50" size="120,14" halign="left" noWrap="1" /> </screen> - <screen name="MessageBoxSimple_summary" position="0,0" size="132,64"> + <screen name="MessageBoxSimpleSummary" position="0,0" size="132,64"> <widget source="parent.Text" render="Label" position="0,0" size="132,52" font="Regular;11" valign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,50" size="120,14" halign="left" noWrap="1" /> </screen> - <screen name="JobView_summary" position="0,0" size="132,64"> + <screen name="JobViewSummary" position="0,0" size="132,64"> <widget source="parent.summary_job_name" render="Label" position="0,4" size="120,42" font="Regular;16" /> <widget source="parent.summary_job_task" render="Label" position="0,22" size="120,26" font="Regular;12" /> <widget source="parent.summary_job_progress" render="Progress" position="0,50" size="60,12" borderWidth="1" zPosition="1" /> @@ -146,7 +146,7 @@ <screen name="CrossEPG_MenuSummary" position="0,0" size="132,64"> <widget source="SetupEntry" render="Label" position="0,0" size="120,20" font="Regular;18" halign="left" noWrap="1" /> </screen> - <screen name="CrossEPG_Downloader_summary" position="0,0" size="132,64"> + <screen name="CrossEPG_DownloaderSummary" position="0,0" size="132,64"> <widget source="parent.Title" render="Label" position="0,0" size="120,20" font="Regular;18" halign="left" noWrap="1" /> </screen> <screen name="AutoBouquetsMaker_MenuSummary" position="0,0" size="132,64"> diff --git a/data/vfd128/skin_display.xml b/data/vfd128/skin_display.xml index 2d44ae3ed72..57048a8f73d 100644 --- a/data/vfd128/skin_display.xml +++ b/data/vfd128/skin_display.xml @@ -159,7 +159,7 @@ </screen> <!-- channelselection--> - <screen name="ChannelSelection_summary" position="0,0" size="128,32"> + <screen name="ChannelSelectionSummary" position="0,0" size="128,32"> <widget source="parent.ServiceEvent" render="Label" position="0,0" size="128,16" font="FdLcD;16" halign="center" valign="bottom" zPosition="1" noWrap="1"> <convert type="ServiceName">Name</convert> </widget> @@ -256,7 +256,7 @@ </screen> <!-- JobView Summary --> - <screen name="JobView_summary" position="0,0" size="128,32"> + <screen name="JobViewSummary" position="0,0" size="128,32"> <widget source="parent.summary_job_name" render="Label" position="0,0" size="128,16" font="FdLcD;16" halign="center" valign="bottom" zPosition="1" noWrap="1" /> <widget source="parent.summary_job_task" render="Label" position="0,13" size="128,14" font="FdLcD;14" halign="center" valign="top" zPosition="1" noWrap="1" /> <widget source="parent.summary_job_progress" render="Progress" position="0,26" size="50,6" borderWidth="1" zPosition="1" /> @@ -265,45 +265,45 @@ </widget> </screen> - <screen name="EventView_summary" position="fill"> + <screen name="EventViewSummary" position="fill"> <widget source="parent.Title" render="Label" position="top" size="*,14" font="FdLcD;16" halign="center" valign="top" zPosition="1" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="fill" size="*,18" font="FdLcD;10" halign="center" valign="top" zPosition="1" /> </screen> - <screen name="EventViewSimple_summary" position="fill"> + <screen name="EventViewSimpleSummary" position="fill"> <widget source="parent.Title" render="Label" position="top" size="*,14" font="FdLcD;16" halign="center" valign="top" zPosition="1" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="fill" size="*,18" font="FdLcD;10" halign="center" valign="top" zPosition="1" /> </screen> <!-- EPG Screens --> - <screen name="EPGSelection_summary" position="0,0" size="128,32"> + <screen name="EPGSelectionSummary" position="0,0" size="128,32"> <panel name="SummaryEpgPanel" /> </screen> - <screen name="EPGSelectionMulti_summary" position="0,0" size="128,32"> + <screen name="EPGSelectionMultiSummary" position="0,0" size="128,32"> <panel name="SummaryEpgPanel" /> </screen> - <screen name="QuickEPG_summary" position="0,0" size="128,32"> + <screen name="QuickEPGSummary" position="0,0" size="128,32"> <panel name="SummaryEpgPanel" /> </screen> - <screen name="GraphicalInfoBarEPG_summary" position="0,0" size="128,32"> + <screen name="GraphicalInfoBarEPGSummary" position="0,0" size="128,32"> <panel name="SummaryEpgPanel" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="128,32"> + <screen name="GraphicalEPGSummary" position="0,0" size="128,32"> <panel name="SummaryEpgPanel" /> </screen> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="128,32"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="128,32"> <panel name="SummaryEpgPanel" /> </screen> - <screen name="ChoiceBox_summary" position="0,0" size="128,32"> + <screen name="ChoiceBoxSummary" position="0,0" size="128,32"> <widget source="parent.summary_list" render="Label" position="0,0" size="128,30" font="FdLcD;11" valign="top" noWrap="1" /> </screen> - <screen name="MessageBox_summary" position="0,0" size="128,32"> + <screen name="MessageBoxSummary" position="0,0" size="128,32"> <widget source="parent.Text" render="Label" position="0,0" size="128,16" font="FdLcD;16" valign="top" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,16" size="128,16" font="FdLcD;14" valign="bottom" halign="center" /> </screen> - <screen name="MessageBoxSimple_summary" position="0,0" size="128,32"> + <screen name="MessageBoxSimpleSummary" position="0,0" size="128,32"> <widget source="parent.Text" render="Label" position="0,0" size="128,16" font="FdLcD;16" valign="top" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,16" size="128,16" font="FdLcD;14" valign="bottom" halign="center" /> </screen> @@ -351,7 +351,7 @@ </panel> </screen> - <screen name="NumberZap_summary" position="0,0" size="128,32"> + <screen name="NumberZapSummary" position="0,0" size="128,32"> <widget source="parent.number_summary" render="Label" position="0,10" size="128,30" font="FdLcD;26" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> @@ -362,16 +362,16 @@ <widget source="entry" render="Label" position="0,16" size="128,16" font="FdLcD;14" halign="left" valign="bottom" noWrap="1" /> <!--<widget source="desc" render="Label" position="0,38" size="128,26" font="FdLcD;12" halign="left" transparent="1" />--> </screen> - <screen name="VIXSwap_summary" position="0,0" size="128,32"> + <screen name="VIXSwapSummary" position="0,0" size="128,32"> <widget source="parent.Title" render="Label" position="0,0" size="160,16" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.swapname_summary" render="Label" position="0,16" size="128,14" font="FdLcD;16" halign="left" noWrap="1" /> <!--<widget source="parent.swapactive_summary" render="Label" position="0,50" size="128,14" font="FdLcD;12" halign="left" transparent="1" />--> </screen> - <screen name="UpdatePlugin_summary" position="0,0" size="128,32"> + <screen name="UpdatePluginSummary" position="0,0" size="128,32"> <widget source="parent.Title" render="Label" position="0,0" size="128,16" font="FdLcD;16" halign="center" valign="top" noWrap="1" /> <widget source="parent.package" render="Label" position="0,16" size="128,16" font="FdLcD;14" halign="center" valign="bottom" noWrap="1" /> </screen> - <screen name="SoftwareUpdateChanges_summary" position="fill"> + <screen name="SoftwareUpdateChangesSummary" position="fill"> <!--<widget source="parent.title_summary" render="Label" position="top" size="*,14" font="FdLcD;16" halign="left" valign="top" noWrap="1" />--> <widget source="parent.text_summary" render="Label" position="fill" size="*,18" font="FdLcD;10" halign="left" valign="top" /> </screen> @@ -391,33 +391,33 @@ <!--<widget source="SetupValue" render="Label" position="0,50" size="128,14" font="FdLcD;12" halign="left" transparent="1" />--> <!-- <panel name="SummaryTunerStatusPanel" /> --> </screen> - <screen name="CrossEPG_Rytec_Update_summary" position="0,0" size="128,32"> + <screen name="CrossEPG_Rytec_UpdateSummary" position="0,0" size="128,32"> <widget source="parent.Title" render="Label" position="0,0" size="160,16" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,16" size="128,16" font="FdLcD;14" halign="left" noWrap="1" /> <!-- <panel name="SummaryTunerStatusPanel" /> --> </screen> - <screen name="CrossEPG_Xepgdb_Update_summary" position="0,0" size="128,32"> + <screen name="CrossEPG_Xepgdb_UpdateSummary" position="0,0" size="128,32"> <widget source="parent.Title" render="Label" position="0,0" size="160,16" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,16" size="128,16" font="FdLcD;14" halign="left" noWrap="1" /> <!-- <panel name="SummaryTunerStatusPanel" /> --> </screen> - <screen name="CrossEPG_Converter_summary" position="0,0" size="128,32"> + <screen name="CrossEPG_ConverterSummary" position="0,0" size="128,32"> <widget source="parent.Title" render="Label" position="0,0" size="160,16" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,16" size="128,16" font="FdLcD;14" halign="left" noWrap="1" /> <!-- <panel name="SummaryTunerStatusPanel" /> --> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Importer_summary" position="0,0" size="128,32"> + <screen name="CrossEPG_ImporterSummary" position="0,0" size="128,32"> <widget source="parent.Title" render="Label" position="0,0" size="160,16" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,16" size="128,16" font="FdLcD;14" halign="left" noWrap="1" /> <!-- <panel name="SummaryTunerStatusPanel" /> --> </screen> - <screen name="CrossEPG_Loader_summary" position="0,0" size="128,32"> + <screen name="CrossEPG_LoaderSummary" position="0,0" size="128,32"> <widget source="parent.Title" render="Label" position="0,0" size="160,16" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,16" size="128,16" font="FdLcD;14" halign="left" noWrap="1" /> <!-- <panel name="SummaryTunerStatusPanel" /> --> </screen> - <screen name="CrossEPG_Downloader_summary" position="0,0" size="128,32"> + <screen name="CrossEPG_DownloaderSummary" position="0,0" size="128,32"> <widget source="parent.Title" render="Label" position="0,0" size="160,16" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,16" size="128,16" font="FdLcD;14" halign="left" noWrap="1" /> <!--<widget source="parent.summary_status" render="Label" position="0,41" size="128,18" font="FdLcD;16" halign="left" noWrap="1" />--> diff --git a/data/vfd140/skin_display.xml b/data/vfd140/skin_display.xml index 53e2ae9a8f8..58aa84cac1d 100644 --- a/data/vfd140/skin_display.xml +++ b/data/vfd140/skin_display.xml @@ -159,7 +159,7 @@ </screen> <!-- channelselection--> - <screen name="ChannelSelection_summary" position="0,0" size="140,32"> + <screen name="ChannelSelectionSummary" position="0,0" size="140,32"> <widget source="parent.ServiceEvent" render="Label" position="0,0" size="140,16" font="FdLcD;16" halign="center" valign="bottom" zPosition="1" noWrap="1"> <convert type="ServiceName">Name</convert> </widget> @@ -256,7 +256,7 @@ </screen> <!-- JobView Summary --> - <screen name="JobView_summary" position="0,0" size="140,32"> + <screen name="JobViewSummary" position="0,0" size="140,32"> <widget source="parent.summary_job_name" render="Label" position="0,0" size="140,16" font="FdLcD;16" halign="center" valign="bottom" zPosition="1" noWrap="1" /> <widget source="parent.summary_job_task" render="Label" position="0,13" size="140,14" font="FdLcD;14" halign="center" valign="top" zPosition="1" noWrap="1" /> <widget source="parent.summary_job_progress" render="Progress" position="0,26" size="60,6" borderWidth="1" zPosition="1" /> @@ -265,45 +265,45 @@ </widget> </screen> - <screen name="EventView_summary" position="fill"> + <screen name="EventViewSummary" position="fill"> <widget source="parent.Title" render="Label" position="top" size="*,14" font="FdLcD;16" halign="center" valign="top" zPosition="1" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="fill" size="*,18" font="FdLcD;10" halign="center" valign="top" zPosition="1" /> </screen> - <screen name="EventViewSimple_summary" position="fill"> + <screen name="EventViewSimpleSummary" position="fill"> <widget source="parent.Title" render="Label" position="top" size="*,14" font="FdLcD;16" halign="center" valign="top" zPosition="1" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="fill" size="*,18" font="FdLcD;10" halign="center" valign="top" zPosition="1" /> </screen> <!-- EPG Screens --> - <screen name="EPGSelection_summary" position="0,0" size="140,32"> + <screen name="EPGSelectionSummary" position="0,0" size="140,32"> <panel name="SummaryEpgPanel" /> </screen> - <screen name="EPGSelectionMulti_summary" position="0,0" size="140,32"> + <screen name="EPGSelectionMultiSummary" position="0,0" size="140,32"> <panel name="SummaryEpgPanel" /> </screen> - <screen name="QuickEPG_summary" position="0,0" size="140,32"> + <screen name="QuickEPGSummary" position="0,0" size="140,32"> <panel name="SummaryEpgPanel" /> </screen> - <screen name="GraphicalInfoBarEPG_summary" position="0,0" size="140,32"> + <screen name="GraphicalInfoBarEPGSummary" position="0,0" size="140,32"> <panel name="SummaryEpgPanel" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="140,32"> + <screen name="GraphicalEPGSummary" position="0,0" size="140,32"> <panel name="SummaryEpgPanel" /> </screen> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="140,32"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="140,32"> <panel name="SummaryEpgPanel" /> </screen> - <screen name="ChoiceBox_summary" position="0,0" size="140,32"> + <screen name="ChoiceBoxSummary" position="0,0" size="140,32"> <widget source="parent.summary_list" render="Label" position="0,0" size="140,30" font="FdLcD;11" valign="top" noWrap="1" /> </screen> - <screen name="MessageBox_summary" position="0,0" size="140,32"> + <screen name="MessageBoxSummary" position="0,0" size="140,32"> <widget source="parent.Text" render="Label" position="0,0" size="140,16" font="FdLcD;16" valign="top" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,16" size="140,16" font="FdLcD;14" valign="bottom" halign="center" /> </screen> - <screen name="MessageBoxSimple_summary" position="0,0" size="140,32"> + <screen name="MessageBoxSimpleSummary" position="0,0" size="140,32"> <widget source="parent.Text" render="Label" position="0,0" size="140,16" font="FdLcD;16" valign="top" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,16" size="140,16" font="FdLcD;14" valign="bottom" halign="center" /> </screen> @@ -351,7 +351,7 @@ </panel> </screen> - <screen name="NumberZap_summary" position="0,0" size="140,32"> + <screen name="NumberZapSummary" position="0,0" size="140,32"> <widget source="parent.number_summary" render="Label" position="0,10" size="140,30" font="FdLcD;26" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> @@ -362,16 +362,16 @@ <widget source="entry" render="Label" position="0,16" size="140,16" font="FdLcD;14" halign="left" valign="bottom" noWrap="1" /> <!--<widget source="desc" render="Label" position="0,38" size="140,26" font="FdLcD;12" halign="left" transparent="1" />--> </screen> - <screen name="VIXSwap_summary" position="0,0" size="140,32"> + <screen name="VIXSwapSummary" position="0,0" size="140,32"> <widget source="parent.Title" render="Label" position="0,0" size="160,16" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.swapname_summary" render="Label" position="0,16" size="140,14" font="FdLcD;16" halign="left" noWrap="1" /> <!--<widget source="parent.swapactive_summary" render="Label" position="0,50" size="140,14" font="FdLcD;12" halign="left" transparent="1" />--> </screen> - <screen name="UpdatePlugin_summary" position="0,0" size="140,32"> + <screen name="UpdatePluginSummary" position="0,0" size="140,32"> <widget source="parent.Title" render="Label" position="0,0" size="140,16" font="FdLcD;16" halign="center" valign="top" noWrap="1" /> <widget source="parent.package" render="Label" position="0,16" size="140,16" font="FdLcD;14" halign="center" valign="bottom" noWrap="1" /> </screen> - <screen name="SoftwareUpdateChanges_summary" position="fill"> + <screen name="SoftwareUpdateChangesSummary" position="fill"> <!--<widget source="parent.title_summary" render="Label" position="top" size="*,14" font="FdLcD;16" halign="left" valign="top" noWrap="1" />--> <widget source="parent.text_summary" render="Label" position="fill" size="*,18" font="FdLcD;10" halign="left" valign="top" /> </screen> @@ -391,33 +391,33 @@ <!--<widget source="SetupValue" render="Label" position="0,50" size="140,14" font="FdLcD;12" halign="left" transparent="1" />--> <!-- <panel name="SummaryTunerStatusPanel" /> --> </screen> - <screen name="CrossEPG_Rytec_Update_summary" position="0,0" size="140,32"> + <screen name="CrossEPG_Rytec_UpdateSummary" position="0,0" size="140,32"> <widget source="parent.Title" render="Label" position="0,0" size="160,16" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,16" size="140,16" font="FdLcD;14" halign="left" noWrap="1" /> <!-- <panel name="SummaryTunerStatusPanel" /> --> </screen> - <screen name="CrossEPG_Xepgdb_Update_summary" position="0,0" size="140,32"> + <screen name="CrossEPG_Xepgdb_UpdateSummary" position="0,0" size="140,32"> <widget source="parent.Title" render="Label" position="0,0" size="160,16" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,16" size="140,16" font="FdLcD;14" halign="left" noWrap="1" /> <!-- <panel name="SummaryTunerStatusPanel" /> --> </screen> - <screen name="CrossEPG_Converter_summary" position="0,0" size="140,32"> + <screen name="CrossEPG_ConverterSummary" position="0,0" size="140,32"> <widget source="parent.Title" render="Label" position="0,0" size="160,16" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,16" size="140,16" font="FdLcD;14" halign="left" noWrap="1" /> <!-- <panel name="SummaryTunerStatusPanel" /> --> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Importer_summary" position="0,0" size="140,32"> + <screen name="CrossEPG_ImporterSummary" position="0,0" size="140,32"> <widget source="parent.Title" render="Label" position="0,0" size="160,16" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,16" size="140,16" font="FdLcD;14" halign="left" noWrap="1" /> <!-- <panel name="SummaryTunerStatusPanel" /> --> </screen> - <screen name="CrossEPG_Loader_summary" position="0,0" size="140,32"> + <screen name="CrossEPG_LoaderSummary" position="0,0" size="140,32"> <widget source="parent.Title" render="Label" position="0,0" size="160,16" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,16" size="140,16" font="FdLcD;14" halign="left" noWrap="1" /> <!-- <panel name="SummaryTunerStatusPanel" /> --> </screen> - <screen name="CrossEPG_Downloader_summary" position="0,0" size="140,32"> + <screen name="CrossEPG_DownloaderSummary" position="0,0" size="140,32"> <widget source="parent.Title" render="Label" position="0,0" size="160,16" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,16" size="140,16" font="FdLcD;14" halign="left" noWrap="1" /> <!--<widget source="parent.summary_status" render="Label" position="0,41" size="140,18" font="FdLcD;16" halign="left" noWrap="1" />--> diff --git a/data/vfd255/skin_display.xml b/data/vfd255/skin_display.xml index 3faf0b20366..844ccfdf828 100644 --- a/data/vfd255/skin_display.xml +++ b/data/vfd255/skin_display.xml @@ -178,7 +178,7 @@ </screen> <!-- channelselection--> - <screen name="ChannelSelection_summary" position="0,0" size="255,64"> + <screen name="ChannelSelectionSummary" position="0,0" size="255,64"> <widget source="parent.ServiceEvent" render="Label" position="0,0" size="170,22" font="FdLcD;18" halign="left" noWrap="1"> <convert type="ServiceName">Name</convert> </widget> @@ -269,7 +269,7 @@ </screen> <!-- JobView Summary --> - <screen name="JobView_summary" position="0,0" size="255,64"> + <screen name="JobViewSummary" position="0,0" size="255,64"> <widget source="parent.summary_job_name" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.summary_job_task" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.summary_job_progress" render="Progress" position="6,50" size="60,12" borderWidth="1" zPosition="1" /> @@ -280,51 +280,51 @@ <panel name="SummaryClockPanel" /> </screen> - <screen name="EventView_summary" position="0,0" size="255,64"> + <screen name="EventViewSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;17" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="255,44" font="FdLcD;13" /> </screen> - <screen name="EventViewSimple_summary" position="0,0" size="255,64"> + <screen name="EventViewSimpleSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;17" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="255,44" font="FdLcD;13" /> </screen> <!-- EPG Screens --> - <screen name="EPGSelection_summary" position="0,0" size="255,64"> + <screen name="EPGSelectionSummary" position="0,0" size="255,64"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="QuickEPG_summary" position="0,0" size="255,64"> + <screen name="QuickEPGSummary" position="0,0" size="255,64"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="255,64"> + <screen name="GraphicalEPGSummary" position="0,0" size="255,64"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="255,64"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="255,64"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="ChoiceBox_summary" position="0,0" size="255,64"> + <screen name="ChoiceBoxSummary" position="0,0" size="255,64"> <widget source="parent.summary_list" render="Label" position="0,0" size="255,64" font="FdLcD;11" noWrap="1" /> </screen> - <screen name="MessageBox_summary" position="0,0" size="255,64"> + <screen name="MessageBoxSummary" position="0,0" size="255,64"> <widget source="parent.Text" render="Label" position="0,0" size="255,64" font="FdLcD;12" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,50" size="255,14" font="FdLcD;12" halign="center" noWrap="1" /> </screen> - <screen name="MessageBoxSimple_summary" position="0,0" size="255,64"> + <screen name="MessageBoxSimpleSummary" position="0,0" size="255,64"> <widget source="parent.Text" render="Label" position="0,0" size="255,64" font="FdLcD;12" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,50" size="255,14" font="FdLcD;12" halign="center" noWrap="1" /> </screen> @@ -376,7 +376,7 @@ </panel> </screen> - <screen name="NumberZap_summary" position="0,0" size="255,64"> + <screen name="NumberZapSummary" position="0,0" size="255,64"> <widget source="parent.channel_summary" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.number_summary" render="Label" position="0,21" size="255,30" font="FdLcD;26" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> @@ -390,21 +390,21 @@ <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="VIXSwap_summary" position="0,0" size="255,64"> + <screen name="VIXSwapSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.swapname_summary" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.swapactive_summary" render="Label" position="0,50" size="255,14" font="FdLcD;12" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="UpdatePlugin_summary" position="0,0" size="255,64"> + <screen name="UpdatePluginSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.package" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.status" render="Label" position="0,50" size="255,14" font="FdLcD;12" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="SoftwareUpdateChanges_summary" position="0,0" size="255,64"> + <screen name="SoftwareUpdateChangesSummary" position="0,0" size="255,64"> <widget source="parent.title_summary" render="Label" position="0,0" size="160,15" font="FdLcD;15" halign="left" noWrap="1" /> <widget source="parent.text_summary" render="Label" position="0,16" size="255,54" font="FdLcD;12" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> @@ -432,42 +432,42 @@ <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Rytec_Update_summary" position="0,0" size="255,64"> + <screen name="CrossEPG_Rytec_UpdateSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Xepgdb_Update_summary" position="0,0" size="255,64"> + <screen name="CrossEPG_Xepgdb_UpdateSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Converter_summary" position="0,0" size="255,64"> + <screen name="CrossEPG_ConverterSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Importer_summary" position="0,0" size="255,64"> + <screen name="CrossEPG_ImporterSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Loader_summary" position="0,0" size="255,64"> + <screen name="CrossEPG_LoaderSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Downloader_summary" position="0,0" size="255,64"> + <screen name="CrossEPG_DownloaderSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.summary_status" render="Label" position="0,41" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> diff --git a/data/vfd255/skin_display_picon.xml b/data/vfd255/skin_display_picon.xml index dac632751eb..2125eb4d232 100644 --- a/data/vfd255/skin_display_picon.xml +++ b/data/vfd255/skin_display_picon.xml @@ -184,7 +184,7 @@ </screen> <!-- channelselection--> - <screen name="ChannelSelection_summary" position="0,0" size="255,64"> + <screen name="ChannelSelectionSummary" position="0,0" size="255,64"> <widget source="parent.ServiceEvent" render="Label" position="0,0" size="170,22" font="FdLcD;18" halign="left" noWrap="1"> <convert type="ServiceName">Name</convert> </widget> @@ -281,7 +281,7 @@ </screen> <!-- JobView Summary --> - <screen name="JobView_summary" position="0,0" size="255,64"> + <screen name="JobViewSummary" position="0,0" size="255,64"> <widget source="parent.summary_job_name" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.summary_job_task" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.summary_job_progress" render="Progress" position="6,50" size="60,12" borderWidth="1" zPosition="1" /> @@ -292,51 +292,51 @@ <panel name="SummaryClockPanel" /> </screen> - <screen name="EventView_summary" position="0,0" size="255,64"> + <screen name="EventViewSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;17" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="255,44" font="FdLcD;13" /> </screen> - <screen name="EventViewSimple_summary" position="0,0" size="255,64"> + <screen name="EventViewSimpleSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;17" halign="left" noWrap="1" /> <widget source="parent.summary_description" render="Label" position="0,22" size="255,44" font="FdLcD;13" /> </screen> <!-- EPG Screens --> - <screen name="EPGSelection_summary" position="0,0" size="255,64"> + <screen name="EPGSelectionSummary" position="0,0" size="255,64"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="QuickEPG_summary" position="0,0" size="255,64"> + <screen name="QuickEPGSummary" position="0,0" size="255,64"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="GraphicalEPG_summary" position="0,0" size="255,64"> + <screen name="GraphicalEPGSummary" position="0,0" size="255,64"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="GraphicalEPGPIG_summary" position="0,0" size="255,64"> + <screen name="GraphicalEPGPIGSummary" position="0,0" size="255,64"> <panel name="SummaryEpgPanel" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="ChoiceBox_summary" position="0,0" size="255,64"> + <screen name="ChoiceBoxSummary" position="0,0" size="255,64"> <widget source="parent.summary_list" render="Label" position="0,0" size="255,64" font="FdLcD;11" noWrap="1" /> </screen> - <screen name="MessageBox_summary" position="0,0" size="255,64"> + <screen name="MessageBoxSummary" position="0,0" size="255,64"> <widget source="parent.Text" render="Label" position="0,0" size="255,64" font="FdLcD;12" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,50" size="255,14" font="FdLcD;12" halign="center" noWrap="1" /> </screen> - <screen name="MessageBoxSimple_summary" position="0,0" size="255,64"> + <screen name="MessageBoxSimpleSummary" position="0,0" size="255,64"> <widget source="parent.Text" render="Label" position="0,0" size="255,64" font="FdLcD;12" halign="center" /> <widget source="parent.selectedChoice" render="Label" position="0,50" size="255,14" font="FdLcD;12" halign="center" noWrap="1" /> </screen> @@ -388,7 +388,7 @@ </panel> </screen> - <screen name="NumberZap_summary" position="0,0" size="255,64"> + <screen name="NumberZapSummary" position="0,0" size="255,64"> <widget source="parent.channel_summary" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.number_summary" render="Label" position="0,21" size="255,30" font="FdLcD;26" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> @@ -402,21 +402,21 @@ <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="VIXSwap_summary" position="0,0" size="255,64"> + <screen name="VIXSwapSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.swapname_summary" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.swapactive_summary" render="Label" position="0,50" size="255,14" font="FdLcD;12" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="UpdatePlugin_summary" position="0,0" size="255,64"> + <screen name="UpdatePluginSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.package" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.status" render="Label" position="0,50" size="255,14" font="FdLcD;12" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="SoftwareUpdateChanges_summary" position="0,0" size="255,64"> + <screen name="SoftwareUpdateChangesSummary" position="0,0" size="255,64"> <widget source="parent.title_summary" render="Label" position="0,0" size="160,15" font="FdLcD;15" halign="left" noWrap="1" /> <widget source="parent.text_summary" render="Label" position="0,16" size="255,54" font="FdLcD;12" halign="left" transparent="1" /> <panel name="SummaryIconsPanel" /> @@ -444,42 +444,42 @@ <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Rytec_Update_summary" position="0,0" size="255,64"> + <screen name="CrossEPG_Rytec_UpdateSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Xepgdb_Update_summary" position="0,0" size="255,64"> + <screen name="CrossEPG_Xepgdb_UpdateSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Converter_summary" position="0,0" size="255,64"> + <screen name="CrossEPG_ConverterSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Importer_summary" position="0,0" size="255,64"> + <screen name="CrossEPG_ImporterSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Loader_summary" position="0,0" size="255,64"> + <screen name="CrossEPG_LoaderSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> <panel name="SummaryClockPanel" /> </screen> - <screen name="CrossEPG_Downloader_summary" position="0,0" size="255,64"> + <screen name="CrossEPG_DownloaderSummary" position="0,0" size="255,64"> <widget source="parent.Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <widget source="parent.summary_action" render="Label" position="0,21" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> <widget source="parent.summary_status" render="Label" position="0,41" size="255,18" font="FdLcD;16" halign="left" noWrap="1" /> diff --git a/lib/python/Screens/Screen.py b/lib/python/Screens/Screen.py index 3ecc7ae2e04..e13724d8f92 100644 --- a/lib/python/Screens/Screen.py +++ b/lib/python/Screens/Screen.py @@ -334,7 +334,6 @@ def __init__(self, session, parent): if not isinstance(names, list): names = [names] self.skinName = [f"{x}Summary" for x in names] - self.skinName += [f"{x}_summary" for x in names] # Used by some screens in /enigma2/data/display and enigma2-display-skins repo. className = self.__class__.__name__ if className != "ScreenSummary" and className not in self.skinName: # e.g. if a module uses Screens.Setup.SetupSummary the skin needs to be available directly self.skinName.append(className) From 245cf901f2b3fa54cb3761839bc2298da636dac4 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Wed, 3 Jul 2024 15:48:30 +0200 Subject: [PATCH 48/62] [displayskins] change SimpleSummary -> ScreenSummary As used by PLi and ATV --- data/7segment/skin_display.xml | 2 +- data/display128/skin_display.xml | 2 +- data/display220/skin_display.xml | 2 +- data/display220/skin_display_picon.xml | 2 +- data/display390/skin_display.xml | 2 +- data/display390/skin_display_picon.xml | 2 +- data/display400/skin_display.xml | 2 +- data/display400/skin_display_picon.xml | 2 +- data/display480/skin_display.xml | 2 +- data/display480/skin_display_picon.xml | 2 +- data/display720/skin_display_templates.xml | 2 +- data/display800/skin_display_templates.xml | 2 +- data/display96/skin_display.xml | 2 +- data/displaytext/skin_display.xml | 2 +- data/vfd128/skin_display.xml | 2 +- data/vfd140/skin_display.xml | 2 +- data/vfd255/skin_display.xml | 2 +- data/vfd255/skin_display_picon.xml | 2 +- lib/python/Screens/Screen.py | 1 - 19 files changed, 18 insertions(+), 19 deletions(-) diff --git a/data/7segment/skin_display.xml b/data/7segment/skin_display.xml index 625f8ab65ba..f73f35a5fd6 100644 --- a/data/7segment/skin_display.xml +++ b/data/7segment/skin_display.xml @@ -70,7 +70,7 @@ <panel name="MyClockPanel" /> <panel name="MyRecPanel" /> </screen> - <screen name="SimpleSummary" position="0,0" size="1,1"> + <screen name="ScreenSummary" position="0,0" size="1,1"> <panel name="MyClockPanel" /> <panel name="MyRecPanel" /> </screen> diff --git a/data/display128/skin_display.xml b/data/display128/skin_display.xml index 413cce09e02..520a672c40f 100644 --- a/data/display128/skin_display.xml +++ b/data/display128/skin_display.xml @@ -143,7 +143,7 @@ </screen> <!-- misc--> - <screen name="SimpleSummary" position="fill"> + <screen name="ScreenSummary" position="fill"> <widget source="Title" render="Label" position="top" size="*,141" font="FdLcD;25" halign="center" valign="center" /> <panel position="bottom" size="*,24" name="SummaryClockPanel" /> </screen> diff --git a/data/display220/skin_display.xml b/data/display220/skin_display.xml index 94c74ef3a36..31760c528d5 100644 --- a/data/display220/skin_display.xml +++ b/data/display220/skin_display.xml @@ -217,7 +217,7 @@ <!-- misc--> - <screen name="SimpleSummary" position="0,0" size="220,176"> + <screen name="ScreenSummary" position="0,0" size="220,176"> <widget source="Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> diff --git a/data/display220/skin_display_picon.xml b/data/display220/skin_display_picon.xml index ee83a06cc3c..1090ff4e58a 100644 --- a/data/display220/skin_display_picon.xml +++ b/data/display220/skin_display_picon.xml @@ -175,7 +175,7 @@ <!-- misc--> - <screen name="SimpleSummary" position="0,0" size="220,176"> + <screen name="ScreenSummary" position="0,0" size="220,176"> <widget source="parent.Title" render="Label" position="0,38" size="220,26" font="FdLcD;24" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> diff --git a/data/display390/skin_display.xml b/data/display390/skin_display.xml index ff123735775..fecf143fee7 100644 --- a/data/display390/skin_display.xml +++ b/data/display390/skin_display.xml @@ -229,7 +229,7 @@ </screen> <!-- misc--> - <screen name="SimpleSummary" position="0,0" size="400,240"> + <screen name="ScreenSummary" position="0,0" size="400,240"> <widget source="Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> diff --git a/data/display390/skin_display_picon.xml b/data/display390/skin_display_picon.xml index 8699371478c..d6c9430fd13 100644 --- a/data/display390/skin_display_picon.xml +++ b/data/display390/skin_display_picon.xml @@ -211,7 +211,7 @@ </screen> <!-- misc--> - <screen name="SimpleSummary" position="0,0" size="400,240"> + <screen name="ScreenSummary" position="0,0" size="400,240"> <widget source="Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> diff --git a/data/display400/skin_display.xml b/data/display400/skin_display.xml index 76f0d89a332..d5207a3372f 100644 --- a/data/display400/skin_display.xml +++ b/data/display400/skin_display.xml @@ -229,7 +229,7 @@ </screen> <!-- misc--> - <screen name="SimpleSummary" position="0,0" size="400,240"> + <screen name="ScreenSummary" position="0,0" size="400,240"> <widget source="Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> diff --git a/data/display400/skin_display_picon.xml b/data/display400/skin_display_picon.xml index 8699371478c..d6c9430fd13 100644 --- a/data/display400/skin_display_picon.xml +++ b/data/display400/skin_display_picon.xml @@ -211,7 +211,7 @@ </screen> <!-- misc--> - <screen name="SimpleSummary" position="0,0" size="400,240"> + <screen name="ScreenSummary" position="0,0" size="400,240"> <widget source="Title" render="Label" position="0,38" size="400,26" font="FdLcD;24" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> diff --git a/data/display480/skin_display.xml b/data/display480/skin_display.xml index a2a6f8b1203..1777f51206d 100644 --- a/data/display480/skin_display.xml +++ b/data/display480/skin_display.xml @@ -384,7 +384,7 @@ </screen> <!-- misc--> - <screen name="SimpleSummary" position="fill"> + <screen name="ScreenSummary" position="fill"> <widget source="Title" render="Label" position="top" size="*,100" font="FdLcD;40" halign="center" valign="center" /> <panel position="bottom" size="*,24" name="SummaryClockPanel" /> </screen> diff --git a/data/display480/skin_display_picon.xml b/data/display480/skin_display_picon.xml index ae0a76ad770..dd8b50fc13d 100644 --- a/data/display480/skin_display_picon.xml +++ b/data/display480/skin_display_picon.xml @@ -252,7 +252,7 @@ <widget source="autostartstatus_summary" render="Label" position="0,190" size="400,50" font="FdLcD;30" halign="center" valign="center" transparent="1" /> </screen> <!-- misc--> - <screen name="SimpleSummary" position="0,0" size="480,320"> + <screen name="ScreenSummary" position="0,0" size="480,320"> <widget source="Title" render="Label" position="0,0" size="400,178" font="FdLcD;38" foregroundColor="#87CEFA" halign="center" valign="center" /> <panel name="SummaryClockPanel" /> </screen> diff --git a/data/display720/skin_display_templates.xml b/data/display720/skin_display_templates.xml index ac7b8e2e1d8..999bb9f991f 100644 --- a/data/display720/skin_display_templates.xml +++ b/data/display720/skin_display_templates.xml @@ -472,7 +472,7 @@ <!-- misc--> - <screen name="SimpleSummary" position="0,0" size="720,576"> + <screen name="ScreenSummary" position="0,0" size="720,576"> <widget source="Title" render="Label" position="20,190" size="670,200" font="FdLcD;60" halign="center" valign="top" /> <panel name="LCDTime" /> </screen> diff --git a/data/display800/skin_display_templates.xml b/data/display800/skin_display_templates.xml index c5f38528edc..76b6aada5c0 100644 --- a/data/display800/skin_display_templates.xml +++ b/data/display800/skin_display_templates.xml @@ -394,7 +394,7 @@ </screen> <!-- misc --> - <screen name="SimpleSummary" position="0,0" size="800,480"> + <screen name="ScreenSummary" position="0,0" size="800,480"> <widget source="Title" render="Label" position="40,190" size="720,200" font="FdLcD;60" halign="center" valign="top" /> </screen> diff --git a/data/display96/skin_display.xml b/data/display96/skin_display.xml index b6b698488a0..0ec105f6ee2 100644 --- a/data/display96/skin_display.xml +++ b/data/display96/skin_display.xml @@ -163,7 +163,7 @@ </screen> <!-- misc--> - <screen name="SimpleSummary" position="0,0" size="96,64"> + <screen name="ScreenSummary" position="0,0" size="96,64"> <widget source="Title" render="Label" position="0,0" size="96,40" font="FdLcD;16" halign="center" valign="center" /> <widget source="session.RecordState" render="FixedLabel" text="Rec" position="0,52" size="24,12" font="FdLcD;12" zPosition="1" noWrap="1" foregroundColor="fullred"> <convert type="ConditionalShowHide"></convert> diff --git a/data/displaytext/skin_display.xml b/data/displaytext/skin_display.xml index 4e4ca47598a..56c137f957f 100644 --- a/data/displaytext/skin_display.xml +++ b/data/displaytext/skin_display.xml @@ -87,7 +87,7 @@ </screen> <!-- misc--> - <screen name="SimpleSummary" position="0,0" size="132,64"> + <screen name="ScreenSummary" position="0,0" size="132,64"> <widget source="Title" render="Label" position="0,0" size="124,40" font="Regular;16" valign="center" /> </screen> <screen name="VIXMenuSummary" position="0,0" size="132,64"> diff --git a/data/vfd128/skin_display.xml b/data/vfd128/skin_display.xml index 57048a8f73d..38168775f35 100644 --- a/data/vfd128/skin_display.xml +++ b/data/vfd128/skin_display.xml @@ -192,7 +192,7 @@ <!-- misc--> - <screen name="SimpleSummary" position="0,0" size="128,32"> + <screen name="ScreenSummary" position="0,0" size="128,32"> <widget source="Title" render="Label" position="0,10" size="128,16" font="FdLcD;16" halign="center" valign="bottom" zPosition="1" noWrap="1" /> </screen> diff --git a/data/vfd140/skin_display.xml b/data/vfd140/skin_display.xml index 58aa84cac1d..a11c1c0e5ed 100644 --- a/data/vfd140/skin_display.xml +++ b/data/vfd140/skin_display.xml @@ -192,7 +192,7 @@ <!-- misc--> - <screen name="SimpleSummary" position="0,0" size="140,32"> + <screen name="ScreenSummary" position="0,0" size="140,32"> <widget source="Title" render="Label" position="0,10" size="140,16" font="FdLcD;16" halign="center" valign="bottom" zPosition="1" noWrap="1" /> </screen> diff --git a/data/vfd255/skin_display.xml b/data/vfd255/skin_display.xml index 844ccfdf828..e2b99e562a1 100644 --- a/data/vfd255/skin_display.xml +++ b/data/vfd255/skin_display.xml @@ -219,7 +219,7 @@ <!-- misc--> - <screen name="SimpleSummary" position="0,0" size="255,64"> + <screen name="ScreenSummary" position="0,0" size="255,64"> <widget source="Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> diff --git a/data/vfd255/skin_display_picon.xml b/data/vfd255/skin_display_picon.xml index 2125eb4d232..7a1f387f6a3 100644 --- a/data/vfd255/skin_display_picon.xml +++ b/data/vfd255/skin_display_picon.xml @@ -228,7 +228,7 @@ <!-- misc--> - <screen name="SimpleSummary" position="0,0" size="255,64"> + <screen name="ScreenSummary" position="0,0" size="255,64"> <widget source="Title" render="Label" position="0,0" size="160,22" font="FdLcD;18" halign="left" noWrap="1" /> <panel name="SummaryIconsPanel" /> <panel name="SummaryTunerStatusPanel" /> diff --git a/lib/python/Screens/Screen.py b/lib/python/Screens/Screen.py index e13724d8f92..d799875c782 100644 --- a/lib/python/Screens/Screen.py +++ b/lib/python/Screens/Screen.py @@ -337,6 +337,5 @@ def __init__(self, session, parent): className = self.__class__.__name__ if className != "ScreenSummary" and className not in self.skinName: # e.g. if a module uses Screens.Setup.SetupSummary the skin needs to be available directly self.skinName.append(className) - self.skinName.append("SimpleSummary") self.skinName.append("ScreenSummary") self.skin = parent.__dict__.get("skinSummary", self.skin) # If parent has a "skinSummary" defined, use that as default. From 5fb78e11f6d4cc5c1c6f2391e738fe8c68211be5 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Wed, 3 Jul 2024 15:15:48 +0000 Subject: [PATCH 49/62] openvix: developer 6.6.004.004 --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index e417ae9c44d..f0576183d4c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1280,3 +1280,4 @@ openvix: developer 6.6.003.002 openvix: developer 6.6.004.001 openvix: developer 6.6.004.002 openvix: developer 6.6.004.003 +openvix: developer 6.6.004.004 From 56c99cfce9d11f3cbf8941e2b2215e0a26f690e3 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Thu, 4 Jul 2024 01:30:58 +0200 Subject: [PATCH 50/62] [MenuSummary] remove needless code --- lib/python/Screens/Menu.py | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/lib/python/Screens/Menu.py b/lib/python/Screens/Menu.py index 2549ce81629..c6efc3876b5 100644 --- a/lib/python/Screens/Menu.py +++ b/lib/python/Screens/Menu.py @@ -14,7 +14,7 @@ from Screens.HelpMenu import HelpableScreen from Screens.MessageBox import MessageBox from Screens.ParentalControlSetup import ProtectedScreen -from Screens.Screen import Screen, ScreenSummary +from Screens.Screen import Screen from Tools.BoundFunction import boundFunction from Tools.Directories import resolveFilename, SCOPE_SKINS, SCOPE_CURRENT_SKIN @@ -44,11 +44,6 @@ def MenuEntryPixmap(key, png_cache): return png -class MenuSummary(ScreenSummary): - def __init__(self, session, parent): - ScreenSummary.__init__(self, session, parent=parent) - - class Menu(Screen, HelpableScreen, ProtectedScreen): ALLOW_SUSPEND = True png_cache = {} @@ -351,9 +346,6 @@ def closeRecursive(self): self.resetNumberKey() self.close(True) - def createSummary(self): - return MenuSummary - def isProtected(self): if config.ParentalControl.setuppinactive.value: if config.ParentalControl.config_sections.main_menu.value and not (hasattr(self.session, 'infobar') and self.session.infobar is None): From 6f56651f122d3cd185a738d1e12b566def17be53 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Thu, 4 Jul 2024 01:32:34 +0200 Subject: [PATCH 51/62] [display] tweak MessageBoxSimple --- data/display480/skin_display.xml | 2 +- data/display720/skin_display_templates.xml | 2 +- data/display800/skin_display_templates.xml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/data/display480/skin_display.xml b/data/display480/skin_display.xml index 1777f51206d..493f94cbd22 100644 --- a/data/display480/skin_display.xml +++ b/data/display480/skin_display.xml @@ -326,7 +326,7 @@ <widget source="parent.selectedChoice" render="Label" position="0,220" size="400,70" font="FdLcD;40" halign="center" valign="center" noWrap="1" /> </screen> <screen name="MessageBoxSimpleSummary" position="0,0" size="480,320"> - <panel name="MessageBox_summary" /> + <panel name="MessageBoxSummary" /> </screen> <!-- standby --> diff --git a/data/display720/skin_display_templates.xml b/data/display720/skin_display_templates.xml index 999bb9f991f..c9b4cf32bc0 100644 --- a/data/display720/skin_display_templates.xml +++ b/data/display720/skin_display_templates.xml @@ -398,7 +398,7 @@ <panel name="LCDTime" /> </screen> <screen name="MessageBoxSimpleSummary" position="0,0" size="720,576"> - <panel name="MessageBox_summary" /> + <panel name="MessageBoxSummary" /> </screen> <!-- MOVIE SELECTION--> diff --git a/data/display800/skin_display_templates.xml b/data/display800/skin_display_templates.xml index 76b6aada5c0..d8449f284cc 100644 --- a/data/display800/skin_display_templates.xml +++ b/data/display800/skin_display_templates.xml @@ -296,7 +296,7 @@ </widget> </screen> - <!-- MESSAGEBOX --> + <!-- ABOUT --> <screen name="AboutSummary" position="0,0" size="800,480"> <widget source="AboutText" render="Label" position="20,20" size="760,440" font="FdLcDLight;58" halign="center" valign="center" zPosition="2" /> </screen> @@ -307,7 +307,7 @@ <widget source="parent.selectedChoice" render="Label" position="40,380" size="720,70" foregroundColor="white" font="FdLcDLight;60" halign="center" valign="top" zPosition="2" /> </screen> <screen name="MessageBoxSimpleSummary" position="0,0" size="800,480"> - <panel name="MessageBox_summary" /> + <panel name="MessageBoxSummary" /> </screen> <!-- MOVIE SELECTION--> From 5697261ad5105fdbb9f994d4e4653f6a5eb8bb0e Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Thu, 4 Jul 2024 03:55:25 +0200 Subject: [PATCH 52/62] [display800] add NimSelection --- data/display800/skin_display_templates.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/data/display800/skin_display_templates.xml b/data/display800/skin_display_templates.xml index d8449f284cc..10de2b4d3a2 100644 --- a/data/display800/skin_display_templates.xml +++ b/data/display800/skin_display_templates.xml @@ -444,5 +444,19 @@ <convert type="StringListSelection" /> </widget> </screen> + + <screen name="NimSelectionSummary" position="fill"> + <widget source="parent.Title" render="Label" position="40,50" size="720,100" foregroundColor="white" font="FdLcD;85" halign="center" valign="center" zPosition="2" /> + <widget source="parent.nimlist" render="Listbox" position="40,190" size="720,160" scrollbarMode="showOnDemand"> + <convert type="TemplatedMultiContent"> + {"template": [ + MultiContentEntryText(pos = (0,0), size = (720,160), flags = RT_HALIGN_CENTER|RT_VALIGN_CENTER, text = 1), # index 1 is the nim name, + ], + "fonts": [gFont("FdLcDLight",60),], + "itemHeight": 160 + } + </convert> + </widget> + </screen> </skin> From a332e09cc0cfa02b80fe345f610f4dc7eaf86516 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Thu, 4 Jul 2024 03:56:16 +0200 Subject: [PATCH 53/62] [GitCommitInfo] add summary --- lib/python/Screens/GitCommitInfo.py | 40 ++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/lib/python/Screens/GitCommitInfo.py b/lib/python/Screens/GitCommitInfo.py index c9da7072200..6403e4338d5 100644 --- a/lib/python/Screens/GitCommitInfo.py +++ b/lib/python/Screens/GitCommitInfo.py @@ -2,8 +2,9 @@ from Components.Button import Button from Components.Label import Label from Components.ScrollLabel import ScrollLabel +from Components.Sources.StaticText import StaticText from Components.SystemInfo import SystemInfo -from Screens.Screen import Screen +from Screens.Screen import Screen, ScreenSummary from enigma import eTimer from sys import modules @@ -190,6 +191,7 @@ def __init__(self, session): ) self["key_red"] = Button(_("Cancel")) + self.onUpdate = [] self.Timer = eTimer() self.Timer.callback.append(self.readGithubCommitLogs) @@ -198,15 +200,21 @@ def __init__(self, session): def readGithubCommitLogs(self): self.setTitle(gitcommitinfo.getScreenTitle()) self["AboutScrollLabel"].setText(gitcommitinfo.readGithubCommitLogs()) + self.update() def updateCommitLogs(self): if gitcommitinfo.getScreenTitle() in gitcommitinfo.cachedProjects: self.setTitle(gitcommitinfo.getScreenTitle()) self["AboutScrollLabel"].setText(gitcommitinfo.cachedProjects[gitcommitinfo.getScreenTitle()]) + self.update() else: self["AboutScrollLabel"].setText(_("Please wait")) self.Timer.start(50, True) + def update(self): + for x in self.onUpdate: + x() + def left(self): gitcommitinfo.left() self.updateCommitLogs() @@ -217,3 +225,33 @@ def right(self): def closeRecursive(self): self.close(("menu", "menu")) + + def createSummary(self): + return CommitInfoSummary + + +class CommitInfoSummary(ScreenSummary): + def __init__(self, session, parent): + ScreenSummary.__init__(self, session, parent=parent) + self.commitText = [] + self["commitText"] = StaticText() + self.timer = eTimer() + self.timer.callback.append(self.update) + if self.changed not in parent.onUpdate: + parent.onUpdate.append(self.changed) + self.changed() + + def update(self): + self.timer.stop() + if self.commitText: + self.commitText.append(self.commitText.pop(0)) + self["commitText"].text = "\n\n".join(self.commitText) + self.timer.start(2000, 1) + + def changed(self): + self.timer.stop() + self["Title"].text = self.parent.getTitle() + if self.parent["AboutScrollLabel"].getText(): + self.commitText = self.parent["AboutScrollLabel"].getText().split("\n\n") + self["commitText"].text = "\n\n".join(self.commitText) + self.timer.start(3000, 1) From 06a9f5a6c65815d8f0b0df144efa8d9c372cbe50 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Thu, 4 Jul 2024 03:57:10 +0200 Subject: [PATCH 54/62] [display800] add CommitInfo --- data/display800/skin_display_templates.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/data/display800/skin_display_templates.xml b/data/display800/skin_display_templates.xml index 10de2b4d3a2..afe656e5a81 100644 --- a/data/display800/skin_display_templates.xml +++ b/data/display800/skin_display_templates.xml @@ -458,5 +458,10 @@ </convert> </widget> </screen> + + <screen name="CommitInfoSummary" position="fill"> + <widget source="Title" render="Label" position="40,50" size="720,100" foregroundColor="white" font="FdLcD;85" halign="center" valign="center" zPosition="2" /> + <widget source="commitText" render="Label" position="20,180" size="760,300" font="FdLcDLight;45" halign="center" zPosition="2" /> + </screen> </skin> From 5f1374d3fb8bea0e80d2a894eb551647beacf6a6 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Thu, 4 Jul 2024 04:03:45 +0200 Subject: [PATCH 55/62] [display800] tweak NimSelection --- data/display800/skin_display_templates.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/display800/skin_display_templates.xml b/data/display800/skin_display_templates.xml index afe656e5a81..e4ea4a67ecf 100644 --- a/data/display800/skin_display_templates.xml +++ b/data/display800/skin_display_templates.xml @@ -447,7 +447,7 @@ <screen name="NimSelectionSummary" position="fill"> <widget source="parent.Title" render="Label" position="40,50" size="720,100" foregroundColor="white" font="FdLcD;85" halign="center" valign="center" zPosition="2" /> - <widget source="parent.nimlist" render="Listbox" position="40,190" size="720,160" scrollbarMode="showOnDemand"> + <widget source="parent.nimlist" render="Listbox" position="40,190" size="720,160" scrollbarMode="showNever"> <convert type="TemplatedMultiContent"> {"template": [ MultiContentEntryText(pos = (0,0), size = (720,160), flags = RT_HALIGN_CENTER|RT_VALIGN_CENTER, text = 1), # index 1 is the nim name, From f518f816ccff12e513b2ce69f24449cf144639c1 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Thu, 4 Jul 2024 13:18:45 +0200 Subject: [PATCH 56/62] [MountManager] Fix multiple inheritance priority --- lib/python/Plugins/SystemPlugins/ViX/MountManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/python/Plugins/SystemPlugins/ViX/MountManager.py b/lib/python/Plugins/SystemPlugins/ViX/MountManager.py index 6113f5e28a0..cd64b9a97c1 100644 --- a/lib/python/Plugins/SystemPlugins/ViX/MountManager.py +++ b/lib/python/Plugins/SystemPlugins/ViX/MountManager.py @@ -350,7 +350,7 @@ def addFstab(self, result=None, retval=None, extra_args=None): self.Console.ePopen("mount -a", self.setTimer) -class DeviceMountSetup(Screen, ConfigListScreen): +class DeviceMountSetup(ConfigListScreen, Screen): skin = [""" <screen position="center,center" size="%d,%d"> <panel name="__DynamicColorButtonTemplate__"/> From 61c13c419c6e87ddb651963438ac2cad6c268552 Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Thu, 4 Jul 2024 17:02:12 +0200 Subject: [PATCH 57/62] Revert "[Removed] Code that actually does nothing and nothing fix...." This reverts commit 4a1e1068bb003565eaa999c17e50c43e20474830. --- lib/gdi/lcd.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/lib/gdi/lcd.cpp b/lib/gdi/lcd.cpp index 8fc2e8bb14a..bb57bf08270 100644 --- a/lib/gdi/lcd.cpp +++ b/lib/gdi/lcd.cpp @@ -412,8 +412,28 @@ void eDBoxLCD::update() // blue red green low green high ((unsigned int *)gb_buffer)[offset] = ((src >> 3) & 0x001F001F) | ((src << 3) & 0xF800F800) | ((src >> 8) & 0x00E000E0) | ((src << 8) & 0x07000700); } - write(lcdfd, gb_buffer, _stride * res.height()); +#elif defined(DREAMBOX) + // gggrrrrrbbbbbggg bit order from memory + // gggbbbbbrrrrrggg bit order to LCD + unsigned char gb_buffer[_stride * res.height()]; + if (!(0x03 & (_stride * res.height()))) + { // fast + for (int offset = 0; offset < ((_stride * res.height()) >> 2); offset++) + { + unsigned int src = ((unsigned int *)_buffer)[offset]; + ((unsigned int *)gb_buffer)[offset] = src & 0xE007E007 | (src & 0x1F001F00) >> 5 | (src & 0x00F800F8) << 5; + } + } + else + { // slow + for (int offset = 0; offset < _stride * res.height(); offset += 2) + { + gb_buffer[offset] = (_buffer[offset] & 0x07) | ((_buffer[offset + 1] << 3) & 0xE8); + gb_buffer[offset + 1] = (_buffer[offset + 1] & 0xE0) | ((_buffer[offset] >> 3) & 0x1F); + } + } + ret = write(lcdfd, gb_buffer, _stride * res.height()); #else write(lcdfd, _buffer, _stride * res.height()); #endif From 9a7879aa51856d2127ffdd7477d909eca20452cf Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Thu, 4 Jul 2024 17:03:32 +0200 Subject: [PATCH 58/62] Revert "[Fixed] Various Dreambox LCD color issues" This reverts commit 9922b56751c05fc4fb779cd6dbf185ee2ba6d16c. --- lib/gdi/gpixmap.cpp | 252 ++++------ lib/gdi/lcd.cpp | 21 - lib/gdi/picload.cpp | 1156 +++++++++++++++++++------------------------ lib/gdi/picload.h | 19 +- 4 files changed, 625 insertions(+), 823 deletions(-) diff --git a/lib/gdi/gpixmap.cpp b/lib/gdi/gpixmap.cpp index e9bf5adcd76..4ec0f1b7eba 100644 --- a/lib/gdi/gpixmap.cpp +++ b/lib/gdi/gpixmap.cpp @@ -1668,8 +1668,8 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i { ASSERT(src.size().width()); ASSERT(src.size().height()); - scale_x = pos.size().width() * FIX / src.size().width(); // NOSONAR - scale_y = pos.size().height() * FIX / src.size().height(); // NOSONAR + scale_x = pos.size().width() * FIX / src.size().width(); + scale_y = pos.size().height() * FIX / src.size().height(); if (flag & blitKeepAspectRatio) { if (scale_x > scale_y) @@ -1698,11 +1698,11 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i if (accumulate) { int totalsurface = 0; - for (unsigned int i = 0; i < clip.rects.size(); ++i) + for (unsigned int i=0; i<clip.rects.size(); ++i) { eRect area = pos; /* pos is the virtual (pre-clipping) area on the dest, which can be larger/smaller than src if scaling is enabled */ - area &= clip.rects[i]; - area &= eRect(ePoint(0, 0), size()); + area&=clip.rects[i]; + area&=eRect(ePoint(0, 0), size()); if (area.empty()) continue; @@ -1725,14 +1725,14 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i } } - // eDebug("[gPixmap] SCALE %x %x", scale_x, scale_y); +// eDebug("[gPixmap] SCALE %x %x", scale_x, scale_y); - for (unsigned int i = 0; i < clip.rects.size(); ++i) + for (unsigned int i=0; i<clip.rects.size(); ++i) { - // eDebug("[gPixmap] clip rect: %d %d %d %d", clip.rects[i].x(), clip.rects[i].y(), clip.rects[i].width(), clip.rects[i].height()); +// eDebug("[gPixmap] clip rect: %d %d %d %d", clip.rects[i].x(), clip.rects[i].y(), clip.rects[i].width(), clip.rects[i].height()); eRect area = pos; /* pos is the virtual (pre-clipping) area on the dest, which can be larger/smaller than src if scaling is enabled */ - area &= clip.rects[i]; - area &= eRect(ePoint(0, 0), size()); + area&=clip.rects[i]; + area&=eRect(ePoint(0, 0), size()); if (area.empty()) continue; @@ -1740,16 +1740,15 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i eRect srcarea = area; srcarea.moveBy(-pos.x(), -pos.y()); - // eDebug("[gPixmap] srcarea before scale: %d %d %d %d", - // srcarea.x(), srcarea.y(), srcarea.width(), srcarea.height()); + // eDebug("[gPixmap] srcarea before scale: %d %d %d %d", + // srcarea.x(), srcarea.y(), srcarea.width(), srcarea.height()); if (flag & blitScale) srcarea = eRect(srcarea.x() * FIX / scale_x, srcarea.y() * FIX / scale_y, srcarea.width() * FIX / scale_x, srcarea.height() * FIX / scale_y); - // eDebug("[gPixmap] srcarea after scale: %d %d %d %d", - // srcarea.x(), srcarea.y(), srcarea.width(), srcarea.height()); - - if (cornerRadius && surface->bpp == 32) + // eDebug("[gPixmap] srcarea after scale: %d %d %d %d", + // srcarea.x(), srcarea.y(), srcarea.width(), srcarea.height()); + if (cornerRadius && surface->bpp == 32) { if (src.surface->bpp == 32) { @@ -1768,7 +1767,6 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i continue; } - #ifdef FORCE_NO_ACCELNEVER accel = false; #else @@ -1818,10 +1816,8 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i #ifdef GPIXMAP_DEBUG Stopwatch s; #endif - if (accel) - { - if (!gAccel::getInstance()->blit(surface, src.surface, area, srcarea, flag)) - { + if (accel) { + if (!gAccel::getInstance()->blit(surface, src.surface, area, srcarea, flag)) { #ifdef GPIXMAP_DEBUG s.stop(); eDebug("[gPixmap] [BLITBENCH] accel blit (%d bytes) took %u us", srcarea.surface() * src.surface->bypp, s.elapsed_us()); @@ -1837,16 +1833,16 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i if (flag & blitScale) { - if ((surface->bpp == 32) && (src.surface->bpp == 8)) + if ((surface->bpp == 32) && (src.surface->bpp==8)) { - const uint8_t *srcptr = (uint8_t *)src.surface->data; - uint8_t *dstptr = (uint8_t *)surface->data; // !! + const uint8_t *srcptr = (uint8_t*)src.surface->data; + uint8_t *dstptr=(uint8_t*)surface->data; // !! uint32_t pal[256]; convert_palette(pal, src.surface->clut); const int src_stride = src.surface->stride; - srcptr += srcarea.left() * src.surface->bypp + srcarea.top() * src_stride; - dstptr += area.left() * surface->bypp + area.top() * surface->stride; + srcptr += srcarea.left()*src.surface->bypp + srcarea.top()*src_stride; + dstptr += area.left()*surface->bypp + area.top()*surface->stride; const int width = area.width(); const int height = area.height(); const int src_height = srcarea.height(); @@ -1856,10 +1852,10 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i for (int y = 0; y < height; ++y) { const uint8_t *src_row_ptr = srcptr + (((y * src_height) / height) * src_stride); - uint32_t *dst = (uint32_t *)dstptr; + uint32_t *dst = (uint32_t*)dstptr; for (int x = 0; x < width; ++x) { - uint32_t pixel = pal[src_row_ptr[(x * src_width) / width]]; + uint32_t pixel = pal[src_row_ptr[(x *src_width) / width]]; if (pixel & 0x80000000) *dst = pixel; ++dst; @@ -1872,7 +1868,7 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i for (int y = 0; y < height; ++y) { const uint8_t *src_row_ptr = srcptr + (((y * src_height) / height) * src_stride); - gRGB *dst = (gRGB *)dstptr; + gRGB *dst = (gRGB*)dstptr; for (int x = 0; x < width; ++x) { dst->alpha_blend(pal[src_row_ptr[(x * src_width) / width]]); @@ -1886,7 +1882,7 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i for (int y = 0; y < height; ++y) { const uint8_t *src_row_ptr = srcptr + (((y * src_height) / height) * src_stride); - uint32_t *dst = (uint32_t *)dstptr; + uint32_t *dst = (uint32_t*)dstptr; for (int x = 0; x < width; ++x) { *dst = pal[src_row_ptr[(x * src_width) / width]]; @@ -1899,8 +1895,8 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i else if ((surface->bpp == 32) && (src.surface->bpp == 32)) { const int src_stride = src.surface->stride; - const uint8_t *srcptr = (const uint8_t *)src.surface->data + srcarea.left() * src.surface->bypp + srcarea.top() * src_stride; - uint8_t *dstptr = (uint8_t *)surface->data + area.left() * surface->bypp + area.top() * surface->stride; + const uint8_t* srcptr = (const uint8_t*)src.surface->data + srcarea.left()*src.surface->bypp + srcarea.top()*src_stride; + uint8_t* dstptr = (uint8_t*)surface->data + area.left()*surface->bypp + area.top()*surface->stride; const int width = area.width(); const int height = area.height(); const int src_height = srcarea.height(); @@ -1909,11 +1905,11 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i { for (int y = 0; y < height; ++y) { - const uint32_t *src_row_ptr = (uint32_t *)(srcptr + (((y * src_height) / height) * src_stride)); - uint32_t *dst = (uint32_t *)dstptr; + const uint32_t *src_row_ptr = (uint32_t*)(srcptr + (((y * src_height) / height) * src_stride)); + uint32_t *dst = (uint32_t*)dstptr; for (int x = 0; x < width; ++x) { - uint32_t pixel = src_row_ptr[(x * src_width) / width]; + uint32_t pixel = src_row_ptr[(x *src_width) / width]; if (pixel & 0x80000000) *dst = pixel; ++dst; @@ -1926,8 +1922,7 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i for (int y = 0; y < height; ++y) { const gRGB *src_row_ptr = (gRGB *)(srcptr + (((y * src_height) / height) * src_stride)); - gRGB *dst = (gRGB *)dstptr; - + gRGB *dst = (gRGB*)dstptr; for (int x = 0; x < width; ++x) { const gRGB &src_pixel = src_row_ptr[(x * src_width) / width]; @@ -1941,8 +1936,8 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i { for (int y = 0; y < height; ++y) { - const uint32_t *src_row_ptr = (uint32_t *)(srcptr + (((y * src_height) / height) * src_stride)); - uint32_t *dst = (uint32_t *)dstptr; + const uint32_t *src_row_ptr = (uint32_t*)(srcptr + (((y * src_height) / height) * src_stride)); + uint32_t *dst = (uint32_t*)dstptr; for (int x = 0; x < width; ++x) { *dst = src_row_ptr[(x * src_width) / width]; @@ -1958,7 +1953,7 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i } #ifdef GPIXMAP_DEBUG s.stop(); - eDebug("[gPixmap] [BLITBENCH] CPU scale blit %dx%d transparent %d (%d bytes) took %u us", pos.width(), pos.height(), src.surface->transparent, srcarea.surface() * src.surface->bypp, s.elapsed_us()); + eDebug("[gPixmap] [BLITBENCH] CPU scale blit (%d bytes) took %u us", srcarea.surface() * src.surface->bypp, s.elapsed_us()); #ifdef GPIXMAP_CHECK_THRESHOLD if (accel) { @@ -1971,19 +1966,19 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i if ((surface->bpp == 8) && (src.surface->bpp == 8)) { - uint8_t *srcptr = (uint8_t *)src.surface->data; - uint8_t *dstptr = (uint8_t *)surface->data; + uint8_t *srcptr=(uint8_t*)src.surface->data; + uint8_t *dstptr=(uint8_t*)surface->data; - srcptr += srcarea.left() * src.surface->bypp + srcarea.top() * src.surface->stride; - dstptr += area.left() * surface->bypp + area.top() * surface->stride; - if (flag & (blitAlphaTest | blitAlphaBlend)) + srcptr+=srcarea.left()*src.surface->bypp+srcarea.top()*src.surface->stride; + dstptr+=area.left()*surface->bypp+area.top()*surface->stride; + if (flag & (blitAlphaTest|blitAlphaBlend)) { for (int y = area.height(); y != 0; --y) { // no real alphatest yet - int width = area.width(); - unsigned char *s = (unsigned char *)srcptr; - unsigned char *d = (unsigned char *)dstptr; + int width=area.width(); + uint8_t *s = srcptr; + uint8_t *d = dstptr; // use duff's device here! while (width--) { @@ -2003,7 +1998,7 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i } else { - int linesize = area.width() * surface->bypp; + int linesize = area.width()*surface->bypp; for (int y = area.height(); y != 0; --y) { memcpy(dstptr, srcptr, linesize); @@ -2012,13 +2007,13 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i } } } - else if ((surface->bpp == 32) && (src.surface->bpp == 32)) + else if ((surface->bpp == 32) && (src.surface->bpp==32)) { - uint32_t *srcptr = (uint32_t *)src.surface->data; - uint32_t *dstptr = (uint32_t *)surface->data; + uint32_t *srcptr=(uint32_t*)src.surface->data; + uint32_t *dstptr=(uint32_t*)surface->data; - srcptr += srcarea.left() + srcarea.top() * src.surface->stride / 4; - dstptr += area.left() + area.top() * surface->stride / 4; + srcptr+=srcarea.left()+srcarea.top()*src.surface->stride/4; + dstptr+=area.left()+area.top()*surface->stride/4; for (int y = area.height(); y != 0; --y) { if (flag & blitAlphaTest) @@ -2026,23 +2021,21 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i int width = area.width(); uint32_t *src = srcptr; uint32_t *dst = dstptr; - while (width--) { - if (!((*src) & 0xFF000000)) + if (!((*src)&0xFF000000)) { - src++; - dst++; - } - else - *dst++ = *src++; + ++src; + ++dst; + } else + *dst++=*src++; } } else if (flag & blitAlphaBlend) { int width = area.width(); - gRGB *src = (gRGB *)srcptr; - gRGB *dst = (gRGB *)dstptr; + gRGB *src = (gRGB*)srcptr; + gRGB *dst = (gRGB*)dstptr; while (width--) { dst->alpha_blend(*src++); @@ -2050,135 +2043,99 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i } } else - memcpy(dstptr, srcptr, area.width() * surface->bypp); - srcptr = (uint32_t *)((uint8_t *)srcptr + src.surface->stride); - dstptr = (uint32_t *)((uint8_t *)dstptr + surface->stride); + memcpy(dstptr, srcptr, area.width()*surface->bypp); + srcptr = (uint32_t*)((uint8_t*)srcptr + src.surface->stride); + dstptr = (uint32_t*)((uint8_t*)dstptr + surface->stride); } } - else if ((surface->bpp == 32) && (src.surface->bpp == 8)) + else if ((surface->bpp == 32) && (src.surface->bpp==8)) { - const uint8_t *srcptr = (uint8_t *)src.surface->data; - uint8_t *dstptr = (uint8_t *)surface->data; // !! + const uint8_t *srcptr = (uint8_t*)src.surface->data; + uint8_t *dstptr=(uint8_t*)surface->data; // !! uint32_t pal[256]; convert_palette(pal, src.surface->clut); - srcptr += srcarea.left() * src.surface->bypp + srcarea.top() * src.surface->stride; - dstptr += area.left() * surface->bypp + area.top() * surface->stride; - const int width = area.width(); + srcptr+=srcarea.left()*src.surface->bypp+srcarea.top()*src.surface->stride; + dstptr+=area.left()*surface->bypp+area.top()*surface->stride; + const int width=area.width(); for (int y = area.height(); y != 0; --y) { if (flag & blitAlphaTest) - blit_8i_to_32_at((uint32_t *)dstptr, srcptr, pal, width); + blit_8i_to_32_at((uint32_t*)dstptr, srcptr, pal, width); else if (flag & blitAlphaBlend) - blit_8i_to_32_ab((gRGB *)dstptr, srcptr, (const gRGB *)pal, width); + blit_8i_to_32_ab((gRGB*)dstptr, srcptr, (const gRGB*)pal, width); else - blit_8i_to_32((uint32_t *)dstptr, srcptr, pal, width); + blit_8i_to_32((uint32_t*)dstptr, srcptr, pal, width); srcptr += src.surface->stride; dstptr += surface->stride; } } - else if ((surface->bpp == 16) && (src.surface->bpp == 8)) + else if ((surface->bpp == 16) && (src.surface->bpp==8)) { - uint8_t *srcptr = (uint8_t *)src.surface->data; - uint8_t *dstptr = (uint8_t *)surface->data; // !! + uint8_t *srcptr=(uint8_t*)src.surface->data; + uint8_t *dstptr=(uint8_t*)surface->data; // !! uint32_t pal[256]; - for (int i = 0; i != 256; ++i) + for (int i=0; i != 256; ++i) { uint32_t icol; - if (src.surface->clut.data && (i < src.surface->clut.colors)) + if (src.surface->clut.data && (i<src.surface->clut.colors)) icol = src.surface->clut.data[i].argb(); else - icol = 0x010101 * i; + icol=0x010101*i; #if BYTE_ORDER == LITTLE_ENDIAN pal[i] = bswap_16(((icol & 0xFF) >> 3) << 11 | ((icol & 0xFF00) >> 10) << 5 | (icol & 0xFF0000) >> 19); #else pal[i] = ((icol & 0xFF) >> 3) << 11 | ((icol & 0xFF00) >> 10) << 5 | (icol & 0xFF0000) >> 19; #endif - pal[i] ^= 0xFF000000; + pal[i]^=0xFF000000; } - srcptr += srcarea.left() * src.surface->bypp + srcarea.top() * src.surface->stride; - dstptr += area.left() * surface->bypp + area.top() * surface->stride; + srcptr+=srcarea.left()*src.surface->bypp+srcarea.top()*src.surface->stride; + dstptr+=area.left()*surface->bypp+area.top()*surface->stride; if (flag & blitAlphaBlend) eWarning("[gPixmap] ignore unsupported 8bpp -> 16bpp alphablend!"); - for (int y = 0; y < area.height(); y++) + for (int y=0; y<area.height(); y++) { - int width = area.width(); - unsigned char *psrc = (unsigned char *)srcptr; - uint16_t *dst = (uint16_t *)dstptr; + int width=area.width(); + unsigned char *psrc=(unsigned char*)srcptr; + uint16_t *dst=(uint16_t*)dstptr; if (flag & blitAlphaTest) blit_8i_to_16_at(dst, psrc, pal, width); else blit_8i_to_16(dst, psrc, pal, width); - srcptr += src.surface->stride; - dstptr += surface->stride; + srcptr+=src.surface->stride; + dstptr+=surface->stride; } } - else if ((surface->bpp == 16) && (src.surface->bpp == 32)) + else if ((surface->bpp == 16) && (src.surface->bpp==32)) { - uint8_t *srcptr = (uint8_t *)src.surface->data; - uint8_t *dstptr = (uint8_t *)surface->data; + uint8_t *srcptr=(uint8_t*)src.surface->data; + uint8_t *dstptr=(uint8_t*)surface->data; - srcptr += srcarea.left() * src.surface->bypp + srcarea.top() * src.surface->stride; - dstptr += area.left() * surface->bypp + area.top() * surface->stride; + srcptr+=srcarea.left()+srcarea.top()*src.surface->stride; + dstptr+=area.left()+area.top()*surface->stride; - for (int y = 0; y < area.height(); y++) - { - int width = area.width(); - uint32_t *srcp = (uint32_t *)srcptr; - uint16_t *dstp = (uint16_t *)dstptr; - - if (flag & blitAlphaBlend) - { - while (width--) - { - if (!((*srcp) & 0xFF000000)) - { - srcp++; - dstp++; - } - else - { - gRGB icol = *srcp++; -#if BYTE_ORDER == LITTLE_ENDIAN - uint32_t jcol = bswap_16(*dstp); -#else - uint32_t jcol = *dstp; -#endif - int bg_b = (jcol >> 8) & 0xF8; - int bg_g = (jcol >> 3) & 0xFC; - int bg_r = (jcol << 3) & 0xF8; - - int a = icol.a; - int r = icol.r; - int g = icol.g; - int b = icol.b; + if (flag & blitAlphaBlend) + eWarning("[gPixmap] ignore unsupported 32bpp -> 16bpp alphablend!"); - r = ((r - bg_r) * a) / 255 + bg_r; - g = ((g - bg_g) * a) / 255 + bg_g; - b = ((b - bg_b) * a) / 255 + bg_b; + for (int y=0; y<area.height(); y++) + { + int width=area.width(); + uint32_t *srcp=(uint32_t*)srcptr; + uint16_t *dstp=(uint16_t*)dstptr; -#if BYTE_ORDER == LITTLE_ENDIAN - *dstp++ = bswap_16((b >> 3) << 11 | (g >> 2) << 5 | r >> 3); -#else - *dstp++ = (b >> 3) << 11 | (g >> 2) << 5 | r >> 3; -#endif - } - } - } - else if (flag & blitAlphaTest) + if (flag & blitAlphaTest) { while (width--) { - if (!((*srcp) & 0xFF000000)) + if (!((*srcp)&0xFF000000)) { - srcp++; - dstp++; - } - else + ++srcp; + ++dstp; + } else { uint32_t icol = *srcp++; #if BYTE_ORDER == LITTLE_ENDIAN @@ -2188,8 +2145,7 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i #endif } } - } - else + } else { while (width--) { @@ -2201,15 +2157,15 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i #endif } } - srcptr += src.surface->stride; - dstptr += surface->stride; + srcptr+=src.surface->stride; + dstptr+=surface->stride; } } else eWarning("[gPixmap] cannot blit %dbpp from %dbpp", surface->bpp, src.surface->bpp); #ifdef GPIXMAP_DEBUG s.stop(); - eDebug("[gPixmap] [BLITBENCH] cpu blit %dx%d transparent %d (%d bytes) took %u us", pos.width(), pos.height(), src.surface->transparent, srcarea.surface() * src.surface->bypp, s.elapsed_us()); + eDebug("[gPixmap] [BLITBENCH] cpu blit (%d bytes) took %u us", srcarea.surface() * src.surface->bypp, s.elapsed_us()); #ifdef GPIXMAP_CHECK_THRESHOLD if (accel) { diff --git a/lib/gdi/lcd.cpp b/lib/gdi/lcd.cpp index bb57bf08270..1b39b34407a 100644 --- a/lib/gdi/lcd.cpp +++ b/lib/gdi/lcd.cpp @@ -413,27 +413,6 @@ void eDBoxLCD::update() ((unsigned int *)gb_buffer)[offset] = ((src >> 3) & 0x001F001F) | ((src << 3) & 0xF800F800) | ((src >> 8) & 0x00E000E0) | ((src << 8) & 0x07000700); } write(lcdfd, gb_buffer, _stride * res.height()); -#elif defined(DREAMBOX) - // gggrrrrrbbbbbggg bit order from memory - // gggbbbbbrrrrrggg bit order to LCD - unsigned char gb_buffer[_stride * res.height()]; - if (!(0x03 & (_stride * res.height()))) - { // fast - for (int offset = 0; offset < ((_stride * res.height()) >> 2); offset++) - { - unsigned int src = ((unsigned int *)_buffer)[offset]; - ((unsigned int *)gb_buffer)[offset] = src & 0xE007E007 | (src & 0x1F001F00) >> 5 | (src & 0x00F800F8) << 5; - } - } - else - { // slow - for (int offset = 0; offset < _stride * res.height(); offset += 2) - { - gb_buffer[offset] = (_buffer[offset] & 0x07) | ((_buffer[offset + 1] << 3) & 0xE8); - gb_buffer[offset + 1] = (_buffer[offset + 1] & 0xE0) | ((_buffer[offset] >> 3) & 0x1F); - } - } - ret = write(lcdfd, gb_buffer, _stride * res.height()); #else write(lcdfd, _buffer, _stride * res.height()); #endif diff --git a/lib/gdi/picload.cpp b/lib/gdi/picload.cpp index 193cdd128f2..08706ad32ef 100644 --- a/lib/gdi/picload.cpp +++ b/lib/gdi/picload.cpp @@ -4,9 +4,7 @@ #include <lib/base/cfile.h> #include <lib/base/estring.h> -#include <lib/base/wrappers.h> #include <lib/gdi/picload.h> -#include <lib/gdi/picexif.h> extern "C" { #define HAVE_BOOLEAN @@ -30,79 +28,7 @@ static std::string getSize(const char* file) struct stat64 s = {}; if (stat64(file, &s) < 0) return ""; - char tmp[21]; - snprintf(tmp, 21, "%ld kB", (long)s.st_size / 1024); - return tmp; -} - -static int convert_8Bit_to_24Bit(Cfilepara *filepara, unsigned char *dest) -{ - if( (!filepara) || (!dest)) - return -1; - - unsigned char *src = filepara->pic_buffer; - gRGB * palette = filepara->palette; - int pixel_cnt = filepara->ox * filepara->oy; - - if( (!src) || (!palette) || (!pixel_cnt)) - return -1; - - for( int i = 0; i < pixel_cnt; i++) - { - *dest++ = palette[*src].r; - *dest++ = palette[*src].g; - *dest++ = palette[*src++].b; - } - return 0; -} - -static unsigned char *simple_resize_24(unsigned char *orgin, int ox, int oy, int dx, int dy) -{ - unsigned char *cr = new unsigned char[dx * dy * 3]; - if (cr == NULL) - { - eDebug("[ePicLoad] Error malloc"); - return orgin; - } - const int stride = 3 * dx; - #pragma omp parallel for - for (int j = 0; j < dy; ++j) - { - unsigned char* k = cr + (j * stride); - const unsigned char* p = orgin + (j * oy / dy * ox) * 3; - for (int i = 0; i < dx; i++) - { - const unsigned char* ip = p + (i * ox / dx) * 3; - *k++ = ip[0]; - *k++ = ip[1]; - *k++ = ip[2]; - } - } - delete [] orgin; - return cr; -} - -static unsigned char *simple_resize_8(unsigned char *orgin, int ox, int oy, int dx, int dy) -{ - unsigned char* cr = new unsigned char[dx * dy]; - if (cr == NULL) - { - eDebug("[ePicLoad] Error malloc"); - return(orgin); - } - const int stride = dx; - #pragma omp parallel for - for (int j = 0; j < dy; ++j) - { - unsigned char* k = cr + (j * stride); - const unsigned char* p = orgin + (j * oy / dy * ox); - for (int i = 0; i < dx; i++) - { - *k++ = p[i * ox / dx]; - } - } - delete [] orgin; - return cr; + return std::to_string((long)(s.st_size / 1024)) + " kB"; } static unsigned char *color_resize(unsigned char * orgin, int ox, int oy, int dx, int dy) @@ -142,7 +68,7 @@ static unsigned char *color_resize(unsigned char * orgin, int ox, int oy, int dx b += q[2]; } } - if (sq == 0) // prevent Division by zero + if (sq == 0) // prevent division by zero sq = 1; p[0] = r / sq; p[1] = g / sq; @@ -192,7 +118,8 @@ static unsigned char *bmp_load(const char *file, int *x, int *y) int fd = open(file, O_RDONLY); if (fd == -1) return NULL; - if (lseek(fd, BMP_SIZE_OFFSET, SEEK_SET) == -1) { + if (lseek(fd, BMP_SIZE_OFFSET, SEEK_SET) == -1) + { close(fd); return NULL; } @@ -242,13 +169,13 @@ static unsigned char *bmp_load(const char *file, int *x, int *y) fetch_pallete(fd, pallete, 16); lseek(fd, raster, SEEK_SET); unsigned char * tbuffer = new unsigned char[*x / 2 + 1]; - if (tbuffer == NULL) { + if (tbuffer == NULL) + { close(fd); return NULL; } for (int i = 0; i < *y; i++) { - if (read(fd, tbuffer, (*x) / 2 + *x % 2) != ((*x) / 2 + *x % 2)) { eDebug("[ePicLoad] failed to read %d bytes...", ((*x) / 2 + *x % 2)); @@ -290,7 +217,8 @@ static unsigned char *bmp_load(const char *file, int *x, int *y) fetch_pallete(fd, pallete, 256); lseek(fd, raster, SEEK_SET); unsigned char * tbuffer = new unsigned char[*x]; - if (tbuffer == NULL) { + if (tbuffer == NULL) + { close(fd); return NULL; } @@ -310,7 +238,7 @@ static unsigned char *bmp_load(const char *file, int *x, int *y) { if (read(fd, buff, skip) != skip) { - eDebug("[ePicLoad] failed to read %d bytes...", skip); + eDebug("[ePicLoad] failed to skip %d bytes...", skip); } } wr_buffer -= (*x) * 3; @@ -324,7 +252,10 @@ static unsigned char *bmp_load(const char *file, int *x, int *y) lseek(fd, raster, SEEK_SET); for (int i = 0; i < (*y); i++) { - [[maybe_unused]] size_t ret = read(fd, wr_buffer, (*x) * 3); + if (read(fd, wr_buffer, (*x) * 3) != ((*x) * 3)) + { + eDebug("[picload] failed to read %d bytes...", ((*x) * 3)); + } for (int j = 0; j < (*x) * 3 ; j = j + 3) { unsigned char c = wr_buffer[j]; @@ -335,7 +266,7 @@ static unsigned char *bmp_load(const char *file, int *x, int *y) { if (read(fd, buff, skip) != skip) { - eDebug("[ePicLoad] failed to read %d bytes...", skip); + eDebug("[ePicLoad] failed to skip %d bytes...", skip); } } wr_buffer -= (*x) * 3; @@ -350,23 +281,14 @@ static unsigned char *bmp_load(const char *file, int *x, int *y) close(fd); return(pic_buffer); - } -/** - * @brief Load a png - * - * If you make change to png_load, check the functionality with PngSuite - * http://www.schaik.com/pngsuite/ - * These are test images in all standard PNG. - * - * @param filepara - * @param background - * @return void - */ -static void png_load(Cfilepara *filepara, unsigned int background) +//--------------------------------------------------------------------- + +static void png_load(Cfilepara* filepara, int background, bool forceRGB=false) { png_uint_32 width, height; + unsigned int i; int bit_depth, color_type, interlace_type; png_byte *fbptr; CFile fh(filepara->file, "rb"); @@ -375,21 +297,16 @@ static void png_load(Cfilepara *filepara, unsigned int background) png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); if (png_ptr == NULL) - { - eDebug("[ePicLoad] Error png_create_read_struct"); return; - } png_infop info_ptr = png_create_info_struct(png_ptr); if (info_ptr == NULL) { - eDebug("[ePicLoad] Error png_create_info_struct"); png_destroy_read_struct(&png_ptr, (png_infopp)NULL, (png_infopp)NULL); return; } if (setjmp(png_jmpbuf(png_ptr))) { - eDebug("[ePicLoad] Error setjmp"); png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); return; } @@ -398,171 +315,98 @@ static void png_load(Cfilepara *filepara, unsigned int background) png_read_info(png_ptr, info_ptr); png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_type, NULL, NULL); - int pixel_cnt = width * height; - - filepara->ox = width; - filepara->oy = height; - - // This is a hack to support 8bit pngs with transparency since the detection is not really correct for some reason.... - if (color_type == PNG_COLOR_TYPE_PALETTE && bit_depth == 8) { - color_type = PNG_COLOR_TYPE_RGBA; - } - - - if (color_type == PNG_COLOR_TYPE_RGBA || color_type == PNG_COLOR_TYPE_GA) { - filepara->transparent = true; - filepara->bits = 32; // Here set bits to 32 explicitly to simulate alpha transparency if it is not explicitly set - } - else - { - png_bytep trans_alpha = NULL; - int num_trans = 0; - png_color_16p trans_color = NULL; - - png_get_tRNS(png_ptr, info_ptr, &trans_alpha, &num_trans, &trans_color); - filepara->transparent = (trans_alpha != NULL); - } - if ((bit_depth <= 8) && (color_type == PNG_COLOR_TYPE_GRAY || color_type & PNG_COLOR_MASK_PALETTE)) + if (!forceRGB && (color_type == PNG_COLOR_TYPE_GRAY || color_type & PNG_COLOR_MASK_PALETTE)) { if (bit_depth < 8) - png_set_packing(png_ptr); - - unsigned char *pic_buffer = new unsigned char[pixel_cnt]; - if (!pic_buffer) { - eDebug("[ePicLoad] Error malloc"); - png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); - return; + png_set_packing(png_ptr); + bit_depth = 8; } + unsigned char *pic_buffer = new unsigned char[height * width]; + filepara->ox = width; + filepara->oy = height; + filepara->pic_buffer = pic_buffer; + filepara->bits = 8; - int number_passes = png_set_interlace_handling(png_ptr); - png_read_update_info(png_ptr, info_ptr); - - for (int pass = 0; pass < number_passes; pass++) + png_bytep *rowptr=new png_bytep[height]; + for (unsigned int i=0; i!=height; i++) { - fbptr = (png_byte *)pic_buffer; - for (unsigned int i = 0; i < height; i++, fbptr += width) - png_read_row(png_ptr, fbptr, NULL); + rowptr[i]=(png_byte*)pic_buffer; + pic_buffer += width; } + png_read_rows(png_ptr, rowptr, 0, height); + delete [] rowptr; if (png_get_valid(png_ptr, info_ptr, PNG_INFO_PLTE)) { png_color *palette; int num_palette; png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette); - filepara->palette_size = num_palette; if (num_palette) filepara->palette = new gRGB[num_palette]; - - for (unsigned int i = 0; i < num_palette; i++) + for (int i=0; i<num_palette; i++) { - filepara->palette[i].a = 0; - filepara->palette[i].r = palette[i].red; - filepara->palette[i].g = palette[i].green; - filepara->palette[i].b = palette[i].blue; + filepara->palette[i].a=0; + filepara->palette[i].r=palette[i].red; + filepara->palette[i].g=palette[i].green; + filepara->palette[i].b=palette[i].blue; } - if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) { png_byte *trans; png_get_tRNS(png_ptr, info_ptr, &trans, &num_palette, 0); - for (unsigned int i = 0; i < num_palette; i++) - filepara->palette[i].a = 255 - trans[i]; + for (int i=0; i<num_palette; i++) + filepara->palette[i].a=255-trans[i]; } } - else - { - int c_cnt = 1 << bit_depth; - int c_step = (256 - 1) / (c_cnt - 1); - filepara->palette_size = c_cnt; - filepara->palette = new gRGB[c_cnt]; - for (unsigned int i = 0; i < c_cnt; i++) - { - filepara->palette[i].a = 0; - filepara->palette[i].r = i * c_step; - filepara->palette[i].g = i * c_step; - filepara->palette[i].b = i * c_step; - } - } - filepara->pic_buffer = pic_buffer; - filepara->bits = 8; - png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); } else { if (bit_depth == 16) png_set_strip_16(png_ptr); - if (color_type == PNG_COLOR_TYPE_GRAY || color_type == PNG_COLOR_TYPE_GRAY_ALPHA) png_set_gray_to_rgb(png_ptr); - - if ((color_type == PNG_COLOR_TYPE_PALETTE) || (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) || (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))) - png_set_expand(png_ptr); - - int number_passes = png_set_interlace_handling(png_ptr); - png_read_update_info(png_ptr, info_ptr); - - int bpp = png_get_rowbytes(png_ptr, info_ptr) / width; - if ((bpp != 4) && (bpp != 3)) + if (color_type & PNG_COLOR_MASK_PALETTE) + png_set_palette_to_rgb(png_ptr); + if (color_type & PNG_COLOR_MASK_ALPHA || png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) { - eDebug("[ePicLoad] Error processing"); - png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); - return; + png_set_strip_alpha(png_ptr); + png_color_16 bg; + bg.red = (background >> 16) & 0xFF; + bg.green = (background >> 8) & 0xFF; + bg.blue = (background) & 0xFF; + bg.gray = bg.green; + bg.index = 0; + png_set_background(png_ptr, &bg, PNG_BACKGROUND_GAMMA_SCREEN, 0, 1.0); } + png_read_update_info(png_ptr, info_ptr); - unsigned char *pic_buffer = new unsigned char[pixel_cnt * bpp]; - if (!pic_buffer) + if (width * 3 != png_get_rowbytes(png_ptr, info_ptr)) { - eDebug("[ePicLoad] Error malloc"); + eDebug("[ePicLoad] Error processing (did not get RGB data from PNG file)"); png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); return; } - for (int pass = 0; pass < number_passes; pass++) + unsigned char *pic_buffer = new unsigned char[height * width * 3]; + filepara->ox = width; + filepara->oy = height; + filepara->pic_buffer = pic_buffer; + + int number_passes = png_set_interlace_handling(png_ptr); + for(int pass = 0; pass < number_passes; pass++) { fbptr = (png_byte *)pic_buffer; - for (unsigned int i = 0; i < height; i++, fbptr += width * bpp) + for (i = 0; i < height; i++, fbptr += width * 3) png_read_row(png_ptr, fbptr, NULL); } png_read_end(png_ptr, info_ptr); - png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); - - if (bpp == 4) - { - unsigned char *pic_buffer24 = new unsigned char[pixel_cnt * 3]; - if (!pic_buffer24) - { - eDebug("[ePicLoad] Error malloc"); - delete[] pic_buffer; - return; - } - - unsigned char *src = pic_buffer; - unsigned char *dst = pic_buffer24; - int bg_r = (background >> 16) & 0xFF; - int bg_g = (background >> 8) & 0xFF; - int bg_b = background & 0xFF; - for (unsigned int i = 0; i < pixel_cnt; i++) - { - int r = (int)*src++; - int g = (int)*src++; - int b = (int)*src++; - int a = (int)*src++; - - *dst++ = ((r - bg_r) * a) / 255 + bg_r; - *dst++ = ((g - bg_g) * a) / 255 + bg_g; - *dst++ = ((b - bg_b) * a) / 255 + bg_b; - } - delete[] pic_buffer; - filepara->pic_buffer = pic_buffer24; - } - else - filepara->pic_buffer = pic_buffer; - filepara->bits = 24; } + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); } + //------------------------------------------------------------------- struct r_jpeg_error_mgr @@ -581,12 +425,14 @@ void jpeg_cb_error_exit(j_common_ptr cinfo) static unsigned char *jpeg_load(const char *file, int *ox, int *oy, unsigned int max_x, unsigned int max_y) { - struct jpeg_decompress_struct cinfo; + struct jpeg_decompress_struct cinfo = {}; struct jpeg_decompress_struct *ciptr = &cinfo; - struct r_jpeg_error_mgr emgr; - unsigned char *pic_buffer=NULL; + struct r_jpeg_error_mgr emgr = {}; + unsigned char *pic_buffer; CFile fh(file, "rb"); + pic_buffer = nullptr; + if (!fh) return NULL; @@ -602,24 +448,22 @@ static unsigned char *jpeg_load(const char *file, int *ox, int *oy, unsigned int jpeg_stdio_src(ciptr, fh); jpeg_read_header(ciptr, TRUE); ciptr->out_color_space = JCS_RGB; - int s = 8; + if (max_x == 0) max_x = 1280; // sensible default if (max_y == 0) max_y = 720; - while (s != 1) - { - if ((ciptr->image_width >= (s * max_x)) || - (ciptr->image_height >= (s * max_y))) - break; - s /= 2; - } - ciptr->scale_num = 1; - ciptr->scale_denom = s; + // define scale to always fit vertically or horizontally in all orientations + ciptr->scale_denom = 8; + unsigned int screenmax = max_x > max_y ? max_x : max_y; + unsigned int imagemin = ciptr->image_width < ciptr->image_height ? ciptr->image_width : ciptr->image_height; + ciptr->scale_num = (ciptr->scale_denom * screenmax + imagemin -1) / imagemin; + if (ciptr->scale_num < 1) ciptr->scale_num = 1; + if (ciptr->scale_num > 16) ciptr->scale_num = 16; jpeg_start_decompress(ciptr); *ox=ciptr->output_width; *oy=ciptr->output_height; - // eDebug("[jpeg_load] jpeg_read ox=%d oy=%d w=%d (%d), h=%d (%d) scale=%d rec_outbuf_height=%d", ciptr->output_width, ciptr->output_height, ciptr->image_width, max_x, ciptr->image_height, max_y, ciptr->scale_denom, ciptr->rec_outbuf_height); + //eDebug("[jpeg_load] ox=%d oy=%d w=%d (%d), h=%d (%d) scale=%d rec_outbuf_height=%d", ciptr->output_width, ciptr->output_height, ciptr->image_width, max_x, ciptr->image_height, max_y, ciptr->scale_num, ciptr->rec_outbuf_height); if(ciptr->output_components == 3) { @@ -641,8 +485,8 @@ static unsigned char *jpeg_load(const char *file, int *ox, int *oy, unsigned int static int jpeg_save(const char * filename, int ox, int oy, unsigned char *pic_buffer) { - struct jpeg_compress_struct cinfo; - struct jpeg_error_mgr jerr; + struct jpeg_compress_struct cinfo = {}; + struct jpeg_error_mgr jerr = {}; JSAMPROW row_pointer[1]; int row_stride; CFile outfile(filename, "wb"); @@ -656,7 +500,7 @@ static int jpeg_save(const char * filename, int ox, int oy, unsigned char *pic_b cinfo.err = jpeg_std_error(&jerr); jpeg_create_compress(&cinfo); - // eDebug("[ePicLoad] save Thumbnail... %s",filename); + eDebug("[ePicLoad] save Thumbnail... %s",filename); jpeg_stdio_dest(&cinfo, outfile); @@ -761,11 +605,11 @@ static void svg_load(Cfilepara* filepara, bool forceRGB = false) free(pic_buffer); } } -static void gif_load(Cfilepara* filepara) + +static void gif_load(Cfilepara* filepara, bool forceRGB = false) { unsigned char *pic_buffer = NULL; int px, py, i, j; - unsigned char *fbptr; unsigned char *slb=NULL; GifFileType *gft; GifRecordType rt; @@ -774,13 +618,10 @@ static void gif_load(Cfilepara* filepara) int cmaps; int extcode; -#if !defined(GIFLIB_MAJOR) || ( GIFLIB_MAJOR < 5) - gft = DGifOpenFileName(filepara->file); +#if GIFLIB_MAJOR > 5 || GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1 + gft = DGifOpenFileName(filepara->file, &extcode); #else - { - int err; - gft = DGifOpenFileName(filepara->file, &err); - } + gft = DGifOpenFileName(filepara->file); #endif if (gft == NULL) return; @@ -814,10 +655,9 @@ static void gif_load(Cfilepara* filepara) filepara->palette[i].b = cmap->Colors[i].Blue; } - fbptr = pic_buffer; if (!(gft->Image.Interlace)) { - for (i = 0; i < py; i++, fbptr += px * 3) + for (i = 0; i < py; i++) { if (DGifGetLine(gft, slb, px) == GIF_ERROR) goto ERROR_R; @@ -826,17 +666,37 @@ static void gif_load(Cfilepara* filepara) } else { + int IOffset[] = { 0, 4, 2, 1 }; // The way Interlaced image should. + int IJumps[] = { 8, 8, 4, 2 }; // be read - offsets and jumps... for (j = 0; j < 4; j++) { - slb = pic_buffer; - for (i = 0; i < py; i++) + for (i = IOffset[j]; i < py; i += IJumps[j]) { - if (DGifGetLine(gft, slb, px) == GIF_ERROR) + if (DGifGetLine(gft, pic_buffer + i*px, px) == GIF_ERROR) goto ERROR_R; - slb += px; } } } + if (forceRGB) { + unsigned char *pic_buffer2 = new unsigned char[px * py * 3]; + if (pic_buffer2 != NULL) { + unsigned char *slb2 = pic_buffer2; + slb = pic_buffer; + for (j = 0; j < py; j++) { + for (i = 0; i < px; i++) { + int c = *slb++; + *slb2++ = filepara->palette[c].r; + *slb2++ = filepara->palette[c].g; + *slb2++ = filepara->palette[c].b; + } + } + filepara->bits = 24; + filepara->pic_buffer = pic_buffer2; + delete [] pic_buffer; + delete [] filepara->palette; + filepara->palette = NULL; + } + } } break; case EXTENSION_RECORD_TYPE: @@ -852,24 +712,18 @@ static void gif_load(Cfilepara* filepara) } while (rt != TERMINATE_RECORD_TYPE); -#if !defined(GIFLIB_MAJOR) || ( GIFLIB_MAJOR < 5) || (GIFLIB_MAJOR == 5 && GIFLIB_MINOR == 0) - DGifCloseFile(gft); +#if GIFLIB_MAJOR > 5 || GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1 + DGifCloseFile(gft, &extcode); #else - { - int err; - DGifCloseFile(gft, &err); - } + DGifCloseFile(gft); #endif return; ERROR_R: eDebug("[ePicLoad] <Error gif>"); -#if !defined(GIFLIB_MAJOR) || ( GIFLIB_MAJOR < 5) || (GIFLIB_MAJOR == 5 && GIFLIB_MINOR == 0) - DGifCloseFile(gft); +#if GIFLIB_MAJOR > 5 || GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1 + DGifCloseFile(gft, &extcode); #else - { - int err; - DGifCloseFile(gft, &err); - } + DGifCloseFile(gft); #endif } @@ -877,10 +731,11 @@ static void gif_load(Cfilepara* filepara) ePicLoad::ePicLoad(): m_filepara(NULL), + m_exif(NULL), threadrunning(false), m_conf(), - msg_thread(this,1,"ePicLoad_thread"), - msg_main(eApp,1,"ePicLoad_main") + msg_thread(this,1, "ePicLoad_thread"), + msg_main(eApp,1, "ePicLoad_main") { CONNECT(msg_thread.recv_msg, ePicLoad::gotMessage); CONNECT(msg_main.recv_msg, ePicLoad::gotMessage); @@ -893,6 +748,7 @@ ePicLoad::PConf::PConf(): background(0), resizetype(1), usecache(false), + auto_orientation(false), thumbnailsize(180) { } @@ -907,96 +763,98 @@ ePicLoad::~ePicLoad() { if (threadrunning) waitFinished(); - if(m_filepara != NULL) + if (m_filepara != NULL) delete m_filepara; + if (m_exif != NULL) { + m_exif->ClearExif(); + delete m_exif; + } } void ePicLoad::thread_finished() { - threadrunning=false; + threadrunning = false; } void ePicLoad::thread() { - threadrunning=true; + threadrunning = true; hasStarted(); - [[maybe_unused]] int ret = nice(4); + if (nice(4)) + { + eDebug("[ePicLoad] thread failed to modify scheduling priority (%m)"); + } runLoop(); } void ePicLoad::decodePic() { - eDebug("[ePicLoad] decode picture... %s",m_filepara->file); + eDebug("[ePicLoad] decode picture... %s", m_filepara->file); + getExif(m_filepara->file, m_filepara->id); switch(m_filepara->id) { - case F_PNG: png_load(m_filepara, m_conf.background); break; - case F_JPEG: m_filepara->pic_buffer = jpeg_load(m_filepara->file, &m_filepara->ox, &m_filepara->oy, m_filepara->max_x, m_filepara->max_y); m_filepara->transparent = false; break; - case F_BMP: m_filepara->pic_buffer = bmp_load(m_filepara->file, &m_filepara->ox, &m_filepara->oy); m_filepara->transparent = false; break; - case F_GIF: gif_load(m_filepara); break; - case F_SVG: svg_load(m_filepara); break; + case F_PNG: png_load(m_filepara, m_conf.background); + break; + case F_JPEG: m_filepara->pic_buffer = jpeg_load(m_filepara->file, &m_filepara->ox, &m_filepara->oy, m_filepara->max_x, m_filepara->max_y); + break; + case F_BMP: m_filepara->pic_buffer = bmp_load(m_filepara->file, &m_filepara->ox, &m_filepara->oy); + break; + case F_GIF: gif_load(m_filepara); + break; + case F_SVG: svg_load(m_filepara); + break; } - - if(m_filepara->pic_buffer != NULL) - resizePic(); } void ePicLoad::decodeThumb() { - eDebug("[ePicLoad] get Thumbnail... %s",m_filepara->file); + eDebug("[ePicLoad] get Thumbnail... %s", m_filepara->file); bool exif_thumbnail = false; bool cachefile_found = false; std::string cachefile = ""; std::string cachedir = "/.Thumbnails"; - if(m_filepara->id == F_JPEG) + getExif(m_filepara->file, m_filepara->id, 1); + if (m_exif && m_exif->m_exifinfo->IsExif) { - Cexif *exif = new Cexif; - if(exif->DecodeExif(m_filepara->file, 1)) + if (m_exif->m_exifinfo->Thumnailstate == 2) { - if(exif->m_exifinfo->IsExif) - { - if(exif->m_exifinfo->Thumnailstate==2) - { - free(m_filepara->file); - m_filepara->file = strdup(THUMBNAILTMPFILE); - exif_thumbnail = true; - eDebug("[ePicLoad] Exif Thumbnail found"); - } - m_filepara->addExifInfo(exif->m_exifinfo->CameraMake); - m_filepara->addExifInfo(exif->m_exifinfo->CameraModel); - m_filepara->addExifInfo(exif->m_exifinfo->DateTime); - char buf[20]; - snprintf(buf, 20, "%d x %d", exif->m_exifinfo->Width, exif->m_exifinfo->Height); - m_filepara->addExifInfo(buf); - } - exif->ClearExif(); + free(m_filepara->file); + m_filepara->file = strdup(THUMBNAILTMPFILE); + m_filepara->id = F_JPEG; // imbedded thumbnail seem to be jpeg + exif_thumbnail = true; + eDebug("[ePicLoad] decodeThumb: Exif Thumbnail found"); } - delete exif; + //else + // eDebug("[ePicLoad] decodeThumb: NO Exif Thumbnail found"); + m_filepara->addExifInfo(m_exif->m_exifinfo->CameraMake); + m_filepara->addExifInfo(m_exif->m_exifinfo->CameraModel); + m_filepara->addExifInfo(m_exif->m_exifinfo->DateTime); + char buf[20]; + snprintf(buf, 20, "%d x %d", m_exif->m_exifinfo->Width, m_exif->m_exifinfo->Height); + m_filepara->addExifInfo(buf); } + else + eDebug("[ePicLoad] decodeThumb: NO Exif info"); - if((! exif_thumbnail) && m_conf.usecache) + if (!exif_thumbnail && m_conf.usecache) { - if(FILE *f=fopen(m_filepara->file, "rb")) + if (FILE *f = fopen(m_filepara->file, "rb")) { int c; - int count = 1024*100; - unsigned long crc32 = 0; - char crcstr[16];*crcstr=0; + int count = 1024*100; // get checksum data out of max 100kB + uint32_t crc32 = 0; + char crcstr[9]; + *crcstr = 0; - while ((c=getc(f))!=EOF) - { + while (count-- > 0 && (c = getc(f)) != EOF) crc32 = crc32_table[((crc32) ^ (c)) & 0xFF] ^ ((crc32) >> 8); - if(--count < 0) break; - } fclose(f); crc32 = ~crc32; -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wformat-truncation" - snprintf(crcstr, 16, "%08lX", crc32); -#pragma GCC diagnostic pop + sprintf(crcstr, "%08X", crc32); cachedir = m_filepara->file; size_t pos = cachedir.find_last_of("/"); @@ -1004,38 +862,44 @@ void ePicLoad::decodeThumb() cachedir = cachedir.substr(0, pos) + "/.Thumbnails"; cachefile = cachedir + std::string("/pc_") + crcstr; - if(!access(cachefile.c_str(), R_OK)) + if (!access(cachefile.c_str(), R_OK)) { cachefile_found = true; free(m_filepara->file); m_filepara->file = strdup(cachefile.c_str()); m_filepara->id = F_JPEG; - eDebug("[ePicLoad] Cache File found"); + eDebug("[ePicLoad] Cache File %s found", cachefile.c_str()); } } } - switch(m_filepara->id) + switch (m_filepara->id) { - case F_PNG: png_load(m_filepara, m_conf.background); break; - case F_JPEG: m_filepara->pic_buffer = jpeg_load(m_filepara->file, &m_filepara->ox, &m_filepara->oy, m_filepara->max_x, m_filepara->max_y); break; - case F_BMP: m_filepara->pic_buffer = bmp_load(m_filepara->file, &m_filepara->ox, &m_filepara->oy); break; - case F_GIF: gif_load(m_filepara); break; - case F_SVG: svg_load(m_filepara); break; + case F_PNG: png_load(m_filepara, m_conf.background, true); + break; + case F_JPEG: m_filepara->pic_buffer = jpeg_load(m_filepara->file, &m_filepara->ox, &m_filepara->oy, m_filepara->max_x, m_filepara->max_y); + break; + case F_BMP: m_filepara->pic_buffer = bmp_load(m_filepara->file, &m_filepara->ox, &m_filepara->oy); + break; + case F_GIF: gif_load(m_filepara, true); + break; + case F_SVG: svg_load(m_filepara, true); + break; } + //eDebug("[ePicLoad] getThumb picture loaded %s", m_filepara->file); - if(exif_thumbnail) + if (exif_thumbnail) ::unlink(THUMBNAILTMPFILE); - if(m_filepara->pic_buffer != NULL) + if (m_filepara->pic_buffer != NULL) { - //save cachefile - if(m_conf.usecache && (! exif_thumbnail) && (! cachefile_found)) + // Save cachefile + if (m_conf.usecache && !exif_thumbnail && !cachefile_found) { - if(access(cachedir.c_str(), R_OK)) + if (access(cachedir.c_str(), R_OK)) ::mkdir(cachedir.c_str(), 0755); - //resize for Thumbnail + // Resize for Thumbnail int imx, imy; if (m_filepara->ox <= m_filepara->oy) { @@ -1048,68 +912,15 @@ void ePicLoad::decodeThumb() imy = (int)( (m_conf.thumbnailsize * ((double)m_filepara->oy)) / ((double)m_filepara->ox) ); } - if (m_filepara->bits == 8) - m_filepara->pic_buffer = simple_resize_8(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); - else - m_filepara->pic_buffer = color_resize(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); - + // eDebug("[ePicLoad] getThumb resize from %dx%d to %dx%d", m_filepara->ox, m_filepara->oy, imx, imy); + m_filepara->pic_buffer = color_resize(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); m_filepara->ox = imx; m_filepara->oy = imy; - if (m_filepara->bits == 8) - { - unsigned char * tmp = new unsigned char [m_filepara->ox * m_filepara->oy * 3]; - if(tmp) - { - if(!convert_8Bit_to_24Bit(m_filepara, tmp)) - { - if(jpeg_save(cachefile.c_str(), m_filepara->ox, m_filepara->oy, tmp)) - eDebug("[ePicLoad] error saving cachefile"); - } - else - eDebug("[ePicLoad] error saving cachefile"); - delete [] tmp; - } - else - eDebug("[ePicLoad] Error malloc"); - } - else - if(jpeg_save(cachefile.c_str(), m_filepara->ox, m_filepara->oy, m_filepara->pic_buffer)) - eDebug("[ePicLoad] error saving cachefile"); + if (jpeg_save(cachefile.c_str(), m_filepara->ox, m_filepara->oy, m_filepara->pic_buffer)) + eDebug("[ePicLoad] getThumb: error saving cachefile"); } - resizePic(); - } -} - -void ePicLoad::resizePic() -{ - int imx, imy; - - if (m_conf.aspect_ratio == 0) // do not keep aspect ration but just fill the destination area - { - imx = m_filepara->max_x; - imy = m_filepara->max_y; - } - else if ((m_conf.aspect_ratio * m_filepara->oy * m_filepara->max_x / m_filepara->ox) <= m_filepara->max_y) - { - imx = m_filepara->max_x; - imy = (int)(m_conf.aspect_ratio * m_filepara->oy * m_filepara->max_x / m_filepara->ox); } - else - { - imx = (int)((1.0/m_conf.aspect_ratio) * m_filepara->ox * m_filepara->max_y / m_filepara->oy); - imy = m_filepara->max_y; - } - - if (m_filepara->bits == 8) - m_filepara->pic_buffer = simple_resize_8(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); - else if (m_conf.resizetype) - m_filepara->pic_buffer = color_resize(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); - else - m_filepara->pic_buffer = simple_resize_24(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); - - m_filepara->ox = imx; - m_filepara->oy = imy; } void ePicLoad::gotMessage(const Message &msg) @@ -1130,8 +941,11 @@ void ePicLoad::gotMessage(const Message &msg) break; case Message::decode_finished: // called from main thread //eDebug("[ePicLoad] decode finished... %s", m_filepara->file); - if((m_filepara != NULL) && (m_filepara->callback)) + if(m_filepara->callback) + { + eDebug("[ePicLoad] picinfo... %s", m_filepara->picinfo.c_str()); PictureData(m_filepara->picinfo.c_str()); + } else { if(m_filepara != NULL) @@ -1139,11 +953,13 @@ void ePicLoad::gotMessage(const Message &msg) delete m_filepara; m_filepara = NULL; } + if (m_exif != NULL) { + m_exif->ClearExif(); + delete m_exif; + m_exif = NULL; + } } break; - case Message::decode_error: - msg_main.send(Message(Message::decode_finished)); - break; default: eDebug("[ePicLoad] unhandled thread message"); } @@ -1163,80 +979,42 @@ int ePicLoad::startThread(int what, const char *file, int x, int y, bool async) delete m_filepara; m_filepara = NULL; } + if (m_exif != NULL) { + m_exif->ClearExif(); + delete m_exif; + m_exif = NULL; + } - - int file_id = -1; - unsigned char id[10]; - int fd = ::open(file, O_RDONLY); - if (fd == -1) return -errno; - [[maybe_unused]] size_t ret = ::read(fd, id, 10); - ::close(fd); - - if(id[1] == 'P' && id[2] == 'N' && id[3] == 'G') file_id = F_PNG; - else if(id[6] == 'J' && id[7] == 'F' && id[8] == 'I' && id[9] == 'F') file_id = F_JPEG; - else if(id[0] == 0xff && id[1] == 0xd8 && id[2] == 0xff) file_id = F_JPEG; - else if(id[0] == 'B' && id[1] == 'M' ) file_id = F_BMP; - else if(id[0] == 'G' && id[1] == 'I' && id[2] == 'F') file_id = F_GIF; - else if(id[0] == '<' && id[1] == 's' && id[2] == 'v' && id[3] == 'g') file_id = F_SVG; - else if(endsWith(file, ".svg")) file_id = F_SVG; + int file_id = getFileType(file); + if(file_id < 0) + { + eDebug("[ePicLoad] <format not supported>"); + return 1; + } m_filepara = new Cfilepara(file, file_id, getSize(file)); m_filepara->max_x = x > 0 ? x : m_conf.max_x; m_filepara->max_y = x > 0 ? y : m_conf.max_y; - if(file_id < 0 || m_filepara->max_x <= 0 || m_filepara->max_y <= 0) + if(m_filepara->max_x <= 0 || m_filepara->max_y <= 0) { - if(file_id < 0) - eDebug("[ePicLoad] <format not supported>"); - else - eDebug("[ePicLoad] <error in Para>"); - if(async) - { - msg_thread.send(Message(Message::decode_error)); - run(); - return 0; - } - delete m_filepara; m_filepara = NULL; - - if(file_id < 0) - return 2; - else - return 3; + eDebug("[ePicLoad] <error in Para>"); + return 1; } - if(async) - { - if(what==1) + + if (async) { + if(what == 1) msg_thread.send(Message(Message::decode_Pic)); else msg_thread.send(Message(Message::decode_Thumb)); run(); } else if (what == 1) - { decodePic(); - if(!m_filepara->pic_buffer) - { - // in case of memeory leak, maybe we need this - // delete m_filepara; - // m_filepara = NULL; - eDebug("[ePicLoad] <no data>"); - return 4; - } - } else - { decodeThumb(); - if(!m_filepara->pic_buffer) - { - //in case of memeory leak, maybe we need this - // delete m_filepara; - // m_filepara = NULL; - eDebug("[ePicLoad] <no data>"); - return 4; - } - } return 0; } @@ -1254,61 +1032,51 @@ PyObject *ePicLoad::getInfo(const char *filename) { ePyObject list; - Cexif *exif = new Cexif; - if(exif->DecodeExif(filename)) + // FIXME : m_filepara destroyed by getData. Need refactor this but plugins rely in it :( + getExif(filename, m_filepara ? m_filepara->id : -1); + if(m_exif && m_exif->m_exifinfo->IsExif) { - if(exif->m_exifinfo->IsExif) - { - char tmp[256]; - int pos=0; - list = PyList_New(23); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(filename)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->Version)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->CameraMake)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->CameraModel)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->DateTime)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromFormat("%d x %d", exif->m_exifinfo->Width, exif->m_exifinfo->Height)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->FlashUsed)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->Orientation)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->Comments)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->MeteringMode)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->ExposureProgram)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->LightSource)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromFormat("%d", exif->m_exifinfo->CompressionLevel)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromFormat("%d", exif->m_exifinfo->ISOequivalent)); - sprintf(tmp, "%.2f", exif->m_exifinfo->Xresolution); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); - sprintf(tmp, "%.2f", exif->m_exifinfo->Yresolution); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(exif->m_exifinfo->ResolutionUnit)); - sprintf(tmp, "%.2f", exif->m_exifinfo->Brightness); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); - sprintf(tmp, "%.5f sec.", exif->m_exifinfo->ExposureTime); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); - sprintf(tmp, "%.5f", exif->m_exifinfo->ExposureBias); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); - sprintf(tmp, "%.5f", exif->m_exifinfo->Distance); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); - sprintf(tmp, "%.5f", exif->m_exifinfo->CCDWidth); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); - sprintf(tmp, "%.2f", exif->m_exifinfo->ApertureFNumber); - PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); - } - else - { - list = PyList_New(2); - PyList_SET_ITEM(list, 0, PyUnicode_FromString(filename)); - PyList_SET_ITEM(list, 1, PyUnicode_FromString(exif->m_szLastError)); - } - exif->ClearExif(); + char tmp[256]; + int pos = 0; + list = PyList_New(23); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(filename)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->Version)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->CameraMake)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->CameraModel)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->DateTime)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromFormat("%d x %d", m_exif->m_exifinfo->Width, m_exif->m_exifinfo->Height)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->FlashUsed)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->Orientation)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->Comments)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->MeteringMode)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->ExposureProgram)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->LightSource)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromFormat("%d", m_exif->m_exifinfo->CompressionLevel)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromFormat("%d", m_exif->m_exifinfo->ISOequivalent)); + snprintf(tmp, sizeof(tmp) - 1, "%.2f", m_exif->m_exifinfo->Xresolution); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); + snprintf(tmp, sizeof(tmp) - 1, "%.2f", m_exif->m_exifinfo->Yresolution); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(m_exif->m_exifinfo->ResolutionUnit)); + snprintf(tmp, sizeof(tmp) - 1, "%.2f", m_exif->m_exifinfo->Brightness); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); + snprintf(tmp, sizeof(tmp) - 1, "%.5f sec.", m_exif->m_exifinfo->ExposureTime); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); + snprintf(tmp, sizeof(tmp) - 1, "%.5f", m_exif->m_exifinfo->ExposureBias); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); + snprintf(tmp, sizeof(tmp) - 1, "%.5f", m_exif->m_exifinfo->Distance); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); + snprintf(tmp, sizeof(tmp) - 1, "%.5f", m_exif->m_exifinfo->CCDWidth); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); + snprintf(tmp, sizeof(tmp) - 1, "%.2f", m_exif->m_exifinfo->ApertureFNumber); + PyList_SET_ITEM(list, pos++, PyUnicode_FromString(tmp)); } else { list = PyList_New(2); PyList_SET_ITEM(list, 0, PyUnicode_FromString(filename)); - PyList_SET_ITEM(list, 1, PyUnicode_FromString(exif->m_szLastError)); + PyList_SET_ITEM(list, 1, PyUnicode_FromString(m_exif->m_szLastError)); } - delete exif; return list ? (PyObject*)list : (PyObject*)PyList_New(0); } @@ -1328,7 +1096,7 @@ int ePicLoad::getData(ePtr<gPixmap> &result) { if (m_filepara == NULL) { - eDebug("[ePicLoad] - Weird situation, I wasn't decoding anything!"); + eDebug("[ePicLoad] Weird situation, was not decoding anything!"); result = 0; return 1; } @@ -1337,165 +1105,283 @@ int ePicLoad::getData(ePtr<gPixmap> &result) delete m_filepara; m_filepara = NULL; result = 0; + if (m_exif != NULL) { + m_exif->ClearExif(); + delete m_exif; + m_exif = NULL; + } return 0; } - if (m_filepara->bits == 8) + result = new gPixmap(m_filepara->max_x, m_filepara->max_y, m_filepara->bits == 8 ? 8 : 32, + NULL, m_filepara->bits == 8 ? gPixmap::accelAlways : gPixmap::accelAuto); + gUnmanagedSurface *surface = result->surface; + + // original image : ox, oy + // surface size : max_x, max_y + // after aspect calc : scrx, scry + // center image : xoff, yoff + int scrx, scry; // Aspect ratio calculation + int orientation = m_conf.auto_orientation ? (m_exif && m_exif->m_exifinfo->Orient ? m_exif->m_exifinfo->Orient : 1) : 1; + if ((m_conf.aspect_ratio > -0.1) && (m_conf.aspect_ratio < 0.1)) // do not keep aspect ratio but just fill the destination area { - result=new gPixmap(eSize(m_filepara->max_x, m_filepara->max_y), 8, gPixmap::accelAlways); - gUnmanagedSurface *surface = result->surface; - surface->transparent = m_filepara->transparent; - surface->clut.data = m_filepara->palette; - surface->clut.colors = m_filepara->palette_size; - m_filepara->palette = NULL; // transfer ownership - int o_y=0, u_y=0, v_x=0, h_x=0; - int extra_stride = surface->stride - surface->x; - - unsigned char *tmp_buffer=((unsigned char *)(surface->data)); - unsigned char *origin = m_filepara->pic_buffer; - - gColor background; - gRGB bg(m_conf.background); - background = surface->clut.findColor(bg); - unsigned char alpha = (background >> 24) & 0xFF; - - if(m_filepara->oy < m_filepara->max_y) + scrx = m_filepara->max_x; + scry = m_filepara->max_y; + } + else if (orientation < 5) { + if ((m_conf.aspect_ratio * m_filepara->oy * m_filepara->max_x / m_filepara->ox) <= m_filepara->max_y) { - o_y = (m_filepara->max_y - m_filepara->oy) / 2; - u_y = m_filepara->max_y - m_filepara->oy - o_y; - if (alpha < 255) - surface->transparent = true; + scrx = m_filepara->max_x; + scry = (int)(m_conf.aspect_ratio * m_filepara->oy * m_filepara->max_x / m_filepara->ox); } - if(m_filepara->ox < m_filepara->max_x) + else { - v_x = (m_filepara->max_x - m_filepara->ox) / 2; - h_x = m_filepara->max_x - m_filepara->ox - v_x; - if (alpha < 255) - surface->transparent = true; + scrx = (int)((1.0/m_conf.aspect_ratio) * m_filepara->ox * m_filepara->max_y / m_filepara->oy); + scry = m_filepara->max_y; } - - if(m_filepara->oy < m_filepara->max_y) + } + else { + if ((m_conf.aspect_ratio * m_filepara->ox * m_filepara->max_x / m_filepara->oy) <= m_filepara->max_y) { - memset(tmp_buffer, background, o_y * surface->stride); - tmp_buffer += o_y * surface->stride; + scrx = m_filepara->max_x; + scry = (int)(m_conf.aspect_ratio * m_filepara->ox * m_filepara->max_x / m_filepara->oy); } - - for(int a = m_filepara->oy; a > 0; --a) + else { - if(m_filepara->ox < m_filepara->max_x) + scrx = (int)((1.0/m_conf.aspect_ratio) * m_filepara->oy * m_filepara->max_y / m_filepara->ox); + scry = m_filepara->max_y; + } + } + float xscale = (float)(orientation < 5 ? m_filepara->ox : m_filepara->oy) / (float)scrx; // scale factor as result of screen and image size + float yscale = (float)(orientation < 5 ? m_filepara->oy : m_filepara->ox) / (float)scry; + int xoff = (m_filepara->max_x - scrx) / 2; // borders as result of screen and image aspect + int yoff = (m_filepara->max_y - scry) / 2; + //eDebug("[getData] ox=%d oy=%d max_x=%d max_y=%d scrx=%d scry=%d xoff=%d yoff=%d xscale=%f yscale=%f aspect=%f bits=%d orientation=%d", m_filepara->ox, m_filepara->oy, m_filepara->max_x, m_filepara->max_y, scrx, scry, xoff, yoff, xscale, yscale, m_conf.aspect_ratio, m_filepara->bits, orientation); + + unsigned char *tmp_buffer = ((unsigned char *)(surface->data)); + unsigned char *origin = m_filepara->pic_buffer; + if (m_filepara->bits == 8) { + surface->clut.data = m_filepara->palette; + surface->clut.colors = m_filepara->palette_size; + m_filepara->palette = NULL; // transfer ownership + } + + // fill borders with background color + if (xoff != 0 || yoff != 0) { + unsigned int background; + if (m_filepara->bits == 8) { + gRGB bg(m_conf.background); + background = surface->clut.findColor(bg); + } + else { + background = m_conf.background; + } + if (yoff != 0) { + if (m_filepara->bits == 8) { - memset(tmp_buffer, background, v_x); - tmp_buffer += v_x; + unsigned char* row_buffer; + row_buffer = (unsigned char *) tmp_buffer; + for (int x = 0; x < m_filepara->max_x; ++x) // fill first line + *row_buffer++ = background; } - - memcpy(tmp_buffer, origin, m_filepara->ox); - tmp_buffer += m_filepara->ox; - origin += m_filepara->ox; - - if(m_filepara->ox < m_filepara->max_x) + else { - memset(tmp_buffer, background, h_x); - tmp_buffer += h_x; + unsigned int* row_buffer; + row_buffer = (unsigned int *) tmp_buffer; + for (int x = 0; x < m_filepara->max_x; ++x) // fill first line + *row_buffer++ = background; } - - - tmp_buffer += extra_stride; + int y; + #pragma omp parallel for + for (y = 1; y < yoff; ++y) // copy from first line + memcpy(tmp_buffer + y*surface->stride, tmp_buffer, + m_filepara->max_x * surface->bypp); + #pragma omp parallel for + for (y = yoff + scry; y < m_filepara->max_y; ++y) + memcpy(tmp_buffer + y * surface->stride, tmp_buffer, + m_filepara->max_x * surface->bypp); } - - if(m_filepara->oy < m_filepara->max_y) - { - memset(tmp_buffer, background, u_y * surface->stride); + if (xoff != 0) { + if (m_filepara->bits == 8) + { + unsigned char* row_buffer = (unsigned char *) (tmp_buffer + yoff * surface->stride); + int x; + for (x = 0; x < xoff; ++x) // fill left side of first line + *row_buffer++ = background; + row_buffer += scrx; + for (x = xoff + scrx; x < m_filepara->max_x; ++x) // fill right side of first line + *row_buffer++ = background; + } + else { + unsigned int* row_buffer = (unsigned int *) (tmp_buffer + yoff * surface->stride); + int x; + for (x = 0; x < xoff; ++x) // fill left side of first line + *row_buffer++ = background; + row_buffer += scrx; + for (x = xoff + scrx; x < m_filepara->max_x; ++x) // fill right side of first line + *row_buffer++ = background; + } + #pragma omp parallel for + for (int y = yoff + 1; y < scry; ++y) { // copy from first line + memcpy(tmp_buffer + y*surface->stride, + tmp_buffer + yoff * surface->stride, + xoff * surface->bypp); + memcpy(tmp_buffer + y*surface->stride + (xoff + scrx) * surface->bypp, + tmp_buffer + yoff * surface->stride + (xoff + scrx) * surface->bypp, + (m_filepara->max_x - scrx - xoff) * surface->bypp); + } } + tmp_buffer += yoff * surface->stride + xoff * surface->bypp; } + + // Setup input image base pointers and x/y increment factors according to orientation + // 1 2 3 4 5 6 7 8 + // + // 888888 888888 88 88 8888888888 88 88 8888888888 + // 88 88 88 88 88 88 88 88 88 88 88 88 + // 8888 8888 8888 8888 88 8888888888 8888888888 88 + // 88 88 88 88 + // 88 88 888888 888888 + // + // ori ori-1 yfax xfac origin + // 0001 000 b * x b 0 + // 0010 001 b * x -b b * (x - 1) + // 0011 010 -b * x -b b * yscale * (sy - 1) * x + b * (x - 1) + // 0100 011 -b * x b b * yscale * (sy - 1) * x + // 0101 100 b b * x 0 + // 0110 101 b -b * x b * (y - 1) * x + // 0111 110 -b -b * x b * yscale * (sy - 1) + b * (y - 1) * x + // 1000 111 -b b * x b * yscale * (sy - 1) + int bpp = m_filepara->bits / 8; +#if 0 + int iyfac = ((orientation-1) & 0x2) ? -bpp : bpp; + int ixfac = (orientation & 0x2) ? -bpp : bpp; + if (orientation < 5) + iyfac *= m_filepara->ox; else - { - result=new gPixmap(eSize(m_filepara->max_x, m_filepara->max_y), 32, gPixmap::accelAuto); - gUnmanagedSurface *surface = result->surface; - surface->transparent = m_filepara->transparent; - int o_y=0, u_y=0, v_x=0, h_x=0; - - unsigned int background = m_conf.background; - unsigned char alpha = (background >> 24) & 0xFF; - unsigned char *tmp_buffer=((unsigned char *)(surface->data)); - unsigned char *origin = m_filepara->pic_buffer; - int extra_stride = surface->stride - (surface->x * surface->bypp); - - if(m_filepara->oy < m_filepara->max_y) - { - o_y = (m_filepara->max_y - m_filepara->oy) / 2; - u_y = m_filepara->max_y - m_filepara->oy - o_y; - if (alpha < 255) - surface->transparent = true; + ixfac *= m_filepara->ox; + if (((orientation-1) & 0x6) == 2) + origin += bpp * (int)(yscale * (scry - 1)) * m_filepara->ox; + if (((orientation-1) & 0x6) == 6) + origin += bpp * (int)(yscale * (scry - 1)); + if (((orientation) & 0x6) == 2) + origin += bpp * (m_filepara->ox - 1); + if (((orientation) & 0x6) == 6) + origin += bpp * (m_filepara->oy - 1) * m_filepara->ox; +#else + int ixfac; + int iyfac; + if (orientation < 5) { + if (orientation == 1 || orientation == 2) + iyfac = bpp * m_filepara->ox; // run y across rows + else { + origin += bpp * (int)(yscale * (scry - 1)) * m_filepara->ox; + iyfac = -bpp * m_filepara->ox; } - if(m_filepara->ox < m_filepara->max_x) - { - v_x = (m_filepara->max_x - m_filepara->ox) / 2; - h_x = m_filepara->max_x - m_filepara->ox - v_x; - if (alpha < 255) - surface->transparent = true; + if (orientation == 2 || orientation == 3) { + origin += bpp * (m_filepara->ox - 1); + ixfac = -bpp; } - - if(m_filepara->oy < m_filepara->max_y) - { - for (int y = o_y; y != 0; --y) - { - int* row_buffer = (int*)tmp_buffer; - for (int x = m_filepara->ox; x !=0; --x) - *row_buffer++ = background; - tmp_buffer += surface->stride; + else + ixfac = bpp; + } + else { + if (orientation == 5 || orientation == 6) + iyfac = bpp; + else { + origin += bpp * (int)(yscale * (scry - 1)); + iyfac = -bpp ; + } + if (orientation == 6 || orientation == 7) { + origin += bpp * (m_filepara->oy - 1) * m_filepara->ox; + ixfac = -bpp * m_filepara->ox; + } + else + ixfac = bpp * m_filepara->ox; + } +#endif + // Build output according to screen y by x loops + // Fill surface with image data, resize and correct for orientation on the fly + if (m_filepara->bits == 8) + { + #pragma omp parallel for + for (int y = 0; y < scry; ++y) { + const unsigned char *irow, *irowy = origin + iyfac * (int)(y * yscale); + unsigned char *srow = tmp_buffer + surface->stride * y; + float xind = 0.0; + for (int x = 0; x < scrx; ++x) { + irow = irowy + ixfac * (int)xind; + *srow++ = *irow; + xind += xscale; } } - - - for(int a = m_filepara->oy; a > 0; --a) - { - if(m_filepara->ox < m_filepara->max_x) - { - for(int b = v_x; b != 0; --b) - { - *(int*)tmp_buffer = background; - tmp_buffer += 4; + } + else // 24-bit images + { + #pragma omp parallel for + for (int y = 0; y < scry; ++y) { + const unsigned char *irow, *irowy = origin + iyfac * (int)(yscale * y); + unsigned char *srow = tmp_buffer + surface->stride * y; + float xind = 0.0; + + if (m_conf.resizetype != 1) { + // simple resizing + for (int x = 0; x < scrx; ++x) { + irow = irowy + ixfac * (int)xind; + srow[2] = irow[0]; + srow[1] = irow[1]; + srow[0] = irow[2]; + srow[3] = 0xFF; // alpha + srow += 4; + xind += xscale; } } - - for(int b = m_filepara->ox; b != 0; --b) - { - tmp_buffer[2] = *origin; - ++origin; - tmp_buffer[1] = *origin; - ++origin; - tmp_buffer[0] = *origin; - ++origin; - tmp_buffer[3] = 0xFF; // alpha - tmp_buffer += 4; - } - - if(m_filepara->ox < m_filepara->max_x) - { - for(int b = h_x; b != 0; --b) - { - *(int*)tmp_buffer = background; - tmp_buffer += 4; + else { + // color average resizing + // determine block range for resize + int yr = (int)((y+1) * yscale) - (int) (y * yscale); + if (y + yr >= scry) + yr = scry - y - 1; + for (int x = 0; x < scrx; x++) { + // determine x range for resize + int xr = (int)(xind + xscale) - (int) xind; + if (x + xr >= scrx) + xr = scrx - x - 1; + int r = 0; + int g = 0; + int b = 0; + int sq = 0; + irow = irowy + ixfac * (int)xind; + // average over all pixels in x by y block + for (int l = 0; l <= yr; l++) { + for (int k = 0; k <= xr; k++) { + r += irow[0]; + g += irow[1]; + b += irow[2]; + sq++; + irow += ixfac; + } + irow -= (xr + 1) * ixfac; // go back to starting point of this subrow + irow += iyfac; + } + srow[2] = r / sq; + srow[1] = g / sq; + srow[0] = b / sq; + srow[3] = 0xFF; // alpha + srow += 4; + xind += xscale; } } - - tmp_buffer += extra_stride; - } - - if(m_filepara->oy < m_filepara->max_y) - { - for (int y = u_y; y != 0; --y) - { - int* row_buffer = (int*)tmp_buffer; - for (int x = m_filepara->ox; x !=0; --x) - *row_buffer++ = background; - tmp_buffer += surface->stride; - } } } - delete m_filepara; + delete m_filepara; // so caller can start a new decode in background m_filepara = NULL; + if (m_exif) { + m_exif->ClearExif(); + delete m_exif; + m_exif = NULL; + } return 0; } @@ -1507,22 +1393,15 @@ RESULT ePicLoad::setPara(PyObject *val) if (PySequence_Size(val) < 7) return 0; else { - ePyObject fast = PySequence_Fast(val, ""); - int width = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 0)); - int height = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 1)); - + ePyObject fast = PySequence_Fast(val, ""); + int width = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 0)); + int height = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 1)); ePyObject pas = PySequence_Fast_GET_ITEM(fast, 2); - - #if PY_VERSION_HEX >= 0x030a0000 - double aspectRatio = PyFloat_Check(pas) ? PyFloat_AsDouble(pas) : PyLong_AsDouble(pas); - #else - double aspectRatio = PyLong_AsLong(pas); - #endif - - int as = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 3)); - bool useCache = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 4)); - int resizeType = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 5)); - const char *bg_str = PyUnicode_AsUTF8(PySequence_Fast_GET_ITEM(fast, 6)); + double aspectRatio = PyFloat_Check(pas) ? PyFloat_AsDouble(pas) : PyLong_AsDouble(pas); + int as = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 3)); + bool useCache = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 4)); + int resizeType = PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 5)); + const char *bg_str = PyUnicode_AsUTF8(PySequence_Fast_GET_ITEM(fast, 6)); bool auto_orientation = (PySequence_Size(val) > 7) ? PyLong_AsLong(PySequence_Fast_GET_ITEM(fast, 7)) : 0; return setPara(width, height, aspectRatio, as, useCache, resizeType, bg_str, auto_orientation); } @@ -1538,8 +1417,8 @@ RESULT ePicLoad::setPara(int width, int height, double aspectRatio, int as, bool m_conf.resizetype = resizeType; if(bg_str[0] == '#' && strlen(bg_str)==9) - m_conf.background = strtoul(bg_str+1, NULL, 16); - eDebug("[ePicLoad] setPara max-X=%d max-Y=%d aspect_ratio=%lf cache=%d resize=%d bg=#%08X", + m_conf.background = strtoul(bg_str+1, NULL, 16) | 0xFF000000; + eDebug("[ePicLoad] setPara max-X=%d max-Y=%d aspect_ratio=%lf cache=%d resize=%d bg=#%08X auto_orient=%d", m_conf.max_x, m_conf.max_y, m_conf.aspect_ratio, (int)m_conf.usecache, (int)m_conf.resizetype, m_conf.background, m_conf.auto_orientation); return 1; @@ -1572,10 +1451,10 @@ int ePicLoad::getFileType(const char * file) //------------------------------------------------------------------------------------ //for old plugins -SWIG_VOID(int) loadPic(ePtr<gPixmap> &result, std::string filename, int x, int y, int aspect, int resize_mode, int rotate, unsigned int background, std::string cachefile) +SWIG_VOID(int) loadPic(ePtr<gPixmap> &result, std::string filename, int x, int y, int aspect, int resize_mode, int rotate, int background, std::string cachefile) { long asp1, asp2; - eDebug("[ePicLoad] deprecated loadPic function used!!! please use the non blocking version! you can see demo code in Pictureplayer plugin... this function is removed in the near future!"); + eDebug("[loadPic] deprecated loadPic function used!!! please use the non blocking version! you can see demo code in Pictureplayer plugin... this function is removed in the near future!"); switch(aspect) { @@ -1607,4 +1486,3 @@ SWIG_VOID(int) loadPic(ePtr<gPixmap> &result, std::string filename, int x, int y return 0; } - diff --git a/lib/gdi/picload.h b/lib/gdi/picload.h index 5844bdaca82..85114c1ee1c 100644 --- a/lib/gdi/picload.h +++ b/lib/gdi/picload.h @@ -23,7 +23,6 @@ struct Cfilepara int oy; std::string picinfo; bool callback; - bool transparent; Cfilepara(const char *mfile, int mid, std::string size): file(strdup(mfile)), @@ -32,19 +31,13 @@ struct Cfilepara palette_size(0), bits(24), id(mid), - max_x(0), - max_y(0), - ox(0), - oy(0), - picinfo(mfile), - callback(true), - transparent(true) + picinfo(""), + callback(true) { if (is_valid_utf8(mfile)) picinfo += std::string(mfile) + "\n" + size + "\n"; else picinfo += "\n" + size + "\n"; - picinfo += "\n" + size + "\n"; } ~Cfilepara() @@ -115,11 +108,8 @@ class ePicLoad: public eMainloop, public eThread, public sigc::trackable, public { DECLARE_REF(ePicLoad); - enum{ F_PNG, F_JPEG, F_BMP, F_GIF, F_SVG}; - void decodePic(); void decodeThumb(); - void resizePic(); Cfilepara *m_filepara; Cexif *m_exif; @@ -130,7 +120,7 @@ class ePicLoad: public eMainloop, public eThread, public sigc::trackable, public int max_x; int max_y; double aspect_ratio; - unsigned int background; + int background; bool resizetype; bool usecache; bool auto_orientation; @@ -147,7 +137,6 @@ class ePicLoad: public eMainloop, public eThread, public sigc::trackable, public decode_Pic, decode_Thumb, decode_finished, - decode_error, quit }; Message(int type=0) @@ -186,6 +175,6 @@ class ePicLoad: public eMainloop, public eThread, public sigc::trackable, public }; //for old plugins -SWIG_VOID(int) loadPic(ePtr<gPixmap> &SWIG_OUTPUT, std::string filename, int x, int y, int aspect, int resize_mode=0, int rotate=0, unsigned int background=0, std::string cachefile=""); +SWIG_VOID(int) loadPic(ePtr<gPixmap> &SWIG_OUTPUT, std::string filename, int x, int y, int aspect, int resize_mode=0, int rotate=0, int background=0, std::string cachefile=""); #endif // __picload_h__ From ea1148fcc5f4c5e76d2380041a50fc7648352c41 Mon Sep 17 00:00:00 2001 From: Tony Whalley <tonywhalley@t-online.de> Date: Wed, 3 Jul 2024 15:16:09 +0200 Subject: [PATCH 59/62] [gpixmap] Dimitar/OpenATV handle transparency --- lib/gdi/gpixmap.cpp | 68 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 54 insertions(+), 14 deletions(-) diff --git a/lib/gdi/gpixmap.cpp b/lib/gdi/gpixmap.cpp index 4ec0f1b7eba..885954bd78f 100644 --- a/lib/gdi/gpixmap.cpp +++ b/lib/gdi/gpixmap.cpp @@ -471,10 +471,10 @@ void gPixmap::drawRectangle(const gRegion ®ion, const eRect &area, const gRGB if(!direction) gradientBuf = createGradientBuffer2(gradientSize, backgroundColor, backgroundColor); - else if(gradientColors.at(1) == gradientColors.at(2)) - gradientBuf = createGradientBuffer2(gradientSize, gradientColors.at(0), gradientColors.at(1)); + else if(gradientColors.size() == 2 || gradientColors.at(1) == gradientColors.at(2)) + gradientBuf = createGradientBuffer2(gradientSize, gradientColors.at(0), gradientColors.at(1)); else - gradientBuf = createGradientBuffer3(gradientSize, gradientColors); + gradientBuf = createGradientBuffer3(gradientSize, gradientColors); CornerData cornerData(radius, edges, area.width(), area.height(), borderWidth, borderCol); @@ -1953,7 +1953,7 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i } #ifdef GPIXMAP_DEBUG s.stop(); - eDebug("[gPixmap] [BLITBENCH] CPU scale blit (%d bytes) took %u us", srcarea.surface() * src.surface->bypp, s.elapsed_us()); + eDebug("[gPixmap] [BLITBENCH] CPU scale blit %dx%d transparent %d (%d bytes) took %u us", pos.width(), pos.height(), src.surface->transparent, srcarea.surface() * src.surface->bypp, s.elapsed_us()); #ifdef GPIXMAP_CHECK_THRESHOLD if (accel) { @@ -2127,7 +2127,45 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i uint32_t *srcp=(uint32_t*)srcptr; uint16_t *dstp=(uint16_t*)dstptr; - if (flag & blitAlphaTest) + if (flag & blitAlphaBlend) + { + while (width--) + { + if (!((*srcp) & 0xFF000000)) + { + srcp++; + dstp++; + } + else + { + gRGB icol = *srcp++; +#if BYTE_ORDER == LITTLE_ENDIAN + uint32_t jcol = bswap_16(*dstp); +#else + uint32_t jcol = *dstp; +#endif + int bg_b = (jcol >> 8) & 0xF8; + int bg_g = (jcol >> 3) & 0xFC; + int bg_r = (jcol << 3) & 0xF8; + + int a = icol.a; + int r = icol.r; + int g = icol.g; + int b = icol.b; + + r = ((r - bg_r) * a) / 255 + bg_r; + g = ((g - bg_g) * a) / 255 + bg_g; + b = ((b - bg_b) * a) / 255 + bg_b; + +#if BYTE_ORDER == LITTLE_ENDIAN + *dstp++ = bswap_16((b >> 3) << 11 | (g >> 2) << 5 | r >> 3); +#else + *dstp++ = (b >> 3) << 11 | (g >> 2) << 5 | r >> 3; +#endif + } + } + } + else if (flag & blitAlphaTest) { while (width--) { @@ -2135,7 +2173,8 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i { ++srcp; ++dstp; - } else + } + else { uint32_t icol = *srcp++; #if BYTE_ORDER == LITTLE_ENDIAN @@ -2165,7 +2204,7 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i eWarning("[gPixmap] cannot blit %dbpp from %dbpp", surface->bpp, src.surface->bpp); #ifdef GPIXMAP_DEBUG s.stop(); - eDebug("[gPixmap] [BLITBENCH] cpu blit (%d bytes) took %u us", srcarea.surface() * src.surface->bypp, s.elapsed_us()); + eDebug("[gPixmap] [BLITBENCH] cpu blit %dx%d transparent %d (%d bytes) took %u us", pos.width(), pos.height(), src.surface->transparent, srcarea.surface() * src.surface->bypp, s.elapsed_us()); #ifdef GPIXMAP_CHECK_THRESHOLD if (accel) { @@ -2296,12 +2335,12 @@ void gPixmap::line(const gRegion &clip, ePoint start, ePoint dst, unsigned int c int lasthit = 0; for(i=1; i<=dx; i++) { - /* i don't like this clipping loop, but the only */ - /* other choice i see is to calculate the intersections */ - /* before iterating through the pixels. */ + /* i don't like this clipping loop, but the only */ + /* other choice i see is to calculate the intersections */ + /* before iterating through the pixels. */ - /* one could optimize this because of the ordering */ - /* of the bands. */ + /* one could optimize this because of the ordering */ + /* of the bands. */ lasthit = 0; int a = lasthit; @@ -2314,7 +2353,8 @@ void gPixmap::line(const gRegion &clip, ePoint start, ePoint dst, unsigned int c lasthit = a = 0; else goto fail; - } else if (!clip.rects[a].contains(x, y)) + } + else if (!clip.rects[a].contains(x, y)) { do { @@ -2356,7 +2396,7 @@ void gPixmap::line(const gRegion &clip, ePoint start, ePoint dst, unsigned int c gColor gPalette::findColor(const gRGB rgb) const { - /* grayscale? */ + /* grayscale? */ if (!data) return (rgb.r + rgb.g + rgb.b) / 3; From 49341214332733edd06a329a44ca219002657ff5 Mon Sep 17 00:00:00 2001 From: Tony Whalley <tonywhalley@t-online.de> Date: Thu, 4 Jul 2024 14:12:46 +0200 Subject: [PATCH 60/62] [gpixmap] - correct offsets in display --- lib/gdi/gpixmap.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/gdi/gpixmap.cpp b/lib/gdi/gpixmap.cpp index 885954bd78f..0d7b1d6f1e0 100644 --- a/lib/gdi/gpixmap.cpp +++ b/lib/gdi/gpixmap.cpp @@ -1748,7 +1748,7 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i // eDebug("[gPixmap] srcarea after scale: %d %d %d %d", // srcarea.x(), srcarea.y(), srcarea.width(), srcarea.height()); - if (cornerRadius && surface->bpp == 32) + if (cornerRadius && surface->bpp == 32) { if (src.surface->bpp == 32) { @@ -2115,8 +2115,8 @@ void gPixmap::blit(const gPixmap &src, const eRect &_pos, const gRegion &clip, i uint8_t *srcptr=(uint8_t*)src.surface->data; uint8_t *dstptr=(uint8_t*)surface->data; - srcptr+=srcarea.left()+srcarea.top()*src.surface->stride; - dstptr+=area.left()+area.top()*surface->stride; + srcptr += srcarea.left() * src.surface->bypp + srcarea.top() * src.surface->stride; + dstptr += area.left() * surface->bypp + area.top() * surface->stride; if (flag & blitAlphaBlend) eWarning("[gPixmap] ignore unsupported 32bpp -> 16bpp alphablend!"); From bb5ff15fe69a4e504c974aacb47df86191d10969 Mon Sep 17 00:00:00 2001 From: Tony Whalley <tonywhalley@t-online.de> Date: Thu, 4 Jul 2024 14:19:08 +0200 Subject: [PATCH 61/62] [picload] Dimitar/OpenATV handle display rgb png (dreambox] --- lib/gdi/picload.cpp | 295 ++++++++++++++++++++++++++++++++++++++------ lib/gdi/picload.h | 12 +- 2 files changed, 269 insertions(+), 38 deletions(-) diff --git a/lib/gdi/picload.cpp b/lib/gdi/picload.cpp index 08706ad32ef..8833ab95b5a 100644 --- a/lib/gdi/picload.cpp +++ b/lib/gdi/picload.cpp @@ -4,6 +4,8 @@ #include <lib/base/cfile.h> #include <lib/base/estring.h> +#include <lib/base/wrappers.h> +#include <lib/gdi/picexif.h> #include <lib/gdi/picload.h> extern "C" { @@ -31,6 +33,76 @@ static std::string getSize(const char* file) return std::to_string((long)(s.st_size / 1024)) + " kB"; } +static int convert_8Bit_to_24Bit(Cfilepara *filepara, unsigned char *dest) +{ + if( (!filepara) || (!dest)) + return -1; + + unsigned char *src = filepara->pic_buffer; + gRGB * palette = filepara->palette; + int pixel_cnt = filepara->ox * filepara->oy; + + if( (!src) || (!palette) || (!pixel_cnt)) + return -1; + + for( int i = 0; i < pixel_cnt; i++) + { + *dest++ = palette[*src].r; + *dest++ = palette[*src].g; + *dest++ = palette[*src++].b; + } + return 0; +} + +static unsigned char *simple_resize_24(unsigned char *orgin, int ox, int oy, int dx, int dy) +{ + unsigned char *cr = new unsigned char[dx * dy * 3]; + if (cr == NULL) + { + eDebug("[ePicLoad] Error malloc"); + return orgin; + } + const int stride = 3 * dx; + #pragma omp parallel for + for (int j = 0; j < dy; ++j) + { + unsigned char* k = cr + (j * stride); + const unsigned char* p = orgin + (j * oy / dy * ox) * 3; + for (int i = 0; i < dx; i++) + { + const unsigned char* ip = p + (i * ox / dx) * 3; + *k++ = ip[0]; + *k++ = ip[1]; + *k++ = ip[2]; + } + } + delete [] orgin; + return cr; +} + +static unsigned char *simple_resize_8(unsigned char *orgin, int ox, int oy, int dx, int dy) +{ + unsigned char* cr = new unsigned char[dx * dy]; + if (cr == NULL) + { + eDebug("[ePicLoad] Error malloc"); + return(orgin); + } + const int stride = dx; + #pragma omp parallel for + for (int j = 0; j < dy; ++j) + { + unsigned char* k = cr + (j * stride); + const unsigned char* p = orgin + (j * oy / dy * ox); + for (int i = 0; i < dx; i++) + { + *k++ = p[i * ox / dx]; + } + } + delete [] orgin; + return cr; +} + static unsigned char *color_resize(unsigned char * orgin, int ox, int oy, int dx, int dy) { unsigned char* cr = new unsigned char[dx * dy * 3]; @@ -297,16 +369,21 @@ static void png_load(Cfilepara* filepara, int background, bool forceRGB=false) png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); if (png_ptr == NULL) + { + eDebug("[ePicLoad] Error png_create_read_struct"); return; + } png_infop info_ptr = png_create_info_struct(png_ptr); if (info_ptr == NULL) { + eDebug("[ePicLoad] Error png_create_info_struct"); png_destroy_read_struct(&png_ptr, (png_infopp)NULL, (png_infopp)NULL); return; } if (setjmp(png_jmpbuf(png_ptr))) { + eDebug("[ePicLoad] Error setjmp"); png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); return; } @@ -315,28 +392,53 @@ static void png_load(Cfilepara* filepara, int background, bool forceRGB=false) png_read_info(png_ptr, info_ptr); png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_type, NULL, NULL); + int pixel_cnt = width * height; + + filepara->ox = width; + filepara->oy = height; + + // This is a hack to support 8bit pngs with transparency since the detection is not really correct for some reason.... + if (color_type == PNG_COLOR_TYPE_PALETTE && bit_depth == 8) { + color_type = PNG_COLOR_TYPE_RGBA; + } + + + if (color_type == PNG_COLOR_TYPE_RGBA || color_type == PNG_COLOR_TYPE_GA) { + filepara->transparent = true; + filepara->bits = 32; // Here set bits to 32 explicitly to simulate alpha transparency if it is not explicitly set + } + else + { + png_bytep trans_alpha = NULL; + int num_trans = 0; + png_color_16p trans_color = NULL; - if (!forceRGB && (color_type == PNG_COLOR_TYPE_GRAY || color_type & PNG_COLOR_MASK_PALETTE)) + png_get_tRNS(png_ptr, info_ptr, &trans_alpha, &num_trans, &trans_color); + filepara->transparent = (trans_alpha != NULL); + } + + if ((bit_depth <= 8) && (color_type == PNG_COLOR_TYPE_GRAY || color_type & PNG_COLOR_MASK_PALETTE)) { if (bit_depth < 8) - { png_set_packing(png_ptr); - bit_depth = 8; + + unsigned char *pic_buffer = new unsigned char[pixel_cnt]; + if (!pic_buffer) + { + eDebug("[ePicLoad] Error malloc"); + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); + return; } - unsigned char *pic_buffer = new unsigned char[height * width]; - filepara->ox = width; - filepara->oy = height; - filepara->pic_buffer = pic_buffer; - filepara->bits = 8; - png_bytep *rowptr=new png_bytep[height]; - for (unsigned int i=0; i!=height; i++) + int number_passes = png_set_interlace_handling(png_ptr); + png_read_update_info(png_ptr, info_ptr); + + for (int pass = 0; pass < number_passes; pass++) { - rowptr[i]=(png_byte*)pic_buffer; - pic_buffer += width; + fbptr = (png_byte *)pic_buffer; + for (unsigned int i = 0; i < height; i++, fbptr += width) + png_read_row(png_ptr, fbptr, NULL); } - png_read_rows(png_ptr, rowptr, 0, height); - delete [] rowptr; if (png_get_valid(png_ptr, info_ptr, PNG_INFO_PLTE)) { @@ -346,30 +448,52 @@ static void png_load(Cfilepara* filepara, int background, bool forceRGB=false) filepara->palette_size = num_palette; if (num_palette) filepara->palette = new gRGB[num_palette]; - for (int i=0; i<num_palette; i++) + + for (unsigned int i = 0; i < num_palette; i++) { - filepara->palette[i].a=0; - filepara->palette[i].r=palette[i].red; - filepara->palette[i].g=palette[i].green; - filepara->palette[i].b=palette[i].blue; + filepara->palette[i].a = 0; + filepara->palette[i].r = palette[i].red; + filepara->palette[i].g = palette[i].green; + filepara->palette[i].b = palette[i].blue; } + if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) { png_byte *trans; png_get_tRNS(png_ptr, info_ptr, &trans, &num_palette, 0); - for (int i=0; i<num_palette; i++) - filepara->palette[i].a=255-trans[i]; + for (unsigned int i = 0; i < num_palette; i++) + filepara->palette[i].a = 255 - trans[i]; + } + } + else + { + int c_cnt = 1 << bit_depth; + int c_step = (256 - 1) / (c_cnt - 1); + filepara->palette_size = c_cnt; + filepara->palette = new gRGB[c_cnt]; + for (unsigned int i = 0; i < c_cnt; i++) + { + filepara->palette[i].a = 0; + filepara->palette[i].r = i * c_step; + filepara->palette[i].g = i * c_step; + filepara->palette[i].b = i * c_step; } } + filepara->pic_buffer = pic_buffer; + filepara->bits = 8; + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); } else { if (bit_depth == 16) png_set_strip_16(png_ptr); + if (color_type == PNG_COLOR_TYPE_GRAY || color_type == PNG_COLOR_TYPE_GRAY_ALPHA) png_set_gray_to_rgb(png_ptr); - if (color_type & PNG_COLOR_MASK_PALETTE) - png_set_palette_to_rgb(png_ptr); + + if ((color_type == PNG_COLOR_TYPE_PALETTE) || (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) || (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))) + png_set_expand(png_ptr); + if (color_type & PNG_COLOR_MASK_ALPHA || png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) { png_set_strip_alpha(png_ptr); @@ -381,30 +505,68 @@ static void png_load(Cfilepara* filepara, int background, bool forceRGB=false) bg.index = 0; png_set_background(png_ptr, &bg, PNG_BACKGROUND_GAMMA_SCREEN, 0, 1.0); } + int number_passes = png_set_interlace_handling(png_ptr); png_read_update_info(png_ptr, info_ptr); - if (width * 3 != png_get_rowbytes(png_ptr, info_ptr)) + int bpp = png_get_rowbytes(png_ptr, info_ptr) / width; + eDebug("[ePicLoad] RGB data from PNG file int bpp %x)", bpp); + if ((bpp != 4) && (bpp != 3)) { eDebug("[ePicLoad] Error processing (did not get RGB data from PNG file)"); png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); return; } - unsigned char *pic_buffer = new unsigned char[height * width * 3]; - filepara->ox = width; - filepara->oy = height; - filepara->pic_buffer = pic_buffer; + unsigned char *pic_buffer = new unsigned char[pixel_cnt * bpp]; + if (!pic_buffer) + { + eDebug("[ePicLoad] Error malloc"); + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); + return; + } - int number_passes = png_set_interlace_handling(png_ptr); - for(int pass = 0; pass < number_passes; pass++) + for (int pass = 0; pass < number_passes; pass++) { fbptr = (png_byte *)pic_buffer; - for (i = 0; i < height; i++, fbptr += width * 3) + for (unsigned int i = 0; i < height; i++, fbptr += width * bpp) png_read_row(png_ptr, fbptr, NULL); } png_read_end(png_ptr, info_ptr); + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); + + if (bpp == 4) + { + unsigned char *pic_buffer24 = new unsigned char[pixel_cnt * 3]; + if (!pic_buffer24) + { + eDebug("[ePicLoad] Error malloc"); + delete[] pic_buffer; + return; + } + + unsigned char *src = pic_buffer; + unsigned char *dst = pic_buffer24; + int bg_r = (background >> 16) & 0xFF; + int bg_g = (background >> 8) & 0xFF; + int bg_b = background & 0xFF; + for (unsigned int i = 0; i < pixel_cnt; i++) + { + int r = (int)*src++; + int g = (int)*src++; + int b = (int)*src++; + int a = (int)*src++; + + *dst++ = ((r - bg_r) * a) / 255 + bg_r; + *dst++ = ((g - bg_g) * a) / 255 + bg_g; + *dst++ = ((b - bg_b) * a) / 255 + bg_b; + } + delete[] pic_buffer; + filepara->pic_buffer = pic_buffer24; + } + else + filepara->pic_buffer = pic_buffer; + filepara->bits = 24; } - png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); } //------------------------------------------------------------------- @@ -805,6 +967,9 @@ void ePicLoad::decodePic() case F_SVG: svg_load(m_filepara); break; } + + if(m_filepara->pic_buffer != NULL) + resizePic(); } void ePicLoad::decodeThumb() @@ -912,15 +1077,68 @@ void ePicLoad::decodeThumb() imy = (int)( (m_conf.thumbnailsize * ((double)m_filepara->oy)) / ((double)m_filepara->ox) ); } - // eDebug("[ePicLoad] getThumb resize from %dx%d to %dx%d", m_filepara->ox, m_filepara->oy, imx, imy); - m_filepara->pic_buffer = color_resize(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); + if (m_filepara->bits == 8) + m_filepara->pic_buffer = simple_resize_8(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); + else + m_filepara->pic_buffer = color_resize(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); + m_filepara->ox = imx; m_filepara->oy = imy; - if (jpeg_save(cachefile.c_str(), m_filepara->ox, m_filepara->oy, m_filepara->pic_buffer)) - eDebug("[ePicLoad] getThumb: error saving cachefile"); + if (m_filepara->bits == 8) + { + unsigned char * tmp = new unsigned char [m_filepara->ox * m_filepara->oy * 3]; + if(tmp) + { + if(!convert_8Bit_to_24Bit(m_filepara, tmp)) + { + if(jpeg_save(cachefile.c_str(), m_filepara->ox, m_filepara->oy, tmp)) + eDebug("[ePicLoad] error saving cachefile"); + } + else + eDebug("[ePicLoad] error saving cachefile"); + delete [] tmp; + } + else + eDebug("[ePicLoad] Error malloc"); + } + else + if(jpeg_save(cachefile.c_str(), m_filepara->ox, m_filepara->oy, m_filepara->pic_buffer)) + eDebug("[ePicLoad] getThumb: error saving cachefile"); } + resizePic(); + } +} + +void ePicLoad::resizePic() +{ + int imx, imy; + + if (m_conf.aspect_ratio == 0) // do not keep aspect ration but just fill the destination area + { + imx = m_filepara->max_x; + imy = m_filepara->max_y; } + else if ((m_conf.aspect_ratio * m_filepara->oy * m_filepara->max_x / m_filepara->ox) <= m_filepara->max_y) + { + imx = m_filepara->max_x; + imy = (int)(m_conf.aspect_ratio * m_filepara->oy * m_filepara->max_x / m_filepara->ox); + } + else + { + imx = (int)((1.0/m_conf.aspect_ratio) * m_filepara->ox * m_filepara->max_y / m_filepara->oy); + imy = m_filepara->max_y; + } + + if (m_filepara->bits == 8) + m_filepara->pic_buffer = simple_resize_8(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); + else if (m_conf.resizetype) + m_filepara->pic_buffer = color_resize(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); + else + m_filepara->pic_buffer = simple_resize_24(m_filepara->pic_buffer, m_filepara->ox, m_filepara->oy, imx, imy); + + m_filepara->ox = imx; + m_filepara->oy = imy; } void ePicLoad::gotMessage(const Message &msg) @@ -941,7 +1159,7 @@ void ePicLoad::gotMessage(const Message &msg) break; case Message::decode_finished: // called from main thread //eDebug("[ePicLoad] decode finished... %s", m_filepara->file); - if(m_filepara->callback) + if((m_filepara != NULL) && (m_filepara->callback)) { eDebug("[ePicLoad] picinfo... %s", m_filepara->picinfo.c_str()); PictureData(m_filepara->picinfo.c_str()); @@ -960,6 +1178,9 @@ void ePicLoad::gotMessage(const Message &msg) } } break; + case Message::decode_error: + msg_main.send(Message(Message::decode_finished)); + break; default: eDebug("[ePicLoad] unhandled thread message"); } diff --git a/lib/gdi/picload.h b/lib/gdi/picload.h index 85114c1ee1c..cbe57f2b55f 100644 --- a/lib/gdi/picload.h +++ b/lib/gdi/picload.h @@ -23,6 +23,7 @@ struct Cfilepara int oy; std::string picinfo; bool callback; + bool transparent; Cfilepara(const char *mfile, int mid, std::string size): file(strdup(mfile)), @@ -31,8 +32,13 @@ struct Cfilepara palette_size(0), bits(24), id(mid), + max_x(0), + max_y(0), + ox(0), + oy(0), picinfo(""), - callback(true) + callback(true), + transparent(true) { if (is_valid_utf8(mfile)) picinfo += std::string(mfile) + "\n" + size + "\n"; @@ -108,8 +114,11 @@ class ePicLoad: public eMainloop, public eThread, public sigc::trackable, public { DECLARE_REF(ePicLoad); + enum{ F_PNG, F_JPEG, F_BMP, F_GIF, F_SVG}; + void decodePic(); void decodeThumb(); + void resizePic(); Cfilepara *m_filepara; Cexif *m_exif; @@ -137,6 +146,7 @@ class ePicLoad: public eMainloop, public eThread, public sigc::trackable, public decode_Pic, decode_Thumb, decode_finished, + decode_error, quit }; Message(int type=0) From d1a5da7395bd8c4cbf997caa8ecf684a1d985eed Mon Sep 17 00:00:00 2001 From: Huevos <rowland@moralet.com> Date: Thu, 4 Jul 2024 15:11:43 +0000 Subject: [PATCH 62/62] openvix: developer 6.6.004.005 --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index f0576183d4c..5d1a7656f35 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1281,3 +1281,4 @@ openvix: developer 6.6.004.001 openvix: developer 6.6.004.002 openvix: developer 6.6.004.003 openvix: developer 6.6.004.004 +openvix: developer 6.6.004.005