From e2a48d8701f91b8e24fbe9e99e91eb72a87bb749 Mon Sep 17 00:00:00 2001 From: horchi Date: Sun, 5 Mar 2017 16:39:28 +0100 Subject: git init --- http/src/lang/de.js | 299 ++++++++++++++++++++++++++++++++++++++++++++++ http/src/lang/hilfe.html | 303 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 602 insertions(+) create mode 100644 http/src/lang/de.js create mode 100644 http/src/lang/hilfe.html (limited to 'http/src/lang') diff --git a/http/src/lang/de.js b/http/src/lang/de.js new file mode 100644 index 0000000..2ecb9b0 --- /dev/null +++ b/http/src/lang/de.js @@ -0,0 +1,299 @@ +epgd.tr = { + oClock: "Uhr", + minutes: "min", + save: "speichern", + copy: "kopieren", + apply: "übernehmen", + close: "schließen", + clear: "löschen", + yes: "ja", + no: "nein", + //open: 'öffnen', + edit: "bearbeiten", + cancel: "abbrechen", + del: "löschen", + test: "testen", + reload: "neu laden", + advanced: "erweitert", + markAll: "alle markieren", + markNone: "keinen markieren", + markToggle: "Markierung umdrehen", + confirmDelete: "Willst du wirklich löschen?", + dataSaved: "Daten wurden gespeichert", + dataDeleted: "Daten wurden gelöscht", + dataSend: "Daten wurden gesendet", + channel: "Kanal", + date: "Datum", + entries: " Einträge", + error: { + error: "Fehler", + common: "Es ist ein allgemeiner Fehler aufgetreten", + serverNotResponse: "Der Server konnte nicht erreicht werden!", + notImplemented: "Dieses Feature ist zur Zeit noch nicht implementiert", + forbidden: "Zugriff verweigert!", + noData: "Für diese Anfrage konnten keine Daten ermittelt werden!", + emptyField: "Bitte fülle das Feld $field$ aus!", + invalid: "Der eingegebene Wert ist ungültig!" + }, + menu: { + now: "Programm", + magazine: "Magazin", + timer: "Timer", + records: "Aufnahmen", + search: "Suche", + options: "Einstellungen", + help: "Hilfe" + }, + pages: { + now: { + at:'am' + }, + timer: { + timerList: "Timer", + searchTimerList: "Suchtimer", + timersDone: "kürzliche Aufträge", + timerListDone: "Auftragshistorie", + timerJobList: "asynchrone Aufträge", + messageList: "Systemmeldungen" + }, + timerList: { + empty: "Keine Timer vorhanden!", + startTime: "Anfang", + endTime: "Ende", + folder: "Verzeichnis", + file: "Dateiname", + recordTime: "Aufnahmezeit", + lifetime: "Lebenszeit", + prio: "Priorität", + inactive: "Inaktiv", + newTimer: "Neuen Timer anlegen", + namingMode: "Ermittlung des Dateinamens", + namingModes: ["VDR", "Auto", "Constable", "Serie", "Kategorisiert", "Usermode", "Template"], + template: 'Template', + templateFields: { + "%title%": ": Titel (EPG)", + "%shorttext%": ": Untertitel (EPG)", + "%starttime%": ": Startzeit (EPG)", + "%year%": ": Jahr (EPG)", + "%category%": ": Kategorie (EPG)", + "%episodname%": ": Titel der Serie (constabel)", + "%shortname%": ": Kurz-Titel der Serie (constabel, optional)", + "%partname%": ": Name der Folge (constabel)", + "%season%": ": Staffel (constabel)", + "%part%": ": Teil der Staffel (constabel)", + "%number%": ": Nummer über alle Staffeln (constabel)", + "%extracol1%": ": Zusätzliche Angaben z.B. bei Tatort die Ermittler (constabel, optional)", + "%extracol2%": ": ... z.B. bei Tatort der Ort (constabel, optional)", + "%extracol3%": ": ... z.B. bei Tatort der Sender (constabel, optional)" + }, + episode: "Serientitel", + noEpgMatch: 'Ignoriere fehlende EPG Info', + noRepeat: "Wiederholungen vermeiden", + searchTimerReload: "Suchtimer updaten", + chInclude: "Auf Kanäle einschränken", + chExclude: "Kanäle ausschließen", + nextDays: "innerhalb der nächsten $field$ Tage", + confirmSaveBigResult: "Die Suche ergibt $cnt$ Treffer, trotzdem speichern?", + timerStates: { + 'D': 'gelöscht', + 'E': 'Fehler', + 'F': 'Aufnahme erfolgreich', + 'P': 'wartet auf Aufnahmebeginn', + 'R': 'nimmt gerade auf...', + 'U': 'unbekannt' + }, + timerActions: { + // 'A': 'VDR und EPGD sind synchron', + 'C': 'Timer wurde erstellt und muss noch von einem VDR übernommen werden', + 'D': 'Timer wurde gelöscht und muss noch im VDR gelöscht werden', + 'F': 'Zuweisung Timer an VDR fehlgeschlagen', + 'M': 'Timer wurde verändert und muss noch vom VDR verarbeitet werden' + }, + doneStates: { + 'f': 'Timer konnte nicht erstellt werden', + 'C': 'Timer bereits erstellt', + 'D': 'Timer gelöscht', + 'F': 'Aufnahme fehlgeschlagen', + 'Q': 'Timer in Vorbereitung', + 'R': 'Aufnahme fertig' + }, + messageStates: { + 'N': 'Neu', + 'R': 'gelesen' + }, + messageTypes: { + 'I': 'Information', + 'W': 'Warnung', + 'E': 'Fehler', + 'F': 'Fataler Fehler' + }, chFormat: "bevorzugtes Sendeformat" + //channelModes: ["SD", "HD", "3D", "HD,SD", "SD,HD", "3D,HD,SD", "SD,HD,3D"] + }, + eventDetail: { + record: "Aufnehmen", + repeat: "Wiederholungen", + ch_switch: "umschalten", + eventNext: "nachfolgend", + eventPrev: "vorher", + parentalrating: 'ab ', + mergeSrc: 'Quelle ', + genre: 'Genre', + category: 'Kategorie', + country: 'Land', + year: 'Jahr', + season: 'Staffel', + part: 'Folge', + number: 'Folge Insgesamt', + extentedInfo: 'weitere Informationen', + scrapperMovieInfo: 'Filminformation', + scrapperSerieInfo: 'Serieninformation', + constabelInfo: 'Constabel Episodenliste', + addConstableLink: 'Link erzeugen', + loginConstable: 'Login', + title: 'Titel', + original_title: 'Originaltitel', + runtime: 'Laufzeit', + lang: 'Sprache', + release_date: 'Erscheinungsdatum', + actors: 'Schauspieler', + network: 'Netzwerk', + seriesstatus: 'Status', + gueststars: 'Gäste', + homepage: 'Webseite', + popularity: 'Beliebtheit', + vote_average: 'ø Bewertung', + extInfo: { + director: "Regie", + camera: "Kamera", + screenplay: "Drehbuch", + producer: "Produktion", + music: "Musik", + moderator: "Moderator", + commentator: "Kommentator", + guest: "Gäste", + info: "Info", + other: "Sonstige" + } + }, + options:{ + profile: "allgemein", + editChannels: "Kanäle bearbeiten", + editUser: "Benutzer bearbeiten" + }, + editChannels: { + menu: { + channelList: "Kanalliste", + referenceList: "Referenzliste", + insertAsText: "als Text einfügen", + extentEmptyChannelNames: "leere Kanalnamen ergänzen", + applyAllChannelNames: "Alle Kanalnamen übernehmen", + applyChannelSort: "Kanalsortierung übernehmen" + }, + headline: "Sortierung der Kanäle durch drag und drop, Blockmarkierung durch zus. gedrückter shift-Taste", // und der Merge-prioritäten + checkWeb: "Kanal in Webansicht anzeigen", + checkVDR: "Kanal zum VDR übertragen", + desc_insertList: "Kopiere den Inhalt einer channels.conf in das Textfeld unten. Eine vollständige Liste gibt es beispielsweise hier:" + }, + editUser: { + user: "Benutzer", + sel: "auswählen", + add: "neu anlegen", + active: "Aktiv", + inActive: "Inaktiv", + rights: { + label: "Rechte", + umConfig: "Konfiguration lesen", + umConfigEdit: "Konfiguration ändern", + umConfigUsers: "Benutzer konfigurieren", + umTimer: "Timer lesen", + umTimerEdit: "Timer bearbeiten", + umSearchTimer: "Suchtimer lesen", + umSearchTimerEdit: "Suchtimer bearbeiten", + umFsk: "FSK", + umRecordings: "Aufnahmen lesen", + umRecordingsEdit: "Aufnahmen editieren" + } + }, + help: { + url: "lang/hilfe.html", + noHelp: "Hierzu konnte kein Hilfstext gefunden werden" + }, + search: { + search: 'suchen', + searchName: 'Name', + searchExpression: "Suchausdruck", + caseSensitive: "Klein-/Großschreibung", + searchModes: ["exakte Übereinstimmung", "regulärer Ausdruck", "Muster", "enthalten in"], + searchFields: ["Titel", "Kurztext", "Beschreibung"], + empty: "Leider nichts gefunden.", + matchdensity: "Treffergenauigkeit" + }, + login: { + label: 'Login', + userName: 'Benutzername', + password: 'Passwort', + loggedAlwaysIn: 'angemeldet bleiben', + logout: 'Abmelden', + error: 'Fehler beim Anmelden!', + logoutMessage: 'Du wurdest abgemeldet!', + needLogin: 'Login erforderlich' + }, + records: { + ddLabel: "Drag und Drop", + refreshMessage: "Aufnahmelisten werden neu geladen, Seite lädt in $sec$ Sekunden neu", + moveMessage: "Aufnahme verschieben von \n$src$\nnach", + notFoundMessage: "Aufnahme nicht gefunden, ggf einmal aktualisieren", + deleteMessage: "Soll die Aufnahme $src$ wirklich gelöscht werden?", + available: "Verfügbar", + commonRecFolder: "gemeinsame Aufnahmen", + similarTimer: "ähnliche Sendung aufnehmen" + }, + profile: { + mailReceiver: "eMail", + sendTCC: "sende Mail bei Timerkonflikten", + sendMessages: "sende Mail bei Systemmeldungen", + magazinePan: 'Scrollgeschwindigkeit in Minuten
(0 = aus)', + magazinePanDelay: 'Auslöseverzögerung', + maxListEntries: 'maximal Anzahl Einträge, die auf einmal vom Server geladen werden sollen, z.B. bei Suchen, Suchtimern usw.', + system: { + label: "epgd Backend" + }, + vdr: { + startWithSched:'EPG Menü startet mit Schedule' + }, + record: { + subFolderSort: 'Sortierung der Unterordner' + } + } + }, + dateTimePicker: { + monthNames: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', + 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], + monthNamesShort: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', + 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], + dayNames: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'], + dayNamesShort: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], + dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], + weekHeader: 'KW', + timeOnlyTitle: 'Zeit wählen', + timeText: 'Sendungsbeginn', + timeTextBetween: 'zwischen', + prevText: '<Zurück', + nextText: 'Vor>', + currentText: 'Jetzt', + closeText: 'Fertig', + hourText: 'Stunde', + minuteText: 'Minute', + secondText: 'Sekunde', + millisecText: 'Millisekunde', + microsecText: 'Mikrosekunde', + timezoneText: 'Zeitzone', + timeFormat: 'HH:mm', + dateFormat: 'D, dd.mm.yy', + amNames: ['vorm.', 'AM', 'A'], + pmNames: ['nachm.', 'PM', 'P'], + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '' + } +}; diff --git a/http/src/lang/hilfe.html b/http/src/lang/hilfe.html new file mode 100644 index 0000000..ac2d394 --- /dev/null +++ b/http/src/lang/hilfe.html @@ -0,0 +1,303 @@ + + + + + + + + + + + EPGd Hilfe + + + + + + + +
+ +
+

Electronic Program Guide daemon

+

+ Verwaltung von Video Disc Recorder +

    +
  • Anzeige vom aktuellen TV Programm
  • +
  • Verwalten deinen Aufnahmn
  • +
  • Erzeugen von Timern und Suchtimern
  • +

+
+

Auswahl von Datum und Zeit

+ Auf der linken Seite werden alle Tage angezeigt, wo Daten vorhanden sind. Auf der rechten Seite kann dann die Uhrzeit eingestellt werden. + Das kann dann auf verschiedene Arten passieren. Die obigen Zeiten sind sogenannte Quicklinks, die unter den Einstellungen je Nutzer definiert werden können. +
Wenn das Datum/die Zeit dann eingestellt wurden, muss noch der Knopf "fertig" gedrückt werden oder auch einfach neben dem Datepicker in das Dokument geklickt werden, damit sich die Ansicht aktualisiert. +
+
+
+

In der "Aktuell" Ansicht wird jeweils die aktuelle Sendung von allen für die Web-Oberfläche definierten Kanäle angezeigt.

+

+ Neben dem Menüpunkt wird dabei angezeigt, auf das sich die aktuelle Anzeige bezieht. Diese kann dort auch durch Anklicken verändert werden. +
Zusätzlich existiert noch der Knopf nachfolgend, der jeweils immer die nachfolgende Sendung pro Kanal anzeigt. +

+
+
+

In der Magazin-Ansicht wird für die Web-Oberfläche definierten Kanäle das Programm in einer Spaltenansicht angezeigt, je Spalte ein Kanal. Die Anzahl der Spalten/Kanäle richtet sich dabei nach der Bildschirmgröße. Ausgehend von der in der Menüleiste angezeigten wird dann je nach Bildschirmgröße das Programm angezeigt.

+

Das aktuelle Sichtfeld kann dann durch Scrollen nach oben/unten bzw. links/rechts verschoben werden. + Auf Desktop-Systemen dazu einfach die Maus in den Randbereich bewegen. Die Empfindlichkeit für dieses Scrollen kann in den Einstellungen angepasst werden. + Durch die Buttons oben links/rechts kann dann noch kanalweise oder seitenweise (Anzahl Spalten/Bildschirm) geblättert werden.

+

Warum sind die Programme nicht immer auf gleicher Höhe?
+ Die Höhe des Kastens für eine Sendung steht in Relation zur Sendedauer. Ist die Sendung kürzer als 10 Minuten, wird sie aber so trotzdem 20 px hoch gezeichnet, als wäre sie 10 Minuten lang, damit zumindest der Titel der vernünftig lesbar ist. + Das delta wird dann mit an die nächste Sendung gegeben und diese wird dann in der Höhe um dieses Delta verringert, damit es danach wieder passt. Ggf. wird das aber auch über mehrere Sendung so mitgeschleppt. +

+
+
+

Hier werden sämtlich Informationen über ein Event/Sendung angezeigt. Dazu werden ggf. spezielle Serieninformtionen oder Filminformationen in einem eigenen Bereich angezeigt. Die Inhalte beschafft das Scraper Plugin.

+

Constabel Episodenliste

+

Hier werden alle Episoden aufgelistet, wenn sie bei constabel gepflegt wurden.

+
+

Editieren/ Link hinzufügen

+

+ Die Informationen können direkt auf der constabel Seite gepflegt werden. Dazu muss man dort aber bereits eingeloggt sein. Leider kann an dieser Stelle nicht ermittelt werden, ob man bereits eingeloggt ist oder nicht. +
Den benötigten Account kann man auf dieser Seite auch direkt anfordern. +

+
+
+
+

+ Hier werden die Aufnahmen von sämtlichen registrierten VDRs angezeigt. +

+ Die Aufnahmen können hier per Drag and Drop in andere Ordner verschoben oder auch gelöscht werden, indem sie auf die Mülltonne oben links in der Ecke gezogen werden. +
Für Touchgeräte wird es am Anfang erstmal ausgeschaltet, damit keine versehenliche Aktion ausgelöst wird. +
+ Markierte Aufnahmen können auch über einen Klick auf die Mülltonne gelöscht werden. +

+

+ Der Knopf + fordert alle VDRs auf, ihre Aufnahmeverzeichnisse neu einzulesen. +
Nach 5 Sekunden wird die Liste neu geladen, da es keine direkte Rückmeldung gibt, wann die mit Einlesen fertig sind. +
+

+

+ 5 +

+ Hier können Aufnahmen gesucht werden. Die Fundstellen werden dabei markiert. +
Mit den Sternknöpfen links und rechts kann man das Wort am Anfang und/oder am Ende suchen. +
Die einzelnen Treffer können mit den Pfeiltasten angesprungen werden. +
+

+
+
+

allgemein

+
+

Wenn man im WEB einen Timer für ein Event anlegt und dabei keine Zeiten angibt, wird eine Row in Timers + für dieses Event anhand der Event ID erstellt, dabei werden keine Zeiten eingetragen. + Übernimmt nun ein VDR bzw. das epg2vdr Plugin den Timer, wird zu dem Event über die Event ID ein Timer angelegt, + hierzu werden Funktionen des VDR verwendet, somit kommt alles wie die Zeiten und Titel etc. vom VDR selbst + - ohne Einfluss des epgd oder des Plugin. +
Im Anschluss werden die von VDR gesetzten Daten des angelegten Timers in die Liste übernommen.

+
+

Timer

+
+

Hier werden alle aktuellen Timer angezeigt, die noch auf Ausführung warten oder die gerade ausgeführt (aufgenommen) werden.

+
+

Suchtimer

+
+

+ In der Liste sieht man alle gespeicherten Suchtimer. Diese werden unterschieden nach +

Aufnahme-Timer
+
Umschalt-Timer
+ Erzeugt werde diese alle über einen Dialog. Dazu können diverse Parameter eingestellt werden, mit + denen regelmäßig das aktuelle Programm durchsucht wird. Aus allen Treffern wird dann automatisch ein Timer erstellt. + + Hier können diverse Parameter in einer Suche gespeichert werden. Diese können dann in der Suche aufgerufen werden oder auch den Quicklinks hinzugefügt werden. Dadurch kann man sich Favoritensuchen erstellen, wie Primetime mit Spielfilmen. +

+ Der Dialog beinhaltet folgende Bereiche: +

Suchausdruck

analog der Suche
+
+

Wiederholungen vermeiden

Jeder Treffer wird mit allen bisher aufgenommenen Aufnahmen + (siehe auch vorhandene Aufnahmen), bzw. bereits geplanten Aufnahmen anhand der Einstellung Titel, Kurztext und Beschreibung verglichen. + Kommt es zu Doppelungen, wird der Treffer verworfen. +
+
+

bevorzugtes Sendeformat

Wird eine Sendung sowohl auf einem SD, wie auch auf einem HD Sender gefunden, kann hier eine Priorität vergeben werden, welche Aufnahme genommen werden soll. + In dem sich öffnenden Dialog kann per Drag and Drop die Reihenfolge definiert werden +
+
+

Ermittlung des Dateinamens

+ Der Dateinamen wird, mit Ausnahme des Mode 'VDR', über das Python Skript (/etc/epgd/recording.py) ermittelt, er kann bereits Pfadangaben erhalten. +
    +
  • 0 VDR: Keine Ermittlung des Dateinamens, die Bezeichnung der Aufnahme wird dem VDR überlassen lediglich das unten angegebene Verzeichnis wird vorangestellt.
  • +
  • 1 Auto: Automatische Auswahl des Mode Constable, Serie oder Kategorisiert
  • +
  • 2 Constable: Dateinamen basierend auf Daten von Constabel (Titel/Staffel/xTeil-Nummer/Untertitel) sofern verfügbar
  • +
  • 3 Serie: Serienaufnahme ohne Verwendung der Constabel Daten (Titel/Untertitel)
  • +
  • 4 Kategorisiert: Einorden der Aufnahmen entsprechend der Film-Kategorie (Kategorie/Titel)
  • +
  • 5 User: Hier kann man sich selbst im Python Skript verewigen
  • +
  • 6 Template: Der Dateiname wird in Eingabefeld unten definiert, hierbei können Platzhalter (%...%) verwendet werden. Bei Eingabe von % erscheint die Auswahl der Platzhalter
  • +
+

Verzeichnis

Das Verzeichnis wird dem ermittelten Dateinamen (welcher bereits Verzeichnissangaben enthalten kann) vorangestellt. Hier kann entweder aus einem vorhandenen Verzeichnis ausgewählt werden oder es kann ein neuer Verzeichnisname eingegeben werden. +
+

VDR

Es kann direkt ein teilnehmender VDR ausgewählt werden, der aufnehmen soll. Bei auto wird versucht, den VDR aufnehmen zu lassen, der gerade nicht beschäftigt ist. + Jörg: wenn aus irgendeinem Grund die Aufnhame nicht stattfindet, wird dann automatisch ein anderer beauftragt? +
+ + Hier kann man aus einem Suchtimer einen normalen (einmaligen) Timer machen. Soweit möglich werden alle Daten übernommen, die restlichen Daten verfallen. +
+ ES wird direkt eine Live-Suche durchgeführt und das Ergebnis im Dialog angezeigt +
+

kürzliche Aufnahmen

+

Alle Aufnahmen, die kürzlich ausgeführt wurden. Dabei werden auch gelöschte oder fehlgeschlagene Timer angezeigt

+

Auftragshistorie

+

Alle Timer, die mal aufgenommen wurden, sind hier zu finden. Wenn neue Sendungen anhand eines Suchtimers gefunden wurden, werden die hiermit abgeglichen und dann ggf. verworfen, wenn sie bereits aufgenommen wurden, also in der Tabelle bereits existieren.

+

asynchrone Aufträge

+

Wenn über das WebIf oder durch Suchtimer durch den epgd neue Timer erzeugt werden oder vorhandene gelöscht werden, stehen diese Aufgaben solange in dieser Liste, bis der entsprechende VDR diese abgeholt hat.

+
+ +
+

allgemein

+
+

Hier können diverse Einstellungen gemacht werden. Diese könne sowohl das WebIf als auch das Backend betreffen.

+
+

Kanäle bearbeiten

+

Zur Zeit können hier nur die Kanalinformationen für die Weboberfläche bearbeitet werden, zum einen die Reihenfolge und ob sie überhaupt im Web angezeigt werden soll. +
Dazu kann man sich Referenzlisten von channelpedia laden oder per Textfeld eine beliebig andere einfügen. Daraus können dann leere oder generell auch alle Kanalnamen übernommen werden. + Zusätzlich kann auch die Sortierung übernommen werden.

+

Benutzer bearbeiten

+

Hier können die Benutzer für die Weboberfläche verwaltet werden.

+
+
+

Programmierung

+
+ Backend (epg daemon, http daemon): Jörg Wendel +
SQL/Procedures: Christian Kaiser +
Frontend (Web): Dirk Hermes +
VDR Plugin epg2vdr: Jörg Wendel +
VDR Plugin scraper2vdr: Stefan Braun +
+

Historie

+
+

ToDo's

+
+

Fonts

+

Die Fonts wurden von Fontello.com eingebunden:

+
+ +
+ + + + -- cgit v1.2.3