diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index fa4fa78e9..b0819c481 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -709,382 +709,382 @@ mainsettings.timezone Zeitzone mainsettings.video Video menu.back Zurück menu.cancel Abbrechen -menu.hint_a_pic Konfigurieren Sie den Audioplayer und Bildbetrachter +menu.hint_a_pic Konfigurieren Sie den Audioplayer und den Bildbetrachter menu.hint_aplay Audioplayer -menu.hint_audio Audio-Ausgang, Dolby Digital\nund SRS True Volume Optionen -menu.hint_audio_analog_mode Hier wird festgelegt, ob auf dem analogen Ausgang ein Stereo-,\nMono-Links- oder Mono-Rechts-Signal ausgegeben werden soll +menu.hint_audio Audio-Ausgang, Dolby Digital und SRS TruVolume Optionen und mehr +menu.hint_audio_analog_mode Wählen Sie den Modus des Ausgangssignals für den CINCH-Anschluss menu.hint_audio_avsync Diese Funktion synchronisiert Bild und Ton -menu.hint_audio_dd Ist diese Option auf ein, wird automatisch auf Dolby Digital Ton\numgeschaltet, sobald dieser bei einem Sender verfügbar ist -menu.hint_audio_hdmi_dd Bei aktiver Option wird über den HDMI-Ausgang\nDolby Digital Ton ausgegeben -menu.hint_audio_spdif_dd Bei aktiver Option wird über den optischen Ausgang\n(S/PDIF) Dolby Digital Ton ausgegeben -menu.hint_audio_srs Hier wird SRS TruVolume an oder abgeschaltet\nbei inhaltlichen Änderungen -menu.hint_audio_srs_algo Mögliche Betriebsarten, einfach oder normal -menu.hint_audio_srs_nmgr Schaltet diese Option an oder aus -menu.hint_audio_srs_volume Hier kann die Referenzlautstärke festgelegt werden -menu.hint_audio_volstep Beim Betätigen der Lautstärketasten wird die Lautstärke\nimmer schrittweise nach diesen Wert geändert -menu.hint_audioplayer_defdir Hier wählen Sie das Startverzeichnis für den Audioplayer -menu.hint_audioplayer_follow Das Selektieren eines aktuellen Titel in der Playliste zulassen +menu.hint_audio_dd Ist diese Option aktiviert, wird automatisch auf Dolby Digital Ton geschalten, sobald dieser verfügbar ist +menu.hint_audio_hdmi_dd Bei aktiver Option wird über den HDMI-Ausgang der Dolby Digital Ton ausgegeben +menu.hint_audio_spdif_dd Bei aktiver Option wird über den optischen Ausgang (S/PDIF) der Dolby Digital Ton ausgegeben +menu.hint_audio_srs Schalten Sie SRS TruVolume ein oder aus +menu.hint_audio_srs_algo Stellen Sie die Betriebsarten von SRS TruVolume ein +menu.hint_audio_srs_nmgr Schalten Sie den NoiseManager ein oder aus +menu.hint_audio_srs_volume Legen Sie die Referenzlautstärke für SRS TruVolume fest +menu.hint_audio_volstep Beim Betätigen der Lautstärketasten wird die Lautstärke immer schrittweise nach diesem Wert geändert +menu.hint_audioplayer_defdir Wählen Sie das Startverzeichnis für den Audioplayer +menu.hint_audioplayer_follow Das Auswählen eines aktuellen Titels in der Wiedergabeliste zulassen menu.hint_audioplayer_highprio Erhöhen Sie die Priorität der Wiedergabe -menu.hint_audioplayer_order Ändern der Playlist-Sortierreihenfolge -menu.hint_audioplayer_playlist Aktiviert die Anzeige der Titel in der Playliste -menu.hint_audioplayer_repeat Aktiviert die Wiederholung der Playliste,\nwenn das Ende der Liste erreicht ist +menu.hint_audioplayer_order Ändern der Sortierreihenfolge der Wiedergabeliste +menu.hint_audioplayer_playlist Aktiviert die Anzeige der Titel in der Wiedergabeliste +menu.hint_audioplayer_repeat Aktiviert das Wiederholen der Wiedergabeliste, wenn das Ende erreicht ist menu.hint_audioplayer_sc_metadata Aktiviert das Anzeigen der Audio-Metadaten -menu.hint_audioplayer_screensaver Aktiviert den Bildschirmschoner in Minuten +menu.hint_audioplayer_screensaver Aktiviert den Bildschirmschoner nach dieser Zeit (Minuten) menu.hint_audioplayer_title Aktivieren Sie die Titelsuche (SMS-Stil) in der Playliste -menu.hint_auto_lang Hier können Sie wählen, ob automatisch Ihre bevorzugte Tonspur gewählt wird,\nwenn vorhanden +menu.hint_auto_lang Wählen Sie, ob automatisch ihre bevorzugte Tonspur ausgewählt wird, wenn sie vorhanden ist menu.hint_auto_subs Automatische Anzeige der Untertitel in Ihrer bevorzugten Sprache -menu.hint_back Zurück zum vorherigen Menü,\ndrücken der Menütaste schließt alle Menüs +menu.hint_back Zurück zum vorherigen Menü.\nDie Taste 'Menü' schließt alle Menüs menu.hint_backup Sichern von Konfigurationen und Kanallisten -menu.hint_bedit Bearbeiten der Favoriten und der Bouquets -menu.hint_bigwindows EPG Informationen werden immer im großen Fenster angezeigt,\ndies erreichen Sie auch mit der 'Info' Taste -menu.hint_cache_txt Startet das Zwischenspeichern des Teletext nach\nKanalwechsel +menu.hint_bedit Bearbeiten ihrer Favoriten und der Bouquets +menu.hint_bigwindows EPG-Informationen werden immer im großen Fenster angezeigt. Dies erreichen Sie auch mit der Taste 'Info' +menu.hint_cache_txt Startet das Zwischenspeichern des Teletextes nach einem Kanalwechsel menu.hint_cec_mode CEC-Modus menu.hint_cec_standby CEC-Standby menu.hint_cec_view_on CEC view ON menu.hint_channellist_additional Definiert, ob zusätzliche Informationen im Hauptfenster angezeigt werden sollen -menu.hint_channellist_colored Definiert ob die aktuelle oder nächste Sendung in einer anderen Farbe dargestellt werden soll -menu.hint_channellist_epg_align Hier kann man festlegen, wie der Text für das EPG in der Liste\nrechts vom Programmnamen ausgerichtet wird -menu.hint_channellist_extended Bei aktivierter Funktion wird vor dem Sendernamen ein Balken eingeblendet,\nder den Sendungsfortschritt anzeigt -menu.hint_channellist_fonts Ändern Sie in der Kanalliste die Schriftgrößen -menu.hint_channellist_foot Definiert welche Informationen im unteren Sendungsfenster angezeigt werden sollen -menu.hint_channellist_setup Hier können Sie Anzeigeoptionen für die Kanalliste auswählen -menu.hint_ci Conditional-Access-Menü zum Einrichten\nIhres CI-Moduls oder der eingebetteten Conax-Karte +menu.hint_channellist_colored Definiert, ob die aktuelle oder nächste Sendung in einer anderen Farbe dargestellt werden soll +menu.hint_channellist_epg_align Legen Sie fest, wie der Text für das EPG in der Liste rechts vom Programmnamen ausgerichtet wird +menu.hint_channellist_extended Bei aktivierter Funktion wird vor dem Sendernamen ein Balken eingeblendet, der den Sendungsfortschritt anzeigt +menu.hint_channellist_fonts Ändern Sie die Schriftgrößen in der Kanalliste +menu.hint_channellist_foot Definiert, welche Informationen im unteren Sendungsfenster angezeigt werden sollen +menu.hint_channellist_setup Wählen Sie die Anzeigeoptionen für die Kanalliste +menu.hint_ci Conditional-Access-Menü zum Einrichten Ihres CI-Moduls oder der eingebetteten Conax-Karte menu.hint_colors Konfigurieren Sie die Menü-Farben menu.hint_content_back Ändern Sie die Hintergrundfarbe für den Fensterinhalt menu.hint_content_textcolor Ändern Sie die Textfarbe für den Fensterinhalt -menu.hint_contrast_fonts Wählen Sie mehr Schriftkontrast (absetzen vom Hintergrund) +menu.hint_contrast_fonts Wählen Sie einen höheren Schriftkontrast menu.hint_dboxinfo Informationen über CPU und Arbeitsspeicher der Box menu.hint_delete_channels Löschen aller Kanäle menu.hint_epg_cache Maximum in Tagen zukünftiger EPG-Daten -menu.hint_epg_dir Speicherverzeichnis auf der Festplatte oder einen USB-Stick\nzum speichern von EPG-Daten -menu.hint_epg_extendedcache Maximum in Stunden, die die EPG-Daten zwischengespeichert\nwerden bzw. der Event-Beschreibungen -menu.hint_epg_fonts Ändern Sie für die EPG-Details die Schriftgrößen -menu.hint_epg_max_events Maximum an Events im Zwischenspeicher. Nach Erreichen der\nGrenze werden EPG-Daten für zukünftige gelöscht -menu.hint_epg_old_events EPG im Speicher behalten in Stunden,\nauch wenn es veraltet ist -menu.hint_epg_save Speichert die EPG-Daten auf einer Harddisk oder USB-Stick\nund läd es nach einen Neustart -menu.hint_epg_save_standby Speichert die EPG-Daten in Bereitschaft Modus -menu.hint_event_textcolor Ändern Sie die Event-Farbe für farbige Event-Optionen in Kanalliste und Infobar -menu.hint_eventlist_fonts Ändern Sie in der Event-Liste die Schriftgrößen -menu.hint_extended Energiespar-, EPG-Speicher- / Lade-Optionen,\nHDMI-CEC, Startkanal, Zap-Optionen -menu.hint_factory Zurücksetzen der Box auf Werkseinstellungen\nBox wird nach einem Reset neu gestartet -menu.hint_fade Bei aktivierter Funktion werden die Menüfenster\n'weich' ein- bzw. ausgeblendet +menu.hint_epg_dir Speicherverzeichnis auf einem externen Datenträger zum Speichern von EPG-Daten +menu.hint_epg_extendedcache Maximum in Stunden, die die EPG-Daten bzw. die Event-Beschreibungen zwischengespeichert werden +menu.hint_epg_fonts Ändern Sie die Schriftgrößen der EPG-Details +menu.hint_epg_max_events Maxiale Anzahl der Events im Zwischenspeicher +menu.hint_epg_old_events Veraltete EPG-Daten werden nach dieser Zeit (in Stunden) verworfen +menu.hint_epg_save Speichert die EPG-Daten auf einem externen Datenträger und läd es von dort nach einen Neustart +menu.hint_epg_save_standby Speichert die EPG-Daten auch im Standby-Modus +menu.hint_event_textcolor Ändern Sie die Farbe für farbige Events in der Kanalliste und der Infobar +menu.hint_eventlist_fonts Ändern Sie die Schriftgröße in der Event-Liste +menu.hint_extended Energiespar-, EPG-Speicher- und Lade-Optionen, HDMI-CEC, Startkanal und mehr +menu.hint_factory Zurücksetzen der Box auf Werkseinstellungen.\nDie Box wird danach neu gestartet +menu.hint_fade Bei aktivierter Funktion werden die Menüfenster 'weich' ein- bzw. ausgeblendet menu.hint_fan_speed Steuerung der Lüftergeschwindigkeit für die CPU menu.hint_filebrowser_denydirectoryleave Verhindert das Verlassen des Startverzeichnisses menu.hint_filebrowser_showrights Anzeige der Dateirechte der Dateien im Filebrowser -menu.hint_fileplay Spielen Sie verschiedene Video-Dateien +menu.hint_fileplay Abspielen verschiedener Video-Dateien menu.hint_filesystem_is_utf8 Kodierung für Unicode-Zeichen im Filebrowser -menu.hint_font_gui Wählen Sie die Schriftart aus Schriftart-Dateien, um diese für die Menüs zu verwenden -menu.hint_font_scaling Legen Sie global die vertikale und horizontale Skalierung der Menüschrift fest -menu.hint_font_ttx Wählen Sie Schriftart aus Schriftart-Dateien, um diese für den Teletext zu verwenden -menu.hint_fonts Konfigurieren Sie die Menü-Schriftart und Schriftgrößen -menu.hint_gamelist_fonts Ändern Sie für die Spiele- und Script-Liste die Schriftgrößen +menu.hint_font_gui Wählen Sie die Schriftart für die Menüs +menu.hint_font_scaling Legen Sie die vertikale und horizontale Skalierung der Menüschrift fest +menu.hint_font_ttx Wählen Sie die Schriftart für den Teletext +menu.hint_fonts Konfigurieren Sie die Schriftart und die Schriftgrößen für die Menüs +menu.hint_gamelist_fonts Ändern die Schriftgrößen für die Spiele- und Script-Liste menu.hint_games Zeige Liste der installierten Spiele -menu.hint_hdd Formatierung und Prüfung der Festplatte +menu.hint_hdd Formatierung und Prüfung der Datenträger menu.hint_hdd_apply Die veränderten Einstellungen zum Sleep- und Akustik-Modus werden übernommen menu.hint_hdd_check Überprüft das Dateisystem und führt gegebenfalls eine Reparatur durch (fsck) -menu.hint_hdd_format Erstellt eine HDD-Partition und formatiert diese -menu.hint_hdd_noise Hier können Parameter für Automatic Acoustic Management gesetzt werden,\nnicht alle Laufwerke unterstützen diese Funktion -menu.hint_hdd_sleep Dieser Wert definiert nach wie viel Minuten die Festplatte bei Inaktivität in den Sleep-Modus geschaltet wird -menu.hint_hdd_tools Hier können Sie die gefundenen Festplatten formatieren bzw. das Dateisystem überprüfen +menu.hint_hdd_format Erstellt eine Partition auf dem Datenträger und formatiert diese +menu.hint_hdd_noise Setzen Sie Parameter für das Automatic Acoustic Management.\nNicht alle Laufwerke unterstützen diese Funktion +menu.hint_hdd_sleep Dieser Wert definiert, nach wieviel Minuten die Festplatte bei Inaktivität in den Sleep-Modus geschaltet wird +menu.hint_hdd_tools Formatieren Sie die gefundenen Datenträger bzw. überprüfen Sie deren Dateisystem menu.hint_head_back Ändern Sie die Titel-Hintergrundfarbe menu.hint_head_textcolor Ändern Sie die Titel-Textfarbe menu.hint_imageinfo Informationen über die installierte Software -menu.hint_inact_timer Ausschalten der Box nach Inaktivität in Minuten,\ndie Box geht automatisch in den Standby-Modus +menu.hint_inact_timer Ausschalten der Box nach Inaktivität in Minuten.\nDie Box geht automatisch in den Standby-Modus menu.hint_inactive_back Ändern Sie die Hintergrundfarbe für deaktivierte Fensterinhalte menu.hint_inactive_textcolor Ändern Sie die Textfarbe für deaktivierte Fensterinhalte menu.hint_inet_radio Internetradio -menu.hint_info Informationen über Image, CPU und Arbeitsspeicher,\nStream-Information +menu.hint_info Informationen über das Image, CPU, Arbeitsspeicher und Stream und mehr menu.hint_infobar_back Ändern Sie die Hintergrundfarbe für die Infobar menu.hint_infobar_casys ein: zeigt alle Aktiven farbig, Mini: einzelnes Symbol ob gespeert, Diskret: alle Aktiven CA-Systeme menu.hint_infobar_colored_event Verwenden Sie unterschiedliche Farben für die aktuelle oder nächste Sendung in der Infobar menu.hint_infobar_dd Zeigt ein Dolby Digital Icon bei Verfügbarkeit menu.hint_infobar_filesys Zeigen den vom Flash- und einer HDD verwendeten Speicherplatz -menu.hint_infobar_fonts Ändern Sie in der Infobar die Schriftgrößen +menu.hint_infobar_fonts Ändern Sie die Schriftgrößen in der Infobar menu.hint_infobar_logo Logo- und Signal-Optionen -menu.hint_infobar_logo_dir Hier wählen Sie das Verzeichnis für die Senderlogos +menu.hint_infobar_logo_dir Wählen Sie das Verzeichnis für die Senderlogos menu.hint_infobar_on_epg Zeigt einen Hinweis bei EPG-Änderungen menu.hint_infobar_progressbar Wählt die Optionen des Fortschrittsbalken in der Infobar menu.hint_infobar_radiotext Zeigt Radiotext in einen Fenster, wenn verfügbar menu.hint_infobar_res Zeige die gesendete Auflösung in Symbolen menu.hint_infobar_sat Zeigt die aktuellen Satelliten- oder Kabel-Provider -menu.hint_infobar_setup Hier können Sie die Anzeigeoptionen für die Infobar auswählen +menu.hint_infobar_setup Wählen Sie die Anzeigeoptionen für die Infobar aus menu.hint_infobar_textcolor Ändern Sie die Textfarbe für die Infobar menu.hint_infobar_tuner Zeigt den aktiven Tuner als Nummernicon -menu.hint_keep_numbers Mit der Aktivierung werden den Sendern feste/dauerhafte\nKanalnummern zugewiesen -menu.hint_key_addrecord Weisen Sie eine Taste für das starten und makieren von Aufnahmen im EPG zu +menu.hint_keep_numbers Mit der Aktivierung werden den Sendern feste/dauerhafte Kanalnummern zugewiesen +menu.hint_key_addrecord Weisen Sie eine Taste für das Starten und Markieren von Aufnahmen im EPG zu menu.hint_key_addremind Weisen Sie eine Taste für das Umschalten im EPG über den Timer zu -menu.hint_key_audio ein: 'Audio' Taste startet das Audioplayer-Menü\naus: 'Audio' Taste startet die Auswahl der Tonspuren +menu.hint_key_audio ein: Taste 'Audio' startet das Audioplayer-Menü\naus: Taste 'Audio' startet die Auswahl der Tonspuren menu.hint_key_binding In diesem Menü können Einstellungen für die Tasten der Fernbedienung angepasst werden -menu.hint_key_bouquetdown Weisen Sie eine Taste für das zurückblättern in den Bouquet zu -menu.hint_key_bouquetup Weisen Sie eine Taste für das vorblättern in den Bouquet zu -menu.hint_key_cancel Weisen Sie eine Taste für das schließen der Menüe zu -menu.hint_key_channel_sms Wenn es aktiviert ist, können Sie die Nummern-Tasten in der Kanalliste nutzen,\num im SMS-Style zu suchen -menu.hint_key_channeldown Weisen Sie eine Taste für das runterschalten in der Kanalliste zu +menu.hint_key_bouquetdown Weisen Sie eine Taste für das Zurückblättern in den Bouquets zu +menu.hint_key_bouquetup Weisen Sie eine Taste für das Vorblättern in den Bouquets zu +menu.hint_key_cancel Weisen Sie eine Taste für das Schließen der Menüs zu +menu.hint_key_channel_sms Wenn es aktiviert ist, können Sie die Nummern-Tasten in der Kanalliste nutzen, um im SMS-Style zu suchen +menu.hint_key_channeldown Weisen Sie eine Taste für das Herunterschalten in der Kanalliste zu menu.hint_key_channellist Konfigurieren Sie die Tastenbelegung für die Kanalliste -menu.hint_key_channelup Weisen Sie eine Taste für das hochschalten in der Kanalliste zu -menu.hint_key_hardware Hier wird definiert welchen Fernbedienungstyp Sie verwenden möchten,\ndie Bestätigung erfolgt mit der Ausgewählten -menu.hint_key_history Hier können Sie eine Taste für das Anzeigen der letzten Programme,\ndie Sie schauten definieren (History-Liste) -menu.hint_key_lastchannel Hier können Sie eine Taste definieren, der in den letzten Kanal zurückschaltet aus der History-Liste -menu.hint_key_left_exit Weisen Sie der 'links' Taste für das wechseln in den Menüe zu -menu.hint_key_list_end Weisen Sie eine Taste für den Wechsel zum 'Listenende' zu -menu.hint_key_list_start Weisen Sie eine Taste für den Wechsel zum 'Listenanfang' zu -menu.hint_key_load Laden Sie definierte Tastenbelegungen aus einer Datei -menu.hint_key_modechange Wählen Sie eine Taste für den wechseln in den TV/Radio Modus und für den Standby +menu.hint_key_channelup Weisen Sie eine Taste für das Hochschalten in der Kanalliste zu +menu.hint_key_hardware Definieren Sie, welche Fernbedienung Sie verwenden möchten. Die Bestätigung erfolgt mit der Ausgewählten +menu.hint_key_history Definieren Sie eine Taste für das Anzeigen der letzten Programme, die Sie schauten +menu.hint_key_lastchannel Definieren Sie eine Taste, die in den vorher eingestellten Kanal zurückschaltet +menu.hint_key_left_exit Weisen Sie der Taste 'links' das Wechseln in das vorherige Menü zu +menu.hint_key_list_end Weisen Sie eine Taste für den Wechsel zum Listenende zu +menu.hint_key_list_start Weisen Sie eine Taste für den Wechsel zum Listenanfang zu +menu.hint_key_load Laden Sie Ihre Tastenbelegungen aus einer Datei +menu.hint_key_modechange Wählen Sie eine Taste für den Wechsel in den TV/Radio-Modus und für den Standby menu.hint_key_movieplayer Konfigurieren Sie die Tastenbelegung für den Movieplayer -menu.hint_key_mpaudio Weisen Sie eine Taste zu um die Tonspuren in ihren Aufnahmen zu wechseln -menu.hint_key_mpbookmark Weisen Sie eine Taste um 'Merker' in ihren Aufnahmen für den Neustart zu setzen -menu.hint_key_mpforward Weisen Sie eine Taste zum vorspulen in ihren Aufnahmen zu -menu.hint_key_mppause Weisen Sie eine Taste zum pausieren der Wiedergabe zu +menu.hint_key_mpaudio Weisen Sie eine Taste zu, um die Tonspuren in ihren Aufnahmen zu wechseln +menu.hint_key_mpbookmark Weisen Sie eine Taste zu, um Merker in ihren Aufnahmen für den Neustart zu setzen +menu.hint_key_mpforward Weisen Sie eine Taste zum Vorspulen in ihren Aufnahmen zu +menu.hint_key_mppause Weisen Sie eine Taste zum Pausieren der Wiedergabe zu menu.hint_key_mpplay Weisen Sie eine Taste zu, um die Wiedergabe zu starten -menu.hint_key_mpplugin Weisen Sie eine Taste zu um ein Plugin zu starten,\nwenn ihre Wiedergabe läuft -menu.hint_key_mprewind Weisen Sie eine Taste zum zurückspulen in ihren Aufnahmen zu -menu.hint_key_mpstop Weisen Sie eine Taste zum beenden der Wiedergabe zu -menu.hint_key_mptime Weisen Sie eine Taste für die Zeitanzeige in ihren Aufnahmen zu,\nSpielzeit und verbleibene Zeit -menu.hint_key_mptimeshift Weisen Sie eine Taste für das starten von Timeshift zu -menu.hint_key_pagedown Weisen Sie eine Taste für 'Seite weiter' zu -menu.hint_key_pageup Weisen Sie eine Taste für 'Seite zurück' zu -menu.hint_key_poweroff Wählen Sie eine Taste für den Standby\nund für das Verhalten für Standby und Deep-Standby +menu.hint_key_mpplugin Weisen Sie eine Taste zu, um ein Plugin zu starten, wenn ihre Wiedergabe läuft +menu.hint_key_mprewind Weisen Sie eine Taste zum Zurückspulen in ihren Aufnahmen zu +menu.hint_key_mpstop Weisen Sie eine Taste zum Beenden der Wiedergabe zu +menu.hint_key_mptime Weisen Sie eine Taste für die Restzeitanzeige ihrer Aufnahmen zu +menu.hint_key_mptimeshift Weisen Sie eine Taste für das Starten von Timeshift zu +menu.hint_key_pagedown Weisen Sie eine Taste für das Herunterblättern zu +menu.hint_key_pageup Weisen Sie eine Taste für das Hochblättern zu +menu.hint_key_poweroff Wählen Sie eine Taste für den Standby und für das Verhalten für Standby und Deep-Standby menu.hint_key_quickzap Konfigurieren Sie die Tastenbelegung für die Schnellumschaltung -menu.hint_key_repeatblock Die Verzögerung nach Tastendruck,\nauf den die Box reagieren soll -menu.hint_key_repeatblockgeneric Die Verzögerung zwischen Tastewiederholungen,\nauf die die Box reagieren soll -menu.hint_key_right Wählen Sie die Funktion für die 'links/rechts' Tasten aus im TV/Radio Modus -menu.hint_key_save Speichern Sie Tastenbelegungen als Datei in einer Config +menu.hint_key_repeatblock Die Verzögerung nach einem Tastendruck bis die Box reagieren soll +menu.hint_key_repeatblockgeneric Die Verzögerung zwischen den Tastewiederholungen bis die Box reagieren soll +menu.hint_key_right Wählen Sie die Funktion für die Tasten 'links' und 'rechts' im TV/Radio-Modus +menu.hint_key_save Speichern Sie Ihre Tastenbelegungen in einer Datei ab menu.hint_key_screenshot Weisen Sie eine Taste zu, um Menü- und/oder TV-Screenshots zu speichern -menu.hint_key_sort Weisen Sie eine Taste für das sortieren in der Kanalliste zu -menu.hint_key_subchanneldown Weisen Sie eine Taste für das zurückschalten in den Unterkanälen zu -menu.hint_key_subchannelup Weisen Sie eine Taste für das weiterschalten in den Unterkanälen zu +menu.hint_key_sort Weisen Sie eine Taste für das Sortieren in der Kanalliste zu +menu.hint_key_subchanneldown Weisen Sie eine Taste für das Zurückschalten in den Unterkanälen zu +menu.hint_key_subchannelup Weisen Sie eine Taste für das Weiterschalten in den Unterkanälen zu menu.hint_key_transponder Weisen Sie eine Taste für das Anzeigen der Transponder in der Kanalliste zu -menu.hint_key_tvradiomode Wählen Sie eine Taste für das umschalten zwischen TV <> Radio Modus -menu.hint_key_unlock Weisen Sie eine Taste zum entriegeln zu,\nbetätigen Sie die 'rote' Taste und diese für 5 Sekunden -menu.hint_keys Fernbedienungs-Wiederholrate\nund Tastenbelegungen bearbeiten -menu.hint_lang_pref Wählen Sie ihre bevorzugten Audio-Sprachen, EPG\nund Untertitel-Sprachen -menu.hint_language OSD Sprache, Zeitzone\nbevorzugte Audio und Untertitel Sprachen -menu.hint_last_radio In dieser Menüzeile kann der gewünschte\nStart-Radio-Sender eingestellt werden -menu.hint_last_tv In dieser Menüzeile kann der gewünschte\nStart-TV-Sender eingestellt werden +menu.hint_key_tvradiomode Wählen Sie eine Taste für das Umschalten zwischen TV- und Radio-Modus +menu.hint_key_unlock Weisen Sie eine Taste zum Entriegeln zu, \nbetätigen Sie die Taste 'Rot' für 5 Sekunden +menu.hint_keys Tastenbelegungen und Fernbedienungs-Abstimmung bearbeiten +menu.hint_lang_pref Wählen Sie ihre bevorzugten Tonspuren und Untertitel-Sprachen +menu.hint_language Menü-Sprache, Zeitzone, bevorzugte Tonspuren, Untertitel-Sprachen und mehr +menu.hint_last_radio Wählen Sie den Start-Sender im Radio-Modus +menu.hint_last_tv Wählen Sie den Start-Sender im TV-Modus menu.hint_last_use Speichert den aktuellen Kanal beim Herunterfahren der Box -menu.hint_leds_blink Die Power-LEDs blinken, wenn sich der Receiver\nim Deep-Standby befindet und ein Timer aktiv ist +menu.hint_leds_blink Die Power-LEDs blinken, wenn sich der Receiver im Deep-Standby befindet und ein Timer aktiv ist menu.hint_leds_deepstandby Definiert den Status der Power-LEDs im Deep-Standby -menu.hint_leds_record Definiert ob die Power-LEDs blinken,\nwenn eine Aufnahme aktiv ist +menu.hint_leds_record Definiert, ob die Power-LEDs blinken sollen, wenn eine Aufnahme aktiv ist menu.hint_leds_standby Definiert den Status der Power-LEDs im Standby -menu.hint_leds_tv Definiert den Status der Power-LEDs im TV-Betrieb +menu.hint_leds_tv Definiert den Status der Power-LEDs im TV-Modus menu.hint_load Laden der Neutrino-HD-Einstellungen aus einer Datei -menu.hint_make_hdlist Bei aktiver Option wird ein Bouquet namens 'HD' erzeugt\nin dem alle HD Sender zusammengefasst sind -menu.hint_make_newlist Nach einer Kanalsuche wird ein Bouquet namens\n'neue Kanäle' erzeugt -menu.hint_make_removedlist Nach einer Kanalsuche wird ein Bouquet namens\n'gelöschte Kanäle' erzeugt -menu.hint_manage_settings Sichern, Wiederherstellen, zurück auf\nStandardwerte, Auslieferungszustand herstellen +menu.hint_make_hdlist Bei aktiver Option wird ein Bouquet namens 'HD' erzeugt, in dem alle HD-Sender zusammengefasst sind +menu.hint_make_newlist Nach einer Kanalsuche wird ein Bouquet namens 'neue Kanäle' erzeugt +menu.hint_make_removedlist Nach einer Kanalsuche wird ein Bouquet namens 'gelöschte Kanäle' erzeugt +menu.hint_manage_settings Sichern, Wiederherstellen und Auslieferungszustand wiederherstellen menu.hint_mb Ihre Aufnahmen -menu.hint_media Abspielen von Filmen, Audiodateien\nbetrachten Sie Bilder -menu.hint_menu_fonts Ändern Sie im Menü die Schriftgrößen -menu.hint_menu_hints Zeigt Ihnen Hinweise zu den Menüpunkten an,\nbei Deaktivierung erreichen Sie es jederzeit auch mit der Taste 'Hilfe' -menu.hint_menu_pos Hier können Sie die Anzeigeposition der OSD-Menüs festlegen +menu.hint_media Abspielen von Musik, Internetradio und Filmen; Betrachten Sie Bilder +menu.hint_menu_fonts Ändern Sie die Schriftgrößen im Menü +menu.hint_menu_hints Zeigt Ihnen Hinweise zu den Menüpunkten an. Sie erreichen das auch jederzeit mit der Taste 'Hilfe' +menu.hint_menu_pos Legen Sie die Anzeigeposition der Menüs fest menu.hint_misc_cec HDMI-CEC Optionen -menu.hint_misc_channellist Erweiterte Einstellungen für die Kanallisten\nZappingeinstellungen -menu.hint_misc_energy Energie- und Softstandby-Optionen, verzögertes Ausschalten\nsetzen bzw. ändern des Inaktivitätstimers -menu.hint_misc_epg EPG Sicherrungs- und Ladenoptionen, EPG-Einstellungen\nSicherungsverzeichnis für EPG-Daten -menu.hint_misc_filebrowser Dateisystem, Dateirechte anzeigen im Dateibrowser\nStartverzeichnisoptionen -menu.hint_misc_general Standby-, Teletext-, Rotor-Einstellungen\nPluginverzeichnis auf der HDD -menu.hint_misc_zapit Behandlung der Start-TV/Start-Radio Kanäle +menu.hint_misc_channellist Erweiterte Einstellungen für die Kanallisten und Zapping-Einstellungen +menu.hint_misc_energy Energieverbrauchs- und Standby-Optionen, verzögertes Ausschalten, setzen bzw. ändern des Inaktivitätstimers +menu.hint_misc_epg Diverse EPG-Einstellungen und Speicherverzeichnis für EPG-Daten +menu.hint_misc_filebrowser Dateisystem, Dateirechte anzeigen im Dateibrowser, Startverzeichnisoptionen +menu.hint_misc_general Standby-, Teletext- und Rotor-Einstellungen, Pluginverzeichnis auf externem Datenträger +menu.hint_misc_zapit Verwaltung der Start-Kanäle für den TV/Radio-Modus menu.hint_movie Wiedergabe von Filmen -menu.hint_net_broadcast Hier können Sie die Broadcast-Adresse ändern,\nwenn Sie unsicher sind, verwenden Sie zuletzt .255 -menu.hint_net_dhcp Verwenden Sie einen DHCP-Server für die automatische\nKonfiguration können Sie es hier einstellen -menu.hint_net_djmount Mountet UPnP-Geräte als Dateisystem\nunter /media/00upnp +menu.hint_net_broadcast Ändern Sie die Broadcast-Adresse.\nWenn Sie unsicher sind, verwenden Sie zuletzt .255 +menu.hint_net_dhcp Verwenden Sie einen DHCP-Server für die automatische Vergabe einer IP-Adresse im Netzwerk +menu.hint_net_djmount Mountet UPnP-Geräte als Dateisystem unter /media/00upnp menu.hint_net_ftpd Aktivieren Sie die Dateiübertragung über FTP -menu.hint_net_gateway Hier können Sie die Gateway-Adresse des Routers eingeben -menu.hint_net_hostname Hier kann man den Hostnamen der Box ändern +menu.hint_net_gateway Geben Sie die Gateway-Adresse des Routers ein +menu.hint_net_hostname Ändern Sie den Hostnamen der Box menu.hint_net_if Wählen Sie die Schnittstelle zur Konfiguration -menu.hint_net_ipaddress Hier können Sie die IP-Adresse für die Box eingeben -menu.hint_net_mount Hier werden Netzwerkfreigaben bearbeitet\nNFS und CIFS werden supported -menu.hint_net_nameserver Hier können Sie die IP-Adresse des Routers\nbzw. eines DNS-Server eingeben -menu.hint_net_netmask Hier können Sie eine Netzwerkmaske eingeben\nStandart ist 255.255.255.0 -menu.hint_net_nfs_mount Hier können Sie die Netzwerkfreigaben und Mounts bearbeiten -menu.hint_net_nfs_umount Hier können Sie gemountete Verzeichnis wieder aushängen -menu.hint_net_ntp Hier kann man den Zeitserver ändern,\ndies dient der Zeitsynchronisation -menu.hint_net_ntpenable Aktiviert die Zeitsynchronisierung über das NTP-Protokoll\nwenn NTP-Sync nicht erfolgreich, verwenden Sie DVB -menu.hint_net_ntprefresh Hier können Sie den Interval zur Zeitsynchronisation einstellen -menu.hint_net_ntpserver Hier können Sie den NTP-Server eingeben -menu.hint_net_pass Hier können Sie das Passwort eingeben (WPA-PSK) -menu.hint_net_proxy Wenn Sie Proxy für den Zugriff auf das Internet benutzen\nkonfigurieren Sie es hier für den Online-Software-Update -menu.hint_net_proxypass Hier können Sie den Proxy-Passwort eingeben,\nwenn es erforderlich ist -menu.hint_net_proxyserver Hier können Sie den Proxyserver-Namen eingeben -menu.hint_net_proxyuser Hier können Sie den Proxy-Benutzernamen eingeben,\nwenn es erforderlich ist -menu.hint_net_services Konfigurieren Sie Netzwerkservices:\nTelnet, FTP, UPnP -menu.hint_net_setupnow Hier werden die aktuellen Einstellungen zugewiesen\nbzw. geänderte übernommen -menu.hint_net_setuponstartup Startet das Netzwerk automatisch beim Booten +menu.hint_net_ipaddress Geben Sie die IP-Adresse für die Box ein +menu.hint_net_mount Bearbeiten Sie NFS- und CIFS-Netzwerkfreigaben +menu.hint_net_nameserver Geben Sie die IP-Adresse eines Routers oder eines DNS-Servers ein +menu.hint_net_netmask Geben Sie eine Netzwerkmaske ein\nStandart ist 255.255.255.0 +menu.hint_net_nfs_mount Bearbeiten Sie die Netzwerkfreigaben und deren Einhängepunkte +menu.hint_net_nfs_umount Hängen Sie eingehängte Netzwerkfreigaben wieder aus +menu.hint_net_ntp Ändern Sie den Zeitserver für die Zeitsynchronisation via Internet +menu.hint_net_ntpenable Aktiviert die Zeitsynchronisierung via NTP.\nWenn das NTP nicht erfolgreich ist, verwenden Sie DVB +menu.hint_net_ntprefresh Stellen Sie den Interval zur Zeitsynchronisation ein +menu.hint_net_ntpserver Geben Sie den NTP-Server ein +menu.hint_net_pass Geben Sie das Passwort ein (WPA-PSK) +menu.hint_net_proxy Konfigurieren Sie einen Proxy-Server für den Zugriff auf das Internet +menu.hint_net_proxypass Geben Sie ihr Passwort für den Proxy-Server ein, wenn es erforderlich ist +menu.hint_net_proxyserver Geben Sie den Namen des Proxy-Servers ein +menu.hint_net_proxyuser Geben Sie ihren Benutzernamen für den Proxy-Server ein, wenn es erforderlich ist +menu.hint_net_services Konfigurieren Sie Netzwerk-Dienste wie Telnet, FTP und UPnP +menu.hint_net_setupnow Weisen Sie die aktuellen Einstellungen zu oder übernehmen Sie geänderte Einstellungen +menu.hint_net_setuponstartup Startet das Netzwerk automatisch beim Starten der Box menu.hint_net_show Zeigen Ihnen die aktuellen Netzwerkeinstellungen -menu.hint_net_ssid Hier können Sie die Wireless-Netzwerk-SSID eingeben\nmit der Sie eine Verbindung herstellen möchten -menu.hint_net_telnet Aktivieren Sie den Telnet-Login auf Ihrer Box,\nNutzer: root Passwort: coolstream +menu.hint_net_ssid Geben Sie die SSID des WLAN ein, mit dem Sie eine Verbindung herstellen möchten +menu.hint_net_telnet Aktiviert Telnet auf Ihrer Box\nLogin mit Benutzer 'root' und Passwort 'coolstream' menu.hint_net_test Testet die Netzwerkverbindung:\nPing auf Gateway, Name-Server und externe IP-Adressen -menu.hint_net_ushare Freigabe verbundener HDD über UPnP -menu.hint_network IP-Adresse, Gateway, DNS-, Time-Sync\nNetzwerk-Freigaben und Dienste -menu.hint_new_zap_mode Aktiviert Quickzap in der Kanalliste. Nach Betätigen der Mute-\nTaste wird mit den Hoch/Runter Tasten der Sender umgeschaltet -menu.hint_osd Farben, Schriftarten, Anzeigegröße\nGUI Ansichtsoptionen -menu.hint_osd_language Wählen Sie ihre OSD Sprache -menu.hint_osd_preset Hier können Sie zwischen Röhren-TV (CRT) oder Flachbildschirm (LCD) vorwählen -menu.hint_parentallock_changepin Hier wird der 4 stellige PIN Code eingegeben,\nder dann ggf. abgefragt wird -menu.hint_parentallock_lockage Hier wird festgelegt, bei welcher Altersklasse\ndie PIN Abfrage kommt -menu.hint_parentallock_prompt Hier wird definiert, wann eine PIN Eingabe erfolgen soll -menu.hint_personalize Personalisieren Sie ihre Menüs, konfigurieren Sie die Farb-Tasten in den Benutzermenüs -menu.hint_pictureviewer_defdir Hier wählen Sie das Startverzeichnis für den Bildbetrachter -menu.hint_pictureviewer_scaling Hier kann die Bildauflösung eingestellt werden -menu.hint_pictureviewer_slide_time Hier kann der Slideshow-Intervall geändert werden,\nStandardmässig ist ein Intervall von 10 Sekunden eingstellt +menu.hint_net_ushare Freigabe verbundener Datenträger über UPnP +menu.hint_network IP-Adresse, Gateway, DNS, Zeit-Sync, Netzwerk-Freigaben, Dienste und mehr +menu.hint_new_zap_mode Aktiviert Quickzap in der Kanalliste. Nach Betätigen der Mute-Taste wird mit den Hoch/Runter-Tasten direkt umgeschalten +menu.hint_osd Farben, Schriftarten, Anzeigegröße, Ansichtsoptionen der Menüs und mehr +menu.hint_osd_language Wählen Sie ihre Menü-Sprache +menu.hint_osd_preset Wählen Sie zwischen Röhren-TV (CRT) oder Flachbildschirm (LCD) +menu.hint_parentallock_changepin Geben Sie den 4-stelligen PIN-Code ein, der dann ggf. abgefragt wird +menu.hint_parentallock_lockage Legen Sie fest, bei welcher Altersklasse die Abfrage der PIN erfolgt +menu.hint_parentallock_prompt Legen Sie fest, wann die Eingabe einer PIN erfolgen soll +menu.hint_personalize Personalisieren Sie ihre Menüs und konfigurieren Sie ihre Benutzermenüs +menu.hint_pictureviewer_defdir Wählen Sie das Startverzeichnis für den Bildbetrachter +menu.hint_pictureviewer_scaling Stellen Sie die Bildauflösung ein +menu.hint_pictureviewer_slide_time Ändern Sie den Diashow-Intervall.\nStandardmäßig sind 10 Sekunden eingstellt menu.hint_picview Bilder anzeigen -menu.hint_plugins_hdd_dir Auswahl des Verzeichnisses zum laden von Plugins\n auf der HDD +menu.hint_plugins_hdd_dir Auswahl des Verzeichnisses zum Laden der Plugins von einem externen Datenträger menu.hint_power_leds Konfiguriert das Verhalten der LEDs an der Power-Taste -menu.hint_pref_lang Wählen Sie ihre bevorzugte Audio- und EPG-Sprache,\ndie Einstellung 'none' deaktiviert diese Option +menu.hint_pref_lang Wählen Sie ihre bevorzugte Tonspur und EPG-Sprache,\ndie Einstellung 'none' deaktiviert diese Option menu.hint_pref_subs Wählen Sie ihre bevorzugte Untertitel-Sprache,\ndie Einstellung 'none' deaktiviert diese Option -menu.hint_progressbar_color Bei aktivierter Option werden alle Fortschrittsbalken in Farbe\nund nicht im klassischen Weiß angezeigt +menu.hint_progressbar_color Bei aktivierter Option werden alle Fortschrittsbalken in Farbe und nicht im klassischen Weiß angezeigt menu.hint_protection Schützen Sie Inhalte per PIN-Code\nStandard-PIN ist 0000 menu.hint_radiomode Schaltet zum Radio-Modus -menu.hint_reboot Startet die Box neu.\nOhne Bestätigung -menu.hint_record_apid_ac3 Schließt bei einer Aufnahme die durch den Sender definierte 'Dolby Digital Tonspur'\nin die Aufnahme ein, sofern diese vorhanden ist -menu.hint_record_apid_alt Sind weitere Tonspuren verfügbar, dann können diese hiermit bei einer\nAufnahme entsprechend ein- bzw. ausgeschlossen werden -menu.hint_record_apid_std Schließt bei einer Aufnahme die durch den Sender definierte 'Standard Tonspur'\nin die Aufnahme ein, bzw. schließt diese aus +menu.hint_reboot Startet die Box neu\nDer Neustart erfolgt ohne Bestätigung! +menu.hint_record_apid_ac3 Schließt bei einer Aufnahme die durch den Sender definierte Tonspur 'Dolby Digital' in die Aufnahme ein, sofern diese vorhanden ist +menu.hint_record_apid_alt Sind weitere Tonspuren verfügbar, dann können diese hiermit bei einer Aufnahme entsprechend ein- bzw. ausgeschlossen werden +menu.hint_record_apid_std Schließt bei einer Aufnahme die durch den Sender definierte Tonspur 'Standard' in die Aufnahme ein bzw. aus menu.hint_record_apids Konfigurieren Sie die Tonspuren für die Aufnahme menu.hint_record_apply Hiermit werden die Aufnahmeoptionen übernommen -menu.hint_record_chandir Diese Option speichert Aufnahmen mit dem Namen des Kanals\nin ein eigenes Verzeichnis -menu.hint_record_dir Hier wählen Sie das Aufnahmeverzeichnis -menu.hint_record_end Hier können Sie wählen zwischen max. Aufnahmezeit\noder anhand der EPG-Daten -menu.hint_record_slow_warn Zeige Warnung, wenn Aufnahmepuffer zu überlaufen droht -menu.hint_record_tdir Wählen Sie eine Verzeichnis für Ihre Timeshift-Aufnahmen\nim temporären Timeshiftmodus -menu.hint_record_time Hier wird die maximale Zeit in Stunden eingetragen außer\nSie stoppen die Aufnahme vorzeitig -menu.hint_record_timeafter Hier kann die Endzeit für den Aufnahmetimer eingestellt werden,\nein Wert von 2, beendet die Aufnahme 2 Minuten nach dem Sendungsende -menu.hint_record_timebefore Hier kann die Startzeit für den Aufnahmetimer eingestellt werden,\nein Wert von 2, startet die Aufnahme 2 Minuten vor dem Sendungsbeginn -menu.hint_record_timer Konfigurieren Sie Timeroptionen für Aufnahmen -menu.hint_record_timeshift Konfigurieren Sie ihre Timeshift-Optionen -menu.hint_record_timeshift_auto Hier können Sie die Zeit einstellen nachdem Timeshift aktiv ist\nund Sie umschalten, in Sekunden -menu.hint_record_timeshift_delete Hier können Sie wählen ob nach beenden von Timeshift\ndie Aufnahmen gelöscht werden -menu.hint_record_timeshift_pause Wenn die Funktion aktiviert ist, lässt sich Timeshift\ndurch die Pause-Taste auf der Fernbedienung aktivieren -menu.hint_record_timeshift_temp Ist dies Option deaktiviert wird Timeshift direkt als Aufnahme gestartet -menu.hint_record_zap Bei aktiver Option wird bereits mit der Ankündigung\nder Aufnahme auf den aufzunehmenden Sender umgeschaltet -menu.hint_record_zap_pre_time Hier kann für den Umschalttimer ein Vorlaufzeit in Minuten eingestellt werden -menu.hint_recording Aufnahme- und Timeshift-Optionen\nTimer Optionen, Audio-PIDs Optionen -menu.hint_reload_channels Kanallisten neu laden\nKanallisten aktualisieren -menu.hint_reload_plugins Plugins neu laden\nPlugin-Liste aktualisieren -menu.hint_reset Zurücksetzen von Neutrino-HD-Einstellungen auf Standardwerte\nTuner Einstellungen und Kanäle bleiben erhalten +menu.hint_record_chandir Diese Option speichert Aufnahmen mit dem Namen des Kanals in ein eigenes Verzeichnis +menu.hint_record_dir Wählen Sie das Aufnahmeverzeichnis +menu.hint_record_end Wählen Sie zwischen max. Aufnahmezeit oder einem Aufnahmeende anhand der EPG-Daten +menu.hint_record_slow_warn Zeige Warnung, wenn der Aufnahmepuffer zu überlaufen droht +menu.hint_record_tdir Wählen Sie ein Verzeichnis für Ihre Timeshift-Aufnahmen im temporären Timeshift-Modus +menu.hint_record_time Geben Sie eine maximale Aufnahmezeit in Stunden ein, wenn Sie die Aufnahme nicht vorzeitig stoppen +menu.hint_record_timeafter Stellen Sie die Nachlaufzeit für Timer-Aufnahmen ein\nEin Wert von 2 beendet die Aufnahme 2 Minuten nach dem Sendungsende +menu.hint_record_timebefore Stellen Sie die Vorlaufzeit für Timer-Aufnahmen ein\nEin Wert von 2 startet die Aufnahme 2 Minuten vor dem Sendungsbeginn +menu.hint_record_timer Konfigurieren Sie Optionen für Timer-Aufnahmen +menu.hint_record_timeshift Konfigurieren Sie Optionen für Timeshift-Aufnahmen +menu.hint_record_timeshift_auto Stellen Sie die Zeit in Sekunden ein, nach der Timeshift nach dem Umschalten automatisch startet +menu.hint_record_timeshift_delete Wählen Sie, ob nach Beenden von Timeshift die Timeshift-Aufnahmen gelöscht werden +menu.hint_record_timeshift_pause Wenn diese Option aktiviert ist, lässt sich Timeshift durch die Pause-Taste auf der Fernbedienung aktivieren +menu.hint_record_timeshift_temp Wenn diese Option deaktiviert ist, wird Timeshift direkt als Aufnahme gestartet +menu.hint_record_zap Bei aktiver Option wird bereits mit der Ankündigung der Aufnahme auf den aufzunehmenden Sender umgeschalten +menu.hint_record_zap_pre_time Stellen Sie eine Vorlaufzeit in Minuten für den Umschalt-Timer ein +menu.hint_recording Aufnahme-, Timeshift- und Timer-Optionen, Einstellung von aufzunehmenden Tonspuren +menu.hint_reload_channels Kanallisten neu laden, um Änderungen wirksam zu machen +menu.hint_reload_plugins Plugins neu laden, um Änderungen wirksam zu machen +menu.hint_reset Zurücksetzen von Neutrino-HD-Einstellungen auf Standardwerte. Tuner-Einstellungen und Kanäle bleiben erhalten menu.hint_restore Wiederherstellen von vorher erstellten Sicherungen -menu.hint_rotor_swap Tauschen der Rotordrehrichtung Ost/West\nim Motorsetup -menu.hint_rounded_corners Aktiviert die Darstellung abgerundeter Ecken für die OSD-Menüs -menu.hint_save_settings Speichern Sie alle Einstellungen im Image +menu.hint_rotor_swap Tauschen der Rotordrehrichtung Ost/West in den Motor-Einstellungen +menu.hint_rounded_corners Aktiviert die Darstellung abgerundeter Ecken für die Menüs +menu.hint_save_settings Speichert ihre Einstellungen menu.hint_saveas Speichern der Neutrino-HD-Einstellungen in eine Datei -menu.hint_scan_auto Auto-Scan ausgewählter Anbieter -menu.hint_scan_autoall Scannen Sie ihre ausgewählten Anbieter auf einmal -menu.hint_scan_autoall_select Nur in ausgewählten Satelliten scannen -menu.hint_scan_bouquet erneuern: hinzufügen zu den Bouquets, löschen: entfernt alte Bouquets, nicht ändern: Neue werden in 'Andere' angefügt -menu.hint_scan_cable Wählen Sie ihr Kabelnetz zum scannen -menu.hint_scan_cable_simple Kabel-Scan mit optionaler Anbieter- und Kanal-Nummerierung +menu.hint_scan_auto Automatischer Suchlauf ausgewählter Anbieter +menu.hint_scan_autoall Automatischer Suchlauf aller ausgewählten Anbieter +menu.hint_scan_autoall_select Suchlauf nur in ausgewählten Satelliten +menu.hint_scan_bouquet erneuern: hinzufügen zu den Bouquets, löschen: entfernt alte Bouquets, nicht ändern: neue werden in 'Andere' angefügt +menu.hint_scan_cable Wählen Sie ihr Kabelnetz für den Suchlauf +menu.hint_scan_cable_simple Kabel-Suchlauf mit optionaler Anbieter- und Kanal-Nummerierung menu.hint_scan_commited Wählen Sie ihre Einstellungen für diesen Satelliten -menu.hint_scan_diseqc Wählen Sie DiSEqC-Schalter-Eingangssignal für diesen Satelliten -menu.hint_scan_diseqcrepeat Diseqc Wiederholungen für kaskadierte Schaltungen,\nnutzen Sie die links/rechs Tasten -menu.hint_scan_diseqctype Wählen Sie ihr DiSEqC-Protokoll\nmit 'Erweitert' können Sie ihre Anlage einbinden -menu.hint_scan_fast Schnell-Scan eines ausgewählten Anbieters\nWARNUNG: DiSEqC-Config wird überschrieben -menu.hint_scan_fastprov Wählen Sie einen Anbieter (Provider) zum scannen +menu.hint_scan_diseqc Wählen Sie das DiSEqC-Schalter-Eingangssignal für diesen Satelliten +menu.hint_scan_diseqcrepeat DiSEqC-Wiederholungen für kaskadierte Schaltungen +menu.hint_scan_diseqctype Wählen Sie ihr DiSEqC-Protokoll\nMit 'Erweitert' können Sie ihre Anlage einbinden +menu.hint_scan_fast Schnell-Suchlauf eines ausgewählten Anbieters\nWARNUNG: DiSEqC-Einstellung wird überschrieben +menu.hint_scan_fastprov Wählen Sie einen Anbieter (Provider) für den Suchlauf menu.hint_scan_fasttype Wählen Sie das Sendeformat menu.hint_scan_fec Wählen Sie eine Transponder-FEC menu.hint_scan_femode Wählen Sie den Verbindungstyp für den zweiten Tuner menu.hint_scan_fesetup Konfigurieren des oder der Tuner -menu.hint_scan_fetimeout Zeit bis zum warten des Signal, in 1/10 Sekunden,\nbenutzen Sie die links/rechts Tasten +menu.hint_scan_fetimeout Maximale Wartezeit auf das Signal in 1/10 Sekunden menu.hint_scan_freq Geben Sie eine Transponder-Frequenz ein menu.hint_scan_fta Lassen Sie nur frei empfangbare (nicht-verschlüsselte) Programme suchen menu.hint_scan_ladirection Wählen Sie ihre Breitengrad-Ausrichtung menu.hint_scan_latitude Geben Sie ihren Breitengrad ein menu.hint_scan_lnbconfig Konfigurieren Sie LNB-Parameter für diesen Satelliten menu.hint_scan_lodirection Wählen Sie ihre Längengrad-Ausrichtung -menu.hint_scan_lofh High-Banb LNB-Frequenz +menu.hint_scan_lofh High-Band LNB-Frequenz menu.hint_scan_lofl Low-Band LNB-Frequenz menu.hint_scan_lofs LNB-Band-Umschalter Frequenz menu.hint_scan_logical Verwenden Sie die Kanal-Nummerierung des Anbieters -menu.hint_scan_logical_hd Wenn der Kanal in SD und in HD verfügbar ist,\nwird HD nach oben in der Liste gesetzt +menu.hint_scan_logical_hd Wenn der Kanal in SD und in HD verfügbar ist, wird HD nach oben in der Liste gesetzt menu.hint_scan_longitude Geben Sie ihren Längengrad ein -menu.hint_scan_manual Manueller Transponder-Scan mit ausgewählten Parametern +menu.hint_scan_manual Manueller Transponder-Suchlauf mit ausgewählten Parametern menu.hint_scan_mod Wählen Sie eine Transponder-Modulation -menu.hint_scan_motor_18v Benutze 18V für Motorbewegung +menu.hint_scan_motor_18v Benutze 18V für Motorbewegungen menu.hint_scan_motor_speed Rotor-Bewegungsgeschwindigkeit in 1/10 Grad pro Sekunde menu.hint_scan_motorpos Wählen Sie eine gespeicherten Positions-Nummer für diesen Satelliten -menu.hint_scan_nid Hier können Sie ihre Kabelnetzwerk-Id in dezimal eingeben -menu.hint_scan_nit Hier kann man Transponder über gesendete NIT-Daten (Network Information Table) hinzufügen lassen -menu.hint_scan_pids Scant und speichert auch nur Audio / Video / PMT PIDs +menu.hint_scan_nid Geben Sie ihre Kabelnetzwerk-ID in dezimal ein +menu.hint_scan_nit Lassen Sie Transponder über gesendete NIT-Daten (Network Information Table) hinzufügen +menu.hint_scan_pids Duchsucht und speichert auch die Audio-, Video- und PMT-PIDs menu.hint_scan_pol Wählen Sie eine Transponder-Polarisation menu.hint_scan_rate Geben Sie eine Transponder-Symbolrate ein -menu.hint_scan_reset_numbers Zurücksetzen der existierender Kanalnummern und Umnummerierung nach einen Scan -menu.hint_scan_satadd Wählen Sie ihre verfügbaren Satelliten hier aus, für Ihren Anschluß -menu.hint_scan_satellite Wählen Sie die Satelliten zum scannen -menu.hint_scan_satenable Aktivieren Sie diesen Satelliten für ihre Anlage zum scannen -menu.hint_scan_satfind Sat-Finder: fahren Sie manuell Ihre Rotor-Positionen durch -menu.hint_scan_satfind_start Startet den Satellitenfinder für die Signalstärke -menu.hint_scan_satscan Scant den ausgewählten Satelliten +menu.hint_scan_reset_numbers Zurücksetzen der existierender Kanal-Nummern und Umnummerierung nach einen Suchlauf +menu.hint_scan_satadd Wählen Sie ihre verfügbaren Satelliten aus +menu.hint_scan_satellite Wählen Sie die Satelliten für den Suchlauf +menu.hint_scan_satenable Aktivieren Sie diesen Satelliten für den Suchlauf +menu.hint_scan_satfind Satelliten-Finder: Fahren Sie manuell Ihre Rotor-Positionen durch +menu.hint_scan_satfind_start Startet den Satelliten-Finder für die Signalstärke +menu.hint_scan_satscan Durchsucht den ausgewählten Satelliten menu.hint_scan_satselect Ausgewählter Satellit -menu.hint_scan_satsetup Hier können Sie ihre gewählten Satelitten sehen und das LNB konfigurieren -menu.hint_scan_savesettings Speichert die Tuner-Config und Scan-Einstellungen,\ndiese bleiben dann erhalten für einen neuen Service-Scan -menu.hint_scan_scantype Wählen Sie, welche Kanal-Typen Sie scannen möchten +menu.hint_scan_satsetup Konfigurieren Sie das LNB für ihre gewählten Satelliten +menu.hint_scan_savesettings Speichert die Tuner- und Suchlauf-Einstellungen.\nDiese bleiben für einen neuen Suchlauf erhalten +menu.hint_scan_scantype Wählen Sie, welche Kanal-Typen Sie durchsuchen möchten menu.hint_scan_setup_fe Konfigurieren Sie ihre ausgewählten Tuner -menu.hint_scan_start Startet die Kanalsuche mit den angegebenen Parametern.\nMit der 'EXIT' Taste kann man abbrechen +menu.hint_scan_start Startet die Kanalsuche mit den angegebenen Parametern.\nMit der Taste 'Exit' kann abgebrochen werden menu.hint_scan_test Testen Sie das Signal für diesen Transponder -menu.hint_scan_tpselect Wählen Sie einen einzelnen Transponder zum scannen +menu.hint_scan_tpselect Wählen Sie einen einzelnen Transponder für den Suchlauf menu.hint_scan_uncommited Wählen Sie nicht festgeschriebene Angaben für diesen Satelliten -menu.hint_scan_usals_repeat Hier können Sie die USALS-Wiederholungen eingeben für den Rotor +menu.hint_scan_usals_repeat Geben Sie die USALS-Wiederholungen für den Rotor ein menu.hint_scan_usalsall Setzen oder entfernen Sie USALS-Merker für alle Satelliten menu.hint_scan_useusals Verwenden Sie USALS für diesen Satelitten -menu.hint_scrambled_message Bei aktivierter Option erscheint eine Meldung,\nwenn ein verschlüsselter Sender nicht entschlüsselt werden kann +menu.hint_scrambled_message Bei aktivierter Option erscheint eine Meldung, wenn ein verschlüsselter Sender nicht entschlüsselt werden kann menu.hint_screen_setup Konfigurieren Sie den Bildschirmbereich für die Menüanzeige -menu.hint_screenshot_count Hier können Sie wählen, wie viele Screenshots (1-5) erstellt werden sollen -menu.hint_screenshot_cover ein: Bei der Wiedergabe von Aufnahmen ein Video-Screenshot erstellen\nfür die Vorschau im Moviebrowser -menu.hint_screenshot_dir Hier wählen Sie das Verzeichnis zum speichern der Screenshots -menu.hint_screenshot_format Wählen Sie das Dateiformat zum speichern der Screenshots -menu.hint_screenshot_res Screenshot Größe: aktuelle TV-Auflösung oder OSD-Größe (1280x720) -menu.hint_screenshot_scale Für Video + OSD Screenshots, Skalierung auf Video-Größe -menu.hint_screenshot_setup Hier können Sie die Optionen zum erstellen von Screenshots einrichten -menu.hint_screenshot_video Diese Funktion übernimmt das Live-Bild in den Screenshot als Hintergrund -menu.hint_scripts Skripts ausführen -menu.hint_selected_back Ändern Sie die Hintergrundfarbe für selektierte Fensterinhalte -menu.hint_selected_text Ändern Sie die Textfarbe für selektierte Fensterinhalte -menu.hint_service Kanalsuche, Senderscan,\nBouquet-Verwaltung, Software-Aktualisierung -menu.hint_service_scan Tuner-Einstellungen, Service-Scan -menu.hint_settings Konfigurieren von Neutrino-HD.\nNetzwerk, Video, Audio, OSD und mehr -menu.hint_show_mute_icon Definiert ob beim Lautstärkewert 0 das Mute-Icon eingeblendet werden soll -menu.hint_shutdown Setzen Sie Ihre Box in den Standby-Modus\noder schalten Sie die Box komplett aus -menu.hint_shutdown_count Die Zeit zum Deep-Standby,\nwenn die Box im Soft-Standby-Mode ist -menu.hint_shutdown_rcdelay Aktiviert den Deep-Standby, wenn der Powerknopf\nlänger als 1 Sekunde betätigt wird -menu.hint_shutdown_real Aktivieren des Soft-Standby-Modus, wenn diese Option\ndeaktiviert ist, geht die Box in den Deep-Standby -menu.hint_sleeptimer Zeitschaltuhr auf Ihrer Box aktivieren.\nDie Box geht dann in den Standby-Modus -menu.hint_soft_restart Neustarten von Neutrino-HD ohne zu Rebooten +menu.hint_screenshot_count Wählen Sie, wie viele Screenshots erstellt werden sollen +menu.hint_screenshot_cover Während der Wiedergabe von Aufnahmen kann ein Screenshot für die Vorschau im Moviebrowser erstellt werden +menu.hint_screenshot_dir Wählen Sie das Verzeichnis zum Speichern der Screenshots +menu.hint_screenshot_format Wählen Sie das Dateiformat zum Speichern der Screenshots +menu.hint_screenshot_res Screenshot Größe: aktuelle TV-Auflösung oder OSD-Auflösung (1280x720) +menu.hint_screenshot_scale Skalierung auf TV-Auflösung, wenn OSD aktiviert ist +menu.hint_screenshot_setup Konfigurieren Sie die Optionen zum Erstellen von Screenshots +menu.hint_screenshot_video Diese Funktion übernimmt das TV-Bild als Hintergrund in den Screenshot +menu.hint_scripts Shell-Skripte ausführen +menu.hint_selected_back Ändern Sie die Hintergrundfarbe für ausgewählte Fensterinhalte +menu.hint_selected_text Ändern Sie die Textfarbe für ausgewählte Fensterinhalte +menu.hint_service Sendersuchlauf, Bouquet-Verwaltung, Software-Aktualisierung und mehr +menu.hint_service_scan Tuner-Einstellungen und Service-Suchlauf +menu.hint_settings Konfigurieren von Neutrino-HD,\nNetzwerk, Video, Audio, OSD und mehr +menu.hint_show_mute_icon Definiert, ob bei einem Lautstärkewert von 0 das Stumm-Symbol eingeblendet werden soll +menu.hint_shutdown Setzen Sie Ihre Box in den Standby-Modus oder schalten Sie die Box komplett aus +menu.hint_shutdown_count Die Zeit zum Herunterfahren in den Deep-Standby, wenn die Box im Standby-Modus ist +menu.hint_shutdown_rcdelay Aktiviert den Deep-Standby, wenn die Power-Taste länger als 1 Sekunde betätigt wird +menu.hint_shutdown_real Aktiviert den Standby-Modus. Ist diese Option deaktiviert, fährt die Box in den Deep-Standby +menu.hint_sleeptimer Zeitschaltuhr auf Ihrer Box aktivieren\nDie Box fährt dann in den Standby-Modus +menu.hint_soft_restart Neustarten von Neutrino-HD, ohne die Box neu zu starten menu.hint_softupdate_check Im Internet nach verfügbaren Updates suchen, herunterladen und installieren menu.hint_softupdate_check_local Lokal nach verfügbaren Updates suchen und installieren -menu.hint_softupdate_expert Einzelne Partitionen aus dem Flash lesen / in den Flash schreiben +menu.hint_softupdate_expert Einzelne Partitionen aus dem Flash lesen bzw. in den Flash schreiben menu.hint_softupdate_expert_read Einzelne Partitionen (U-Boot, Splash, Kernel, SystemFS) aus dem Flash lesen menu.hint_softupdate_expert_write Einzelne Partitionen (Splash, Kernel, SystemFS) in den Flash schreiben menu.hint_softupdate_settings Das lokale Update-Verzeichnis und die Konfigurationsdatei festlegen -menu.hint_start_tostandby Aktiviert den Standby-Modus nach dem starten der Box -menu.hint_streaminfo Aktuelle Sender-Informationen: PIDs, SNR-Verhältnis\nBitrate grafisch -menu.hint_subchannel_pos Hier können Sie die Anzeigeposition der Untertitel auswählen -menu.hint_sw_update Neutrino-HD auf Software-Update überprüfen\nImage sichern und wiederherstellen -menu.hint_theme Wählen Sie vordefiniertes Farbschema, Speichern oder Laden Sie Theme aus Filen -menu.hint_timeouts Gibt an, nach welcher Zeit in Sekunden die Menüs oder\nInfofenster sich automatisch schließen (0 deaktiviert) -menu.hint_timers Hinzufügen / Entfernen / Bearbeiten geplanter\nAufnahme, Meldungen etc. +menu.hint_start_tostandby Aktiviert den Standby-Modus direkt nach dem Starten der Box +menu.hint_streaminfo Aktuelle Sender-Informationen über PIDs, SNR-Verhältnis, Bitrate und mehr +menu.hint_subchannel_pos Wählen Sie die Anzeigeposition der Untertitel aus +menu.hint_sw_update Neutrino-HD aktualisieren, Image sichern und wiederherstellen +menu.hint_theme Wählen Sie ein vordefiniertes Farbschema, speichern oder laden Sie ihre eigenen Farbschemata +menu.hint_timeouts Gibt an, nach welcher Zeit in Sekunden die Menüs oder Infofenster sich automatisch schließen (0 deaktiviert) +menu.hint_timers Hinzufügen, entfernen und bearbeiten geplanter Aufnahmen oder anderer Timer menu.hint_timezone Wählen Sie ihre Zeitzone aus menu.hint_tvmode Schaltet zum TV-Modus menu.hint_tvradio_switch Schaltet zwischen TV- und Radio-Modus um -menu.hint_vfd Frontpanel Power-LEDs und VFD Optionen +menu.hint_vfd Frontdisplay und Power-LEDs menu.hint_vfd_brightness Definiert die Helligkeit im TV-Betrieb -menu.hint_vfd_brightness_setup Konfiguriert die Displayhelligkeit des Frontpanels für verschiedene Modi -menu.hint_vfd_brightnessdeepstandby Definiert die Helligkeit, wenn sich der Receiver im Deep-Standby befindet -menu.hint_vfd_brightnessdim Definiert den Wert für das dimmen des Display nach Ablauf der eingestellten Zeit -menu.hint_vfd_brightnessstandby Definiert die Helligkeit, wenn sich der Receiver im Standby befindet -menu.hint_vfd_defaults Setzt die Standardeinstellungen für die Helligkeitswerte -menu.hint_vfd_dimtime Hier kann in Sekunden eingegeben werden,\nwann sich das Display automatisch auf den gewünschten Wert dimmt +menu.hint_vfd_brightness_setup Konfiguriert die Helligkeit des Frontdisplays für verschiedene Modi +menu.hint_vfd_brightnessdeepstandby Definiert die Helligkeit im Deep-Standby +menu.hint_vfd_brightnessdim Definiert den Wert für das Dimmen des Display nach Ablauf der eingestellten Zeit +menu.hint_vfd_brightnessstandby Definiert die Helligkeit im Standby-Modus +menu.hint_vfd_defaults Zurücksetzen der Helligkeitswerte auf die Standardeinstellungen +menu.hint_vfd_dimtime Geben Sie einen Wert in Sekunden ein, nachdem sich das Display automatisch auf den gewünschten Wert dimmt menu.hint_vfd_infoline Wählen Sie, was in der Infozeile angezeigt werden soll menu.hint_vfd_statusline Wählen Sie, was in der Statuszeile angezeigt werden soll -menu.hint_video Video-Ausgang, Auflösung, Format,\nSeitenverhältnise, Modus-Schalter Optionen -menu.hint_video_43mode Anzeigemodus für 4:3-Inhalte auf 16:9 TVs -menu.hint_video_analog_mode Wählen Sie den Analogausgang Modus\nfür den SCART und CINCH Anschluss -menu.hint_video_cinch_mode Wählen Sie den Analogausgang Modus\nfür den Composite Video Ausgang +menu.hint_video Video-Ausgang, Auflösung, Format, Seitenverhältnisse und mehr +menu.hint_video_43mode Anzeige-Modus für 4:3-Inhalte auf 16:9-Fernsehern +menu.hint_video_analog_mode Wählen Sie den Modus des Ausgangssignals für den CINCH-Anschluss +menu.hint_video_cinch_mode Wählen Sie den Modus des Ausgangssignals für den Composite-Video-Anschluss menu.hint_video_dbdr Verwendeter MPEG2 Filter -menu.hint_video_format Diese Option aktiviert das 'Bildschirmformat'\nauf das Format Ihres Fernsehgerätes -menu.hint_video_mode Definiert in welchen Videoformat das Bild über den\nHDMI-Ausgang ausgegeben wird -menu.hint_video_modes Definiert welche Videosysteme mit der VF-Taste\nder Fernbedienung ausgewählt werden können -menu.hint_video_scart_mode Wählen Sie den Analogausgang Modus\nfür den SCART Ausgang -menu.hint_volume_digits Zifferndarstellung der Lautstärkeanzeige ein/ausschalten -menu.hint_volume_pos Hier können Sie die Anzeigeposition der Lautstärkeanzeige auswählen -menu.hint_zap_cycle Dadurch wird nur innerhalb des aktiven Bouquets gezappt +menu.hint_video_format Wählen Sie das Bildschirmformat ihres Fernsehgerätes +menu.hint_video_mode Wählen Sie den Modus des Ausgangssignals für den HDMI-Anschluss +menu.hint_video_modes Definiert, welche Videosysteme mit der VF-Taste der Fernbedienung ausgewählt werden können +menu.hint_video_scart_mode Wählen Sie den Modus des Ausgangssignals für den SCART-Anschluss +menu.hint_volume_digits Zifferndarstellung der Lautstärkeanzeige ein- oder ausschalten +menu.hint_volume_pos Wählen Sie die Position der Lautstärkeanzeige aus +menu.hint_zap_cycle Wählen Sie, ob nur innerhalb des aktiven Bouquets umgeschaltet werden kann menu.next Weiter (Menü zum Beenden) messagebox.back Zurück messagebox.cancel Abbruch @@ -1132,7 +1132,7 @@ miscsettings.infobar_disp_4 Logo+Kanalname/Kanalnummer miscsettings.infobar_disp_5 Logo/Signalbalken miscsettings.infobar_disp_6 Logo+Kanalnummer/Signalbalken miscsettings.infobar_disp_log Logo -miscsettings.infobar_logo_hdd_dir Logo Verz. +miscsettings.infobar_logo_hdd_dir Logo-Verz. miscsettings.infobar_progressbar Fortschrittsbalken Opt. miscsettings.infobar_progressbar_0 Standard miscsettings.infobar_progressbar_1 unterhalb Kanalname @@ -1493,7 +1493,7 @@ ping.socket ist nicht erreichbar (Socket-Fehler) ping.unreachable ist nicht erreichbar (unerreichbar) pinprotection.head PIN-Abfrage pinprotection.wrongcode Geben Sie den Code nocheinmal ein! -plugins.hdd_dir Plugin HDD Verz. +plugins.hdd_dir Externes Plugin-Verz. plugins.result Pluginausgabe progressbar.color Fortschrittsbalken Farbe rclock.lockmsg Die Fernbedienung der Coolstream wird gesperrt.\n Um die Sperre aufzuheben, bitte\n und auf der Fernbedienung\n drücken. @@ -1576,7 +1576,7 @@ satsetup.logical_numbers Nutze logische Nummern satsetup.manual_scan Manueller Frequenzscan satsetup.minidiseqc Mini-DiSEqC satsetup.motor_pos Rotor-Position -satsetup.nodiseqc Kein DiSEqC +satsetup.nodiseqc kein DiSEqC satsetup.reset_numbers Reset Kanalnummern satsetup.sat_setup LNB-Konfiguration satsetup.satellite Satellit @@ -1669,7 +1669,7 @@ shutdowntimer.announce Die Box wird in 1 Min. heruntergefahren.\nShutdown abbrec sleeptimerbox.announce Die Box wird in 1 Min. in Standby-Betrieb gehen.\nStandby-Betrieb abbrechen? sleeptimerbox.hint1 Ausschaltzeit in Min. (000=aus) sleeptimerbox.hint2 Die Box schaltet sich nach dieser Standby-Zeit aus. -sleeptimerbox.hint3 Die Box schaltet sich bei Nichtbenutzen der FB aus. +sleeptimerbox.hint3 Die Box schaltet sich bei Nichtbenutzen der Fernbedienung aus. sleeptimerbox.title Sleeptimer sleeptimerbox.title2 Inaktivitätstimer streaminfo.aratio Verhältnis diff --git a/data/locale/english.locale b/data/locale/english.locale index 6718517bd..4449cd1d2 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1702,7 +1702,7 @@ stringinput.caps caps / no caps stringinput.clear clear all subtitles.head Subtitles subtitles.stop Stop subtitles -timer.eventrecord.msg ... TO be DONE, or not to be done +timer.eventrecord.msg The event is scheduled for recording.\nTo edit the schedule open the timer list. timer.eventrecord.title Schedule Record timer.eventtimed.msg The event is scheduled.\nThe box will power on and \nswitch to this channel at the given time. timer.eventtimed.title Schedule Event diff --git a/lib/libconfigfile/configfile.cpp b/lib/libconfigfile/configfile.cpp index cb5f21a39..571c51615 100644 --- a/lib/libconfigfile/configfile.cpp +++ b/lib/libconfigfile/configfile.cpp @@ -29,6 +29,8 @@ #include #include #include +#include +#include #include #include @@ -91,9 +93,11 @@ bool CConfigFile::loadConfig(const std::string & filename) bool CConfigFile::saveConfig(const char * const filename) { - std::fstream configFile(filename, std::ios_base::in | std::ios_base::out | std::ios_base::trunc); + std::string tmpname = std::string(filename) + ".tmp"; + unlink(tmpname.c_str()); + std::fstream configFile(tmpname.c_str(), std::ios::out); - if (configFile.is_open()) + if (configFile != NULL()) { std::cout << "[ConfigFile] saving " << filename << std::endl; for (ConfigDataMap::const_iterator it = configData.begin(); it != configData.end(); ++it) @@ -104,14 +108,17 @@ bool CConfigFile::saveConfig(const char * const filename) configFile.sync(); configFile.close(); - chmod(filename, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); + chmod(tmpname.c_str(), S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); + /* TODO: check available space? */ + rename(tmpname.c_str(), filename); modifiedFlag = false; return true; } else { - std::cerr << "[ConfigFile] Unable to open file " << filename << " for writing." << std::endl; + std::cerr << "[ConfigFile] Unable to open file " << tmpname << " for writing: " + << strerror(errno) << std::endl; return false; } } diff --git a/src/driver/record.cpp b/src/driver/record.cpp index b15fca793..14b566873 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -235,7 +235,7 @@ bool CRecordInstance::Stop(bool remove_event) if((autoshift && g_settings.auto_delete) /* || autoshift_delete*/) { snprintf(buf,sizeof(buf), "nice -n 20 rm -f \"%s.ts\" &", filename); - my_system("/bin/sh", "-c", buf); + my_system(3, "/bin/sh", "-c", buf); snprintf(buf,sizeof(buf), "%s.xml", filename); //autoshift_delete = false; unlink(buf); diff --git a/src/eitd/sectionsd.cpp b/src/eitd/sectionsd.cpp index 7d25c2e29..83a20ea7e 100644 --- a/src/eitd/sectionsd.cpp +++ b/src/eitd/sectionsd.cpp @@ -58,7 +58,7 @@ //#define DEBUG_TIME_THREAD #define DEBUG_SECTION_THREADS -#define DEBUG_CN_THREAD +//#define DEBUG_CN_THREAD /*static*/ bool reader_ready = true; static unsigned int max_events; @@ -255,12 +255,12 @@ static bool deleteEvent(const event_id_t uniqueKey) } if (cn) { // current-next => fill current or next event... -//xprintf("addEvent: current %016" PRIx64 " event %016" PRIx64 " messaging_got_CN %d\n", messaging_current_servicekey, evt.get_channel_id(), messaging_got_CN); +//xprintf("addEvent: current %012" PRIx64 " event %012" PRIx64 " messaging_got_CN %d\n", messaging_current_servicekey, evt.get_channel_id(), messaging_got_CN); readLockMessaging(); // only if it is the current channel... and if we don't have them already. if (evt.get_channel_id() == messaging_current_servicekey && (messaging_got_CN != 0x03)) { -xprintf("addEvent: current %016" PRIx64 " event %016" PRIx64 " running %d messaging_got_CN %d\n", messaging_current_servicekey, evt.get_channel_id(), evt.runningStatus(), messaging_got_CN); +xprintf("addEvent: ch %012" PRIx64 " running %d (%s) got_CN %d\n", evt.get_channel_id(), evt.runningStatus(), evt.runningStatus() > 2 ? "curr" : "next", messaging_got_CN); unlockMessaging(); writeLockEvents(); @@ -318,7 +318,7 @@ xprintf("addEvent: current %016" PRIx64 " event %016" PRIx64 " running %d messag { /* if the new event has a lower (== more recent) table ID, replace the old one */ already_exists = false; - dprintf("replacing event %016" PRIx64 ":%02x with %04x:%02x '%.40s'\n", si->second->uniqueKey(), + dprintf("replacing event %012" PRIx64 ":%02x with %04x:%02x '%.40s'\n", si->second->uniqueKey(), si->second->table_id, evt.eventID, evt.table_id, evt.getName().c_str()); } else if (already_exists && ( (evt.table_id == 0x51 || evt.table_id == 0x50 || evt.table_id == 0x4e) && evt.table_id == si->second->table_id && evt.version != si->second->version )) @@ -428,13 +428,13 @@ xprintf("addEvent: current %016" PRIx64 " event %016" PRIx64 " running %d messag if ((*x)->table_id < e->table_id) { /* don't add the higher table_id */ - dprintf("%s: don't replace 0x%016" PRIx64 ".%02x with 0x%016" PRIx64 ".%02x\n", + dprintf("%s: don't replace 0x%012" PRIx64 ".%02x with 0x%012" PRIx64 ".%02x\n", __func__, x_key, (*x)->table_id, e_key, e->table_id); unlockEvents(); return; } /* here we have an overlapping event */ - dprintf("%s: delete 0x%016" PRIx64 ".%02x time = 0x%016" PRIx64 ".%02x\n", __func__, + dprintf("%s: delete 0x%012" PRIx64 ".%02x time = 0x%012" PRIx64 ".%02x\n", __func__, x_key, (*x)->table_id, e_key, e->table_id); to_delete.push_back(x_key); } @@ -1346,16 +1346,18 @@ void CTimeThread::setSystemTime(time_t tim) #endif if (timediff == 0) /* very unlikely... :-) */ return; - if (abs(timediff) < 120000000LL) { + if (abs(tim - tv.tv_sec) < 120) { /* abs() is int */ struct timeval oldd; tv.tv_sec = timediff / 1000000LL; tv.tv_usec = timediff % 1000000LL; if (adjtime(&tv, &oldd)) - perror("adjtime"); - xprintf("difference is < 120s, using adjtime(%d, %d). oldd(%d, %d)\n", - (int)tv.tv_sec, (int)tv.tv_usec, (int)oldd.tv_sec, (int)oldd.tv_usec); - timediff = 0; - return; + xprintf("adjtime(%d, %d) failed: %m\n", (int)tv.tv_sec, (int)tv.tv_usec); + else { + xprintf("difference is < 120s, using adjtime(%d, %d). oldd(%d, %d)\n", + (int)tv.tv_sec, (int)tv.tv_usec, (int)oldd.tv_sec, (int)oldd.tv_usec); + timediff = 0; + return; + } } tv.tv_sec = tim; @@ -1722,7 +1724,7 @@ void CCNThread::addFilters() void CCNThread::beforeWait() { - xprintf("%s: set eit update filter, service = 0x%016" PRIx64 ", current version 0x%x got events %d (%s)\n", + xprintf("%s: eit update filter, ch 0x%012" PRIx64 ", current ver 0x%02x got events %d (%s)\n", name.c_str(), messaging_current_servicekey, eit_version, messaging_have_CN, updating ? "active" : "not active"); @@ -1817,7 +1819,6 @@ bool CCNThread::checkUpdate() if (ret > 0) { LongSection section(buf); - printdate_ms(stdout); xprintf("%s: eit update filter: ### new version 0x%02x ###, Activate thread\n", name.c_str(), section.getVersionNumber()); diff --git a/src/gui/hdd_menu.cpp b/src/gui/hdd_menu.cpp index 0609f067c..7c32f3230 100644 --- a/src/gui/hdd_menu.cpp +++ b/src/gui/hdd_menu.cpp @@ -284,10 +284,10 @@ int CHDDDestExec::exec(CMenuTarget* /*parent*/, const std::string&) if(hdparm_link){ //hdparm -M is not included in busybox hdparm! - my_system(hdparm, S_opt, opt); + my_system(3, hdparm, S_opt, opt); }else{ snprintf(M_opt, sizeof(M_opt),"-M%d", g_settings.hdd_noise); - my_system(hdparm, M_opt, S_opt, opt); + my_system(4, hdparm, M_opt, S_opt, opt); } free(namelist[i]); } @@ -332,7 +332,7 @@ int CHDDFmtExec::exec(CMenuTarget* /*parent*/, const std::string& key) if(res != CMessageBox::mbrYes) return 0; - bool srun = my_system("killall", "-9", "smbd"); + bool srun = my_system(3, "killall", "-9", "smbd"); //res = check_and_umount(dst); res = check_and_umount(src, dst); @@ -468,7 +468,7 @@ int CHDDFmtExec::exec(CMenuTarget* /*parent*/, const std::string& key) sleep(2); printf("CHDDFmtExec: executing %s %s\n","/sbin/tune2fs -r 0 -c 0 -i 0", src); - my_system("/sbin/tune2fs", "-r 0", "-c 0", "-i 0", src); + my_system(8, "/sbin/tune2fs", "-r", "0", "-c", "0", "-i", "0", src); _remount: progress->hide(); @@ -502,7 +502,7 @@ _remount: sync(); } _return: - if(!srun) my_system("smbd",NULL); + if (!srun) my_system(1, "smbd"); return menu_return::RETURN_REPAINT; } @@ -522,7 +522,7 @@ int CHDDChkExec::exec(CMenuTarget* /*parent*/, const std::string& key) printf("CHDDChkExec: key %s\n", key.c_str()); - bool srun = my_system("killall", "-9", "smbd"); + bool srun = my_system(3, "killall", "-9", "smbd"); //res = check_and_umount(dst); res = check_and_umount(src, dst); @@ -606,6 +606,6 @@ ret1: } printf("CHDDChkExec: mount res %d\n", res); - if(!srun) my_system("smbd",NULL); + if (!srun) my_system(1, "smbd"); return menu_return::RETURN_REPAINT; } diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index 7ef9bfef9..529bf15ca 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -2066,7 +2066,7 @@ bool CMovieBrowser::onButtonPressMovieInfoList(neutrino_msg_t msg) void CMovieBrowser::onDeleteFile(MI_MOVIE_INFO& movieSelectionHandler, bool skipAsk) { //TRACE( "[onDeleteFile] "); - int test= movieSelectionHandler.file.Name.find(".ts"); + int test= movieSelectionHandler.file.Name.find(".ts", movieSelectionHandler.file.Name.length()-3); if(test == -1) { // not a TS file, return!!!!! @@ -2489,7 +2489,7 @@ bool CMovieBrowser::loadTsFileNamesFromDir(const std::string & dirname) } else { - int test=flist[i].getFileName().find(".ts"); + int test=flist[i].getFileName().find(".ts",flist[i].getFileName().length()-3); if( test == -1) { //TRACE("[mb] other file: '%s'\r\n",movieInfo.file.Name.c_str()); @@ -3628,7 +3628,7 @@ int CDirMenu::exec(CMenuTarget* parent, const std::string & actionKey) if(dirState[number] == DIR_STATE_SERVER_DOWN) { printf("try to start server: %s %s\n","ether-wake", g_settings.network_nfs_mac[dirNfsMountNr[number]]); - if(my_system("ether-wake", g_settings.network_nfs_mac[dirNfsMountNr[number]]) != 0) + if (my_system(2, "ether-wake", g_settings.network_nfs_mac[dirNfsMountNr[number]]) != 0) perror("ether-wake failed"); dirOptionText[number]="STARTE SERVER"; @@ -4077,7 +4077,7 @@ printf("\n"); } } snprintf(npart, sizeof(npart), "%s", name); - char * ptr = strstr(npart, ".ts"); + char * ptr = strstr(npart+strlen(npart)-3, ".ts"); if(ptr) *ptr = 0; find_new_part(npart, dpart, sizeof(dpart) ); @@ -4289,7 +4289,7 @@ printf("copy: jump bookmark %d at %" PRId64 " len %" PRId64 "\n", bcount, books[ tt = time(0); printf("********* %d boormarks, to %s file(s), expected size to copy %" PRId64 ", start time %s", bcount, onefile ? "one" : "many", newsize, ctime (&tt)); snprintf(npart, sizeof(npart), "%s", name); - char * ptr = strstr(npart, ".ts"); + char * ptr = strstr(npart+strlen(npart)-3, ".ts"); if(ptr) *ptr = 0; snprintf(spart, sizeof(spart), "%s", name); diff --git a/src/gui/network_service.cpp b/src/gui/network_service.cpp index b2971471e..9668f1e2e 100644 --- a/src/gui/network_service.cpp +++ b/src/gui/network_service.cpp @@ -74,7 +74,7 @@ void CNetworkService::Start() { std::string cmd = command + " " + options; printf("CNetworkService::Start: %s %s\n", command.c_str(), options.c_str()); - my_system("/bin/sh", "-c", cmd.c_str()); + my_system(3, "/bin/sh", "-c", cmd.c_str()); enabled = true; TouchFile(); } @@ -83,7 +83,7 @@ void CNetworkService::Stop() { const char killall []= "killall"; printf("CNetworkService::Stop: %s %s\n", killall, command.c_str()); - my_system(killall, command.c_str()); + my_system(2, killall, command.c_str()); enabled = false; TouchFile(); } diff --git a/src/gui/plugins.cpp b/src/gui/plugins.cpp index 2698ad2f7..32640b4eb 100644 --- a/src/gui/plugins.cpp +++ b/src/gui/plugins.cpp @@ -589,7 +589,7 @@ void CPlugins::startPlugin(int number,int /*param*/) g_RCInput->stopInput(); //frameBuffer->setMode(720, 576, 8 * sizeof(fb_pixel_t)); printf("Starting %s\n", plugin_list[number].pluginfile.c_str()); - my_system(plugin_list[number].pluginfile.c_str(), NULL, NULL); + my_system(2, plugin_list[number].pluginfile.c_str(), NULL); //frameBuffer->setMode(720, 576, 8 * sizeof(fb_pixel_t)); frameBuffer->paintBackground(); g_RCInput->restartInput(); diff --git a/src/gui/settings_manager.cpp b/src/gui/settings_manager.cpp index c001f18a0..394810e06 100644 --- a/src/gui/settings_manager.cpp +++ b/src/gui/settings_manager.cpp @@ -108,7 +108,7 @@ int CSettingsManager::exec(CMenuTarget* parent, const std::string &actionKey) { const char backup_sh[] = "/bin/backup.sh"; printf("backup: executing [%s %s]\n",backup_sh, fileBrowser.getSelectedFile()->Name.c_str()); - my_system( backup_sh, fileBrowser.getSelectedFile()->Name.c_str() ); + my_system(2, backup_sh, fileBrowser.getSelectedFile()->Name.c_str()); } else ShowMsgUTF(LOCALE_MESSAGEBOX_ERROR, g_Locale->getText(LOCALE_SETTINGS_BACKUP_FAILED),CMessageBox::mbrBack, CMessageBox::mbBack, NEUTRINO_ICON_ERROR); @@ -126,7 +126,7 @@ int CSettingsManager::exec(CMenuTarget* parent, const std::string &actionKey) { const char restore_sh[] = "/bin/restore.sh"; printf("restore: executing [%s %s]\n", restore_sh, fileBrowser.getSelectedFile()->Name.c_str()); - my_system( restore_sh, fileBrowser.getSelectedFile()->Name.c_str() ); + my_system(2, restore_sh, fileBrowser.getSelectedFile()->Name.c_str()); } } return res; diff --git a/src/gui/update.cpp b/src/gui/update.cpp index 0fb653b95..a31df3b9b 100644 --- a/src/gui/update.cpp +++ b/src/gui/update.cpp @@ -516,7 +516,7 @@ int CFlashUpdate::exec(CMenuTarget* parent, const std::string &actionKey) printf("[update] calling %s %s %s\n",install_sh, g_settings.update_dir, filename.c_str() ); #else printf("[update] calling %s %s %s\n",install_sh, g_settings.update_dir, filename.c_str() ); - my_system( install_sh, g_settings.update_dir, filename.c_str() ); + my_system(3, install_sh, g_settings.update_dir, filename.c_str()); #endif showGlobalStatus(100); ShowHintUTF(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_FLASHUPDATE_READY)); // UTF-8 diff --git a/src/gui/update_ext.cpp b/src/gui/update_ext.cpp index 601b11647..2b7d67824 100644 --- a/src/gui/update_ext.cpp +++ b/src/gui/update_ext.cpp @@ -107,7 +107,7 @@ bool CExtUpdate::ErrorReset(bool modus, const std::string & msg1, const std::str if (modus & RESET_UNLOAD) { umount(mountPkt.c_str()); - my_system("rmmod", mtdramDriver.c_str()); + my_system(2,"rmmod", mtdramDriver.c_str()); } if (modus & RESET_FD1) close(fd1); @@ -231,7 +231,7 @@ bool CExtUpdate::applySettings() // load mtdram driver snprintf(buf1, sizeof(buf1), "total_size=%d", mtdSize/1024); snprintf(buf2, sizeof(buf2), "erase_size=%d", mtdEraseSize/1024); - my_system("insmod", mtdramDriver.c_str(), buf1, buf2); + my_system(4, "insmod", mtdramDriver.c_str(), buf1, buf2); // check if mtdram driver is now loaded if (!isMtdramLoad()) return ErrorReset(0, "error load mtdram driver"); diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 2ccd4e361..d03c30aaf 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -133,9 +133,11 @@ t_channel_id standby_channel_id; //NEW static pthread_t timer_thread; void * timerd_main_thread(void *data); +static bool timerd_thread_started = false; void * nhttpd_main_thread(void *data); static pthread_t nhttpd_thread ; +static bool nhttpd_thread_started = false; //#define DISABLE_SECTIONSD @@ -1805,6 +1807,7 @@ TIMER_START(); bool timer_wakeup = false; wake_up( timer_wakeup ); pthread_create (&timer_thread, NULL, timerd_main_thread, (void *) timer_wakeup); + timerd_thread_started = true; init_cec_setting = true; if(!(g_settings.shutdown_timer_record_type && timer_wakeup && g_settings.hdmi_cec_mode)){ @@ -1837,6 +1840,7 @@ TIMER_START(); dvbsub_init(); pthread_create (&nhttpd_thread, NULL, nhttpd_main_thread, (void *) NULL); + nhttpd_thread_started = true; CStreamManager::getInstance()->Start(); @@ -1865,8 +1869,8 @@ TIMER_START(); #ifndef ASSUME_MDEV mkdir("/media/sda1", 0755); mkdir("/media/sdb1", 0755); - my_system("mount", "/dev/sda1", "/media/sda1"); - my_system("mount", "/dev/sdb1", "/media/sdb1"); + my_system(3, "mount", "/dev/sda1", "/media/sda1"); + my_system(3, "mount", "/dev/sdb1", "/media/sdb1"); #endif CFSMounter::automount(); @@ -2065,25 +2069,39 @@ void CNeutrinoApp::RealRun(CMenuWidget &mainMenu) g_InfoViewer->showSubchan(); } else if ( msg == CRCInput::RC_left || msg == CRCInput::RC_right) { - if (g_settings.mode_left_right_key_tv == SNeutrinoSettings::VOLUME) { - g_volume->setVolume(msg, true); - } - else if((g_settings.mode_left_right_key_tv == SNeutrinoSettings::VZAP) - || (g_settings.mode_left_right_key_tv == SNeutrinoSettings::INFOBAR)) { - if(channelList->getSize()) { - showInfo(); - } - } + switch (g_settings.mode_left_right_key_tv) + { + case SNeutrinoSettings::INFOBAR: + case SNeutrinoSettings::VZAP: + if (channelList->getSize()) + showInfo(); + break; + case SNeutrinoSettings::VOLUME: + g_volume->setVolume(msg, true); + break; + default: /* SNeutrinoSettings::ZAP */ + quickZap(msg); + break; + } } else quickZap( msg ); } /* in case key_subchannel_up/down redefined */ else if( msg == CRCInput::RC_left || msg == CRCInput::RC_right) { - if(g_settings.mode_left_right_key_tv == SNeutrinoSettings::VOLUME) { - g_volume->setVolume(msg, true); - } else if(channelList->getSize()) { - showInfo(); + switch (g_settings.mode_left_right_key_tv) + { + case SNeutrinoSettings::INFOBAR: + case SNeutrinoSettings::VZAP: + if (channelList->getSize()) + showInfo(); + break; + case SNeutrinoSettings::VOLUME: + g_volume->setVolume(msg, true); + break; + default: /* SNeutrinoSettings::ZAP */ + quickZap(msg); + break; } } else if( msg == (neutrino_msg_t) g_settings.key_zaphistory ) { @@ -2655,7 +2673,7 @@ _repeat: for(int i=0 ; i < NETWORK_NFS_NR_OF_ENTRIES ; i++) { if (strcmp(g_settings.network_nfs_local_dir[i],recordingDir) == 0) { printf("[neutrino] waking up %s (%s)\n",g_settings.network_nfs_ip[i].c_str(),recordingDir); - if(my_system("ether-wake",g_settings.network_nfs_mac[i]) != 0) + if (my_system(2, "ether-wake", g_settings.network_nfs_mac[i]) != 0) perror("ether-wake failed"); break; } @@ -2920,9 +2938,9 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode) mode = mode_off; //CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_MAINMENU_SHUTDOWN)); - my_system("/etc/init.d/rcK"); + my_system(2,"/etc/init.d/rcK"); sync(); - my_system("/bin/umount", "-a"); + my_system(2,"/bin/umount", "-a"); sleep(1); { fp_standby_data_t standby; @@ -3491,14 +3509,18 @@ void stop_daemons(bool stopall) g_Radiotext = NULL; } printf("httpd shutdown\n"); - pthread_cancel(nhttpd_thread); - pthread_join(nhttpd_thread, NULL); + if (nhttpd_thread_started) { + pthread_cancel(nhttpd_thread); + pthread_join(nhttpd_thread, NULL); + } printf("httpd shutdown done\n"); CStreamManager::getInstance()->Stop(); if(stopall) { printf("timerd shutdown\n"); - g_Timerd->shutdown(); - pthread_join(timer_thread, NULL); + if (g_Timerd) + g_Timerd->shutdown(); + if (timerd_thread_started) + pthread_join(timer_thread, NULL); printf("timerd shutdown done\n"); } #ifndef DISABLE_SECTIONSD @@ -3562,6 +3584,9 @@ void sighandler (int signum) int main(int argc, char **argv) { + g_Timerd = NULL; + g_Radiotext = NULL; + g_Zapit = NULL; setDebugLevel(DEBUG_NORMAL); signal(SIGTERM, sighandler); // TODO: consider the following signal(SIGINT, sighandler); // NOTES: The effects of signal() in a multithreaded diff --git a/src/system/configure_network.cpp b/src/system/configure_network.cpp index ff927a375..bcb086917 100644 --- a/src/system/configure_network.cpp +++ b/src/system/configure_network.cpp @@ -222,7 +222,7 @@ void CNetworkConfig::startNetwork(void) #ifdef DEBUG printf("CNetworkConfig::startNetwork: %s\n", cmd.c_str()); #endif - my_system("/bin/sh", "-c", cmd.c_str()); + my_system(3, "/bin/sh", "-c", cmd.c_str()); if (!inet_static) { init_vars(); @@ -236,7 +236,7 @@ void CNetworkConfig::stopNetwork(void) #ifdef DEBUG printf("CNetworkConfig::stopNetwork: %s\n", cmd.c_str()); #endif - my_system("/bin/sh", "-c", cmd.c_str()); + my_system(3, "/bin/sh", "-c", cmd.c_str()); } diff --git a/src/system/helpers.cpp b/src/system/helpers.cpp index c61f7e3c1..3fa3c81d7 100644 --- a/src/system/helpers.cpp +++ b/src/system/helpers.cpp @@ -3,6 +3,9 @@ License: GPL + (C) 2012-2013 the neutrino-hd developers + (C) 2012,2013 Stefan Seyfried + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or @@ -34,7 +37,7 @@ #include #include #include -#include +#include #include #include @@ -67,12 +70,32 @@ int my_system(const char * cmd) if (!file_exists(cmd)) return -1; - return my_system(cmd, NULL); + return my_system(1, cmd); } -int my_system(const char * cmd, const char * arg1, const char * arg2, const char * arg3, const char * arg4, const char * arg5, const char * arg6) +int my_system(int argc, const char *arg, ...) { - int i=0 ,ret=0, childExit=0; + int i = 0, ret = 0, childExit = 0; +#define ARGV_MAX 64 + /* static right now but could be made dynamic if necessary */ + int argv_max = ARGV_MAX; + const char *argv[ARGV_MAX]; + va_list args; + argv[0] = arg; + va_start(args, arg); + + while(++i < argc) + { + if (i == argv_max) + { + fprintf(stderr, "my_system: too many arguments!\n"); + return -1; + } + argv[i] = va_arg(args, const char *); + } + argv[i] = NULL; /* sentinel */ + //fprintf(stderr,"%s:", __func__);for(i=0;argv[i];i++)fprintf(stderr," '%s'",argv[i]);fprintf(stderr,"\n"); + pid_t pid; int maxfd = getdtablesize();// sysconf(_SC_OPEN_MAX); switch (pid = vfork()) @@ -83,9 +106,11 @@ int my_system(const char * cmd, const char * arg1, const char * arg2, const char case 0: /* child process */ for(i = 3; i < maxfd; i++) close(i); - if(execlp(cmd, cmd, arg1, arg2, arg3, arg4, arg5, arg6, (char*)NULL)) + if (setsid() == -1) + perror("my_system setsid"); + if (execvp(argv[0], (char * const *)argv)) { - std::string txt = "ERROR: my_system \"" + (std::string) cmd + "\""; + std::string txt = "ERROR: my_system \"" + (std::string) argv[0] + "\""; perror(txt.c_str()); ret = -1; } @@ -96,6 +121,7 @@ int my_system(const char * cmd, const char * arg1, const char * arg2, const char waitpid(pid, &childExit, 0); if(childExit != 0) ret = childExit; + va_end(args); return ret; } @@ -132,6 +158,8 @@ FILE* my_popen( pid_t& pid, const char *cmdstring, const char *type) int maxfd = getdtablesize(); for(int i = 3; i < maxfd; i++) close(i); + if (setsid() == -1) + perror("my_popen setsid"); execl("/bin/sh", "sh", "-c", cmdstring, (char *)0); exit(0); } diff --git a/src/system/helpers.h b/src/system/helpers.h index 59d04a8bb..c87adb71f 100644 --- a/src/system/helpers.h +++ b/src/system/helpers.h @@ -22,9 +22,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -int my_system(const char * cmd, const char * arg1, const char * arg2 = NULL, const char * arg3 = NULL, const char * arg4 = NULL, const char * arg5 = NULL, const char * arg6 = NULL); - int my_system(const char * cmd); +int my_system(int argc, const char *arg, ...); /* argc is number of arguments including command */ FILE* my_popen( pid_t& pid, const char *cmdstring, const char *type); int safe_mkdir(char * path); diff --git a/src/system/setting_helpers.cpp b/src/system/setting_helpers.cpp index 9b8cc81a9..0f72c2050 100644 --- a/src/system/setting_helpers.cpp +++ b/src/system/setting_helpers.cpp @@ -441,7 +441,7 @@ bool CTZChangeNotifier::changeNotify(const neutrino_locale_t, void * Data) printf("Timezone: %s -> %s\n", name.c_str(), zone.c_str()); std::string cmd = "cp /usr/share/zoneinfo/" + zone + " /etc/localtime"; printf("exec %s\n", cmd.c_str()); - my_system("/bin/sh", "-c", cmd.c_str()); + my_system(3,"/bin/sh", "-c", cmd.c_str()); #if 0 cmd = ":" + zone; setenv("TZ", cmd.c_str(), 1); @@ -467,7 +467,7 @@ int CDataResetNotifier::exec(CMenuTarget* /*parent*/, const std::string& actionK return true; if(delete_all) { - my_system("/bin/sh", "-c", "rm -f " CONFIGDIR "/zapit/*.conf"); + my_system(3, "/bin/sh", "-c", "rm -f " CONFIGDIR "/zapit/*.conf"); CServiceManager::getInstance()->SatelliteList().clear(); CZapit::getInstance()->LoadSettings(); CZapit::getInstance()->GetConfig(zapitCfg); @@ -487,7 +487,7 @@ int CDataResetNotifier::exec(CMenuTarget* /*parent*/, const std::string& actionK CFrameBuffer::getInstance()->Clear(); } if(delete_chan) { - my_system("/bin/sh", "-c", "rm -f " CONFIGDIR "/zapit/*.xml"); + my_system(3, "/bin/sh", "-c", "rm -f " CONFIGDIR "/zapit/*.xml"); g_Zapit->reinitChannels(); } return ret; diff --git a/src/zapit/src/femanager.cpp b/src/zapit/src/femanager.cpp index 3aa4a4f71..71d7ca05f 100644 --- a/src/zapit/src/femanager.cpp +++ b/src/zapit/src/femanager.cpp @@ -286,9 +286,9 @@ bool CFEManager::loadSettings() } } - //setMode(newmode, true); - //FIXME backward compatible settings for mode ? linkFrontends(); + if (configfile.getUnknownKeyQueryedFlag()) + configfile.saveConfig(FECONFIGFILE); return true; }