From 60fc8afd61923e8bbf949d04b73491862390b65f Mon Sep 17 00:00:00 2001 From: Fraxinas Date: Thu, 20 Nov 2008 22:54:11 +0100 Subject: fix keymap associations with INFO button --- data/keymap.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'data') diff --git a/data/keymap.xml b/data/keymap.xml index 6b8b583d..0a0dc867 100644 --- a/data/keymap.xml +++ b/data/keymap.xml @@ -77,7 +77,7 @@ - + -- cgit v1.2.3 From 04b3fc4ece96fd8dc6c7d53bd55e9ee1b7bf8b3b Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Wed, 26 Nov 2008 13:31:41 +0100 Subject: add frisian language, update language cache --- data/countries/x-fy.png | Bin 0 -> 2685 bytes lib/python/Components/Language.py | 1 + lib/python/Components/language_cache.py | 140 +- po/Makefile.am | 2 +- po/fy.po | 4615 +++++++++++++++++++++++++++++++ 5 files changed, 4737 insertions(+), 21 deletions(-) create mode 100644 data/countries/x-fy.png create mode 100644 po/fy.po (limited to 'data') diff --git a/data/countries/x-fy.png b/data/countries/x-fy.png new file mode 100644 index 00000000..ac32ca28 Binary files /dev/null and b/data/countries/x-fy.png differ diff --git a/lib/python/Components/Language.py b/lib/python/Components/Language.py index 6d1e31f3..395f6829 100644 --- a/lib/python/Components/Language.py +++ b/lib/python/Components/Language.py @@ -36,6 +36,7 @@ class Language: self.addLanguage(_("Swedish"), "sv", "SE") self.addLanguage(_("Turkish"), "tr", "TR") self.addLanguage(_("Ukrainian"), "uk", "UA") + self.addLanguage(_("Frisian"), "fy", "x-FY") # there is no separate country for frisian self.callbacks = [] diff --git a/lib/python/Components/language_cache.py b/lib/python/Components/language_cache.py index 046f281d..a9c02bc0 100644 --- a/lib/python/Components/language_cache.py +++ b/lib/python/Components/language_cache.py @@ -4,6 +4,7 @@ LANG_TEXT = { "fr_FR": "French", "fi_FI": "Finnish", "pt_PT": "Portuguese", + "fy_x-FY": "Frisian", "it_IT": "Italian", "no_NO": "Norwegian", "nl_NL": "Dutch", @@ -21,6 +22,7 @@ LANG_TEXT = { "tr_TR": "Turkish", "de_DE": "German", "ar_AE": "Arabic", + "uk_UA": "Ukrainian", "sv_SE": "Swedish", "pl_PL": "Polish", "T1": "Please use the UP and DOWN keys to select your language. Afterwards press the OK button.", @@ -30,6 +32,7 @@ LANG_TEXT = { "fr_FR": "Französisch", "fi_FI": "Finnisch", "pt_PT": "portugiesisch", + "fy_x-FY": "Frisian", "it_IT": "Italienisch", "no_NO": "Norwegisch", "nl_NL": "Holländisch", @@ -47,6 +50,7 @@ LANG_TEXT = { "tr_TR": "Türkisch", "de_DE": "Deutsch", "ar_AE": "Arabisch", + "uk_UA": "Ukrainian", "sv_SE": "Schwedisch", "pl_PL": "Polnisch", "T1": "Bitte benutzen Sie die Hoch/Runter-Tasten, um Ihre Sprache auszuwählen. Danach drücken Sie bitte OK.", @@ -56,6 +60,7 @@ LANG_TEXT = { "fr_FR": "French", "fi_FI": "Finnish", "pt_PT": "Portuguese", + "fy_x-FY": "Frisian", "it_IT": "Italian", "no_NO": "Norwegian", "nl_NL": "Dutch", @@ -73,6 +78,7 @@ LANG_TEXT = { "tr_TR": "Turkish", "de_DE": "المانـى", "ar_AE": "Arabic", + "uk_UA": "Ukrainian", "sv_SE": "Swedish", "pl_PL": "Polish", "T1": "Please use the UP and DOWN keys to select your language. Afterwards press the OK button.", @@ -82,6 +88,7 @@ LANG_TEXT = { "fr_FR": "Francès", "fi_FI": "Finlandès", "pt_PT": "Portuguès", + "fy_x-FY": "Frisian", "it_IT": "Italià", "no_NO": "Noruec", "nl_NL": "Holandès", @@ -99,6 +106,7 @@ LANG_TEXT = { "tr_TR": "Turc", "de_DE": "Alemany", "ar_AE": "Àrab", + "uk_UA": "Ukrainian", "sv_SE": "Suec", "pl_PL": "Polish", "T1": "Please use the UP and DOWN keys to select your language. Afterwards press the OK button.", @@ -108,6 +116,7 @@ LANG_TEXT = { "fr_FR": "Francuski", "fi_FI": "Finski", "pt_PT": "Portugalski", + "fy_x-FY": "Frisian", "it_IT": "Talijanski", "no_NO": "Norveški", "nl_NL": "Nizozemski", @@ -125,6 +134,7 @@ LANG_TEXT = { "tr_TR": "Turski", "de_DE": "Njemački", "ar_AE": "Arabski", + "uk_UA": "Ukrainian", "sv_SE": "Švedski", "pl_PL": "Poljski", "T1": "Please use the UP and DOWN keys to select your language. Afterwards press the OK button.", @@ -134,6 +144,7 @@ LANG_TEXT = { "fr_FR": "Francouzsky", "fi_FI": "Finsky", "pt_PT": "Portugalsky", + "fy_x-FY": "Frisian", "it_IT": "Italsky", "no_NO": "Norsky", "nl_NL": "Holandsky", @@ -151,6 +162,7 @@ LANG_TEXT = { "tr_TR": "Turecky", "de_DE": "Německy", "ar_AE": "Arabsky", + "uk_UA": "Ukrainian", "sv_SE": "Švédsky", "pl_PL": "Polsky", "T1": "Please use the UP and DOWN keys to select your language. Afterwards press the OK button.", @@ -160,6 +172,7 @@ LANG_TEXT = { "fr_FR": "Fransk", "fi_FI": "Finsk", "pt_PT": "Portugisisk", + "fy_x-FY": "Frisian", "it_IT": "Italiensk", "no_NO": "Norsk", "nl_NL": "Hollandsk", @@ -177,6 +190,7 @@ LANG_TEXT = { "tr_TR": "Tyrkisk", "de_DE": "Tysk", "ar_AE": "Arabisk", + "uk_UA": "Ukrainian", "sv_SE": "Svensk", "pl_PL": "Polsk", "T1": "Benyt venligst OP og NED tasten til at vælge sprog. Tryk bagefter på OK knappen.", @@ -186,6 +200,7 @@ LANG_TEXT = { "fr_FR": "Frans", "fi_FI": "Fins", "pt_PT": "Portugees", + "fy_x-FY": "Frisian", "it_IT": "Italiaans", "no_NO": "Noors", "nl_NL": "Nederlands", @@ -203,6 +218,7 @@ LANG_TEXT = { "tr_TR": "Turks", "de_DE": "Duits", "ar_AE": "Arabisch", + "uk_UA": "Ukrainian", "sv_SE": "Zweeds", "pl_PL": "Pools", "T1": "Gebruik de omhoog/omlaag toeten om de gewenste taal te selecteren. Druk daarna op OK.", @@ -212,6 +228,7 @@ LANG_TEXT = { "fr_FR": "Ranska", "fi_FI": "Suomi", "pt_PT": "Portugali", + "fy_x-FY": "Frisian", "it_IT": "Italia", "no_NO": "Norja", "nl_NL": "Hollanti", @@ -229,15 +246,17 @@ LANG_TEXT = { "tr_TR": "Turkki", "de_DE": "Saksa", "ar_AE": "Arabia", + "uk_UA": "Ukrainian", "sv_SE": "Ruotsi", "pl_PL": "Puola", - "T1": "Valitse kieli ylös/alas nappuloilla ja paina OK.", + "T1": "Valitse kieli ylös/alas näppäimillä ja paina OK-näppäintä.", "T2": "Kielivalinta", }, "fr_FR": { "fr_FR": "Français", "fi_FI": "Finlandais", "pt_PT": "Portugais", + "fy_x-FY": "Frisian", "it_IT": "Italien", "no_NO": "Norvégien", "nl_NL": "Hollandais", @@ -255,6 +274,7 @@ LANG_TEXT = { "tr_TR": "Turke", "de_DE": "Allemand", "ar_AE": "Arabe", + "uk_UA": "Ukrainian", "sv_SE": "Suédois", "pl_PL": "Polonais", "T1": "Veuillez utiliser les touches HAUT et BAS pour choisir votre langage. Ensuite presser le bouton OK.", @@ -264,6 +284,7 @@ LANG_TEXT = { "fr_FR": "Γαλλικά", "fi_FI": "Φιλλανδικά", "pt_PT": "Πορτογαλλικά", + "fy_x-FY": "Frisian", "it_IT": "Ιταλικά", "no_NO": "Νορβηφικά", "nl_NL": "Ολλανδικά", @@ -281,6 +302,7 @@ LANG_TEXT = { "tr_TR": "Τούρκικα", "de_DE": "Γερμανικά", "ar_AE": "Αραβικά", + "uk_UA": "Ukrainian", "sv_SE": "Σουιδεζικά", "pl_PL": "Πολωνικά", "T1": "Please use the UP and DOWN keys to select your language. Afterwards press the OK button.", @@ -290,6 +312,7 @@ LANG_TEXT = { "fr_FR": "Francia", "fi_FI": "Finn", "pt_PT": "Portugál", + "fy_x-FY": "Frisian", "it_IT": "Olasz", "no_NO": "Norvég", "nl_NL": "Holland", @@ -307,6 +330,7 @@ LANG_TEXT = { "tr_TR": "Török", "de_DE": "Német", "ar_AE": "Arab", + "uk_UA": "Ukrainian", "sv_SE": "Svéd", "pl_PL": "Lengyel", "T1": "Please use the UP and DOWN keys to select your language. Afterwards press the OK button.", @@ -316,6 +340,7 @@ LANG_TEXT = { "fr_FR": "Prancūzų", "fi_FI": "Suomių", "pt_PT": "Portugalų", + "fy_x-FY": "Frisian", "it_IT": "Italų", "no_NO": "Norvegų", "nl_NL": "Olandų", @@ -333,6 +358,7 @@ LANG_TEXT = { "tr_TR": "Turkų", "de_DE": "Vokiečių", "ar_AE": "Arabų", + "uk_UA": "Ukrainiečių", "sv_SE": "Švedų", "pl_PL": "Lenkų", "T1": "Prašome naudoti AUKŠTYN IR ŽEMYN mygtukus, kad išsirinktumėte savo kalbą. Po to spauskite OK mygtuką.", @@ -342,6 +368,7 @@ LANG_TEXT = { "fr_FR": "Franska", "fi_FI": "Finnska", "pt_PT": "Portúgalska", + "fy_x-FY": "Frisian", "it_IT": "Ítalska", "no_NO": "Norska", "nl_NL": "Hollenska", @@ -359,15 +386,17 @@ LANG_TEXT = { "tr_TR": "Tyrkneska", "de_DE": "Þýska", "ar_AE": "Arabíska", + "uk_UA": "Ukrainian", "sv_SE": "Sænskt", "pl_PL": "Pólska", - "T1": "Please use the UP and DOWN keys to select your language. Afterwards press the OK button.", + "T1": "Vinsamlega notið UP og NIÐUR takka til að velja tungumál. Ýttu svo á OK til að nota.", "T2": "Val tungumáls", }, "it_IT": { "fr_FR": "Francese", "fi_FI": "Finlandese", "pt_PT": "Portoghese", + "fy_x-FY": "Frisian", "it_IT": "Italiano", "no_NO": "Norvegese", "nl_NL": "Olandese", @@ -385,6 +414,7 @@ LANG_TEXT = { "tr_TR": "Turco", "de_DE": "Tedesco", "ar_AE": "Arabo", + "uk_UA": "Ucraino", "sv_SE": "Svedese", "pl_PL": "Polacco", "T1": "Selezionare la propria lingua utilizzando i tasti Sù/Giù. Premere OK per confermare.", @@ -394,6 +424,7 @@ LANG_TEXT = { "fr_FR": "Fransk", "fi_FI": "Finsk", "pt_PT": "Portugisisk", + "fy_x-FY": "Frisian", "it_IT": "Italiensk", "no_NO": "Norsk", "nl_NL": "Nederlandsk", @@ -411,6 +442,7 @@ LANG_TEXT = { "tr_TR": "Tyrkisk", "de_DE": "Tysk", "ar_AE": "Arabisk", + "uk_UA": "Ukrainian", "sv_SE": "Svensk", "pl_PL": "Polsk", "T1": "Please use the UP and DOWN keys to select your language. Afterwards press the OK button.", @@ -420,6 +452,7 @@ LANG_TEXT = { "fr_FR": "Francuski", "fi_FI": "Fiński", "pt_PT": "Portugalski", + "fy_x-FY": "Frisian", "it_IT": "Włoski", "no_NO": "Norweski", "nl_NL": "Holenderski", @@ -437,6 +470,7 @@ LANG_TEXT = { "tr_TR": "Turecki", "de_DE": "Niemiecki", "ar_AE": "Arabski", + "uk_UA": "Ukrainian", "sv_SE": "Szwedzki", "pl_PL": "Polski", "T1": "W celu wyboru języka użyj klawiszy GÓRA i DÓŁ. Nastepnie nacisnij przycisk OK.", @@ -446,6 +480,7 @@ LANG_TEXT = { "fr_FR": "Francês", "fi_FI": "Finlandês", "pt_PT": "Português", + "fy_x-FY": "Frisian", "it_IT": "Italiano", "no_NO": "Norueguês", "nl_NL": "Holandês", @@ -463,6 +498,7 @@ LANG_TEXT = { "tr_TR": "Turco", "de_DE": "Alemão", "ar_AE": "Arabe", + "uk_UA": "Ukrainian", "sv_SE": "Sueco", "pl_PL": "Polaco", "T1": "Please use the UP and DOWN keys to select your language. Afterwards press the OK button.", @@ -472,6 +508,7 @@ LANG_TEXT = { "fr_FR": "Французский", "fi_FI": "Окончание", "pt_PT": "Portuguese", + "fy_x-FY": "Frisian", "it_IT": "Итальянский", "no_NO": "Норвежский", "nl_NL": "Нидерландский", @@ -489,6 +526,7 @@ LANG_TEXT = { "tr_TR": "Турецкий", "de_DE": "Немецкий", "ar_AE": "Арабский", + "uk_UA": "Ukrainian", "sv_SE": "Шведский", "pl_PL": "Polish", "T1": "Please use the UP and DOWN keys to select your language. Afterwards press the OK button.", @@ -498,6 +536,7 @@ LANG_TEXT = { "fr_FR": "Francés", "fi_FI": "Finlandés", "pt_PT": "Portugués", + "fy_x-FY": "Frisian", "it_IT": "Italiano", "no_NO": "Noruego", "nl_NL": "Alemán", @@ -515,6 +554,7 @@ LANG_TEXT = { "tr_TR": "Turco", "de_DE": "Alemán", "ar_AE": "Arábigo", + "uk_UA": "Ukrainian", "sv_SE": "Sueco", "pl_PL": "Polaco", "T1": "Use las teclas ARRIBA y ABAJO para seleccionar su idioma. Después, pulse el botón OK.", @@ -524,6 +564,7 @@ LANG_TEXT = { "fr_FR": "Franska", "fi_FI": "Finska", "pt_PT": "Portugisiska", + "fy_x-FY": "Frisian", "it_IT": "Italienska", "no_NO": "Norska", "nl_NL": "Holländska", @@ -541,6 +582,7 @@ LANG_TEXT = { "tr_TR": "Turkiska", "de_DE": "Tyska", "ar_AE": "Arabiska", + "uk_UA": "Ukrainian", "sv_SE": "Svenska", "pl_PL": "Polska", "T1": "Vänligen använd UPP och NER pil för att välja språk. Efter val tryck på OK knappen.", @@ -548,28 +590,86 @@ LANG_TEXT = { }, "tr_TR": { "fr_FR": "Fransızca", - "fi_FI": "Bitiş", - "pt_PT": "Portuguese", - "it_IT": "İtalya", - "no_NO": "Norveç", - "nl_NL": "Almanca", + "fi_FI": "Fince", + "pt_PT": "Portekizce", + "fy_x-FY": "Frisian", + "it_IT": "İtalyanca", + "no_NO": "Norveççe", + "nl_NL": "Flemenkçe", "el_GR": "Greek", - "hu_HU": "Hungarian", - "lt_LT": "Lithuanian", - "hr_HR": "Croatian", + "hu_HU": "Macarca", + "lt_LT": "Litvanyaca", + "hr_HR": "Hırvatça", "en_EN": "İngilizce", "es_ES": "İspanyolca", - "ca_AD": "Catalan", - "ru_RU": "Russian", - "is_IS": "izlanda", - "da_DK": "Çanak", - "cs_CZ": "Czech", - "tr_TR": "Turkish", - "de_DE": "Alman", + "ca_AD": "Katalanca", + "ru_RU": "Rusça", + "is_IS": "İzlandaca", + "da_DK": "Danca", + "cs_CZ": "Çekçe", + "tr_TR": "Türkçe", + "de_DE": "Almanca", "ar_AE": "Arapça", - "sv_SE": "İsveç", + "uk_UA": "Ukraynaca", + "sv_SE": "İsveççe", "pl_PL": "Polish", - "T1": "Please use the UP and DOWN keys to select your language. Afterwards press the OK button.", - "T2": "Lisan Seçimi", + "T1": "Dil seçiminizi, yapmak için YUKARI ve AŞAĞI tuşlarını, onaylamak için OK tuşunu kullanın.", + "T2": "Dil seçimi", +}, +"uk_UA": { + "fr_FR": "Французька", + "fi_FI": "Фінська", + "pt_PT": "Португальська", + "fy_x-FY": "Frisian", + "it_IT": "Італійська", + "no_NO": "Норвежська", + "nl_NL": "Данська", + "el_GR": "Грецька", + "hu_HU": "Угорська", + "lt_LT": "Литовська", + "hr_HR": "Хорватьска", + "en_EN": "Англійська", + "es_ES": "Іспанська", + "ca_AD": "Каталонська", + "ru_RU": "Російська", + "is_IS": "Ісландська", + "da_DK": "Данська", + "cs_CZ": "Чешська", + "tr_TR": "Турецька", + "de_DE": "Німецька", + "ar_AE": "Арабський", + "uk_UA": "Ukrainian", + "sv_SE": "Шведська", + "pl_PL": "Польська", + "T1": "Використовуйте кнопки ВВЕРХ і ВНИЗ, щоб вибрати Вашу мову. Після вибору натисніть OK.", + "T2": "Вибір мови", +}, +"fy_x-FY": { + "fr_FR": "Frans", + "fi_FI": "Finsk", + "pt_PT": "Portugeesk", + "fy_x-FY": "Frisian", + "it_IT": "Italiaansk", + "no_NO": "Noarsk", + "nl_NL": "Nederlansk", + "el_GR": "Gryks", + "hu_HU": "Hongaarsk", + "lt_LT": "Lithuaniansk", + "hr_HR": "Kroatysk", + "en_EN": "Engelsk", + "es_ES": "Spaans", + "ca_AD": "Catalânsk", + "ru_RU": "Russysk", + "is_IS": "Iislansk", + "da_DK": "Deensk", + "cs_CZ": "Tsjechysk", + "tr_TR": "Turks", + "de_DE": "Dúts", + "ar_AE": "Arabysk", + "uk_UA": "Ukrainian", + "sv_SE": "Zweeds", + "pl_PL": "Poolsk", + "T1": "Brúk de op en del toets om jo taal te kiezen. Dernei druk op OK", + "T2": "Taal Kieze", }, } diff --git a/po/Makefile.am b/po/Makefile.am index 02727930..26518b56 100644 --- a/po/Makefile.am +++ b/po/Makefile.am @@ -5,7 +5,7 @@ GETTEXT=xgettext #MSGFMT = ./msgfmt.py MSGFMT = msgfmt -LANGS := de en ar nl es is it da sv no fr fi tr ca cs hr hu ru pt el lt pl uk +LANGS := ar ca cs da de el en es fi fr fy hr hu is it lt nl no pl pt ru sv tr uk LANGPO := $(foreach LANG, $(LANGS),$(LANG).po) LANGMO := $(foreach LANG, $(LANGS),$(LANG).mo) diff --git a/po/fy.po b/po/fy.po new file mode 100644 index 00000000..af5e21ad --- /dev/null +++ b/po/fy.po @@ -0,0 +1,4615 @@ +# translation of fy.po to gerrit +# Copyright (C) 2005 THE tuxbox-enigma'S COPYRIGHT HOLDER +# This file is distributed under the same license as the tuxbox-enigma package. +# +# Automatically generated, 2005. +# Gerrit , 2007, 2008. +# gerrit , 2008. +msgid "" +msgstr "" +"Project-Id-Version: fy\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-11-26 13:07+0100\n" +"PO-Revision-Date: 2008-11-15 09:40+0100\n" +"Last-Translator: gerrit \n" +"Language-Team: gerrit \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Nederlands\n" +"X-Poedit-Country: NEDERLAND\n" +"X-Poedit-SourceCharset: iso-8859-15\n" +"X-Generator: KBabel 1.11.4\n" + +msgid " " +msgstr " " + +msgid "#000000" +msgstr "#000000" + +msgid "#0064c7" +msgstr "#0064c7" + +msgid "#25062748" +msgstr "#25062748" + +msgid "#389416" +msgstr "#389416" + +msgid "#80000000" +msgstr "#80000000" + +msgid "#80ffffff" +msgstr "#80ffffff" + +msgid "#bab329" +msgstr "#bab329" + +msgid "#f23d21" +msgstr "#f23d21" + +msgid "#ffffff" +msgstr "#ffffff" + +msgid "#ffffffff" +msgstr "#ffffffff" + +msgid "%H:%M" +msgstr "%H:%M" + +#, python-format +msgid "%d jobs are running in the background!" +msgstr "%d processen rinne op 'e eftergrûn" + +#, python-format +msgid "%d min" +msgstr "%d min" + +#, python-format +msgid "%d services found!" +msgstr "%d services fûn" + +msgid "%d.%B %Y" +msgstr "%d.%B %Y" + +#, python-format +msgid "" +"%s\n" +"(%s, %d MB free)" +msgstr "" +"%s\n" +"(%s, %d MB frij)" + +#, python-format +msgid "%s (%s)\n" +msgstr "%s (%s)\n" + +msgid "(ZAP)" +msgstr "(ZAP)" + +msgid "(empty)" +msgstr "(leech)" + +msgid "(show optional DVD audio menu)" +msgstr "(opsje DVD lûd menu sjen litte)" + +msgid "* Only available if more than one interface is active." +msgstr "" + +msgid "* Only available when entering hidden SSID or network key" +msgstr "" + +msgid ".NFI Download failed:" +msgstr "flater by it binnenhelje fan .NFI triem." + +msgid "" +".NFI file passed md5sum signature check. You can safely flash this image!" +msgstr "" +".NFI triem goedkarre by de md5sum kontrole. Dit image kin feilich nei flash " +"skreawn wurde." + +msgid "/usr/share/enigma2 directory" +msgstr "/usr/share/enigma2 map" + +msgid "/var directory" +msgstr "/var map" + +msgid "0" +msgstr "0" + +msgid "1" +msgstr "1" + +msgid "1.0" +msgstr "1.0" + +msgid "1.1" +msgstr "1.1" + +msgid "1.2" +msgstr "1.2" + +msgid "12V output" +msgstr "12V útgong" + +msgid "13 V" +msgstr "13 V" + +msgid "16:10" +msgstr "16:10" + +msgid "16:10 Letterbox" +msgstr "16:10 Letterbox" + +msgid "16:10 PanScan" +msgstr "16:10 PanScan" + +msgid "16:9" +msgstr "16:9" + +msgid "16:9 Letterbox" +msgstr "16:9 Letterbox" + +msgid "16:9 always" +msgstr "altiid 16:9" + +msgid "18 V" +msgstr "18 V" + +msgid "2" +msgstr "2" + +msgid "3" +msgstr "3" + +msgid "30 minutes" +msgstr "30 minuten" + +msgid "4" +msgstr "4" + +msgid "4:3" +msgstr "4:3" + +msgid "4:3 Letterbox" +msgstr "4:3 Letterbox" + +msgid "4:3 PanScan" +msgstr "4:3 PanScan" + +msgid "5" +msgstr "5" + +msgid "5 minutes" +msgstr "5 minuten" + +msgid "50 Hz" +msgstr "50 Hz" + +msgid "6" +msgstr "6" + +msgid "60 minutes" +msgstr "60 minuten" + +msgid "7" +msgstr "7" + +msgid "8" +msgstr "8" + +msgid "9" +msgstr "9" + +msgid "" +msgstr "" + +msgid "??" +msgstr "??" + +msgid "A" +msgstr "A" + +#, python-format +msgid "" +"A configuration file (%s) was modified since Installation.\n" +"Do you want to keep your version?" +msgstr "" +"In konfiguraasje triem (%s) wie feroare nei ynstalaasje.\n" +"Wolle jo jo ferzje hâlde ?" + +msgid "" +"A finished record timer wants to set your\n" +"Dreambox to standby. Do that now?" +msgstr "" +"In tiidsbarren wol de Dreambox yn sliipstand\n" +"skeakelje... No nei de sliipstand ?" + +msgid "" +"A finished record timer wants to shut down\n" +"your Dreambox. Shutdown now?" +msgstr "" +"In tiidsbarren wol de Dreambox\n" +"útskeakelje... No útskeakelje ?" + +msgid "A graphical EPG for all services of an specific bouquet" +msgstr "In grafyske EPG foar alle kanalen fan in spesifyk bouquet" + +#, python-format +msgid "" +"A record has been started:\n" +"%s" +msgstr "" +"In opnimmen is start:\n" +"%s" + +msgid "" +"A recording is currently running.\n" +"What do you want to do?" +msgstr "" +"In opnimmen is dwaande.\n" +"Wat wolle jo dwaan ?" + +msgid "" +"A recording is currently running. Please stop the recording before trying to " +"configure the positioner." +msgstr "" +"Opnimmen is dwaande. Stopje it opnimmen earst foar jo de rotor-ynstellingen " +"wizigje." + +msgid "" +"A recording is currently running. Please stop the recording before trying to " +"start the satfinder." +msgstr "" +"Opnimmen is dwaande. Stopje it opnimmen earst, foar jo de satfyner brûke." + +#, python-format +msgid "A required tool (%s) was not found." +msgstr "In benedicht programma (%s) wie net fûn" + +msgid "" +"A sleep timer wants to set your\n" +"Dreambox to standby. Do that now?" +msgstr "" +"In sliiptiidsbarren wol de Dreambox yn paraatstand sette\n" +"Dit no dwaan ?" + +msgid "" +"A sleep timer wants to shut down\n" +"your Dreambox. Shutdown now?" +msgstr "" +"In sliiptiidsbarren wol de Dreambox útskeakelje\n" +"No útskeakelje ?" + +msgid "" +"A timer failed to record!\n" +"Disable TV and try again?\n" +msgstr "" +"In tiidsbarren koe net opnimme!\n" +"TV utskeakelje en opnei besykje ?\n" + +msgid "A/V Settings" +msgstr "A/F ynstellingen" + +msgid "AA" +msgstr "AA" + +msgid "AB" +msgstr "AB" + +msgid "AC3 default" +msgstr "AC3 standert" + +msgid "AC3 downmix" +msgstr "AC3 downmix" + +msgid "AGC" +msgstr "AGC" + +msgid "AGC:" +msgstr "AGC:" + +msgid "About" +msgstr "Oer" + +msgid "About..." +msgstr "Oer...." + +msgid "Action on long powerbutton press" +msgstr "Aksje by lang yndrukken oanknop" + +msgid "Action:" +msgstr "Aksje:" + +msgid "Activate Picture in Picture" +msgstr "PIP ynskeakelje" + +msgid "Activate network settings" +msgstr "Netwurk ynstellingen aktief meitsje" + +msgid "Adapter settings" +msgstr "Adapter ynstellingen" + +msgid "Add" +msgstr "Tafoegje" + +msgid "Add Bookmark" +msgstr "In blêdwizer tafoegje" + +msgid "Add a mark" +msgstr "In merker tafoegje" + +msgid "Add a new title" +msgstr "In nije titel tafoegje" + +msgid "Add timer" +msgstr "In tiidsbarren tafoegje" + +msgid "Add title" +msgstr "In titel tafoegje" + +msgid "Add to bouquet" +msgstr "Oan in boeket tafoegje" + +msgid "Add to favourites" +msgstr "Oan favorieten tafoegje" + +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 "" +"Feroarje de ynstellingen sa, da't alle skaad fan 'e kleur fuort is, mar wol " +"fol fan kleur binne. Ot jo lokkig binne mei it einresultaat, druk OK om " +"fideo ôfstellen ôf te slúten, of brûk de nûmmer toetsen foar in oar test " +"skerm." + +msgid "Advanced" +msgstr "Afansjearre" + +msgid "Advanced Video Setup" +msgstr "Afansjearre Fideo Ynstellingen" + +msgid "After event" +msgstr "Nei it barren" + +msgid "" +"After the start wizard is completed, you need to protect single services. " +"Refer to your dreambox's manual on how to do that." +msgstr "" +"Ot de startgucheler klear is, kinne jo in service befeilichje. Sjoch yn 'e " +"hânlieding foar ynformaasje." + +msgid "Album:" +msgstr "Album:" + +msgid "All" +msgstr "Alles" + +msgid "All Satellites" +msgstr "Alle Satellyten" + +msgid "Alpha" +msgstr "Alpha" + +msgid "Alternative radio mode" +msgstr "Oare Radio mode" + +msgid "Alternative services tuner priority" +msgstr "Alternatief kanaal tuner prioriteit" + +msgid "An empty filename is illegal." +msgstr "Gjin triemnamme is net tastien" + +msgid "An unknown error occured!" +msgstr "In unbekende flater !" + +msgid "Arabic" +msgstr "Arabysk" + +msgid "" +"Are you sure you want to activate this network configuration?\n" +"\n" +msgstr "" + +msgid "" +"Are you sure you want to restart your network interfaces?\n" +"\n" +msgstr "" +"Wolle jo de netwurk interfaces nij starte?\n" +"\n" + +msgid "Artist:" +msgstr "Artyst:" + +msgid "Ask before shutdown:" +msgstr "Freechje foar it útskeakeljen:" + +msgid "Ask user" +msgstr "freechje gebrûker" + +msgid "Aspect Ratio" +msgstr "Aspect ratio" + +msgid "Audio" +msgstr "Lûd" + +msgid "Audio Options..." +msgstr "Lûd opsjes..." + +msgid "Authoring mode" +msgstr "Authentikaasje troch" + +msgid "Auto" +msgstr "Auto" + +msgid "Auto chapter split every ? minutes (0=never)" +msgstr "Haadstik automatysk eltse ? minuten splitse (0=nea)" + +msgid "Auto scart switching" +msgstr "Auto scart skeakelje" + +msgid "Automatic" +msgstr "Automatysk" + +msgid "Automatic Scan" +msgstr "Automatysk sykjen" + +msgid "Available format variables" +msgstr "Beskikbere variabele formaten" + +msgid "B" +msgstr "B" + +msgid "BA" +msgstr "BA" + +msgid "BB" +msgstr "BB" + +msgid "BER" +msgstr "BER" + +msgid "BER:" +msgstr "BER:" + +msgid "Back" +msgstr "Werom" + +msgid "Background" +msgstr "Eftergrûn" + +msgid "Backup" +msgstr "Backup" + +msgid "Backup Location" +msgstr "Backup Lokaasje" + +msgid "Backup Mode" +msgstr "Backup Mode" + +msgid "Backup is done. Please press OK to see the result." +msgstr "Backup is klear. Druk Ok foar útfier" + +msgid "Band" +msgstr "Bân" + +msgid "Bandwidth" +msgstr "Bânbridte" + +msgid "Begin time" +msgstr "Begjin tiid" + +msgid "Behavior of 'pause' when paused" +msgstr "Gedrach fan 'pause' yn pause mode" + +msgid "Behavior of 0 key in PiP-mode" +msgstr "Gedrach fan 0 toets yn PiP mode" + +msgid "Behavior when a movie is started" +msgstr "Gedrach wannear in film start is" + +msgid "Behavior when a movie is stopped" +msgstr "Gedrach wannear in film stoppe is" + +msgid "Behavior when a movie reaches the end" +msgstr "Gedrach wannear in film bijna op syn ein is." + +msgid "Bookmarks" +msgstr "Boekmerkers" + +msgid "Brightness" +msgstr "Helderens" + +msgid "Burn DVD" +msgstr "In DVD brâne" + +msgid "Burn existing image to DVD" +msgstr "Besteand Image op DVD skiif brâne" + +msgid "Burn to DVD..." +msgstr "Nei DVD brâne" + +msgid "Bus: " +msgstr "Bus: " + +msgid "" +"By pressing the OK Button on your remote control, the info bar is being " +"displayed." +msgstr "By de Ok toets op jo ôfstansbetsjinning, wurd de ynfo balke toant" + +msgid "C" +msgstr "C" + +msgid "C-Band" +msgstr "C-Bân" + +msgid "CF Drive" +msgstr "CF Drive" + +msgid "CVBS" +msgstr "CVBS" + +msgid "Cable" +msgstr "Kabel" + +msgid "Cache Thumbnails" +msgstr "Cache Plaatsjes" + +msgid "Call monitoring" +msgstr "Skille monitor" + +msgid "Cancel" +msgstr "Ôfbrekke" + +msgid "Cannot parse feed directory" +msgstr "Kin feed map net ferwurkje" + +msgid "Capacity: " +msgstr "Skiif-grutte:" + +msgid "Card" +msgstr "Kaart" + +msgid "Catalan" +msgstr "Catalânsk" + +msgid "Change bouquets in quickzap" +msgstr "Feroarje fan boeket yn quickzap" + +msgid "Change dir." +msgstr "Feroarje dir." + +msgid "Change pin code" +msgstr "Feroarje pinkode" + +msgid "Change service pin" +msgstr "Feroarje service pin" + +msgid "Change service pins" +msgstr "Feroarje service pins" + +msgid "Change setup pin" +msgstr "Feroarje ynstellingen pin" + +msgid "Channel" +msgstr "Kanaal" + +msgid "Channel Selection" +msgstr "Kanaal seleksje" + +msgid "Channel:" +msgstr "Kanaal:" + +msgid "Channellist menu" +msgstr "Kanaal-lyst menu" + +msgid "Chap." +msgstr "Haads." + +msgid "Chapter" +msgstr "Haadstik" + +msgid "Chapter:" +msgstr "Haadstik:" + +msgid "Check" +msgstr "Neisjen" + +msgid "Checking Filesystem..." +msgstr "Bestânsysteem neisjen" + +msgid "Choose Tuner" +msgstr "Kies Tuner" + +msgid "Choose bouquet" +msgstr "Kies bouquet" + +msgid "Choose source" +msgstr "Kies bron" + +msgid "Choose target folder" +msgstr "Kies doel map" + +msgid "Choose your Skin" +msgstr "Kies Oanklaaiing" + +msgid "Cleanup" +msgstr "Opskjinje" + +msgid "Clear before scan" +msgstr "Wiskje foar sykjen ?" + +msgid "Clear log" +msgstr "Log wiskje" + +msgid "Close" +msgstr "Slúte" + +msgid "Code rate high" +msgstr "Kode faasje heech" + +msgid "Code rate low" +msgstr "Kode faasje leech" + +msgid "Coderate HP" +msgstr "Kode faasje HP" + +msgid "Coderate LP" +msgstr "Kode faasje LP" + +msgid "Collection name" +msgstr "Kolleksje namme" + +msgid "Collection settings" +msgstr "Kolleksje ynstellingen" + +msgid "Color Format" +msgstr "Kleur formaat" + +msgid "Command execution..." +msgstr "Kommando útfiere" + +msgid "Command order" +msgstr "Kommando folgoarde" + +msgid "Committed DiSEqC command" +msgstr "Oanwizen DiSEqC kommando" + +msgid "Common Interface" +msgstr "Common Interface" + +msgid "Compact Flash" +msgstr "Compact flash" + +msgid "Compact flash card" +msgstr "Compact flash kaart" + +msgid "Complete" +msgstr "Kompleet" + +msgid "Complex (allows mixing audio tracks and aspects)" +msgstr "" + +msgid "Configuration Mode" +msgstr "Ynstellingen modus" + +msgid "Configuring" +msgstr "Oan it ynstellen" + +msgid "Conflicting timer" +msgstr "Tiidsbarren konflikt" + +msgid "Connected to" +msgstr "Ferbûn mei" + +msgid "Connected to Fritz!Box!" +msgstr "Ferbûn mei Fritz!Box!" + +msgid "Connecting to Fritz!Box..." +msgstr "Ferbine mei Fritz!Box..." + +#, python-format +msgid "" +"Connection to Fritz!Box\n" +"failed! (%s)\n" +"retrying..." +msgstr "" +"Ferbine mei Fritz!Box\n" +"mislearre ! (%s)\n" +"Besykje opnei ..." + +msgid "Constellation" +msgstr "Himmel" + +msgid "Content does not fit on DVD!" +msgstr "Ynhald past net op in DVD !" + +msgid "Continue in background" +msgstr "Fjierder gean yn 'e eftergrûn" + +msgid "Continue playing" +msgstr "Kontinu spielje" + +msgid "Contrast" +msgstr "Kontrast" + +msgid "Could not connect to Dreambox .NFI Image Feed Server:" +msgstr "Kin net ferbine mei Dreambox .NFI Image feed server:" + +msgid "Could not load Medium! No disc inserted?" +msgstr "Koe medium net lade ! Is der wol in disc oanwezig ?" + +msgid "Create DVD-ISO" +msgstr "Meitsje DVD-ISO" + +msgid "Create movie folder failed" +msgstr "Meitjse fan film map mislearre" + +#, python-format +msgid "Creating directory %s failed." +msgstr "Meitjse fan map %s is mislearre" + +msgid "Creating partition failed" +msgstr "Meitsjen fan partisje is mislearre" + +msgid "Croatian" +msgstr "Kroatysk" + +msgid "Current Transponder" +msgstr "Hjoeddeiske Transponder" + +msgid "Current settings:" +msgstr "Hjoeddeiske ynstellingen:" + +msgid "Current version:" +msgstr "Hjoeddeiske ferzje :" + +msgid "Custom skip time for '1'/'3'-keys" +msgstr "Brûker spring tiid foar knoppen 1-3" + +msgid "Custom skip time for '4'/'6'-keys" +msgstr "Brûker spring tiid foar knoppen 4-6" + +msgid "Custom skip time for '7'/'9'-keys" +msgstr "Brûker spring tiid foar knoppen 7-9" + +msgid "Customize" +msgstr "Oanpasse" + +msgid "Cut" +msgstr "Knip" + +msgid "Cutlist editor..." +msgstr "Kniplyst bewurker..." + +msgid "Czech" +msgstr "Tsjechysk" + +msgid "D" +msgstr "D" + +msgid "DHCP" +msgstr "DHCP" + +msgid "DVB-S" +msgstr "DVB-S" + +msgid "DVB-S2" +msgstr "DVB-S2" + +msgid "DVD Player" +msgstr "DVD Spieler" + +msgid "DVD media toolbox" +msgstr "DVD media arkbak" + +msgid "Danish" +msgstr "Deensk" + +msgid "Date" +msgstr "Datum" + +msgid "Deep Standby" +msgstr "Sliip stand" + +msgid "Default services lists" +msgstr "Standert ynstellingen lysten" + +msgid "Default settings" +msgstr "Standert ynstellingen" + +msgid "Delay" +msgstr "Fertraging" + +msgid "Delete" +msgstr "Ferwiderje" + +msgid "Delete entry" +msgstr "Ferwiderje ynfier" + +msgid "Delete failed!" +msgstr "Ferwiderjen mislearre!" + +#, python-format +msgid "" +"Delete no more configured satellite\n" +"%s?" +msgstr "" +"Ferwiderje de net brûkte satellyt\n" +"%s?" + +msgid "Description" +msgstr "Beskriuwing" + +msgid "Destination directory" +msgstr "Doel Directory" + +msgid "Detected HDD:" +msgstr "Fûne hurde skiif:" + +msgid "Detected NIMs:" +msgstr "Fûne Tuners:" + +msgid "DiSEqC" +msgstr "DiSEqC" + +msgid "DiSEqC A/B" +msgstr "DiSEqC A/B" + +msgid "DiSEqC A/B/C/D" +msgstr "DiSEqC A/B/C/D" + +msgid "DiSEqC mode" +msgstr "DiSEqC-Mode" + +msgid "DiSEqC repeats" +msgstr "DiSEqC herhellingen" + +msgid "Direct playback of linked titles without menu" +msgstr "Direkt ôfspielje fan keppele titels sûnder menu" + +#, python-format +msgid "Directory %s nonexistent." +msgstr "Map %s bestiit net" + +msgid "Disable" +msgstr "Utskeakelje" + +msgid "Disable Picture in Picture" +msgstr "PIP utskeakelje" + +msgid "Disable Subtitles" +msgstr "Undertitels út" + +msgid "Disable timer" +msgstr "Tiidstjoering útskeakelje" + +msgid "Disabled" +msgstr "Utskeakele" + +#, python-format +msgid "" +"Disconnected from\n" +"Fritz!Box! (%s)\n" +"retrying..." +msgstr "" +"Ferbining ferbrutsen mei\n" +"Fritz!Box! (%s)\n" +"besyket nochris..." + +msgid "Dish" +msgstr "Panne" + +msgid "Display 16:9 content as" +msgstr "16:9 ynhâld sjen litte as" + +msgid "Display 4:3 content as" +msgstr "4:3 ynhâld sjen litte as" + +msgid "Display Setup" +msgstr "Ynstellingen sjen litte" + +#, python-format +msgid "" +"Do you really want to REMOVE\n" +"the plugin \"%s\"?" +msgstr "Wolle jo wier de plugin \"%s\" ferwiderje ?" + +msgid "" +"Do you really want to check the filesystem?\n" +"This could take lots of time!" +msgstr "Wolle jo echt it bestânsysteem neisjen ?
Dit kin lang duorje !" + +#, python-format +msgid "Do you really want to delete %s?" +msgstr "Wolle jo wier %s ferwiderje?" + +#, python-format +msgid "" +"Do you really want to download\n" +"the plugin \"%s\"?" +msgstr "Wolle jo wier de plugin \"%s\" binnenhelje ?" + +msgid "" +"Do you really want to initialize the harddisk?\n" +"All data on the disk will be lost!" +msgstr "" + +#, python-format +msgid "Do you really want to remove directory %s from the disk?" +msgstr "Wolle jo echt map %s ferwiderje van skiif ?" + +#, python-format +msgid "Do you really want to remove your bookmark of %s?" +msgstr "Wolle jo echt boekmerk fan %s ferwiderje ?" + +msgid "" +"Do you want to backup now?\n" +"After pressing OK, please wait!" +msgstr "" +"Wolle jo no in backup meitsje?\n" +"Nei OK, eefkes wachtsje" + +msgid "Do you want to burn this collection to DVD medium?" +msgstr "Wolle jo dizze kolleksje nei DVD brâne ?" + +msgid "Do you want to do a service scan?" +msgstr "Wolle jo no nei kanalen sykje ?" + +msgid "Do you want to do another manual service scan?" +msgstr "Wolle jo opnei mei de hân sykje ?" + +msgid "Do you want to enable the parental control feature on your dreambox?" +msgstr "Wolle jo it berne slot ynskeakelje ?" + +msgid "Do you want to install default sat lists?" +msgstr "Wolle jo de standert sat lysten installearje ?" + +msgid "Do you want to play DVD in drive?" +msgstr "Wolle jo de DVD ôfspielje ?" + +msgid "Do you want to preview this DVD before burning?" +msgstr "Wolle jo de DVD besjen foar it brânen ?" + +msgid "Do you want to restore your settings?" +msgstr "Wolle jo jo ynstellingen wêrom sette ?" + +msgid "Do you want to resume this playback?" +msgstr "Wolle jo dit opnimmen fjierder ôfspielje ?" + +msgid "" +"Do you want to update your Dreambox?\n" +"After pressing OK, please wait!" +msgstr "" +"Wolle jo jo dreambox bywurkje ?\n" +"Nei Ok, eefkes geduld !" + +msgid "Do you want to view a tutorial?" +msgstr "Wolle jo in foarbyld sjen ?" + +msgid "Don't stop current event but disable coming events" +msgstr "Dit barren net stopje, maar oankommende barren útskeakelje" + +#, python-format +msgid "Done - Installed or upgraded %d packages" +msgstr "Dien - %d paket(ten) ynstalllearre of bywurke" + +#, python-format +msgid "Done - Installed or upgraded %d packages with %d errors" +msgstr "Klear - %d paket(ten) ynstallearre of bywurke mei %d flaters" + +msgid "Download" +msgstr "Binnenhelje" + +msgid "Download .NFI-Files for USB-Flasher" +msgstr "Binnenhelje fan .NFI triemen foar USB Flasher" + +msgid "Download Plugins" +msgstr "Ynstekkers binnenhelje" + +msgid "Download of USB flasher boot image failed: " +msgstr "Binnenhelje fan USB boot image misljearre:" + +msgid "Downloadable new plugins" +msgstr "Binnen te heljen nije ynstekkers" + +msgid "Downloadable plugins" +msgstr "Binnen te heljen ynstekkers" + +msgid "Downloading" +msgstr "Binnenheljen fan" + +msgid "Downloading plugin information. Please wait..." +msgstr "Binnenheljen fan ynstekker ynformaasje..." + +msgid "Dreambox format data DVD (HDTV compatible)" +msgstr "Dreambox yndieling data DVD (HDTV geskikt)" + +msgid "Dutch" +msgstr "Nederlansk" + +msgid "E" +msgstr "E" + +msgid "EPG Selection" +msgstr "EPG Seleksje" + +#, python-format +msgid "ERROR - failed to scan (%s)!" +msgstr "Flater - Sykjen mislearre (%s)!" + +msgid "East" +msgstr "East" + +msgid "Edit" +msgstr "" + +msgid "Edit DNS" +msgstr "Wyzigje de DNS" + +msgid "Edit Title" +msgstr "" + +msgid "Edit chapters of current title" +msgstr "Bewurkje haadstik fan dizze titel" + +msgid "Edit services list" +msgstr "Wyzigje kanaallyst" + +msgid "Edit settings" +msgstr "Wyzigje ynstellingen" + +msgid "Edit the Nameserver configuration of your Dreambox.\n" +msgstr "Bewrukje de nammeserver ynstellingen fan de Dreambox.\n" + +msgid "Edit the network configuration of your Dreambox.\n" +msgstr "Bewurkje de netwurk ynstellingen fan de Dreambox.\n" + +msgid "Edit title" +msgstr "Bewukje titel" + +msgid "Electronic Program Guide" +msgstr "Elektroniske Programma Gids" + +msgid "Enable" +msgstr "Ynskeakelje" + +msgid "Enable 5V for active antenna" +msgstr "5V ynskeakelje foar hjoeddeiske antenne" + +msgid "Enable multiple bouquets" +msgstr "Mear boeketten sjen litte" + +msgid "Enable parental control" +msgstr "Alderlik tasjoch ynskeakelje" + +msgid "Enable timer" +msgstr "Tiidsjtoering ynskeakelje" + +msgid "Enabled" +msgstr "Ynskeakele" + +msgid "Encryption" +msgstr "Encryption" + +msgid "Encryption Key" +msgstr "Encryption Kaai" + +msgid "Encryption Keytype" +msgstr "" + +msgid "Encryption Type" +msgstr "Encryption Type" + +msgid "End time" +msgstr "Eintiid" + +msgid "EndTime" +msgstr "Eintiid" + +msgid "English" +msgstr "Engelsk" + +msgid "" +"Enigma2 Skinselector v0.5 BETA\n" +"\n" +"If you experience any problems please contact\n" +"stephan@reichholf.net\n" +"\n" +"© 2006 - Stephan Reichholf" +msgstr "" +"Enigma2 Skinselector v0.5 BETA\n" +"\n" +"Ot jo problemen hawwe, kinne jo stephan@reichholf.net\n" +"probearje te beriken\n" +"© 2006 - Stephan Reichholf" + +#. TRANSLATORS: Note that "Enter" in the two strings below should *not* +#. be interpreted as "Give speed as input". The intended meaning is +#. instead "Initial speed when starting winding", i.e. the speed at +#. which "winding mode" is entered when first pressing "rewind" or +#. "fast forward". +msgid "Enter Fast Forward at speed" +msgstr "Ynjefte rap foarút by faasje" + +msgid "Enter Rewind at speed" +msgstr "Ynjefte rap efterút by faasje" + +msgid "Enter WLAN network name/SSID:" +msgstr "" + +msgid "Enter WLAN passphrase/key:" +msgstr "" + +msgid "Enter main menu..." +msgstr "Nei it haadmenu..." + +msgid "Enter the service pin" +msgstr "Fier de service pin yn" + +msgid "Error" +msgstr "Flater" + +msgid "Error executing plugin" +msgstr "Flater by útfieren fan ynstekker" + +#, python-format +msgid "" +"Error: %s\n" +"Retry?" +msgstr "" +"Flater: %s\n" +"Opnei ?" + +msgid "Eventview" +msgstr "Barren oersjoch" + +msgid "Everything is fine" +msgstr "Alles is goed" + +msgid "Execution Progress:" +msgstr "Utfieren foarutgong:" + +msgid "Execution finished!!" +msgstr "Utfiering klear.." + +msgid "Exif" +msgstr "" + +msgid "Exit" +msgstr "ofslúte" + +msgid "Exit editor" +msgstr "Bewurker ofslúte" + +msgid "Exit the wizard" +msgstr "De gucheler ofslúte" + +msgid "Exit wizard" +msgstr "Gucheler ofslúte" + +msgid "Expert" +msgstr "Avansearre" + +msgid "Extended Networksetup Plugin..." +msgstr "Utwreide Netwurkynstellingen Ynstekker..." + +msgid "Extended Setup..." +msgstr "Utwreide Ynstellingen..." + +msgid "Extensions" +msgstr "Utwreidingen" + +msgid "FEC" +msgstr "FEC" + +msgid "Factory reset" +msgstr "Fabryks ynstellingen" + +msgid "Failed" +msgstr "mislearre" + +msgid "Fast" +msgstr "Rap" + +msgid "Fast DiSEqC" +msgstr "Rappe DiSEqC" + +msgid "Fast Forward speeds" +msgstr "Rap foarút faasje" + +msgid "Fast epoch" +msgstr "Snelle epoch" + +msgid "Favourites" +msgstr "Favoryten" + +msgid "Filesystem Check..." +msgstr "Bestânsysteem Neisjen..." + +msgid "Filesystem contains uncorrectable errors" +msgstr "It bestânsysteem hat grutte flaters" + +msgid "Finetune" +msgstr "Fyn ôfstemme" + +msgid "Finished" +msgstr "Ofrûn" + +msgid "Finished configuring your network" +msgstr "" + +msgid "Finished restarting your network" +msgstr "" + +msgid "Finnish" +msgstr "Finsk" + +msgid "" +"First we need to download the latest boot environment for the USB flasher." +msgstr "" +"Earst moat de lêste opstart triemen binnenhelle wurde foar de USB flasher." + +msgid "Flash" +msgstr "Flash" + +msgid "Flashing failed" +msgstr "Flashen misljearre" + +msgid "Font size" +msgstr "Font grutte" + +msgid "Format" +msgstr "Formaat" + +msgid "Frame repeat count during non-smooth winding" +msgstr "Byld herhelling by net glêd foar/efterút spielen" + +msgid "Frame size in full view" +msgstr "" + +msgid "French" +msgstr "Frans" + +msgid "Frequency" +msgstr "Frekwinsje" + +msgid "Frequency bands" +msgstr "Frekwinsje bânnen" + +msgid "Frequency scan step size(khz)" +msgstr "Frekwinsje sykjen stap grutte(kHz)" + +msgid "Frequency steps" +msgstr "Oantal Frekwinsje stappen" + +msgid "Fri" +msgstr "Fre" + +msgid "Friday" +msgstr "Freed" + +msgid "Frisian" +msgstr "" + +msgid "Fritz!Box FON IP address" +msgstr "Fritz!Box FON IP adres" + +#, python-format +msgid "Frontprocessor version: %d" +msgstr "Foarprocessor ferzje: %d" + +msgid "Fsck failed" +msgstr "mislearre fsck" + +msgid "Function not yet implemented" +msgstr "Nog net ynbouwde funksje" + +msgid "" +"GUI needs a restart to apply a new skin\n" +"Do you want to Restart the GUI now?" +msgstr "" +"De GUI moat opnij starte fan wege de nije skin\n" +"Wolle jo de GUI no opnei starte ?" + +msgid "Gateway" +msgstr "Gateway" + +msgid "Genre:" +msgstr "Sjenre:" + +msgid "German" +msgstr "Dúts" + +msgid "Getting plugin information. Please wait..." +msgstr "Binnenhelje fan ynstekker ynformaasje...." + +msgid "Goto 0" +msgstr "Gjin nei 0" + +msgid "Goto position" +msgstr "Gjin nei posysje" + +msgid "Graphical Multi EPG" +msgstr "Grafyske Multi EPG" + +msgid "Greek" +msgstr "Gryks" + +msgid "Guard Interval" +msgstr "ynterfal yn 'e gaten halde" + +msgid "Guard interval mode" +msgstr "Ynterfal modus yn 'e gaten halde" + +msgid "Harddisk" +msgstr "Hurde skiif" + +msgid "Harddisk setup" +msgstr "Hurde skiif ynstellingen" + +msgid "Harddisk standby after" +msgstr "Hurde skiif yn sliipstand nei" + +msgid "Hidden network SSID" +msgstr "" + +msgid "Hierarchy Information" +msgstr "Hiërarchie Ynformaasje" + +msgid "Hierarchy mode" +msgstr "Hiërarchie mode" + +msgid "How many minutes do you want to record?" +msgstr "Hoe folle minuten wolle jo opnimme?" + +msgid "Hungarian" +msgstr "Hongaarsk" + +msgid "IP Address" +msgstr "IP Adres" + +msgid "ISO file is too large for this filesystem!" +msgstr "" + +msgid "ISO path" +msgstr "ISO paad" + +msgid "Icelandic" +msgstr "Iislansk" + +msgid "If you can see this page, please press OK." +msgstr "Kinne dizze side sjen, druk dan op OK" + +msgid "" +"If you see this, something is wrong with\n" +"your scart connection. Press OK to return." +msgstr "" +"Ot jo dit leze, is der iets raar skeef mei\n" +"jo skart oansluting. Druk OK om werom te gean." + +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 you are happy with the result, press OK." +msgstr "" +"Skeakelje in helderens of kontrast ferbettering op jo TV út. Is der iets mei " +"de namme \"dynamysk\", set it nei standert. Set it eftergrûn helderens nivo " +"nei jo eigen smaak. Set it konstrast sa leech mooglik op jo TV.\n" +"Dan, set it helderens nivo sa leech as mooglik, mar soargje dat de twa " +"leechste griistinten krek anwêzig bliuwe\n" +"Meitsje jo net drok om de helderenstinten no. Die komme werom yn de folgende " +"stap\n" +"Binne jo tefreden mei it resultaat, druk OK" + +msgid "Image flash utility" +msgstr "Image flash ark" + +msgid "Image-Upgrade" +msgstr "Byld-bywurkje" + +msgid "In Progress" +msgstr "Dwaande" + +msgid "" +"In order to record a timer, the TV was switched to the recording service!\n" +msgstr "Op in barren op te nimmen, wurd de TV nei opnimmen skeakele!\n" + +msgid "Increased voltage" +msgstr "Ferheeche spanning" + +msgid "Index" +msgstr "Yndex" + +msgid "InfoBar" +msgstr "Ynfobalke" + +msgid "Infobar timeout" +msgstr "Ynfobalke tiid" + +msgid "Information" +msgstr "Ynformaasje" + +msgid "Init" +msgstr "Initialisearje" + +msgid "Initialization..." +msgstr "Formattearje..." + +msgid "Initialize" +msgstr "Formattearje HDD" + +msgid "Initializing Harddisk..." +msgstr "" + +msgid "Input" +msgstr "Ynfier" + +msgid "Installing" +msgstr "Oan it ynstallearjen" + +msgid "Installing Software..." +msgstr "Software oan it ynstallearjen..." + +msgid "Installing default sat lists... Please wait..." +msgstr "Standert sat lyst oan it ynstalearjen... " + +msgid "Installing defaults... Please wait..." +msgstr "Standert waarden an it ynstellen..." + +msgid "Installing package content... Please wait..." +msgstr "Pakket ynhald an it ynstallearjen... Eefkes wachtsje" + +msgid "Instant Record..." +msgstr "In direct opnimmen..." + +msgid "Integrated Ethernet" +msgstr "Integreerd Ethernet" + +msgid "Integrated Wireless" +msgstr "Integreerd Triidloas" + +msgid "Intermediate" +msgstr "Yntermediate" + +msgid "Internal Flash" +msgstr "Ynterne Flash" + +msgid "Invalid Location" +msgstr "Plak net tastien" + +#, python-format +msgid "Invalid directory selected: %s" +msgstr "Unjildige map selektearre: %s" + +msgid "Inversion" +msgstr "Infertearring" + +msgid "Invert display" +msgstr "Infertearje LCD" + +msgid "Italian" +msgstr "Italiaansk" + +msgid "Job View" +msgstr "Opdracht oansjoch" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, even if this breaks the aspect) +msgid "Just Scale" +msgstr "Alinne skale" + +msgid "Keyboard Map" +msgstr "Toetseboerd Map" + +msgid "Keyboard Setup" +msgstr "Toetseboerd Ynstellingen" + +msgid "Keymap" +msgstr "Toetsebord yndieling" + +msgid "LAN Adapter" +msgstr "LAN oanslúting" + +msgid "LNB" +msgstr "LNB" + +msgid "LOF" +msgstr "LOF" + +msgid "LOF/H" +msgstr "LOF/H" + +msgid "LOF/L" +msgstr "LOF/L" + +msgid "Language selection" +msgstr "Taal Kieze" + +msgid "Language..." +msgstr "Taal..." + +msgid "Last speed" +msgstr "Lêste faasje" + +msgid "Latitude" +msgstr "Bridtegraad" + +msgid "Leave DVD Player?" +msgstr "DVD Spieler ôfslúte ?" + +msgid "Left" +msgstr "Links" + +#. TRANSLATORS: (aspect ratio policy: black bars on top/bottom) in doubt, keep english term. +msgid "Letterbox" +msgstr "Letterbox" + +msgid "Limit east" +msgstr "Limyt east" + +msgid "Limit west" +msgstr "Limyt west" + +msgid "Limits off" +msgstr "Limyten út" + +msgid "Limits on" +msgstr "Limyt oan" + +msgid "Link:" +msgstr "Link:" + +msgid "Linked titles with a DVD menu" +msgstr "Keppele titels mei in DVD menu" + +msgid "List of Storage Devices" +msgstr "Lyst Opslach Apparatuur" + +msgid "Lithuanian" +msgstr "Lithuaniansk" + +msgid "Load" +msgstr "Laad" + +msgid "Load Length of Movies in Movielist" +msgstr "Laad lengte fan films yn filmlyst" + +msgid "Local Network" +msgstr "Lokaal netwurk" + +msgid "Location" +msgstr "Doel" + +msgid "Lock:" +msgstr "Slot:" + +msgid "Long Keypress" +msgstr "Lang taste yndrukken" + +msgid "Longitude" +msgstr "Lingtegraad" + +msgid "MMC Card" +msgstr "MMC kaart" + +msgid "MORE" +msgstr "MEER" + +msgid "Main menu" +msgstr "Haad menu" + +msgid "Mainmenu" +msgstr "HaadMenu" + +msgid "Make this mark an 'in' point" +msgstr "Markeer dit as in 'yn' punt" + +msgid "Make this mark an 'out' point" +msgstr "Markeer dit as in 'út' punt" + +msgid "Make this mark just a mark" +msgstr "Meitsje dit in gewoan markeer punt" + +msgid "Manual Scan" +msgstr "Hanmatig sykje" + +msgid "Manual transponder" +msgstr "Hanmatige transponder" + +msgid "Margin after record" +msgstr "Extra tiid nei by it opnimmen" + +msgid "Margin before record (minutes)" +msgstr "Extra tiid foar by it opnimmen" + +msgid "Media player" +msgstr "Media Spieler" + +msgid "MediaPlayer" +msgstr "MediaSpieler" + +msgid "Medium is not a writeable DVD!" +msgstr "Medium is net in skriuwbêre DVD!" + +msgid "Medium is not empty!" +msgstr "Medium is net leech!" + +msgid "Menu" +msgstr "Menu" + +msgid "Message" +msgstr "Berjocht" + +msgid "Mkfs failed" +msgstr "Mkfs mislearre" + +msgid "Mode" +msgstr "Moadus" + +msgid "Model: " +msgstr "Model: " + +msgid "Modulation" +msgstr "Modulaasje" + +msgid "Modulator" +msgstr "Modulator" + +msgid "Mon" +msgstr "Moan" + +msgid "Mon-Fri" +msgstr "Moan - Fre" + +msgid "Monday" +msgstr "Moandei" + +msgid "Mount failed" +msgstr "Oankeppeljen mislearre" + +msgid "Move Picture in Picture" +msgstr "Ferpleats Byld yn Byld" + +msgid "Move east" +msgstr "Draai nei east" + +msgid "Move west" +msgstr "Draai nei west" + +msgid "Movielist menu" +msgstr "Filmlyst menu" + +msgid "Multi EPG" +msgstr "Multi EPG" + +msgid "Multiple service support" +msgstr "Kin meardere utstjoeringen oan" + +msgid "Multisat" +msgstr "Multisat" + +msgid "Mute" +msgstr "Mute" + +msgid "N/A" +msgstr "Net oanwêzig" + +msgid "NEXT" +msgstr "Folgende" + +msgid "NFI image flashing completed. Press Yellow to Reboot!" +msgstr "NFI image flashen is klear. Druk giel om nei te starten!" + +msgid "NOW" +msgstr "No" + +msgid "NTSC" +msgstr "NTSC" + +msgid "Name" +msgstr "Namme" + +msgid "Nameserver" +msgstr "Nammeserver" + +#, python-format +msgid "Nameserver %d" +msgstr "Nammeserver %d" + +msgid "Nameserver Setup" +msgstr "Nammeserver Ynstellingen" + +msgid "Nameserver settings" +msgstr "Nammeserver ynstellingen" + +msgid "Netmask" +msgstr "Netmasker" + +msgid "Network Configuration..." +msgstr "Netwurk configuraasje" + +msgid "Network Mount" +msgstr "Netwurk oankeppelingen" + +msgid "Network SSID" +msgstr "Netwurk SSID" + +msgid "Network Setup" +msgstr "Netwurk Ynstellingen" + +msgid "Network scan" +msgstr "Netwurk ôfsykje" + +msgid "Network setup" +msgstr "Netwurk ynstellingen" + +msgid "Network test" +msgstr "Netwurk test" + +msgid "Network test..." +msgstr "Netwurk test..." + +msgid "Network..." +msgstr "Netwurk..." + +msgid "Network:" +msgstr "Netwurk:" + +msgid "NetworkWizard" +msgstr "Netwurk gûcheler" + +msgid "New" +msgstr "Nij" + +msgid "New pin" +msgstr "Nije pin" + +msgid "New version:" +msgstr "Nije ferzje:" + +msgid "Next" +msgstr "Folgende" + +msgid "No" +msgstr "Nee" + +msgid "No (supported) DVDROM found!" +msgstr "Gjin (ondersteunde) DVDROM fûn!" + +msgid "No 50 Hz, sorry. :(" +msgstr "Gjin 50 Hz, sorry. :(" + +msgid "No HDD found or HDD not initialized!" +msgstr "Gjin hurde skiif fûn of HDD net formatearre!" + +msgid "No Networks found" +msgstr "" + +msgid "No backup needed" +msgstr "Gjin backup nedich" + +msgid "" +"No data on transponder!\n" +"(Timeout reading PAT)" +msgstr "" +"Gjin data op transponder\n" +"(tiid fan lêzen PAT)" + +msgid "No details for this image file" +msgstr "Gjin details beskikber foar dit image triem" + +msgid "No event info found, recording indefinitely." +msgstr "Gjin barren ynfo fûn, giit foar altiid troch mei opnimmen.." + +msgid "No free tuner!" +msgstr "Gjin tuner oer" + +msgid "" +"No packages were upgraded yet. So you can check your network and try again." +msgstr "Pakketten bin net bywurke. Besjoch it netwurk en besykje opnei." + +msgid "No picture on TV? Press EXIT and retry." +msgstr "Gjin plaatsje op TV? Druk EXIT en probearje opnei" + +msgid "No positioner capable frontend found." +msgstr "Gjin posysjesyker foarein fûn." + +msgid "No satellite frontend found!!" +msgstr "Gjin sattelyt foarein fûn." + +msgid "No tags are set on these movies." +msgstr "" + +msgid "No tuner is configured for use with a diseqc positioner!" +msgstr "Der is gjin tuner ynsteld foar gebrûk mei in diseqc posysje syker!" + +msgid "" +"No tuner is enabled!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Gjin tuner aktief!\n" +"Stel dizze earst yn foar jo kanalen sykje kinne." + +msgid "No useable USB stick found" +msgstr "Gjin brûkbere USB stick fûn" + +msgid "" +"No valid service PIN found!\n" +"Do you like to change the service PIN now?\n" +"When you say 'No' here the service protection stay disabled!" +msgstr "" +"Gjin jildige service PIN fûn !\n" +"Wolle jo dizze no ynstelle ?\n" +"By 'nee' wurd de service befeiliging útskeakele !" + +msgid "" +"No valid setup PIN found!\n" +"Do you like to change the setup PIN now?\n" +"When you say 'No' here the setup protection stay disabled!" +msgstr "" +"Gjin jildige ynstellingen PIN fûn !\n" +"Wolle jo dizze no ynstelle ?\n" +"By 'nee' wurd de ynstellingen befeiliging útskeakele !" + +msgid "" +"No working local network adapter found.\n" +"Please verify that you have attached a network cable and your network is " +"configured correctly." +msgstr "" + +msgid "" +"No working wireless network adapter found.\n" +"Please verify that you have attached a compatible WLAN device and your " +"network is configured correctly." +msgstr "" + +msgid "" +"No working wireless network interface found.\n" +" Please verify that you have attached a compatible WLAN device or enable " +"your local network interface." +msgstr "" + +msgid "No, but restart from begin" +msgstr "Nee, mar start fanôf it begjin" + +msgid "No, do nothing." +msgstr "Nee, doch neat.." + +msgid "No, just start my dreambox" +msgstr "Nee, allinne myn box starte" + +msgid "No, scan later manually" +msgstr "Nee, letter mei de hân sykje" + +msgid "None" +msgstr "Gjin" + +#. TRANSLATORS: (aspect ratio policy: display as fullscreen, with stretching the left/right) +msgid "Nonlinear" +msgstr "Net lineair" + +msgid "North" +msgstr "Noard" + +msgid "Norwegian" +msgstr "Noarsk" + +#, python-format +msgid "" +"Not enough diskspace. Please free up some diskspace and try again. (%d MB " +"required, %d MB available)" +msgstr "" +"Net genôch diskrûmte. Rûmje wat rotzooi op en besykje opnei. (%d MB nedich, %" +"d oanwêzich)" + +msgid "" +"Nothing to scan!\n" +"Please setup your tuner settings before you start a service scan." +msgstr "" +"Neat te sykjen\n" +"Earst de tuner ynstellingen dwaan, foar jo senders sykje kinne." + +msgid "Now Playing" +msgstr "No oan it ôfspieljen" + +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 "" +"No, feroare it helderens nivo en set it sa heech, mar wêz seker dat jo " +"altiid nog it ferskil sjogge tusken de twa helderste skaadnivos.Binne jo " +"klear, druk OK" + +msgid "OK" +msgstr "Ok" + +msgid "OK, guide me through the upgrade process" +msgstr "Ok, rin troch it bywurkjen proces" + +msgid "OSD Settings" +msgstr "OSD-ynstellingen" + +msgid "OSD visibility" +msgstr "OSD sichtberhiid" + +msgid "Off" +msgstr "Ut" + +msgid "On" +msgstr "Oan" + +msgid "One" +msgstr "Ien" + +msgid "Online-Upgrade" +msgstr "Online-Bywurkje" + +msgid "Only Free scan" +msgstr "Allinne Freie útstjoeringen" + +msgid "Orbital Position" +msgstr "Rumtelyke posisje" + +msgid "PAL" +msgstr "PAL" + +msgid "PIDs" +msgstr "PIDs" + +msgid "Package list update" +msgstr "Bywurkje pakketlyst " + +msgid "Packet management" +msgstr "Pakket beheer" + +msgid "Page" +msgstr "Side" + +#. TRANSLATORS: (aspect ratio policy: cropped content on left/right) in doubt, keep english term +msgid "Pan&Scan" +msgstr "Pan&Scan" + +msgid "Parent Directory" +msgstr "Boppelizzende map" + +msgid "Parental control" +msgstr "Alderlik tasjoch" + +msgid "Parental control services Editor" +msgstr "Alderlik tasjoch bewurker" + +msgid "Parental control setup" +msgstr "Alderlik tasjoch" + +msgid "Parental control type" +msgstr "Alderlik tasjoch type" + +msgid "Pause movie at end" +msgstr "Film op pause by ein" + +msgid "PiPSetup" +msgstr "PIP Ynstellingen" + +msgid "PicturePlayer" +msgstr "" + +#. TRANSLATORS: (aspect ratio policy: black bars on left/right) in doubt, keep english term. +msgid "Pillarbox" +msgstr "Pillar box" + +msgid "Pilot" +msgstr "Pilot" + +msgid "Pin code needed" +msgstr "Pinkode is needich" + +msgid "Play" +msgstr "Ofspylje" + +msgid "Play Audio-CD..." +msgstr "Ofspylje fan Audio-CD..." + +msgid "Play recorded movies..." +msgstr "Opname films ôfspielje..." + +msgid "Please Reboot" +msgstr "Start Dreambox opnei" + +msgid "Please Select Medium to be Scanned" +msgstr "Graach Medium kieze om ôf te sykjen" + +msgid "Please change recording endtime" +msgstr "Graach eintiid fan it opnimmen feroarje." + +msgid "Please check your network settings!" +msgstr "Graach netwurk ynstellingen neisjen!" + +msgid "Please choose .NFI image file from feed server to download" +msgstr "Graach .NFI image triem kize fan feed server om binnen te heljen" + +msgid "Please choose an extension..." +msgstr "Kies in uitbreiding..." + +msgid "Please choose he package..." +msgstr "Kies it pakket..." + +msgid "Please choose the default services lists you want to install." +msgstr "Kies de standert lysts, welk jo ynstallearje wolle." + +msgid "" +"Please disconnect all USB devices from your Dreambox and (re-)attach the " +"target USB stick (minimum size is 64 MB) now!" +msgstr "" + +msgid "Please do not change any values unless you know what you are doing!" +msgstr "Feroarje gjin waarden, wannear jo net witte wat jo dogge!" + +msgid "Please enter a name for the new bouquet" +msgstr "Namme ynjefte foar it nije bouquet" + +msgid "Please enter a name for the new marker" +msgstr "Namme ynjefte foar in nije markering" + +msgid "Please enter a new filename" +msgstr "Jou in nije bestânnamme yn" + +msgid "Please enter filename (empty = use current date)" +msgstr "Jou in triemnamme yn (leech = datum fan hjoed)" + +msgid "Please enter name of the new directory" +msgstr "Jou in namme yn foar de nije map" + +msgid "Please enter the correct pin code" +msgstr "Graach de júste pinkode yn jaan" + +msgid "Please enter the old pin code" +msgstr "De âlde pinkode graach yn jaan" + +msgid "Please follow the instructions on the TV" +msgstr "Folgje de ynstruksjes op TV" + +msgid "" +"Please note that the previously selected media could not be accessed and " +"therefore the default directory is being used instead." +msgstr "" +"Tink der om dat de foarige selektearre media net oansprutsen wurde koe, en " +"dêrom de standert map brûkt wurd." + +msgid "Please press OK to continue." +msgstr "Druk OK om fierder te gean." + +msgid "Please press OK!" +msgstr "Druk Ok!" + +msgid "Please select .NFI flash image file from medium" +msgstr "Selektearje in .NFI flash image triem fan medium" + +msgid "Please select a playlist to delete..." +msgstr "Selektearje in ofspiellyst om te ferwiderjen..." + +msgid "Please select a playlist..." +msgstr "Selektearje in ofspiellyst" + +msgid "Please select a subservice to record..." +msgstr "Jou in undersender op, om op te nimmen." + +msgid "Please select a subservice..." +msgstr "Selektearje in undersender..." + +msgid "Please select tag to filter..." +msgstr "" + +msgid "Please select target directory or medium" +msgstr "Selektearje doel map of medium" + +msgid "Please select the movie path..." +msgstr "Selektearje it paad nei de film" + +msgid "Please set up tuner B" +msgstr "ynstelle fan tuner B" + +msgid "Please set up tuner C" +msgstr "ynstelle fan tuner C" + +msgid "Please set up tuner D" +msgstr "ynstelle fan tuner D" + +msgid "" +"Please use 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 "" +"Pylkje knoppen om BIB finster te ferskowen.\n" +"Druk Bouquet +/- om finstergrutte te feroarjen" + +msgid "" +"Please use the UP and DOWN keys to select your language. Afterwards press " +"the OK button." +msgstr "Brúk de op en del toets om jo taal te kiezen. Dernei druk op OK" + +msgid "Please wait for activation of your network configuration..." +msgstr "" + +msgid "Please wait while we configure your network..." +msgstr "" + +msgid "Please wait while your network is restarting..." +msgstr "" + +msgid "Please wait..." +msgstr "" + +msgid "Please wait... Loading list..." +msgstr "Lyst wurd laden..." + +msgid "Plugin browser" +msgstr "Ynstekker browser" + +msgid "Plugins" +msgstr "Ynstekkers" + +msgid "Polarity" +msgstr "Polariteit" + +msgid "Polarization" +msgstr "Polarisaasje" + +msgid "Polish" +msgstr "Poolsk" + +msgid "Port A" +msgstr "Poort A" + +msgid "Port B" +msgstr "Poort B" + +msgid "Port C" +msgstr "Poort C" + +msgid "Port D" +msgstr "Poort D" + +msgid "Portuguese" +msgstr "Portugeesk" + +msgid "Positioner" +msgstr "Rotor" + +msgid "Positioner fine movement" +msgstr "Fyn ôfstelling rotor" + +msgid "Positioner movement" +msgstr "Rotor beweging" + +msgid "Positioner setup" +msgstr "Rotor ynstellingen" + +msgid "Positioner storage" +msgstr "Rotor positie opslach" + +msgid "Power threshold in mA" +msgstr "Stroom nivo yn mA" + +msgid "Predefined transponder" +msgstr "Foarôf ynstelde transponder" + +msgid "Preparing... Please wait" +msgstr "Foarbereide fan... Eefkes wachtsje" + +msgid "Press OK on your remote control to continue." +msgstr "Druk OK op of ôfstandsbestjinning om fierder te gean." + +msgid "Press OK to activate the settings." +msgstr "Druk Ok om ynstellingen aktief te meitsjen." + +msgid "Press OK to edit the settings." +msgstr "Druk OK om dizze ynstellingen te bewurkjen" + +msgid "Press OK to scan" +msgstr "Druk Ok om te sykjen" + +msgid "Press OK to start the scan" +msgstr "Druk Ok om sykjen te starten" + +msgid "Prev" +msgstr "Foarige" + +msgid "Preview menu" +msgstr "Foarige menu" + +msgid "Primary DNS" +msgstr "Eerste DNS" + +msgid "Properties of current title" +msgstr "" + +msgid "Protect services" +msgstr "Befeilich kanalen" + +msgid "Protect setup" +msgstr "Ynstellingen befeiligje" + +msgid "Provider" +msgstr "Leveransier" + +msgid "Provider to scan" +msgstr "Utstjoerder ôfsykje" + +msgid "Providers" +msgstr "Providers" + +msgid "Quickzap" +msgstr "Rapzappe" + +msgid "RC Menu" +msgstr "Ofstandsbetsjinnings menu" + +msgid "RF output" +msgstr "RF Ynstellingen" + +msgid "RGB" +msgstr "RGB" + +msgid "RSS Feed URI" +msgstr "RSS Feed URI" + +msgid "Radio" +msgstr "Radio" + +msgid "Ram Disk" +msgstr "Ram Disk" + +msgid "Really close without saving settings?" +msgstr "Slúte sunder op te slaan ?" + +msgid "Really delete done timers?" +msgstr "Ferwiderje diene tiidsbarren?" + +msgid "Really delete this timer?" +msgstr "Dit tiidsbarren ferwiderje?" + +msgid "Really exit the subservices quickzap?" +msgstr "De undersender rapzap ôfslúte?" + +msgid "Really reboot now?" +msgstr "Wier no kompleet opnei starte ?" + +msgid "Really restart now?" +msgstr "Wier no nei starte ?" + +msgid "Really shutdown now?" +msgstr "Wier no kompleet útskeakelje ?" + +msgid "Reboot" +msgstr "kompleet nei starte" + +msgid "Reception Settings" +msgstr "Untfangst Ynstellingen" + +msgid "Record" +msgstr "Opnimme" + +msgid "Recorded files..." +msgstr "Opnâme bestannen..." + +msgid "Recording" +msgstr "An it opnimmen" + +msgid "Recording(s) are in progress or coming up in few seconds!" +msgstr "In Opnimmen is dwaande of start binnen in pear sekonden!" + +msgid "Recordings always have priority" +msgstr "Opnimmen hat altiid foarrang" + +msgid "Reenter new pin" +msgstr "pin opnei ynjaan" + +msgid "Refresh Rate" +msgstr "Fernij faasje" + +msgid "Refresh rate selection." +msgstr "Fernij faasje seleksje" + +msgid "Remove Bookmark" +msgstr "Ferwiderje boekmerk" + +msgid "Remove Plugins" +msgstr "Ferwiderje ynstekkers" + +msgid "Remove a mark" +msgstr "Ferwiderje in Markeerder" + +msgid "Remove currently selected title" +msgstr "Ferwiderje it selektearre bestan" + +msgid "Remove plugins" +msgstr "Ferwiderje ynstekker" + +msgid "Remove the broken .NFI file?" +msgstr "Foute .NFI triem fuortsmite ?" + +msgid "Remove the incomplete .NFI file?" +msgstr "Net komplete .NFI triem fuortsmite ?" + +msgid "Remove title" +msgstr "Ferwiderje de titel" + +#, python-format +msgid "Removing directory %s failed. (Maybe not empty.)" +msgstr "Ferwiderje fan map %s mislearre ( miskien is der net leech )" + +msgid "Rename" +msgstr "Omneame" + +msgid "Repeat" +msgstr "Herhelje" + +msgid "Repeat Type" +msgstr "Herhelje Type" + +msgid "Repeating event currently recording... What do you want to do?" +msgstr "Herhelle barren an it opnimmen... Wat wolle jo dwaan ?" + +msgid "Repeats" +msgstr "Herhellingen" + +msgid "Reset" +msgstr "Reset" + +msgid "Reset and renumerate title names" +msgstr "" + +msgid "Resolution" +msgstr "Skermresolusje" + +msgid "Restart" +msgstr "Opnij starte" + +msgid "Restart GUI" +msgstr "" + +msgid "Restart GUI now?" +msgstr "GUI no opnij starte?" + +msgid "Restart network" +msgstr "Netwurk nij starte" + +msgid "Restart test" +msgstr "Test nij starte" + +msgid "Restart your network connection and interfaces.\n" +msgstr "netwurk oanslúting en interfaces nij starte.\n" + +msgid "Restore" +msgstr "Werom sette" + +msgid "" +"Restoring the settings is done. Please press OK to activate the restored " +"settings now." +msgstr "" +"Werom sette fan ynstellingen is klear. Druk Ok om ynstellingen aktief te " +"meitsjen" + +msgid "Resume from last position" +msgstr "Fierder gean fanôf lêste posysje" + +#. TRANSLATORS: The string "Resuming playback" flashes for a moment +#. TRANSLATORS: at the start of a movie, when the user has selected +#. TRANSLATORS: "Resume from last position" as start behavior. +#. TRANSLATORS: The purpose is to notify the user that the movie starts +#. TRANSLATORS: in the middle somewhere and not from the beginning. +#. TRANSLATORS: (Some translators seem to have interpreted it as a +#. TRANSLATORS: question or a choice, but it is a statement.) +msgid "Resuming playback" +msgstr "Fierder gean mei ôfspieljen" + +msgid "Return to file browser" +msgstr "Werom nei triem browser" + +msgid "Return to movie list" +msgstr "Werom nei de film lyst" + +msgid "Return to previous service" +msgstr "Werom nei foariche service" + +msgid "Rewind speeds" +msgstr "Werom spiel faasje" + +msgid "Right" +msgstr "Rjochts" + +msgid "Rolloff" +msgstr "Utrolje" + +msgid "Rotor turning speed" +msgstr "Rotor rotaasje faasje" + +msgid "Running" +msgstr "Dwaande" + +msgid "Russian" +msgstr "Russysk" + +msgid "S-Video" +msgstr "S Video" + +msgid "SNR" +msgstr "SNR" + +msgid "SNR:" +msgstr "SNR:" + +msgid "Sat" +msgstr "Sneon" + +msgid "Sat / Dish Setup" +msgstr "Sat / Panne Ynstellingen" + +msgid "Satellite" +msgstr "Satellyt" + +msgid "Satellite Equipment Setup" +msgstr "Satellyt ynstellingen" + +msgid "Satellites" +msgstr "Satellyten" + +msgid "Satfinder" +msgstr "Sat syker" + +msgid "Sats" +msgstr "Sats" + +msgid "Saturday" +msgstr "Sneon" + +msgid "Save" +msgstr "Opslaan" + +msgid "Save Playlist" +msgstr "Ofspiellyst opslaan" + +msgid "Scaling Mode" +msgstr "Skaal Moadus" + +msgid "Scan " +msgstr "Sykje" + +msgid "Scan QAM128" +msgstr "Sykje QAM128" + +msgid "Scan QAM16" +msgstr "Sykje QAM16" + +msgid "Scan QAM256" +msgstr "Sykje QAM256" + +msgid "Scan QAM32" +msgstr "Sykje QAM32" + +msgid "Scan QAM64" +msgstr "Sykje QAM64" + +msgid "Scan SR6875" +msgstr "Sykje SR6875" + +msgid "Scan SR6900" +msgstr "Sykje SR6900" + +msgid "Scan Wireless Networks" +msgstr "Sykje Triitloaze netwerken" + +msgid "Scan additional SR" +msgstr "Sykje op in oanfullende SR" + +msgid "Scan band EU HYPER" +msgstr "Sykje op bân EU HYPER" + +msgid "Scan band EU MID" +msgstr "Sykje op bân EU MID" + +msgid "Scan band EU SUPER" +msgstr "Sykje op bân EU SUPER" + +msgid "Scan band EU UHF IV" +msgstr "Sykje op bân EU UHF IV" + +msgid "Scan band EU UHF V" +msgstr "Sykje op bân EU UHF V" + +msgid "Scan band EU VHF I" +msgstr "Sykje op bân EU VHF I" + +msgid "Scan band EU VHF III" +msgstr "Sykje op bân EU VHF III" + +msgid "Scan band US HIGH" +msgstr "Sykje op bân US HIGH" + +msgid "Scan band US HYPER" +msgstr "Sykje op bân US HYPER" + +msgid "Scan band US LOW" +msgstr "Sykje op bân US LOW" + +msgid "Scan band US MID" +msgstr "Sykje op bân US MID" + +msgid "Scan band US SUPER" +msgstr "Sykje op bân US SUPER" + +msgid "" +"Scan your network for wireless Access Points and connect to them using your " +"WLAN USB Stick\n" +msgstr "" +"Sykje nei triidloaze oankeppel punten en ferbyn der mei troch de WLAN USB " +"stick\n" + +msgid "" +"Scans default lamedbs sorted by satellite with a connected dish positioner" +msgstr "" +"Sykje standert lame dbs, neffens de sattelyt mei in oanslúten panne ôfsteller" + +msgid "Search east" +msgstr "Sykje east" + +msgid "Search west" +msgstr "Sykje west" + +msgid "Secondary DNS" +msgstr "Twadde DNS" + +msgid "Seek" +msgstr "Sykje" + +msgid "Select HDD" +msgstr "" + +msgid "Select Location" +msgstr "Kies Lokaasje" + +msgid "Select Network Adapter" +msgstr "Kies Netwurk Adapter" + +msgid "Select a movie" +msgstr "Kies in film" + +msgid "Select audio mode" +msgstr "Kies lûd mode" + +msgid "Select audio track" +msgstr "Kies lûd spoor" + +msgid "Select channel to record from" +msgstr "Kies kanaal om fan op te nimmen" + +msgid "Select image" +msgstr "Kies image" + +msgid "Select refresh rate" +msgstr "Kies faasje fan fernije" + +msgid "Select video input" +msgstr "Kies fideo yngong" + +msgid "Select video mode" +msgstr "Kies fideo moadus" + +msgid "Selected source image" +msgstr "Koazen bron image" + +msgid "Send DiSEqC" +msgstr "" + +msgid "Send DiSEqC only on satellite change" +msgstr "" + +msgid "Seperate titles with a main menu" +msgstr "Aparte triemen mei in haad menu" + +msgid "Sequence repeat" +msgstr "folch oarde herhelling" + +msgid "Service" +msgstr "Kanaal ynfo" + +msgid "Service Scan" +msgstr "Kanaal sykje" + +msgid "Service Searching" +msgstr "Kanalen sykje" + +msgid "Service has been added to the favourites." +msgstr "Kanaal is tafoege oan favorieten." + +msgid "Service has been added to the selected bouquet." +msgstr "Kanaal is tafoege oan selektearre bouquet." + +msgid "" +"Service invalid!\n" +"(Timeout reading PMT)" +msgstr "" +"Kanaal net jildig!\n" +"(Tiidsoerskriding lêzen fan PMT)" + +msgid "" +"Service not found!\n" +"(SID not found in PAT)" +msgstr "" +"Service net fûn!\n" +"(SID net fûn yn PAT)" + +msgid "Service scan" +msgstr "Kanaal sykje" + +msgid "" +"Service unavailable!\n" +"Check tuner configuration!" +msgstr "Kanaal net beskikber!
Sjoch tuner ynstellingen nei." + +msgid "Serviceinfo" +msgstr "Kanaal ynformaasje" + +msgid "Services" +msgstr "Kanalen" + +msgid "Set Voltage and 22KHz" +msgstr "" + +msgid "Set as default Interface" +msgstr "Ynstelle as standert ynterface" + +msgid "Set interface as default Interface" +msgstr "" + +msgid "Set limits" +msgstr "Set limyten" + +msgid "Settings" +msgstr "Ynstellingen" + +msgid "Setup" +msgstr "Ynstelle" + +msgid "Setup Mode" +msgstr "Ynstellingen Moadus" + +msgid "Show Info" +msgstr "Ynformaasje sjen litte" + +msgid "Show WLAN Status" +msgstr "WLAN status sjen litte" + +msgid "Show blinking clock in display during recording" +msgstr "Lit klok knipperje yn display by opnimmen" + +msgid "Show infobar on channel change" +msgstr "Ynfobalke sjen litte by kanaal wiksel" + +msgid "Show infobar on event change" +msgstr "Ynfobalke sjen litte by barren wiksel" + +msgid "Show infobar on skip forward/backward" +msgstr "Ynfobalke sjen by rap foarút / efterút" + +msgid "Show positioner movement" +msgstr "Rotor beweching sjen litte" + +msgid "Show services beginning with" +msgstr "Kanalen sjen litte beginnent mei" + +msgid "Show the radio player..." +msgstr "Radio spieler sjen litte..." + +msgid "Show the tv player..." +msgstr "TV Spieler sjen litte..." + +msgid "Shows the state of your wireless LAN connection.\n" +msgstr "Status fan WLAN sjen litte.\n" + +msgid "Shutdown Dreambox after" +msgstr "Dreambox útskeakelje nei" + +msgid "Similar" +msgstr "Gelykese" + +msgid "Similar broadcasts:" +msgstr "Gelykese utsjoeringen" + +msgid "Simple" +msgstr "Simpel" + +msgid "Simple titleset (compatibility for legacy players)" +msgstr "" + +msgid "Single" +msgstr "Inkel" + +msgid "Single EPG" +msgstr "Inkele EPG" + +msgid "Single satellite" +msgstr "Ien satellyt" + +msgid "Single transponder" +msgstr "Ien transponder" + +msgid "Singlestep (GOP)" +msgstr "Ien stap (GOP)" + +msgid "Skin..." +msgstr "Oanklaaiing" + +msgid "Sleep Timer" +msgstr "Tiidstjoering" + +msgid "Sleep timer action:" +msgstr "Sleep tiid barren aksje:" + +msgid "Slideshow Interval (sec.)" +msgstr "Slide foarstelling tiid (sec.)" + +#, python-format +msgid "Slot %d" +msgstr "Slot %d" + +msgid "Slow" +msgstr "Langsaam" + +msgid "Slow Motion speeds" +msgstr "Langsaam beweechjen faasje" + +msgid "Some plugins are not available:\n" +msgstr "Inkele ynstekkers binne net anwêzig:\n" + +msgid "Somewhere else" +msgstr "Ergens oars" + +msgid "" +"Sorry your Backup destination does not exist\n" +"\n" +"Please choose an other one." +msgstr "" +"Sorry.. Jo Reserve kopie plak bestiit net\n" +"\n" +"Kies in oar plak aub..." + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort A-Z" +msgstr "Sorteer op A-Z" + +#. TRANSLATORS: This must fit into the header button in the EPG-List +msgid "Sort Time" +msgstr "Sorteer op Tiid" + +msgid "Sound" +msgstr "Lûd" + +msgid "Soundcarrier" +msgstr "Lûd-drager" + +msgid "South" +msgstr "Sud" + +msgid "Spanish" +msgstr "Spaans" + +msgid "Standby" +msgstr "Paraatmode" + +msgid "Standby / Restart" +msgstr "Paraatmode / Nijstart" + +msgid "Start from the beginning" +msgstr "Start fanôf it begjin" + +msgid "Start recording?" +msgstr "Start opnimmen?" + +msgid "Start test" +msgstr "Start test" + +msgid "StartTime" +msgstr "Starttiid" + +msgid "Starting on" +msgstr "Starte op" + +msgid "Step east" +msgstr "Stap nei east" + +msgid "Step west" +msgstr "Stap nei west" + +msgid "Stereo" +msgstr "Stereo" + +msgid "Stop" +msgstr "Stop" + +msgid "Stop Timeshift?" +msgstr "Tiidsskowen stopje?" + +msgid "Stop current event and disable coming events" +msgstr "Stopje hjoeddeiske en ankommend barren" + +msgid "Stop current event but not coming events" +msgstr "Stopje hjoeddeiske mar net ankommend barren" + +msgid "Stop playing this movie?" +msgstr "Stopje ôfspieljen fan dizze film?" + +msgid "Stop test" +msgstr "Stop test" + +msgid "Store position" +msgstr "Posysje opslaan" + +msgid "Stored position" +msgstr "Opsleine posysje" + +msgid "Subservice list..." +msgstr "UnderSender lyst..." + +msgid "Subservices" +msgstr "UnderSender" + +msgid "Subtitle selection" +msgstr "Undertitel seleksje" + +msgid "Subtitles" +msgstr "Undertitels" + +msgid "Sun" +msgstr "Sne" + +msgid "Sunday" +msgstr "Snein" + +msgid "Swap Services" +msgstr "Kanalen wikselje" + +msgid "Swedish" +msgstr "Zweeds" + +msgid "Switch to next subservice" +msgstr "Gjin nei folgende undersender" + +msgid "Switch to previous subservice" +msgstr "Gjin nei foarige undersender" + +msgid "Symbol Rate" +msgstr "Symbool faasje" + +msgid "Symbolrate" +msgstr "Symboolfaasje" + +msgid "System" +msgstr "Systeem" + +#. TRANSLATORS: Add here whatever should be shown in the "translator" about screen, up to 6 lines (use \n for newline) +msgid "TRANSLATOR_INFO" +msgstr "Oersetter ynfo" + +msgid "TS file is too large for ISO9660 level 1!" +msgstr "" + +msgid "TV System" +msgstr "TV Systeem" + +msgid "Table of content for collection" +msgstr "Ynhalds tabel foar kolleksje" + +msgid "Tag 1" +msgstr "" + +msgid "Tag 2" +msgstr "" + +msgid "Tags" +msgstr "" + +msgid "Terrestrial" +msgstr "Ether" + +msgid "Terrestrial provider" +msgstr "Ether útstjoerder" + +msgid "Test mode" +msgstr "Test moadus" + +msgid "Test the network configuration of your Dreambox.\n" +msgstr "Test de netwurk konfiguraasje fan de Dreambox.\n" + +msgid "Test-Messagebox?" +msgstr "Test-Berjochtbox?" + +msgid "" +"Thank you for using the wizard. Your box is now ready to use.\n" +"Please press OK to start using your Dreambox." +msgstr "" +"Bedankt foar it brûken fan de gucheler. Jo box is no klear om te brûken.\n" +"Druk OK om mei de Dreambox te begjinnen." + +msgid "" +"The DVD standard doesn't support H.264 (HDTV) video streams. Do you want to " +"create a Dreambox format data DVD (which will not play in stand-alone DVD " +"players) instead?" +msgstr "" +"De DVD standert kin gjin H.264 (HDTV) fideo streams an. Wolle jo dan in " +"Dreambox formaat data DVD meitsje ? Tink der om, dizze kin net in gewoane " +"DVD spielers ôfspiele wurde !" + +msgid "" +"The USB stick is now bootable. Do you want to download the latest image from " +"the feed server and save it on the stick?" +msgstr "" + +msgid "The backup failed. Please choose a different backup location." +msgstr "Backup is mislearre. Kies in oare backup lokaasje." + +#, python-format +msgid "" +"The following device was found:\n" +"\n" +"%s\n" +"\n" +"Do you want to write the USB flasher to this stick?" +msgstr "" +"It folgende apparaat wie fûn:\n" +"\n" +"%s\n" +"\n" +"Wolle jo de USB flasher nei dizze stick skriuwe ?" + +msgid "" +"The input port should be configured now.\n" +"You can now configure the screen by displaying some test pictures. Do you " +"want to do that now?" +msgstr "" +"De yngongs poort moat no ynstelt wurde\n" +"Ynstelle kin mei it sjen litten fan in oantal bylden. No dwaan ?" + +msgid "The installation of the default services lists is finished." +msgstr "Ynstalaasje fan standert ynstellingen is klear." + +msgid "" +"The installation of the default settings is finished. You can now continue " +"configuring your Dreambox by pressing the OK button on the remote control." +msgstr "" +"Standert ynstellingen binne werom set. Jo kinne fierder gean mei it " +"ynstellen fan de Dreambox troch OK te drukken op de ôfstandsbetsjinning" + +msgid "" +"The md5sum validation failed, the file may be corrupted! Are you sure that " +"you want to burn this image to flash memory? You are doing this at your own " +"risk!" +msgstr "" +"De md5sum misljearre, de triem is blikber Korrupt. Wolle jo wier dit byld yn " +"it flash geheugen sette ? Dit gjid op eigen risiko !" + +msgid "" +"The md5sum validation failed, the file may be downloaded incompletely or be " +"corrupted!" +msgstr "" +"De md5sum misljearre. De triem mei net kompleet binnen helle wêze of gewoan " +"korrupt weze !" + +msgid "The package doesn't contain anything." +msgstr "It pakket hat gjin ynhâld" + +#, python-format +msgid "The path %s already exists." +msgstr "It paad %s bestiit al." + +msgid "The pin code has been changed successfully." +msgstr "De pinkode is mei sukses feroare." + +msgid "The pin code you entered is wrong." +msgstr "De ynjûne pinkode is ferkeard." + +msgid "The pin codes you entered are different." +msgstr "De pinkodes binne net gelyk." + +msgid "The sleep timer has been activated." +msgstr "De sliep tiid klok is aktiveert." + +msgid "The sleep timer has been disabled." +msgstr "De sliep tiid klok is útskeakele" + +msgid "The timer file (timers.xml) is corrupt and could not be loaded." +msgstr "De tiidsbarrenlyst is korrupt en koe net laden wurde." + +msgid "" +"The wireless LAN plugin is not installed!\n" +"Please install it." +msgstr "" +"De WLAN ynstekker is net ynstallearre!\n" +"Ynstallearje dizze earst." + +msgid "" +"The wizard can backup your current settings. Do you want to do a backup now?" +msgstr "" +"De gucheler kin jo ynstellingen efterút sette. Wolle jo no een backup " +"meitsje ?" + +msgid "The wizard is finished now." +msgstr "De gucheler is klear." + +msgid "There are no default services lists in your image." +msgstr "Der binne gjin standert lysts yn de Dreambox" + +msgid "There are no default settings in your image." +msgstr "Der binne gjin standert ynstellingen yn jo byld" + +msgid "" +"There might not be enough Space on the selected Partition.\n" +"Do you really want to continue?" +msgstr "" +"Blikber is der net genôch rûmte op de koazen partysje.\n" +"Wolle jo trochgean ?" + +#, python-format +msgid "This .NFI file does not contain a valid %s image!" +msgstr "Dizze .NFI triem hat net in jildich %s image!" + +msgid "" +"This .NFI file does not have a md5sum signature and is not guaranteed to " +"work. Do you really want to burn this image to flash memory?" +msgstr "" +"Dizze .NFI triem had gjin md5sum kontrolesom en mei misskien net wurkje. " +"Wolle jo wier dit byld yn flash geheugen sette ?" + +msgid "" +"This .NFI file has a valid md5 signature. Continue programming this image to " +"flash memory?" +msgstr "" +"Dit .NFI triem hat it jildige md5 kontrolesom. Fjierder gean mei it nei " +"flash skriuwen fan dit byld ?" + +msgid "" +"This DVD RW medium is already formatted - reformatting will erase all " +"content on the disc." +msgstr "" +"Dit DVD RW medium is al formattearre. Wer opnei dwaan sil alle gegevens op " +"disk wiskje." + +#, python-format +msgid "This Dreambox can't decode %s video streams!" +msgstr "De Dreambox kin %s fideo streams net oan !" + +msgid "This is step number 2." +msgstr "Dit is stap nûmer 2." + +msgid "This is unsupported at the moment." +msgstr "Dit wurd no nog net ondersteund." + +msgid "" +"This test checks for configured Nameservers.\n" +"If you get a \"unconfirmed\" message:\n" +"- please check your DHCP, cabling and Adapter setup\n" +"- if you configured your Nameservers manually please verify your entries in " +"the \"Nameserver\" Configuration" +msgstr "" +"Dizze test sjocht nei ynstelde nammeservers.\n" +"Krije jo in \"net befestige\" berjocht :\n" +"- Sjoch nei de DHCP, kabels/tridden en adapter ynstellingen\n" +"- By hânmatig ynstellen fan nammeservers, sjoch nei de ynjeftes yn de " +"\"nammeservers\" konfiguraasje" + +msgid "" +"This test checks whether a network cable is connected to your LAN-Adapter.\n" +"If you get a \"disconnected\" message:\n" +"- verify that a network cable is attached\n" +"- verify that the cable is not broken" +msgstr "" +"Dizze test sjocht nei in oanslúten LAN adapter.\n" +"Krije jo in \"net oanslúten\" berjocht :\n" +"- Sjoch nei wol of net oanslúten kabels/tridden\n" +"- Sjoch ot de kabel miskien net brutsen is" + +msgid "" +"This test checks whether a valid IP Address is found for your LAN Adapter.\n" +"If you get a \"unconfirmed\" message:\n" +"- no valid IP Address was found\n" +"- please check your DHCP, cabling and adapter setup" +msgstr "" +"Dizze test sjocht nei ynstelde IP adressen foar de LAN adapter.\n" +"Krije jo in \"net befestige\" berjocht :\n" +"- Is der in jildig IP adres ynstelt ?\n" +"- Sjoch nei de DHCP, kabels/tridden en adapter ynstellingen" + +msgid "" +"This test checks whether your LAN Adapter is set up for automatic IP Address " +"configuration with DHCP.\n" +"If you get a \"disabled\" message:\n" +" - then your LAN Adapter is configured for manual IP Setup\n" +"- verify thay you have entered correct IP informations in the AdapterSetup " +"dialog.\n" +"If you get an \"enabeld\" message:\n" +"-verify that you have a configured and working DHCP Server in your network." +msgstr "" +"Dizze test sjocht ot de LAN adapter ynsteld is foar automatysk IP Adres " +"ferkrije troch DHCP.\n" +"Krije jo in \"útskeakele\" berjocht :\n" +"- In hânmatig IP adres is ynstelt ?\n" +"- Is de ynjûne IP ynformaasje goed, yn it Adapterynstellingen menu ?\n" +"Krije jo in \"ynskeakele\" berjocht :\n" +"- Is der ek een DHCP server aktyf yn jo netwurk ?" + +msgid "This test detects your configured LAN-Adapter." +msgstr "Dizze test syket nei de ynstelde LAN-Adapter" + +msgid "Three" +msgstr "Trije" + +msgid "Threshold" +msgstr "Drompel" + +msgid "Thu" +msgstr "Tong" + +msgid "Thumbnails" +msgstr "" + +msgid "Thursday" +msgstr "Tongersdei" + +msgid "Time" +msgstr "Tiid" + +msgid "Time/Date Input" +msgstr "Tiid / Dei ynjefte" + +msgid "Timer" +msgstr "Tiidssjtoering" + +msgid "Timer Edit" +msgstr "Tiidsbarren bewurkje" + +msgid "Timer Editor" +msgstr "Tiidsbarren bewurker" + +msgid "Timer Type" +msgstr "Tiidsbarren type" + +msgid "Timer entry" +msgstr "Tiidsbarren item" + +msgid "Timer log" +msgstr "Tiidsbarren log" + +msgid "" +"Timer overlap in timers.xml detected!\n" +"Please recheck it!" +msgstr "" +"Tiidstjoerings conflicten fûn yn timers.xml\n" +"Graach nei sjen en meitsje!" + +msgid "Timer sanity error" +msgstr "Tiidsbarren kontrole flater" + +msgid "Timer selection" +msgstr "Tiidsbarren seleksje" + +msgid "Timer status:" +msgstr "Tiidsbarren status:" + +msgid "Timeshift" +msgstr "Tiidsskowen" + +msgid "Timeshift not possible!" +msgstr "Tiidsskowen is net mooglik !" + +msgid "Timeshift path..." +msgstr "" + +msgid "Timezone" +msgstr "Tiidszone" + +msgid "Title" +msgstr "Titel" + +msgid "Title properties" +msgstr "" + +msgid "Title:" +msgstr "Titel:" + +msgid "Titleset mode" +msgstr "" + +msgid "" +"To update your Dreambox firmware, please follow these steps:\n" +"1) Turn off your box with the rear power switch and plug in the bootable USB " +"stick.\n" +"2) Turn mains back on and hold the DOWN button on the front panel pressed " +"for 10 seconds.\n" +"3) Wait for bootup and follow instructions of the wizard." +msgstr "" + +msgid "Today" +msgstr "Hjoed" + +msgid "Tone mode" +msgstr "Toan moadus" + +msgid "Toneburst" +msgstr "Toan piek" + +msgid "Toneburst A/B" +msgstr "Toneburst A/B" + +msgid "Track" +msgstr "Nummer" + +msgid "Translation" +msgstr "Oersetting" + +msgid "Translation:" +msgstr "Oersetting:" + +msgid "Transmission Mode" +msgstr "Oerstjoeren moadus" + +msgid "Transmission mode" +msgstr "Oerstjoeren type" + +msgid "Transponder" +msgstr "Transponder" + +msgid "Transponder Type" +msgstr "Transponder type" + +msgid "Tries left:" +msgstr "Oantal kearen besykjen oer:" + +msgid "Try to find used Transponders in cable network.. please wait..." +msgstr "Besykje brûkte transponders te finen yn kabel netwurk.. " + +msgid "Try to find used transponders in cable network.. please wait..." +msgstr "Besykje brûkte transponders te finen yn kabel netwurk.. " + +msgid "Tue" +msgstr "Tiis" + +msgid "Tuesday" +msgstr "Tiisdei" + +msgid "Tune" +msgstr "Ofstimme" + +msgid "Tune failed!" +msgstr "Ofstimme mislearre !" + +msgid "Tuner" +msgstr "Tuner" + +msgid "Tuner " +msgstr "Tuner" + +msgid "Tuner Slot" +msgstr "Tuner Slot" + +msgid "Tuner configuration" +msgstr "Tuner ynstellingen" + +msgid "Tuner status" +msgstr "Tuner status" + +msgid "Turkish" +msgstr "Turks" + +msgid "Two" +msgstr "Twa" + +msgid "Type of scan" +msgstr "Type fan sykjen" + +msgid "USALS" +msgstr "USALS" + +msgid "USB" +msgstr "USB" + +msgid "USB Stick" +msgstr "USB Stick" + +msgid "USB stick wizard" +msgstr "" + +msgid "Ukrainian" +msgstr "" + +msgid "" +"Unable to complete filesystem check.\n" +"Error: " +msgstr "" +"Net yn steat om bestânsysteem nei te sjen\n" +"Flater: " + +msgid "" +"Unable to initialize harddisk.\n" +"Error: " +msgstr "" + +msgid "Uncommitted DiSEqC command" +msgstr "Net oanwizen DiSEqC kommando" + +msgid "Universal LNB" +msgstr "Unifersele LNB" + +msgid "Unmount failed" +msgstr "Ofkeppeljen mislearre" + +msgid "Update" +msgstr "Bywurkje" + +msgid "Updates your receiver's software" +msgstr "UntfangerSoftware bywurkje" + +msgid "Updating finished. Here is the result:" +msgstr "Klear met bywurkjen. Dit hat allegear bart :" + +msgid "Updating... Please wait... This can take some minutes..." +msgstr "Bywurkjen is dwaande. Waachtje even. Dit kin inkele minuten duorje." + +msgid "Upgrade finished. Do you want to reboot your Dreambox?" +msgstr "Klear mei bywurkjen. Wolle jo de Dreambox opnij starte?" + +msgid "Upgrading" +msgstr "An it bywurkjen" + +msgid "Upgrading Dreambox... Please wait" +msgstr "Dreambox an it bywurkjen..." + +msgid "Use" +msgstr "" + +msgid "Use DHCP" +msgstr "DHCP brûke" + +msgid "Use Interface" +msgstr "Brûk ynterface" + +msgid "Use Power Measurement" +msgstr "Bruk Enerzy behear" + +msgid "Use a gateway" +msgstr "In gateway brûke" + +#. TRANSLATORS: The effect of "Non-smooth winding" is that rather +#. than using ordinary "continuous" or "smooth" winding, a fast +#. sequence of stills is shown when winding at high speeds. This +#. makes it much easier too follow when almost each frame comes from +#. a new scene. The effect is achieved by repeating each shown frame +#. a couple of times. The settings control both at which speed this +#. winding mode sets in, and how many times each frame should be +#. repeated. This was previously called "Discontinuous playback" +#. which was incomprehensible. "Non-smooth winding" may be a better +#. term, but note that there is nothing irregular about it. Synonyms +#. better suited for translation to other languages may be "stepwise +#. winding/playback", or "winding/playback using stills". +msgid "Use non-smooth winding at speeds above" +msgstr "Brûk net glêd spielen by faasjes heecher" + +msgid "Use power measurement" +msgstr "Fermogensmjitting brûke" + +msgid "Use the Networkwizard to configure your Network\n" +msgstr "Bruk de netwurk gûcheler om it netwurk yn te stellen\n" + +msgid "" +"Use the left and right buttons to change an option.\n" +"\n" +"Please set up tuner A" +msgstr "" +"Knoppen links en rjochts brûke om in opsje te feroarjen.\n" +"\n" +"Stel tuner A yn" + +msgid "" +"Use the up/down keys on your remote control to select an option. After that, " +"press OK." +msgstr "Knoppen op en del brûke om in opsje te kiezen. Dêrnei druk Ok" + +msgid "Use usals for this sat" +msgstr "USALS foar dizze satellyt brûke" + +msgid "Use wizard to set up basic features" +msgstr "Gucheler foar basis ynstellingen brûke" + +msgid "Used service scan type" +msgstr "Brukte type kanaal sykjen" + +msgid "User defined" +msgstr "Gebruker ynstelling" + +msgid "VCR scart" +msgstr "VCR scart" + +msgid "VMGM (intro trailer)" +msgstr "VMGM (yntro fan film)" + +msgid "Video Fine-Tuning" +msgstr "Fideo fyn ynstellen" + +msgid "Video Fine-Tuning Wizard" +msgstr "Fideo fyn ynstel gucheler" + +msgid "Video Output" +msgstr "Fideo útgong" + +msgid "Video Setup" +msgstr "Fideo ynstellingen" + +msgid "Video Wizard" +msgstr "Fideo gucheler" + +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" +"\n" +"The next input port will be automatically probed in 10 seconds." +msgstr "" +"Fideo yngong seleksje\n" +"\n" +"Druk OK wannear jo dit sjen kinne op jo TV (of kies in oare yngong).\n" +"\n" +"De folgende yngong wurd automatysk probearre yn 10 seconden." + +msgid "Video mode selection." +msgstr "Fideo moadus seleksje" + +msgid "View Rass interactive..." +msgstr "Rass interaktief sjen litte" + +msgid "View teletext..." +msgstr "tiletekst toane..." + +msgid "Virtual KeyBoard" +msgstr "" + +msgid "Voltage mode" +msgstr "Spanning mode" + +msgid "Volume" +msgstr "Lûdsterkte" + +msgid "W" +msgstr "W" + +msgid "WEP" +msgstr "WEP" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA or WPA2" +msgstr "" + +msgid "WPA2" +msgstr "WPA2" + +msgid "WSS on 4:3" +msgstr "WSS by 4:3" + +msgid "Waiting" +msgstr "Oan it wachtsjen" + +msgid "" +"We will now test if your TV can also display this resolution at 50hz. If " +"your screen goes black, wait 20 seconds and it will switch back to 60hz.\n" +"Please press OK to begin." +msgstr "" +"Wy probearje no of jo TV dizze resolusje dwaan kin by 50 Hz. Giet jo skerm " +"op swart, wachtsje 20 sec. en it giet werom nei 60 Hz.\n" +"Druk OK om te begjinnen." + +msgid "Wed" +msgstr "Woa" + +msgid "Wednesday" +msgstr "Woansdei" + +msgid "Weekday" +msgstr "Wiekdei" + +msgid "" +"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 "" +"Wolkom by de Cutlist bewurker.\n" +"\n" +"Sykje oant it begjin fan wat jo fuorthelje wolle. Druk OK, kies start cut.\n" +"\n" +"Dan kies oant it ein, druk OK, kies ein cut. Klear.." + +msgid "" +"Welcome to the Image upgrade wizard. The wizard will assist you in upgrading " +"the firmware of your Dreambox by providing a backup facility for your " +"current settings and a short explanation of how to upgrade your firmware." +msgstr "" +"Wolkom by de byld bywurkje gucheler. De gucheler helpt jo by it bywurkjen " +"fan de software yn jo Dreambox, in backup mochelikhiid foar jo ynstellingen " +"en in koarte útlis fan hoe de software by te wurkjen." + +msgid "" +"Welcome.\n" +"\n" +"This start wizard will guide you through the basic setup of your Dreambox.\n" +"Press the OK button on your remote control to move to the next step." +msgstr "" +"Wolkom.\n" +"\n" +"Dizze gucheler helpt jo troch de basis ynstellingen fan jo Dreambox.\n" +"Druk Ok op jo ôfstandsbetsjinning om nei de folgende stap te gean." + +msgid "Welcome..." +msgstr "Wolkom..." + +msgid "West" +msgstr "West" + +msgid "What do you want to scan?" +msgstr "Wat wolle jo ôfsykje ?" + +msgid "Where do you want to backup your settings?" +msgstr "Wêr wolle jo de gegevens opslaan?" + +msgid "Where to save temporary timeshift recordings?" +msgstr "" + +msgid "Wireless" +msgstr "Triitloas" + +msgid "Wireless Network" +msgstr "Triidloas netwurk" + +msgid "Write error while recording. Disk full?\n" +msgstr "Skriuw flater by it opnimmen. Skiif fol ?\n" + +msgid "Write failed!" +msgstr "Skriuw flater!" + +msgid "Writing NFI image file to flash completed" +msgstr "Skriuwen fan NFI byld nei flash is klear" + +msgid "YPbPr" +msgstr "YPbPr" + +msgid "Year:" +msgstr "Jier:" + +msgid "Yes" +msgstr "Ja" + +msgid "Yes, and delete this movie" +msgstr "Ja, en ferwiderje dizze film" + +msgid "Yes, backup my settings!" +msgstr "Ja, myn ynstellingen extra bewarje" + +msgid "Yes, do a manual scan now" +msgstr "Ja, no hânmatig sykje" + +msgid "Yes, do an automatic scan now" +msgstr "Ja, no automatysk sykje" + +msgid "Yes, do another manual scan now" +msgstr "Ja, no nochris hânmatig sykje" + +msgid "Yes, perform a shutdown now." +msgstr "Ja, no útskeakelje" + +msgid "Yes, restore the settings now" +msgstr "Ja, no de ynstellingen werom sette" + +msgid "Yes, returning to movie list" +msgstr "Ja, werom nei de film lyst" + +msgid "Yes, view the tutorial" +msgstr "Ja, besjoch de hânlieding" + +msgid "" +"You can choose some default settings now. Please select the settings you " +"want to be installed." +msgstr "" +"Jo kinne inkele ynstellingen dwaan no. Kies de ynstellingen die't jo " +"ynstallearje wolle" + +msgid "You can choose, what you want to install..." +msgstr "Jo kinne kieze wat te ynstallearen" + +msgid "You cannot delete this!" +msgstr "Jo kinne dit net ferwiderje!" + +msgid "You chose not to install any default services lists." +msgstr "Jo hawwe koazen gjin standert kanaallysten te ynstallearjen." + +msgid "" +"You chose not to install any default settings. You can however install the " +"default settings later in the settings menu." +msgstr "" +"Jo hawwe koazen gjin standert ynstellingen te ynstallearjen. Jo kinne letter " +"dit altiid nog dwaan in it ynstellingen menu" + +msgid "" +"You chose not to install anything. Please press OK finish the install wizard." +msgstr "" +"Jo hawwe koazen neat te ynstallearjen. Druk OK om de gucheler ôf te slúten." + +msgid "" +"You do not seem to have a harddisk in your Dreambox. So backing up to a " +"harddisk is not an option for you." +msgstr "" +"Jo hawwe blykber gjin hurde skiif yn jo Dreambox. Extra bewarje fan " +"ynstellingen nei in hurde skiif kin net by jo." + +msgid "" +"You have chosen to backup to a compact flash card. The card must be in the " +"slot. We do not verify if it is really used at the moment. So better backup " +"to the harddisk!\n" +"Please press OK to start the backup now." +msgstr "" +"Jo wolle de ynstellingen extra bewarje op in compact flash kaart. De kaart " +"moat oanwezig weze. Wy sjogge net nei, at it ek werkelijk brukt wurd. It is " +"better om op hurde skiif te bewarjen.\n" +"Druk Ok om de ynstellingen extra op te slaan." + +msgid "" +"You have chosen to backup to an usb drive. Better backup to the harddisk!\n" +"Please press OK to start the backup now." +msgstr "" +"Jo wolle de ynstellingen extra bewarje op in USB skiif. It is better om dit " +"nei hurde skiif te dwaan\n" +"Druk Ok om de ynstellingen extra te bewarjen." + +msgid "" +"You have chosen to backup to your harddisk. Please press OK to start the " +"backup now." +msgstr "" +"Jo wolle de ynstellingen extra bewarje op hurde skiif.Druk Ok om de " +"ynstellingen extra te bewarjen." + +msgid "" +"You have chosen to create a new .NFI flasher bootable USB stick. This will " +"repartition the USB stick and therefore all data on it will be erased." +msgstr "" +"Jo hawwe koazen in neie .NFI opstart USB stick te meitsjen. Dit sil de USB " +"opnei partitionearje en sa sil alle data ferlên gean." + +#, python-format +msgid "You have to wait %s!" +msgstr "Jo moatte %s wachtsje!" + +msgid "" +"You need a PC connected to your dreambox. If you need further instructions, " +"please visit the website http://www.dm7025.de.\n" +"Your dreambox 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 "" +"De moat in PC oan de dreambox ansluten weze. Foar mear ynstruktiessjoch op " +"de webside http://www.dm7025.de.\n" +"Jo dreambox sil no stopje. Nei it bywurkjen neffens de webside, de neie " +"software sil jo freegje om de oarspronkelike ynstellingen werom te setten." + +msgid "" +"You need to set a pin code and hide it from your children.\n" +"\n" +"Do you want to set the pin now?" +msgstr "" +"In pincode moat brûkt wurde om of te sluten foar bern.\n" +"\n" +"No in pinkode ynstelle ?" + +msgid "Your Dreambox will restart after pressing OK on your remote control." +msgstr "Jo D" + +msgid "Your TV works with 50 Hz. Good!" +msgstr "Jo TV wurket goed mei 50 Hz. Ok !" + +msgid "" +"Your backup succeeded. We will now continue to explain the further upgrade " +"process." +msgstr "" +"It extra bewarjen is slagge. Wy gjinne jo fierder mei utlizzen fan it bywurk " +"proces." + +msgid "Your dreambox is shutting down. Please stand by..." +msgstr "Jo Dreambox wurd no ôfsluten. Eefkes wachtsje..." + +msgid "" +"Your dreambox isn't connected to the internet properly. Please check it and " +"try again." +msgstr "" +"Jo Dreambox is net goed ferbun mei it internet. Kontrolearje en besykje " +"opnij." + +msgid "" +"Your frontprocessor firmware must be upgraded.\n" +"Press OK to start upgrade." +msgstr "" +"Jo foarprocessor software moat bywurke wurde\n" +"Druk Ok om te begjinnen." + +msgid "Your network configuration has been activated." +msgstr "" + +msgid "" +"Your network configuration has been activated.\n" +"A second configured interface has been found.\n" +"\n" +"Do you want to disable the second network interface?" +msgstr "" + +msgid "Zap back to service before positioner setup?" +msgstr "Werom zappe nei kanaal foar rotor ynstellingen?" + +msgid "Zap back to service before satfinder?" +msgstr "Werom zappe nei kanaal foar satellytsyker?" + +msgid "[alternative edit]" +msgstr "[alternatief bewurkje]" + +msgid "[bouquet edit]" +msgstr "[bouquet bewurkje]" + +msgid "[favourite edit]" +msgstr "[favorieten bewurkje]" + +msgid "[move mode]" +msgstr "[Ferpleats moadus]" + +msgid "abort alternatives edit" +msgstr "alternatieven bewurkjen ôfbrekke" + +msgid "abort bouquet edit" +msgstr "boeket bewurkjen ôfbrekke" + +msgid "abort favourites edit" +msgstr "favoriet bewurkje ôfbrekke" + +msgid "about to start" +msgstr "op it punt om te starten" + +msgid "activate current configuration" +msgstr "" + +msgid "add a nameserver entry" +msgstr "" + +msgid "add alternatives" +msgstr "alernatief tafoegje" + +msgid "add bookmark" +msgstr "boekmerk tafoegje" + +msgid "add bouquet" +msgstr "boeket tafoegje" + +msgid "add directory to playlist" +msgstr "map oan ofspiellyst tafoegje" + +msgid "add file to playlist" +msgstr "triem oan ofspiellyst tafoegje" + +msgid "add files to playlist" +msgstr "triemen tafoegje an ôfspiellyst" + +msgid "add marker" +msgstr "marker tafoegje" + +msgid "add recording (enter recording duration)" +msgstr "opnimmen tafoegje (opnimtiid)" + +msgid "add recording (enter recording endtime)" +msgstr "opnimmen tafoegje (eintiid opnimmen ynjaan)" + +msgid "add recording (indefinitely)" +msgstr "opnimmen tafoegje (foar altiid trochgean)" + +msgid "add recording (stop after current event)" +msgstr "opnimmen tafoegje (stopje nei dit barren)" + +msgid "add service to bouquet" +msgstr "kanaal tafoegje oan bouquet" + +msgid "add service to favourites" +msgstr "kanaal tafoegje oan favorieten" + +msgid "add to parental protection" +msgstr "âlderlik tasjoch tafoegje " + +msgid "advanced" +msgstr "afansjearre" + +msgid "alphabetic sort" +msgstr "sortearje op alfabet" + +msgid "" +"are you sure you want to restore\n" +"following backup:\n" +msgstr "" +"witte jo seker dizze werom te setten\n" +"de extra kopie:\n" + +#, python-format +msgid "audio track (%s) format" +msgstr "" + +#, python-format +msgid "audio track (%s) language" +msgstr "" + +msgid "audio tracks" +msgstr "audio spoor" + +msgid "back" +msgstr "werom" + +msgid "background image" +msgstr "Eftergrûn ôfbylding" + +msgid "backgroundcolor" +msgstr "" + +msgid "better" +msgstr "better" + +msgid "black" +msgstr "" + +msgid "blacklist" +msgstr "swarte lyst" + +msgid "blue" +msgstr "" + +#, python-format +msgid "burn audio track (%s)" +msgstr "" + +msgid "change recording (duration)" +msgstr "feroarje opnim tiiden" + +msgid "change recording (endtime)" +msgstr "wizigje opnimmen (eintiid)" + +msgid "chapters" +msgstr "Haadstikken" + +msgid "choose destination directory" +msgstr "kies doel map" + +msgid "circular left" +msgstr "circular links" + +msgid "circular right" +msgstr "circular rjochts" + +msgid "clear playlist" +msgstr "ofspiellyst leeg meitsje" + +msgid "color" +msgstr "kleur" + +msgid "complex" +msgstr "complex" + +msgid "config menu" +msgstr "konfiguraasje menu" + +msgid "confirmed" +msgstr "befestigt" + +msgid "connected" +msgstr "oanslúten" + +msgid "continue" +msgstr "gjea fierder" + +msgid "copy to bouquets" +msgstr "kopieer nei boeketten" + +msgid "create directory" +msgstr "map meitsje" + +msgid "daily" +msgstr "eltse dei" + +msgid "day" +msgstr "dei" + +msgid "delete cut" +msgstr "ferwiderje stik" + +msgid "delete file" +msgstr "" + +msgid "delete playlist entry" +msgstr "ofspiellyst rigele ferwiderje" + +msgid "delete saved playlist" +msgstr "ferwiderje opsleine ofspiellyst" + +msgid "delete..." +msgstr "ferwiderje..." + +msgid "disable" +msgstr "utskeakelje" + +msgid "disable move mode" +msgstr "ferpleats modus útskeakelje" + +msgid "disabled" +msgstr "útskeakele" + +msgid "disconnected" +msgstr "net oanslúten" + +msgid "do not change" +msgstr "net feroarje" + +msgid "do nothing" +msgstr "doch neat" + +msgid "don't record" +msgstr "net opnimme" + +msgid "done!" +msgstr "Klear!" + +msgid "edit alternatives" +msgstr "bewurkje alternatief" + +msgid "empty" +msgstr "leeg" + +msgid "enable" +msgstr "ynskeakelje" + +msgid "enable bouquet edit" +msgstr "bewurkjen boeket oan" + +msgid "enable favourite edit" +msgstr "bewurkjen favorieten oan" + +msgid "enable move mode" +msgstr "ferpleatsen mode oan" + +msgid "enabled" +msgstr "ynskeakele" + +msgid "end alternatives edit" +msgstr "bewurkjen alternatief út" + +msgid "end bouquet edit" +msgstr "bewurkjen boeket út" + +msgid "end cut here" +msgstr "stop stik hjirre" + +msgid "end favourites edit" +msgstr "bewurkjen favoriet út" + +msgid "enigma2 and network" +msgstr "" + +msgid "equal to" +msgstr "gelyk oan" + +msgid "exceeds dual layer medium!" +msgstr "te grut foar 2 laags medium!" + +msgid "exit DVD player or return to file browser" +msgstr "DVD spieler ferlitte en werom nei triem browser" + +msgid "exit mediaplayer" +msgstr "mediaspieler ferlitte" + +msgid "exit movielist" +msgstr "filmlyst ferlitte" + +msgid "exit nameserver configuration" +msgstr "" + +msgid "exit network adapter configuration" +msgstr "" + +msgid "exit network adapter setup menu" +msgstr "" + +msgid "exit network interface list" +msgstr "" + +msgid "exit networkadapter setup menu" +msgstr "" + +msgid "failed" +msgstr "mislearre" + +msgid "fileformats (BMP, PNG, JPG, GIF)" +msgstr "" + +msgid "filename" +msgstr "triemnamme" + +msgid "fine-tune your display" +msgstr "it skerm fyn tune" + +msgid "font face" +msgstr "font ansjoch" + +msgid "forward to the next chapter" +msgstr "foarút nei it folgende haadstik" + +msgid "free" +msgstr "frij" + +msgid "free diskspace" +msgstr "freie skiif rûmte" + +msgid "go to deep standby" +msgstr "gean nei djip paraatstand" + +msgid "go to standby" +msgstr "gean nei paraatstand" + +msgid "green" +msgstr "" + +msgid "headline" +msgstr "koptekst" + +msgid "hear radio..." +msgstr "nei radio harkje..." + +msgid "help..." +msgstr "help..." + +msgid "hidden network" +msgstr "" + +msgid "hide extended description" +msgstr "utbreide beskriuwing ferbergje" + +msgid "hide player" +msgstr "spieler ferbergje" + +msgid "highlighted button" +msgstr "oarskleurde knop" + +msgid "horizontal" +msgstr "horizontal" + +msgid "hour" +msgstr "oere" + +msgid "hours" +msgstr "oeren" + +msgid "immediate shutdown" +msgstr "direkt útskeakelje" + +#, python-format +msgid "" +"incoming call!\n" +"%s calls on %s!" +msgstr "" +"binnenkommend gesprek!\n" +"%s skillet nei %s!" + +msgid "init module" +msgstr "CI-Module initialisearje" + +msgid "insert mark here" +msgstr "tuskenfoegje marker" + +msgid "jump back to the previous title" +msgstr "werom nei de foarige titel" + +msgid "jump forward to the next title" +msgstr "foarút nei de folgende titel" + +msgid "jump to listbegin" +msgstr "spring nei begjin fan lyst" + +msgid "jump to listend" +msgstr "spring nei ein fan lyst" + +msgid "jump to next marked position" +msgstr "spring nei folgende index punt" + +msgid "jump to previous marked position" +msgstr "spring nei foarige index punt" + +msgid "leave movie player..." +msgstr "film ôfspieljen ferlitte..." + +msgid "left" +msgstr "links" + +msgid "length" +msgstr "lengte" + +msgid "list style compact" +msgstr "lyst styl kompakt" + +msgid "list style compact with description" +msgstr "lyst styl kompakt mei beskriuwing" + +msgid "list style default" +msgstr "lyst styl standert" + +msgid "list style single line" +msgstr "lyst styl ien rigele" + +msgid "load playlist" +msgstr "ofspiellyst lade" + +msgid "locked" +msgstr "op slot" + +msgid "loopthrough to" +msgstr "trochskeakele nei" + +msgid "manual" +msgstr "hânmatig" + +msgid "menu" +msgstr "menu" + +msgid "menulist" +msgstr "menulyst" + +msgid "mins" +msgstr "min" + +msgid "minute" +msgstr "minuut" + +msgid "minutes" +msgstr "minuten" + +msgid "month" +msgstr "maand" + +msgid "move PiP to main picture" +msgstr "ferplaats PiP nei haad skerm" + +msgid "move down to last entry" +msgstr "" + +msgid "move down to next entry" +msgstr "" + +msgid "move up to first entry" +msgstr "" + +msgid "move up to previous entry" +msgstr "" + +msgid "movie list" +msgstr "film lyst" + +msgid "multinorm" +msgstr "multinorm" + +msgid "never" +msgstr "nea" + +msgid "next channel" +msgstr "folgend kanaal" + +msgid "next channel in history" +msgstr "set folgende kanaal in skiednis" + +msgid "no" +msgstr "nee" + +msgid "no HDD found" +msgstr "" + +msgid "no module found" +msgstr "gjin CI-Module fûn" + +msgid "no standby" +msgstr "gjin paraatstand" + +msgid "no timeout" +msgstr "gjin tiidslimyt" + +msgid "none" +msgstr "gjin" + +msgid "not locked" +msgstr "net op slot" + +msgid "nothing connected" +msgstr "neat anslúten" + +msgid "of a DUAL layer medium used." +msgstr "fan in DUAL layer medium brûkt" + +msgid "of a SINGLE layer medium used." +msgstr "fan in SINGLE layer medium brûkt" + +msgid "off" +msgstr "uit" + +msgid "on" +msgstr "oan" + +msgid "on READ ONLY medium." +msgstr "fan in ALLINNE-LEZE medium" + +msgid "once" +msgstr "ienmalig" + +msgid "open nameserver configuration" +msgstr "" + +msgid "open servicelist" +msgstr "iepenje kanaallyst" + +msgid "open servicelist(down)" +msgstr "iepenje kanaallyst (nei beneden)" + +msgid "open servicelist(up)" +msgstr "iepenje kanaallyst (nei boppe)" + +msgid "open virtual keyboard input help" +msgstr "" + +msgid "pass" +msgstr "trochgean" + +msgid "pause" +msgstr "pause" + +msgid "play entry" +msgstr "rigele ofspielje" + +msgid "play from next mark or playlist entry" +msgstr "Spielje fanôf it folgende punt of ôfspiellyst rigele" + +msgid "play from previous mark or playlist entry" +msgstr "Spielje fanôf it foarige punt of ôfspiellyst rigele" + +msgid "please press OK when ready" +msgstr "druk Ok wanneer klear" + +msgid "please wait, loading picture..." +msgstr "plaatsje wurd laden..." + +msgid "previous channel" +msgstr "foariche kanaal" + +msgid "previous channel in history" +msgstr "set foarich kanaal yn skiednis" + +msgid "record" +msgstr "opnimme" + +msgid "recording..." +msgstr "an it opnimmen..." + +msgid "red" +msgstr "" + +msgid "remove a nameserver entry" +msgstr "" + +msgid "remove after this position" +msgstr "nei dizze posysje alles ferwiderje" + +msgid "remove all alternatives" +msgstr "ferwiderje alle alternatieven" + +msgid "remove all new found flags" +msgstr "ferwiderje nij fûn flaggen" + +msgid "remove before this position" +msgstr "foar dizze posysje alles ferwiderje" + +msgid "remove bookmark" +msgstr "boekmerk ferwiderje" + +msgid "remove directory" +msgstr "map ferwiderje" + +msgid "remove entry" +msgstr "ferwiderje yngong" + +msgid "remove from parental protection" +msgstr "ferwiderje út alderlik tasjoch" + +msgid "remove new found flag" +msgstr "ferwiderje nij fun flagge" + +msgid "remove selected satellite" +msgstr "selektearre sat ferwiderje" + +msgid "remove this mark" +msgstr "ferwiderje punt" + +msgid "repeat playlist" +msgstr "ôfspyllyst opnei spylje" + +msgid "repeated" +msgstr "herhelle" + +msgid "rewind to the previous chapter" +msgstr "werom spile nei it foarige haadstik" + +msgid "right" +msgstr "rjochts" + +msgid "save last directory on exit" +msgstr "" + +msgid "save playlist" +msgstr "ofspiellyst opslaan" + +msgid "save playlist on exit" +msgstr "" + +msgid "scan done!" +msgstr "sykjen klear !" + +#, python-format +msgid "scan in progress - %d%% done!" +msgstr "sykjen dwaande - %d%% klear!" + +msgid "scan state" +msgstr "sykjen status" + +msgid "second" +msgstr "seconde" + +msgid "second cable of motorized LNB" +msgstr "twadde kabel fan LNB-motor" + +msgid "seconds" +msgstr "seconden" + +msgid "select" +msgstr "kies" + +msgid "select .NFI flash file" +msgstr "kies .NFI flash triem" + +msgid "select image from server" +msgstr "kies byld fan server" + +msgid "select interface" +msgstr "" + +msgid "select menu entry" +msgstr "" + +msgid "select movie" +msgstr "kies film" + +msgid "select the movie path" +msgstr "kies it film paad" + +msgid "service pin" +msgstr "service pin" + +msgid "setup pin" +msgstr "pin ynstellingen" + +msgid "show DVD main menu" +msgstr "DVD haadmenu sjen litte" + +msgid "show EPG..." +msgstr "EPG sjen litte..." + +msgid "show Infoline" +msgstr "" + +msgid "show all" +msgstr "alles sjen litte" + +msgid "show alternatives" +msgstr "alternatieven sjen litte" + +msgid "show event details" +msgstr "EPG details sjen litte" + +msgid "show extended description" +msgstr "útbreide beskriuwing sjen litte" + +msgid "show first selected tag" +msgstr "" + +msgid "show second selected tag" +msgstr "" + +msgid "show shutdown menu" +msgstr "útskeakel menu sjen litte" + +msgid "show single service EPG..." +msgstr "ien kanaals EPG sjen litte" + +msgid "show tag menu" +msgstr "label menu sjen litte" + +msgid "show transponder info" +msgstr "transponder ynfo sjen litte" + +msgid "shuffle playlist" +msgstr "meitsje willekeurige ôfspiellyst" + +msgid "shutdown" +msgstr "útskeakelje" + +msgid "simple" +msgstr "simpel" + +msgid "skip backward" +msgstr "efterút oerslaan" + +msgid "skip backward (enter time)" +msgstr "efterút oerslaan (tiid ynjaan)" + +msgid "skip forward" +msgstr "foarút oerslaan" + +msgid "skip forward (enter time)" +msgstr "foarút oerslaan (tiid ynjaan)" + +msgid "slide picture in loop" +msgstr "" + +msgid "sort by date" +msgstr "sortearje op datum" + +msgid "spaces (top, between rows, left)" +msgstr "spaties (top, tusken rigels, links)" + +msgid "standard" +msgstr "standert" + +msgid "standby" +msgstr "paraatstand" + +msgid "start cut here" +msgstr "start stik hjirre" + +msgid "start directory" +msgstr "" + +msgid "start timeshift" +msgstr "tiidskowen starte" + +msgid "stereo" +msgstr "stereo" + +msgid "stop PiP" +msgstr "stopje PiP" + +msgid "stop entry" +msgstr "stopje rigele" + +msgid "stop recording" +msgstr "stopje opnimmen" + +msgid "stop timeshift" +msgstr "tiidskowen stopje" + +msgid "swap PiP and main picture" +msgstr "Pip en haad skerm wikselje" + +msgid "switch to bookmarks" +msgstr "skeakelje nei boekmerkers" + +msgid "switch to filelist" +msgstr "skeakelje nei triemlyst" + +msgid "switch to playlist" +msgstr "skeakelje nei ofspiellyst" + +msgid "switch to the next audio track" +msgstr "skeakelje nei it folgende lûd spoor" + +msgid "switch to the next subtitle language" +msgstr "skeakelje nei de folgende undertiteling taal" + +msgid "text" +msgstr "tekst" + +msgid "textcolor" +msgstr "" + +msgid "this recording" +msgstr "dit opnimmen" + +msgid "this service is protected by a parental control pin" +msgstr "dit kanaal is net beskikber troch it alderlik tasjoch." + +msgid "toggle a cut mark at the current position" +msgstr "merker oan/út op dizze posysje" + +msgid "toggle time, chapter, audio, subtitle info" +msgstr "tiid, haadstik, lûd en undertiteling ynfo omskeakelje" + +msgid "unconfirmed" +msgstr "net befestigt" + +msgid "unknown service" +msgstr "unbeneame kanaal" + +msgid "until restart" +msgstr "oant nijstart ta" + +msgid "user defined" +msgstr "brûkers ynstelling" + +msgid "vertical" +msgstr "ferticaal" + +msgid "view extensions..." +msgstr "lit útbreidingen sjen..." + +msgid "view recordings..." +msgstr "lit opname triemen sjen..." + +msgid "wait for ci..." +msgstr "wachtsje op ci..." + +msgid "wait for mmi..." +msgstr "wachtsje op mmi" + +msgid "waiting" +msgstr "oan it wachtsjen" + +msgid "weekly" +msgstr "wikeliks" + +msgid "whitelist" +msgstr "wyte lyst" + +msgid "year" +msgstr "jier" + +msgid "yellow" +msgstr "" + +msgid "yes" +msgstr "ja" + +msgid "yes (keep feeds)" +msgstr "ja (feeds hâlde)" + +msgid "" +"your dreambox might be unusable now. Please consult the manual for further " +"assistance before rebooting your dreambox." +msgstr "" +"jo Dreambox is miskien no net brûkber. sjoch yn de hanlieding foar jo jo " +"Dreambox opnij starte." + +msgid "zap" +msgstr "knip" + +msgid "zapped" +msgstr "knipt" -- cgit v1.2.3 From e68c41e73e309fd57a9a467e6102f3583a523ce8 Mon Sep 17 00:00:00 2001 From: ghost Date: Wed, 3 Dec 2008 12:07:04 +0100 Subject: add sleeptimer to shutdown menu --- data/menu.xml | 1 + 1 file changed, 1 insertion(+) (limited to 'data') diff --git a/data/menu.xml b/data/menu.xml index 369b20e0..6bf5e3f2 100644 --- a/data/menu.xml +++ b/data/menu.xml @@ -103,6 +103,7 @@ self.session.openWithCallback(msgClosed, MessageBox, _("When you do a factory re + 2 3 -- cgit v1.2.3 From 20ed4a59a27132a415dc2b6735bd5edbe600e319 Mon Sep 17 00:00:00 2001 From: acid-burn Date: Mon, 8 Dec 2008 14:25:07 +0100 Subject: remove AGC display from skin --- data/skin.xml | 9 ++------- data/skin_default.xml | 13 +++---------- 2 files changed, 5 insertions(+), 17 deletions(-) mode change 100644 => 100755 data/skin.xml (limited to 'data') diff --git a/data/skin.xml b/data/skin.xml old mode 100644 new mode 100755 index 96d7067b..e2dbacdd --- a/data/skin.xml +++ b/data/skin.xml @@ -79,14 +79,9 @@ SNRdB - - - - AGC - - - + + BER diff --git a/data/skin_default.xml b/data/skin_default.xml index 993fd320..013ca5b4 100755 --- a/data/skin_default.xml +++ b/data/skin_default.xml @@ -789,18 +789,11 @@ self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y())) SNR - - - AGC - - - AGC - - - + + BER - + BER -- cgit v1.2.3 From ee309cf051241984e862ada9f53c5bf5a263a5dc Mon Sep 17 00:00:00 2001 From: ghost Date: Mon, 8 Dec 2008 14:57:28 +0100 Subject: add new snr bar --- data/skin_default/bar_snr.png | Bin 2051 -> 2075 bytes 1 file changed, 0 insertions(+), 0 deletions(-) (limited to 'data') diff --git a/data/skin_default/bar_snr.png b/data/skin_default/bar_snr.png index 18050ed1..e4181c48 100644 Binary files a/data/skin_default/bar_snr.png and b/data/skin_default/bar_snr.png differ -- cgit v1.2.3 From ddd2cb49e8975a47d95bd6f595dbd39b8ef26946 Mon Sep 17 00:00:00 2001 From: ghost Date: Fri, 12 Dec 2008 00:16:56 +0100 Subject: small satfinder skin fix --- data/skin_default.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'data') diff --git a/data/skin_default.xml b/data/skin_default.xml index 013ca5b4..5946097d 100755 --- a/data/skin_default.xml +++ b/data/skin_default.xml @@ -806,7 +806,7 @@ self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y())) Invert - + -- cgit v1.2.3 From f95be11f0517eac56013b0ccb14825be97fc1540 Mon Sep 17 00:00:00 2001 From: stefan Date: Tue, 16 Dec 2008 10:33:19 +0000 Subject: finish and polish diseqc tester plugin --- data/skin_default.xml | 5 + lib/dvb/db.cpp | 2 +- lib/python/Components/TuneTest.py | 54 +++- .../Plugins/SystemPlugins/DiseqcTester/plugin.py | 283 +++++++++++++++++++-- lib/python/Screens/Makefile.am | 3 +- lib/python/Screens/TextBox.py | 26 ++ 6 files changed, 340 insertions(+), 33 deletions(-) mode change 100755 => 100644 data/skin_default.xml mode change 100755 => 100644 lib/python/Screens/Makefile.am create mode 100644 lib/python/Screens/TextBox.py (limited to 'data') diff --git a/data/skin_default.xml b/data/skin_default.xml old mode 100755 new mode 100644 index 5946097d..d60933eb --- a/data/skin_default.xml +++ b/data/skin_default.xml @@ -940,6 +940,11 @@ self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y())) + + + + + diff --git a/lib/dvb/db.cpp b/lib/dvb/db.cpp index 6f30253a..e5a94392 100644 --- a/lib/dvb/db.cpp +++ b/lib/dvb/db.cpp @@ -856,7 +856,7 @@ PyObject *eDVBDB::readSatellites(ePyObject sat_list, ePyObject sat_dict, ePyObje for (AttributeConstIterator it(tp_attributes.begin()); it != end; ++it) { -// eDebug("\t\tattr: %s", at->name().c_str()); + //eDebug("\t\tattr: %s", at->name().c_str()); at = *it; name = at->name(); if (name == "modulation") dest = &modulation; diff --git a/lib/python/Components/TuneTest.py b/lib/python/Components/TuneTest.py index 2d448e8f..422036cd 100644 --- a/lib/python/Components/TuneTest.py +++ b/lib/python/Components/TuneTest.py @@ -32,7 +32,7 @@ class Tuner: # 2) call run() # 3) finishedChecking() is called, when the run is finished class TuneTest: - def __init__(self, feid, stopOnSuccess = False, stopOnError = False): + def __init__(self, feid, stopOnSuccess = -1, stopOnError = -1): self.stopOnSuccess = stopOnSuccess self.stopOnError = stopOnError self.feid = feid @@ -54,12 +54,14 @@ class TuneTest: def gotTsidOnid(self, tsid, onid): print "******** got tsid, onid:", tsid, onid - self.tsid = tsid - self.onid = onid if tsid is not None and onid is not None: self.pidStatus = self.INTERNAL_PID_STATUS_SUCCESSFUL + self.tsid = tsid + self.onid = onid else: self.pidStatus = self.INTERNAL_PID_STATUS_FAILED + self.tsid = -1 + self.onid = -1 self.timer.start(100, True) def updateStatus(self): @@ -71,7 +73,7 @@ class TuneTest: if dict["tuner_state"] == "TUNING": print "TUNING" self.timer.start(100, True) - self.progressCallback((len(self.transponderlist), self.tuningtransponder, self.STATUS_TUNING, self.currTuned)) + self.progressCallback((self.getProgressLength(), self.tuningtransponder, self.STATUS_TUNING, self.currTuned)) elif self.checkPIDs and self.pidStatus == self.INTERNAL_PID_STATUS_NOOP: print "2nd choice" if dict["tuner_state"] == "LOCKED": @@ -86,23 +88,28 @@ class TuneTest: if dict["tuner_state"] == "LOSTLOCK" or dict["tuner_state"] == "FAILED": self.tuningtransponder = self.nextTransponder() self.failedTune.append([self.currTuned, self.oldTuned, "tune_failed"]) - if self.stopOnError == True: + if self.stopOnError != -1 and self.stopOnError <= len(self.failedTune): stop = True elif dict["tuner_state"] == "LOCKED": pidsFailed = False if self.checkPIDs: - if self.tsid != self.currTuned[8] or self.onid != self.currTuned[9]: - self.failedTune.append([self.currTuned, self.oldTuned, "pids_failed"]) - pidsFailes = True + if self.currTuned is not None: + if self.tsid != self.currTuned[8] or self.onid != self.currTuned[9]: + self.failedTune.append([self.currTuned, self.oldTuned, "pids_failed", {"real": (self.tsid, self.onid), "expected": (self.currTuned[8], self.currTuned[9])}]) + pidsFailed = True + else: + self.successfullyTune.append([self.currTuned, self.oldTuned]) + if self.stopOnSuccess != -1 and self.stopOnSuccess <= len(self.successfullyTune): + stop = True elif not self.checkPIDs or (self.checkPids and not pidsFailed): self.successfullyTune.append([self.currTuned, self.oldTuned]) - if self.stopOnSuccess == True: - stop = True + if self.stopOnSuccess != -1 and self.stopOnSuccess <= len(self.successfullyTune): + stop = True self.tuningtransponder = self.nextTransponder() else: print "************* tuner_state:", dict["tuner_state"] - self.progressCallback((len(self.transponderlist), self.tuningtransponder, self.STATUS_NOOP, self.currTuned)) + self.progressCallback((self.getProgressLength(), self.tuningtransponder, self.STATUS_NOOP, self.currTuned)) if not stop: self.tune() @@ -113,7 +120,7 @@ class TuneTest: else: print "not restarting timers (waiting for pids)" else: - self.progressCallback((len(self.transponderlist), self.tuningtransponder, self.STATUS_DONE, self.currTuned)) + self.progressCallback((self.getProgressLength(), len(self.transponderlist), self.STATUS_DONE, self.currTuned)) print "finishedChecking" self.finishedChecking() @@ -131,12 +138,17 @@ class TuneTest: return index def nextTransponder(self): + print "getting next transponder", self.tuningtransponder index = self.tuningtransponder + 1 if self.checkPIDs: + print "checkPIDs-loop" # check for tsid != -1 and onid != -1 - while (index < len(self.transponderlist) and self.transponderlist[index][8] != -1 and self.transponderlist[index][9] != -1): + print "index:", index + print "len(self.transponderlist):", len(self.transponderlist) + while (index < len(self.transponderlist) and (self.transponderlist[index][8] == -1 or self.transponderlist[index][9] == -1)): index += 1 + print "next transponder index:", index return index def finishedChecking(self): @@ -180,7 +192,7 @@ class TuneTest: self.successfullyTune = [] self.tuningtransponder = self.firstTransponder() self.tune() - self.progressCallback((len(self.transponderlist), self.tuningtransponder, self.STATUS_START, self.currTuned)) + self.progressCallback((self.getProgressLength(), self.tuningtransponder, self.STATUS_START, self.currTuned)) self.timer.start(100, True) # transponder = (frequency, symbolrate, polarisation, fec, inversion, orbpos, , , , ) @@ -191,6 +203,20 @@ class TuneTest: def clearTransponder(self): self.transponderlist = [] + def getProgressLength(self): + count = 0 + if self.stopOnError == -1: + count = len(self.transponderlist) + else: + if count < self.stopOnError: + count = self.stopOnError + if self.stopOnSuccess == -1: + count = len(self.transponderlist) + else: + if count < self.stopOnSuccess: + count = self.stopOnSuccess + return count + STATUS_START = 0 STATUS_TUNING = 1 STATUS_DONE = 2 diff --git a/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py b/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py index 57340368..f997acd1 100644 --- a/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py +++ b/lib/python/Plugins/SystemPlugins/DiseqcTester/plugin.py @@ -1,20 +1,81 @@ from Screens.Satconfig import NimSelection from Screens.Screen import Screen +from Screens.TextBox import TextBox from Plugins.Plugin import PluginDescriptor -from Components.ActionMap import NumberActionMap +from Components.ActionMap import ActionMap, NumberActionMap from Components.NimManager import nimmanager from Components.ResourceManager import resourcemanager from Components.Sources.FrontendStatus import FrontendStatus from Components.TuneTest import TuneTest +from Components.Sources.List import List from Components.Sources.Progress import Progress from Components.Sources.StaticText import StaticText +from Components.ConfigList import ConfigListScreen +from Components.config import getConfigListEntry, ConfigSelection -class DiseqcTester(Screen, TuneTest): +# always use: +# setResultType(type) +# setResultParameter(parameter) +# getTextualResult() +class ResultParser: + def __init__(self): + pass + + TYPE_BYORBPOS = 0 + TYPE_BYINDEX = 1 + TYPE_ALL = 2 + def setResultType(self, type): + self.type = type + + def setResultParameter(self, parameter): + if self.type == self.TYPE_BYORBPOS: + self.orbpos = parameter + elif self.type == self.TYPE_BYINDEX: + self.index = parameter + + def getTextualResultForIndex(self, index): + text = "" + text += "%s:\n" % self.getTextualIndexRepresentation(index) + + failed, successful = self.results[index]["failed"], self.results[index]["successful"] + countfailed = len(failed) + countsuccessful = len(successful) + countall = countfailed + countsuccessful + percentfailed = round(countfailed / float(countall + 0.0001) * 100) + percentsuccessful = round(countsuccessful / float(countall + 0.0001) * 100) + text += "Tested %d transponders\n%d (%d %%) transponders succeeded\n%d (%d %%) transponders failed\n" % (countall, countsuccessful, percentsuccessful, countfailed, percentfailed) + reasons = {} + if countfailed > 0: + for transponder in failed: + reasons[transponder[2]] = reasons.get(transponder[2], []) + reasons[transponder[2]].append(transponder) + if transponder[2] == "pids_failed": + print transponder[2], "-", transponder[3] + + text += "The %d unsuccessful tuning attempts failed for the following reasons:\n" % countfailed + + for reason in reasons.keys(): + text += "%s: %d transponders failed\n" % (reason, len(reasons[reason])) + return text + + def getTextualResult(self): + text = "" + if self.type == self.TYPE_BYINDEX: + text += self.getTextualResultForIndex(self.index) + elif self.type == self.TYPE_BYORBPOS: + for index in self.results.keys(): + if index[2] == self.orbpos: + text += self.getTextualResultForIndex(index) + text += "\n-----------------------------------------------------\n" + + return text + +class DiseqcTester(Screen, TuneTest, ResultParser): skin = """ - + + + + {"template": [ + MultiContentEntryText(pos = (10, 0), size = (330, 25), flags = RT_HALIGN_LEFT, text = 1), # index 1 is the index name, + MultiContentEntryText(pos = (330, 0), size = (150, 25), flags = RT_HALIGN_RIGHT, text = 2) # index 2 is the status, + ], + "fonts": [gFont("Regular", 20)], + "itemHeight": 25 + } + @@ -54,35 +126,93 @@ class DiseqcTester(Screen, TuneTest): - + - + + + + + + + + + """ TEST_TYPE_QUICK = 0 TEST_TYPE_RANDOM = 1 TEST_TYPE_COMPLETE = 2 - def __init__(self, session, feid, test_type = TEST_TYPE_QUICK): + def __init__(self, session, feid, test_type = TEST_TYPE_QUICK, loopsfailed = 3, loopssuccessful = 1): Screen.__init__(self, session) self.feid = feid self.test_type = test_type + self.loopsfailed = loopsfailed + self.loopssuccessful = loopssuccessful self["actions"] = NumberActionMap(["SetupActions"], { - "ok": self.keyGo, + "ok": self.select, "cancel": self.keyCancel, }, -2) - TuneTest.__init__(self, feid, stopOnSuccess = True) - self["Frontend"] = FrontendStatus(frontend_source = lambda : self.frontend, update_interval = 100) + TuneTest.__init__(self, feid, stopOnSuccess = self.loopssuccessful, stopOnError = self.loopsfailed) + #self["Frontend"] = FrontendStatus(frontend_source = lambda : self.frontend, update_interval = 100) self["overall_progress"] = Progress() self["sub_progress"] = Progress() - self["failed_counter"] = StaticText("10") - self["succeeded_counter"] = StaticText("10") + + self["failed_counter"] = StaticText("0") + self["succeeded_counter"] = StaticText("0") + self["witherrors_counter"] = StaticText("0") + self["untestable_counter"] = StaticText("0") + + self.list = [] + self["progress_list"] = List(self.list) + self["progress_list"].onSelectionChanged.append(self.selectionChanged) + + self["CmdText"] = StaticText(_("Please wait while scanning is in progress...")) self.indexlist = {} self.readTransponderList() + + self.running = False + + self.results = {} + self.resultsstatus = {} + + self.onLayoutFinish.append(self.go) + + def getProgressListComponent(self, index, status): + return (index, self.getTextualIndexRepresentation(index), status) + + def clearProgressList(self): + self.list = [] + self["progress_list"].list = self.list + + def addProgressListItem(self, index): + if index in self.indexlist: + for entry in self.list: + if entry[0] == index: + self.changeProgressListStatus(index, "working") + return + self.list.append(self.getProgressListComponent(index, _("working"))) + self["progress_list"].list = self.list + self["progress_list"].setIndex(len(self.list) - 1) + + def changeProgressListStatus(self, index, status): + self.newlist = [] + count = 0 + indexpos = 0 + for entry in self.list: + if entry[0] == index: + self.newlist.append(self.getProgressListComponent(index, status)) + indexpos = count + else: + self.newlist.append(entry) + count += 1 + self.list = self.newlist + self["progress_list"].list = self.list + self["progress_list"].setIndex(indexpos) def readTransponderList(self): for sat in nimmanager.getSatListForNim(self.feid): @@ -92,11 +222,12 @@ class DiseqcTester(Screen, TuneTest): self.analyseTransponder(mytransponder) def getIndexForTransponder(self, transponder): + if transponder[0] < 11700: band = 1 # low else: band = 0 # high - + polarisation = transponder[2] sat = transponder[5] @@ -117,8 +248,7 @@ class DiseqcTester(Screen, TuneTest): print "getTextualIndexRepresentation:", index text = "" - # TODO better sat representation - text += "%s, " % index[2] + text += nimmanager.getSatDescription(index[2]) + ", " if index[0] == 1: text += "Low Band, " @@ -157,6 +287,7 @@ class DiseqcTester(Screen, TuneTest): if self.test_type == self.TEST_TYPE_QUICK: self.myindex = 0 keys = self.indexlist.keys() + keys.sort(key = lambda a: a[2]) # sort by orbpos self["overall_progress"].setRange(len(keys)) self["overall_progress"].setValue(self.myindex) return keys[0] @@ -167,6 +298,7 @@ class DiseqcTester(Screen, TuneTest): if self.test_type == self.TEST_TYPE_QUICK: self.myindex += 1 keys = self.indexlist.keys() + keys.sort(key = lambda a: a[2]) # sort by orbpos self["overall_progress"].setValue(self.myindex) if self.myindex < len(keys): @@ -179,21 +311,137 @@ class DiseqcTester(Screen, TuneTest): def getContinueScanning(self): if self.test_type == self.TEST_TYPE_QUICK: return (self.myindex < len(self.indexlist.keys())) + + def addResult(self, index, status, failedTune, successfullyTune): + self.results[index] = self.results.get(index, {"failed": [], "successful": [], "status": None}) + self.resultsstatus[status] = self.resultsstatus.get(status, []) + + self.results[index]["status"] = status + self.results[index]["failed"] = failedTune + self.results[index]["successful"] = successfullyTune + + self.resultsstatus[status].append(index) def finishedChecking(self): print "finishedChecking" TuneTest.finishedChecking(self) + + if not self.results.has_key(self.currentlyTestedIndex): + self.results[self.currentlyTestedIndex] = {"failed": [], "successful": [], "status": None} + + if len(self.failedTune) > 0 and len(self.successfullyTune) > 0: + self.changeProgressListStatus(self.currentlyTestedIndex, "with errors") + self["witherrors_counter"].setText(str(int(self["witherrors_counter"].getText()) + 1)) + self.addResult(self.currentlyTestedIndex, "with_errors", self.failedTune, self.successfullyTune) + elif len(self.failedTune) == 0 and len(self.successfullyTune) == 0: + self.changeProgressListStatus(self.currentlyTestedIndex, "not tested") + self["untestable_counter"].setText(str(int(self["untestable_counter"].getText()) + 1)) + self.addResult(self.currentlyTestedIndex, "untestable", self.failedTune, self.successfullyTune) + elif len(self.failedTune) > 0: + self.changeProgressListStatus(self.currentlyTestedIndex, "failed") + self["failed_counter"].setText(str(int(self["failed_counter"].getText()) + len(self.failedTune))) + self.addResult(self.currentlyTestedIndex, "failed", self.failedTune, self.successfullyTune) + else: + self.changeProgressListStatus(self.currentlyTestedIndex, "successful") + self["succeeded_counter"].setText(str(int(self["succeeded_counter"].getText()) + len(self.successfullyTune))) + self.addResult(self.currentlyTestedIndex, "successful", self.failedTune, self.successfullyTune) + + + #self["failed_counter"].setText(str(int(self["failed_counter"].getText()) + len(self.failedTune))) + #self["succeeded_counter"].setText(str(int(self["succeeded_counter"].getText()) + len(self.successfullyTune))) + #if len(self.failedTune) == 0 and len(self.successfullyTune) == 0: + #self["untestable_counter"].setText(str(int(self["untestable_counter"].getText()) + 1)) + self.currentlyTestedIndex = self.getNextIndex() + self.addProgressListItem(self.currentlyTestedIndex) + if self.fillTransponderList(): self.run(checkPIDs = True) + else: + self.running = False + self["progress_list"].setIndex(0) + print "results:", self.results + print "resultsstatus:", self.resultsstatus - def keyGo(self): + def go(self): + self.running = True + self["failed_counter"].setText("0") + self["succeeded_counter"].setText("0") + self["untestable_counter"].setText("0") self.currentlyTestedIndex = self.getFirstIndex() + + self.clearProgressList() + self.addProgressListItem(self.currentlyTestedIndex) + if self.fillTransponderList(): self.run(True) def keyCancel(self): self.close() + + def select(self): + print "selectedIndex:", self["progress_list"].getCurrent()[0] + if not self.running: + index = self["progress_list"].getCurrent()[0] + #self.setResultType(ResultParser.TYPE_BYORBPOS) + #self.setResultParameter(index[2]) + self.setResultType(ResultParser.TYPE_BYINDEX) + self.setResultParameter(index) + self.session.open(TextBox, self.getTextualResult()) + + def selectionChanged(self): + print "selection changed" + if len(self.list) > 0 and not self.running: + self["CmdText"].setText(_("Press OK to get further details for %s") % str(self["progress_list"].getCurrent()[1])) + +class DiseqcTesterTestTypeSelection(Screen, ConfigListScreen): + skin = """ + + + """ + def __init__(self, session, feid): + Screen.__init__(self, session) + self.feid = feid + + self.list = [] + ConfigListScreen.__init__(self, self.list) + + self["actions"] = ActionMap(["SetupActions"], + { + "cancel": self.keyCancel + }, -2) + + self.createSetup() + + def createSetup(self): + self.testtype = ConfigSelection(choices={"quick": _("Quick")}, default = "quick") + self.testtypeEntry = getConfigListEntry(_("Test Type"), self.testtype) + self.list.append(self.testtypeEntry) + + self.loopsfailed = ConfigSelection(choices={"-1": "Every known", "1": "1", "2": "2", "3": "3", "4": "4", "5": "5", "6": "6", "7": "7", "8": "8"}, default = "3") + self.loopsfailedEntry = getConfigListEntry(_("Stop testing plane after # failed transponders"), self.loopsfailed) + self.list.append(self.loopsfailedEntry) + + self.loopssuccessful = ConfigSelection(choices={"-1": "Every known", "1": "1", "2": "2", "3": "3", "4": "4", "5": "5", "6": "6", "7": "7", "8": "8"}, default = "1") + self.loopssuccessfulEntry = getConfigListEntry(_("Stop testing plane after # successful transponders"), self.loopssuccessful) + self.list.append(self.loopssuccessfulEntry) + + self["config"].list = self.list + self["config"].l.setList(self.list) + + def keyOK(self): + print self.testtype.getValue() + testtype = DiseqcTester.TEST_TYPE_QUICK + if self.testtype.getValue() == "quick": + testtype = DiseqcTester.TEST_TYPE_QUICK + elif self.testtype.getValue() == "random": + testtype = DiseqcTester.TEST_TYPE_RANDOM + elif self.testtype.getValue() == "complete": + testtype = DiseqcTester.TEST_TYPE_COMPLETE + self.session.open(DiseqcTester, feid = self.feid, test_type = testtype, loopsfailed = int(self.loopsfailed.value), loopssuccessful = int(self.loopssuccessful.value)) + + def keyCancel(self): + self.close() class DiseqcTesterNimSelection(NimSelection): skin = """ @@ -215,7 +463,8 @@ class DiseqcTesterNimSelection(NimSelection): NimSelection.__init__(self, session) def setResultClass(self): - self.resultclass = DiseqcTester + #self.resultclass = DiseqcTester + self.resultclass = DiseqcTesterTestTypeSelection def showNim(self, nim): nimConfig = nimmanager.getNimConfig(nim.slot) @@ -224,7 +473,7 @@ class DiseqcTesterNimSelection(NimSelection): return False if nimConfig.configMode.value == "simple": if nimConfig.diseqcMode.value == "positioner": - return False + return True return True return False diff --git a/lib/python/Screens/Makefile.am b/lib/python/Screens/Makefile.am old mode 100755 new mode 100644 index a3cf70bb..cde2d6c3 --- a/lib/python/Screens/Makefile.am +++ b/lib/python/Screens/Makefile.am @@ -13,5 +13,6 @@ install_PYTHON = \ TimerSelection.py PictureInPicture.py TimeDateInput.py \ SubtitleDisplay.py SubservicesQuickzap.py ParentalControlSetup.py NumericalTextInputHelpDialog.py \ SleepTimerEdit.py Ipkg.py RdsDisplay.py Globals.py DefaultWizard.py \ - SessionGlobals.py LocationBox.py WizardLanguage.py TaskView.py Rc.py VirtualKeyBoard.py + SessionGlobals.py LocationBox.py WizardLanguage.py TaskView.py Rc.py VirtualKeyBoard.py \ + TextBox.py diff --git a/lib/python/Screens/TextBox.py b/lib/python/Screens/TextBox.py new file mode 100644 index 00000000..117c5c72 --- /dev/null +++ b/lib/python/Screens/TextBox.py @@ -0,0 +1,26 @@ +from Screens.Screen import Screen + +from Components.ActionMap import ActionMap +from Components.Sources.StaticText import StaticText +from Components.ScrollLabel import ScrollLabel + +class TextBox(Screen): + def __init__(self, session, text = ""): + Screen.__init__(self, session) + + self.text = text + self["text"] = ScrollLabel(self.text) + + self["actions"] = ActionMap(["OkCancelActions", "DirectionActions"], + { + "cancel": self.cancel, + "ok": self.ok, + "up": self["text"].pageUp, + "down": self["text"].pageDown, + }, -1) + + def ok(self): + self.close() + + def cancel(self): + self.close() \ No newline at end of file -- cgit v1.2.3 From 3d3fb340f73559bde24e757f292632bb5208b009 Mon Sep 17 00:00:00 2001 From: Stefan Date: Tue, 16 Dec 2008 11:34:45 +0100 Subject: finish and polish diseqc tester plugin --- data/skin_default.xml | 0 lib/python/Screens/Makefile.am | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 data/skin_default.xml mode change 100644 => 100755 lib/python/Screens/Makefile.am (limited to 'data') diff --git a/data/skin_default.xml b/data/skin_default.xml old mode 100644 new mode 100755 diff --git a/lib/python/Screens/Makefile.am b/lib/python/Screens/Makefile.am old mode 100644 new mode 100755 -- cgit v1.2.3 From 65d84bb0627f0e3e21fcdae27ba98cb584d7ad37 Mon Sep 17 00:00:00 2001 From: ghost Date: Mon, 22 Dec 2008 20:53:34 +0100 Subject: add possibility to remove timers in epglist TODO: this is not working for subtitles yet and not its working in graphical multi epg --- RecordTimer.py | 25 +++++++++---- data/skin_default/icons/epgclock_add.png | Bin 0 -> 358 bytes data/skin_default/icons/epgclock_post.png | Bin 0 -> 354 bytes data/skin_default/icons/epgclock_pre.png | Bin 0 -> 360 bytes lib/python/Components/EpgList.py | 32 +++++++++++++---- lib/python/Screens/EpgSelection.py | 57 ++++++++++++++++++++++++++---- lib/python/Screens/TimerEdit.py | 15 ++------ 7 files changed, 99 insertions(+), 30 deletions(-) create mode 100644 data/skin_default/icons/epgclock_add.png create mode 100644 data/skin_default/icons/epgclock_post.png create mode 100644 data/skin_default/icons/epgclock_pre.png (limited to 'data') diff --git a/RecordTimer.py b/RecordTimer.py index 8449a2d2..dcfdd578 100644 --- a/RecordTimer.py +++ b/RecordTimer.py @@ -577,6 +577,7 @@ class RecordTimer(timer.Timer): print "ignore timer conflict" elif timersanitycheck.doubleCheck(): print "ignore double timer" + return None entry.timeChanged() print "[Timer] Record " + str(entry) entry.Timer = self @@ -584,15 +585,16 @@ class RecordTimer(timer.Timer): if dosave: self.saveTimer() return None - + def isInTimer(self, eventid, begin, duration, service): time_match = 0 chktime = None chktimecmp = None chktimecmp_end = None end = begin + duration + refstr = str(service) for x in self.timer_list: - check = x.service_ref.ref.toCompareString() == str(service) + check = x.service_ref.ref.toString() == refstr if not check: sref = x.service_ref.ref parent_sid = sref.getUnsignedData(5) @@ -604,7 +606,7 @@ class RecordTimer(timer.Timer): sref.setUnsignedData(2, parent_tsid) sref.setUnsignedData(5, 0) sref.setUnsignedData(6, 0) - check = x.service_ref.ref.toCompareString() == str(service) + check = sref.toCompareString() == refstr num = 0 if check: check = False @@ -620,9 +622,6 @@ class RecordTimer(timer.Timer): check = True break if check: - #if x.eit is not None and x.repeated == 0: - # if x.eit == eventid: - # return duration if x.repeated != 0: if chktime is None: chktime = localtime(begin) @@ -645,6 +644,8 @@ class RecordTimer(timer.Timer): diff = x.end - begin if time_match < diff: time_match = diff + if time_match: + break return time_match def removeEntry(self, entry): @@ -663,6 +664,18 @@ class RecordTimer(timer.Timer): print "state: ", entry.state print "in processed: ", entry in self.processed_timers print "in running: ", entry in self.timer_list + # autoincrease instanttimer if possible + if not entry.dontSave: + for x in self.timer_list: + if x.dontSave and x.autoincrease: + x.end = x.begin + (3600 * 24 * 356 * 1) + self.timeChanged(x) + timersanitycheck = TimerSanityCheck(self.timer_list,x) + if not timersanitycheck.check(): + tsc_list = timersanitycheck.getSimulTimerList() + if len(tsc_list) > 1: + x.end = tsc_list[1].begin - 30 + self.timeChanged(x) # now the timer should be in the processed_timers list. remove it from there. self.processed_timers.remove(entry) self.saveTimer() diff --git a/data/skin_default/icons/epgclock_add.png b/data/skin_default/icons/epgclock_add.png new file mode 100644 index 00000000..487ac483 Binary files /dev/null and b/data/skin_default/icons/epgclock_add.png differ diff --git a/data/skin_default/icons/epgclock_post.png b/data/skin_default/icons/epgclock_post.png new file mode 100644 index 00000000..5716d99f Binary files /dev/null and b/data/skin_default/icons/epgclock_post.png differ diff --git a/data/skin_default/icons/epgclock_pre.png b/data/skin_default/icons/epgclock_pre.png new file mode 100644 index 00000000..ff424637 Binary files /dev/null and b/data/skin_default/icons/epgclock_pre.png differ diff --git a/lib/python/Components/EpgList.py b/lib/python/Components/EpgList.py index dbcd572b..042abccb 100644 --- a/lib/python/Components/EpgList.py +++ b/lib/python/Components/EpgList.py @@ -52,6 +52,9 @@ class EPGList(HTMLComponent, GUIComponent): self.l.setBuildFunc(self.buildSimilarEntry) self.epgcache = eEPGCache.getInstance() self.clock_pixmap = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, 'skin_default/icons/epgclock.png')) + self.clock_add_pixmap = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, 'skin_default/icons/epgclock_add.png')) + self.clock_pre_pixmap = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, 'skin_default/icons/epgclock_pre.png')) + self.clock_post_pixmap = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, 'skin_default/icons/epgclock_post.png')) def getEventFromId(self, service, eventid): event = None @@ -135,8 +138,22 @@ class EPGList(HTMLComponent, GUIComponent): self.datetime_rect = Rect(width/20*2, 0, width/20*5-15, height) self.service_rect = Rect(width/20*7, 0, width/20*13, height) + def getClockPixmap(self, refstr, beginTime, duration, eventId): + endTime = beginTime + duration + for x in self.timer.timer_list: + if x.service_ref.ref.toString() == refstr: + beg = x.begin + end = x.end + if x.eit == eventId: + return self.clock_pixmap + elif beginTime > beg and beginTime < end and endTime > end: + return self.clock_post_pixmap + elif beginTime < beg and endTime > beg and endTime < end: + return self.clock_pre_pixmap + return self.clock_add_pixmap + def buildSingleEntry(self, service, eventId, beginTime, duration, EventName): - rec=beginTime and (self.timer.isInTimer(eventId, beginTime, duration, service) > ((duration/10)*8)) + rec=beginTime and (self.timer.isInTimer(eventId, beginTime, duration, service)) r1=self.weekday_rect r2=self.datetime_rect r3=self.descr_rect @@ -145,14 +162,15 @@ class EPGList(HTMLComponent, GUIComponent): res.append((eListboxPythonMultiContent.TYPE_TEXT, r1.left(), r1.top(), r1.width(), r1.height(), 0, RT_HALIGN_RIGHT, self.days[t[6]])) res.append((eListboxPythonMultiContent.TYPE_TEXT, r2.left(), r2.top(), r2.width(), r1.height(), 0, RT_HALIGN_RIGHT, "%02d.%02d, %02d:%02d"%(t[2],t[1],t[3],t[4]))) if rec: - res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, r3.left(), r3.top(), 21, 21, self.clock_pixmap)) + clock_pic = self.getClockPixmap(service, beginTime, duration, eventId) + res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, r3.left(), r3.top(), 21, 21, clock_pic)) res.append((eListboxPythonMultiContent.TYPE_TEXT, r3.left() + 25, r3.top(), r3.width(), r3.height(), 0, RT_HALIGN_LEFT, EventName)) else: res.append((eListboxPythonMultiContent.TYPE_TEXT, r3.left(), r3.top(), r3.width(), r3.height(), 0, RT_HALIGN_LEFT, EventName)) return res def buildSimilarEntry(self, service, eventId, beginTime, service_name, duration): - rec=beginTime and (self.timer.isInTimer(eventId, beginTime, duration, service) > ((duration/10)*8)) + rec=beginTime and (self.timer.isInTimer(eventId, beginTime, duration, service)) r1=self.weekday_rect r2=self.datetime_rect r3=self.service_rect @@ -161,22 +179,24 @@ class EPGList(HTMLComponent, GUIComponent): res.append((eListboxPythonMultiContent.TYPE_TEXT, r1.left(), r1.top(), r1.width(), r1.height(), 0, RT_HALIGN_RIGHT, self.days[t[6]])) res.append((eListboxPythonMultiContent.TYPE_TEXT, r2.left(), r2.top(), r2.width(), r1.height(), 0, RT_HALIGN_RIGHT, "%02d.%02d, %02d:%02d"%(t[2],t[1],t[3],t[4]))) if rec: - res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, r3.left(), r3.top(), 21, 21, self.clock_pixmap)) + clock_pic = self.getClockPixmap(service, beginTime, duration, eventId) + res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, r3.left(), r3.top(), 21, 21, clock_pic)) res.append((eListboxPythonMultiContent.TYPE_TEXT, r3.left() + 25, r3.top(), r3.width(), r3.height(), 0, RT_HALIGN_LEFT, service_name)) else: res.append((eListboxPythonMultiContent.TYPE_TEXT, r3.left(), r3.top(), r3.width(), r3.height(), 0, RT_HALIGN_LEFT, service_name)) return res def buildMultiEntry(self, changecount, service, eventId, begTime, duration, EventName, nowTime, service_name): - rec=begTime and (self.timer.isInTimer(eventId, begTime, duration, service) > ((duration/10)*8)) + rec=beginTime and (self.timer.isInTimer(eventId, begTime, duration, service)) r1=self.service_rect r2=self.progress_rect r3=self.descr_rect r4=self.start_end_rect res = [ None ] # no private data needed if rec: + clock_pic = self.getClockPixmap(service, begTime, duration, eventId) res.append((eListboxPythonMultiContent.TYPE_TEXT, r1.left(), r1.top(), r1.width()-21, r1.height(), 0, RT_HALIGN_LEFT, service_name)) - res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, r1.left()+r1.width()-16, r1.top(), 21, 21, self.clock_pixmap)) + res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, r1.left()+r1.width()-16, r1.top(), 21, 21, clock_pic)) else: res.append((eListboxPythonMultiContent.TYPE_TEXT, r1.left(), r1.top(), r1.width(), r1.height(), 0, RT_HALIGN_LEFT, service_name)) if begTime is not None: diff --git a/lib/python/Screens/EpgSelection.py b/lib/python/Screens/EpgSelection.py index 6740bfb6..b40f445f 100644 --- a/lib/python/Screens/EpgSelection.py +++ b/lib/python/Screens/EpgSelection.py @@ -5,11 +5,13 @@ from Components.Pixmap import Pixmap from Components.Label import Label from Components.EpgList import EPGList, EPG_TYPE_SINGLE, EPG_TYPE_SIMILAR, EPG_TYPE_MULTI from Components.ActionMap import ActionMap +from Components.TimerSanityCheck import TimerSanityCheck from Screens.TimerEdit import TimerSanityConflict from Screens.EventView import EventViewSimple +from Screens.MessageBox import MessageBox from TimeDateInput import TimeDateInput from enigma import eServiceReference -from RecordTimer import RecordTimerEntry, parseEvent +from RecordTimer import RecordTimerEntry, parseEvent, AFTEREVENT from TimerEntry import TimerEntry from ServiceReference import ServiceReference from time import localtime, time @@ -17,6 +19,9 @@ from time import localtime, time mepg_config_initialized = False class EPGSelection(Screen): + ADD_TIMER = 0 + REMOVE_TIMER = 1 + def __init__(self, session, service, zapFunc=None, eventid=None, bouquetChangeCB=None): Screen.__init__(self, session) self.bouquetChangeCB = bouquetChangeCB @@ -58,6 +63,7 @@ class EPGSelection(Screen): self.zapFunc = zapFunc self["key_green"] = Button(_("Add timer")) + self.key_green_choice = self.ADD_TIMER self["list"] = EPGList(type = self.type, selChangedCB = self.onSelectionChanged, timer = self.session.nav.RecordTimer) self["actions"] = ActionMap(["EPGSelectActions", "OkCancelActions"], @@ -179,14 +185,28 @@ class EPGSelection(Screen): if self.type == EPG_TYPE_MULTI: self["list"].updateMultiEPG(1) + def removeTimer(self, timer): + timer.afterEvent = AFTEREVENT.NONE + self.session.nav.RecordTimer.removeEntry(timer) + self["key_green"].setText(_("Add timer")) + self.key_green_choice = self.ADD_TIMER + def timerAdd(self): cur = self["list"].getCurrent() event = cur[0] serviceref = cur[1] if event is None: return - newEntry = RecordTimerEntry(serviceref, checkOldTimers = True, *parseEvent(event)) - self.session.openWithCallback(self.finishedAdd, TimerEntry, newEntry) + eventid = event.getEventId() + refstr = serviceref.ref.toString() + for timer in self.session.nav.RecordTimer.timer_list: + if timer.eit == eventid and timer.service_ref.ref.toString() == refstr: + cb_func = lambda ret : not ret or self.removeTimer(timer) + self.session.openWithCallback(cb_func, MessageBox, _("Do you really want to delete %s?") % event.getEventName()) + break + else: + newEntry = RecordTimerEntry(serviceref, checkOldTimers = True, *parseEvent(event)) + self.session.openWithCallback(self.finishedAdd, TimerEntry, newEntry) def finishedAdd(self, answer): print "finished add" @@ -200,8 +220,12 @@ class EPGSelection(Screen): self.session.nav.RecordTimer.record(entry) else: self.session.openWithCallback(self.finishSanityCorrection, TimerSanityConflict, simulTimerList) + self["key_green"].setText(_("Remove timer")) + self.key_green_choice = self.REMOVE_TIMER else: - print "Timeredit aborted" + self["key_green"].setText(_("Add timer")) + self.key_green_choice = self.ADD_TIMER + print "Timeredit aborted" def finishSanityCorrection(self, answer): self.finishedAdd(answer) @@ -211,7 +235,7 @@ class EPGSelection(Screen): def moveDown(self): self["list"].moveDown() - + def applyButtonState(self, state): if state == 0: self["now_button"].hide() @@ -249,6 +273,7 @@ class EPGSelection(Screen): self["more_button_sel"].hide() def onSelectionChanged(self): + cur = self["list"].getCurrent() if self.type == EPG_TYPE_MULTI: count = self["list"].getCurrentChangeCount() if self.ask_time != -1: @@ -261,7 +286,7 @@ class EPGSelection(Screen): self.applyButtonState(1) days = [ _("Mon"), _("Tue"), _("Wed"), _("Thu"), _("Fri"), _("Sat"), _("Sun") ] datastr = "" - event = self["list"].getCurrent()[0] + event = cur[0] if event is not None: now = time() beg = event.getBeginTime() @@ -272,3 +297,23 @@ class EPGSelection(Screen): else: datestr = '%s %d.%d.'%(_("Today"), begTime[2], begTime[1]) self["date"].setText(datestr) + else: + event = cur[0] + + if event is None: + return + + serviceref = cur[1] + eventid = event.getEventId() + refstr = serviceref.ref.toString() + + for timer in self.session.nav.RecordTimer.timer_list: + if self.key_green_choice != self.REMOVE_TIMER: + if timer.eit == eventid and timer.service_ref.ref.toString() == refstr: + self["key_green"].setText(_("Remove timer")) + self.key_green_choice = self.REMOVE_TIMER + break + else: + if self.key_green_choice != self.ADD_TIMER: + self["key_green"].setText(_("Add timer")) + self.key_green_choice = self.ADD_TIMER diff --git a/lib/python/Screens/TimerEdit.py b/lib/python/Screens/TimerEdit.py index 18ab2b79..59e2bd03 100644 --- a/lib/python/Screens/TimerEdit.py +++ b/lib/python/Screens/TimerEdit.py @@ -214,18 +214,6 @@ class TimerEditList(Screen): timer = cur timer.afterEvent = AFTEREVENT.NONE self.session.nav.RecordTimer.removeEntry(timer) - if not timer.dontSave: - for timer in self.session.nav.RecordTimer.timer_list: - if timer.dontSave and timer.autoincrease: - timer.end = timer.begin + (3600 * 24 * 356 * 1) - self.session.nav.RecordTimer.timeChanged(timer) - timersanitycheck = TimerSanityCheck(self.session.nav.RecordTimer.timer_list,timer) - if not timersanitycheck.check(): - tsc_list = timersanitycheck.getSimulTimerList() - if len(tsc_list) > 1: - timer.end = tsc_list[1].begin - 30 - self.session.nav.RecordTimer.timeChanged(timer) - self.refill() self.updateState() @@ -261,6 +249,7 @@ class TimerEditList(Screen): def addTimer(self, timer): self.session.openWithCallback(self.finishedAdd, TimerEntry, timer) + def finishedEdit(self, answer): print "finished edit" @@ -335,6 +324,8 @@ class TimerSanityConflict(Screen): self.list.append((_("Conflicting timer") + " " + str(count), x)) self.list2.append((timer[count], False)) count += 1 + if count == 1: + self.list.append((_("Channel not in services list"))) self["list"] = MenuList(self.list) self["timer2"] = TimerList(self.list2) -- cgit v1.2.3 From 9716aadce09c2ca9791c55c16ff14e2f98c5debf Mon Sep 17 00:00:00 2001 From: ghost Date: Fri, 2 Jan 2009 17:44:29 +0100 Subject: add missing png for dvd player --- data/skin_default/icon_view.png | Bin 0 -> 376 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 data/skin_default/icon_view.png (limited to 'data') diff --git a/data/skin_default/icon_view.png b/data/skin_default/icon_view.png new file mode 100644 index 00000000..988b4196 Binary files /dev/null and b/data/skin_default/icon_view.png differ -- cgit v1.2.3 From 5f6be9199bf873cbb8cbef017e4cb2505edcd37d Mon Sep 17 00:00:00 2001 From: ghost Date: Sat, 3 Jan 2009 11:32:40 +0100 Subject: move icon to icons folder --- data/skin_default/icon_view.png | Bin 376 -> 0 bytes data/skin_default/icons/icon_view.png | Bin 0 -> 376 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 data/skin_default/icon_view.png create mode 100644 data/skin_default/icons/icon_view.png (limited to 'data') diff --git a/data/skin_default/icon_view.png b/data/skin_default/icon_view.png deleted file mode 100644 index 988b4196..00000000 Binary files a/data/skin_default/icon_view.png and /dev/null differ diff --git a/data/skin_default/icons/icon_view.png b/data/skin_default/icons/icon_view.png new file mode 100644 index 00000000..988b4196 Binary files /dev/null and b/data/skin_default/icons/icon_view.png differ -- cgit v1.2.3 From c05c4b12dcfc5af4cde978687b2f516db0a58a38 Mon Sep 17 00:00:00 2001 From: ghost Date: Sat, 3 Jan 2009 11:33:27 +0100 Subject: add missing png --- data/skin_default/icons/epgclock_prepost.png | Bin 0 -> 359 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 data/skin_default/icons/epgclock_prepost.png (limited to 'data') diff --git a/data/skin_default/icons/epgclock_prepost.png b/data/skin_default/icons/epgclock_prepost.png new file mode 100644 index 00000000..871b396e Binary files /dev/null and b/data/skin_default/icons/epgclock_prepost.png differ -- cgit v1.2.3 From f24b1a713e78a462c279c8fcb10e0a1d1b9b9caa Mon Sep 17 00:00:00 2001 From: acid-burn Date: Tue, 6 Jan 2009 12:57:18 +0100 Subject: beautify bottombar.png --- data/skin_default/bottombar.png | Bin 13805 -> 3247 bytes 1 file changed, 0 insertions(+), 0 deletions(-) (limited to 'data') diff --git a/data/skin_default/bottombar.png b/data/skin_default/bottombar.png index 7bb023c9..cda483c3 100755 Binary files a/data/skin_default/bottombar.png and b/data/skin_default/bottombar.png differ -- cgit v1.2.3 From b37fb8b50e48795882cd933c8ef9fe31b3ef007d Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Mon, 19 Jan 2009 02:16:11 +0100 Subject: rework block device scanning a bit --- data/menu.xml | 2 +- lib/python/Components/Harddisk.py | 100 ++++++++++++++++++--- lib/python/Plugins/SystemPlugins/Hotplug/plugin.py | 13 +-- 3 files changed, 89 insertions(+), 26 deletions(-) (limited to 'data') diff --git a/data/menu.xml b/data/menu.xml index 6bf5e3f2..7dc764ac 100644 --- a/data/menu.xml +++ b/data/menu.xml @@ -54,7 +54,7 @@ - + diff --git a/lib/python/Components/Harddisk.py b/lib/python/Components/Harddisk.py index febd16dd..8e30a512 100644 --- a/lib/python/Components/Harddisk.py +++ b/lib/python/Components/Harddisk.py @@ -2,6 +2,7 @@ from os import system, listdir, statvfs, popen, makedirs, readlink, stat, major, from Tools.Directories import SCOPE_HDD, resolveFilename from Tools.CList import CList from SystemInfo import SystemInfo +import string def tryOpen(filename): try: @@ -213,11 +214,12 @@ class Harddisk: return self.getDeviceDir() + "disc" class Partition: - def __init__(self, mountpoint, description = "", force_mounted = False): + def __init__(self, mountpoint, device = None, description = "", force_mounted = False): self.mountpoint = mountpoint self.description = description self.force_mounted = force_mounted self.is_hotplug = force_mounted # so far; this might change. + self.device = device def stat(self): return statvfs(self.mountpoint) @@ -247,6 +249,14 @@ class Partition: return True return False +DEVICEDB = \ + { + # dm8000: + "devices/platform/brcm-ehci.0/usb1/1-1/1-1.1/1-1.1:1.0": "Front USB Slot", + "devices/platform/brcm-ehci.0/usb1/1-1/1-1.2/1-1.2:1.0": "Back, upper USB Slot", + "devices/platform/brcm-ehci.0/usb1/1-1/1-1.3/1-1.3:1.0": "Back, lower USB Slot", + } + class HarddiskManager: def __init__(self): self.hdd = [ ] @@ -307,37 +317,63 @@ class HarddiskManager: self.cd = blockdev except IOError: error = True - return error, blacklisted, removable, is_cdrom, partitions + # check for medium + medium_found = True + try: + open("/dev/" + blockdev).close() + except IOError, err: + if err.errno == 159: # no medium present + medium_found = False + + return error, blacklisted, removable, is_cdrom, partitions, medium_found def enumerateBlockDevices(self): print "enumerating block devices..." for blockdev in listdir("/sys/block"): - error, blacklisted, removable, is_cdrom, partitions = self.getBlockDevInfo(blockdev) + error, blacklisted, removable, is_cdrom, partitions, medium_found = self.getBlockDevInfo(blockdev) print "found block device '%s':" % blockdev, if error: print "error querying properties" elif blacklisted: print "blacklisted" + elif not medium_found: + print "no medium" else: print "ok, removable=%s, cdrom=%s, partitions=%s, device=%s" % (removable, is_cdrom, partitions, blockdev) - self.addHotplugPartition(blockdev, blockdev) + + self.addHotplugPartition(blockdev) for part in partitions: - self.addHotplugPartition(part, part) + self.addHotplugPartition(part) def getAutofsMountpoint(self, device): return "/autofs/%s/" % (device) - def addHotplugPartition(self, device, description): - p = Partition(mountpoint = self.getAutofsMountpoint(device), description = description, force_mounted = True) + def addHotplugPartition(self, device, physdev = None): + if not physdev: + dev, part = self.splitDeviceName(device) + physdev = dev + try: + import os + physdev = os.readlink("/sys/block/" + dev + "/device")[6:] + except IOError: + print "couldn't determine blockdev physdev for device", dev + + # device is the device name, without /dev + # physdev is the physical device path, which we (might) use to determine the userfriendly name + description = self.getUserfriendlyDeviceName(device, physdev) + + p = Partition(mountpoint = self.getAutofsMountpoint(device), description = description, force_mounted = True, device = device) self.partitions.append(p) self.on_partition_list_change("add", p) + + # see if this is a harddrive l = len(device) - if l and device[l-1] not in ('0','1','2','3','4','5','6','7','8','9'): - error, blacklisted, removable, is_cdrom, partitions = self.getBlockDevInfo(device) - if not blacklisted and not removable and not is_cdrom: + if l and device[l-1] not in string.digits: + error, blacklisted, removable, is_cdrom, partitions, medium_found = self.getBlockDevInfo(device) + if not blacklisted and not removable and not is_cdrom and medium_found: self.hdd.append(Harddisk(device)) self.hdd.sort() - SystemInfo["Harddisc"] = len(self.hdd) > 0 + SystemInfo["Harddisk"] = len(self.hdd) > 0 def removeHotplugPartition(self, device): mountpoint = self.getAutofsMountpoint(device) @@ -346,13 +382,13 @@ class HarddiskManager: self.partitions.remove(x) self.on_partition_list_change("remove", x) l = len(device) - if l and device[l-1] not in ('0','1','2','3','4','5','6','7','8','9'): + if l and device[l-1] not in string.digits: idx = 0 for hdd in self.hdd: if hdd.device == device: del self.hdd[idx] break - SystemInfo["Harddisc"] = len(self.hdd) > 0 + SystemInfo["Harddisk"] = len(self.hdd) > 0 def HDDCount(self): return len(self.hdd) @@ -371,6 +407,42 @@ class HarddiskManager: return self.cd def getMountedPartitions(self, onlyhotplug = False): - return [x for x in self.partitions if (x.is_hotplug or not onlyhotplug) and x.mounted()] + parts = [x for x in self.partitions if (x.is_hotplug or not onlyhotplug) and x.mounted()] + devs = set([x.device for x in parts]) + for devname in devs.copy(): + if not devname: + continue + dev, part = self.splitDeviceName(devname) + if part and dev in devs: # if this is a partition and we still have the wholedisk, remove wholedisk + devs.remove(dev) + + # return all devices which are not removed due to being a wholedisk when a partition exists + return [x for x in parts if not x.device or x.device in devs] + + def splitDeviceName(self, devname): + dev = "" + part = "" + for i in devname: + if i in string.digits: + part += i + else: + dev += i + return dev, part and int(part) or 0 + + def getUserfriendlyDeviceName(self, dev, phys): + dev, part = self.splitDeviceName(dev) + description = "External Storage %s" % dev + try: + description = open("/sys/" + phys + "/model").read().strip() + except IOError, s: + print "couldn't read model (from /sys/" + phys + "/model): ", s + for physdevprefix, pdescription in DEVICEDB.items(): + if phys.startswith(physdevprefix): + description = pdescription + + # not wholedisk and not partition 1 + if part and part != 1: + description += " (Partition %d)" % part + return description harddiskmanager = HarddiskManager() diff --git a/lib/python/Plugins/SystemPlugins/Hotplug/plugin.py b/lib/python/Plugins/SystemPlugins/Hotplug/plugin.py index e593e942..b19007c9 100644 --- a/lib/python/Plugins/SystemPlugins/Hotplug/plugin.py +++ b/lib/python/Plugins/SystemPlugins/Hotplug/plugin.py @@ -3,17 +3,9 @@ from twisted.internet.protocol import Protocol, Factory from twisted.internet import reactor from Components.Harddisk import harddiskmanager -DEVICEDB = \ - { "/devices/pci0000:00/0000:00:14.2/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0": "CF Slot", - "/devices/pci0000:00/0000:00:14.2/usb1/1-1/1-1:1.0/host0/target1:0:0/0:0:0:0": "SD Slot" - } - hotplugNotifier = [ ] class Hotplug(Protocol): - def getUserfriendlyDeviceName(self, phys): - return DEVICEDB.get(phys, "USB Storage") - def connectionMade(self): self.received = "" @@ -40,14 +32,13 @@ class Hotplug(Protocol): dev = device.split('/')[-1] if action is not None and action == "add": - print "Medium found in", self.getUserfriendlyDeviceName(dev) - harddiskmanager.addHotplugPartition(dev, self.getUserfriendlyDeviceName(physdevpath)) + harddiskmanager.addHotplugPartition(dev, physdevpath) elif action is not None and action == "remove": harddiskmanager.removeHotplugPartition(dev) elif media_state is not None: if media_state == '1': harddiskmanager.removeHotplugPartition(dev) - harddiskmanager.addHotplugPartition(dev, self.getUserfriendlyDeviceName(physdevpath)) + harddiskmanager.addHotplugPartition(dev, physdevpath) elif media_state == '0': harddiskmanager.removeHotplugPartition(dev) -- cgit v1.2.3