Jump to content

Envy Skin bearbeiten


Recommended Posts

Hallo,

ich habe vor kurzem den DVBViewer auf die neue Version 5.3.2 geupdatet. Somit ist nun auch der neue Envy-Skin aktiviert. Gefällt mir sehr gut.

Wie immer gibt es natürlich Wünsche ...

Ich wünsche mir z.B. beim Aufruf des EPG-Fensters (mit F6 oder grüne FB-Taste) eine Anzeige wie die Farbtasten der FB belegt sind.

 

Ich habe mir deshalb den Skineditor installiert und geschaut, wie die Skins aufgebaut sind.

Was ich herausgefunden habe: Die Seite myepgchannel.xlm müsste angepasst werden.

Also habe ich mir die Grafiken (remote_red.png, remote_green.png,...) eingefügt und unten angeordnet.

Desweiteren habe ich Buttons daneben platziert. In dem Eigenschaftsfeld "label text" kann ich eine Bezeichnung eintragen.

Gut soweit: Leider ist die Bezeichnung statisch, d.h. wenn man im EPG zwischen "EPG jetzt" und "EPG Sender" hin- und herschaltet bleibt die Bezeichnung immer gleich.

 

1) Wie kann ich hier z.B. die Bezeichnung des grünen Buttons ändern (in Abhängigkeit ob EPG jetzt oder EPG Sender aktiv ist)? Wo baue ich diese Logik ein?

 

2) Kann ich auch eine abhängige Überschrift einbauen? Also z.B. "EPG jetzt" und "EPG Sender".

 

Kann mir hier jemand auf die Sprünge helfen? Danke.

Link to comment

Ich würde den DvbViewerSkinner empfehlen.

Und für diene Frage noch DVBViewer Spy aus dem Mitgliederbereich. Damit kanst du dir die Werte und Variablen bei laufendem DVBViewer anzeigen lassen.

Damit kannst du dann die Lösung finden ;)

 

Als Beschriftung für den Knopf nimmst du #TV.green für das Fenster #currentwindow (wobei du da wahrscheinlich den Text noch über die Sprachdatei anpassen musst)

Link to comment

1) Wie kann ich hier z.B. die Bezeichnung des grünen Buttons ändern (in Abhängigkeit ob EPG jetzt oder EPG Sender aktiv ist)? Wo baue ich diese Logik ein?

 

2) Kann ich auch eine abhängige Überschrift einbauen? Also z.B. "EPG jetzt" und "EPG Sender".

 

Kann mir hier jemand auf die Sprünge helfen? Danke.

 

Hallo,

 

Logik kannst du keine einbauen. Oft bzw. fast immer ist diese Logik aber vorhanden und wurde nur nicht geskint. Lade die Olddefault in den Editor und schau dir die ID's oder #Variablen der Knöpfe und Überschriften an.

 

Wenn du das dann auf die Envy Skin übertragen willst, mußt dur nur die selben #Variablen oder ID's einsetzten. Dann passen sich Texte, Labels und Grafiken on-the-fly an.

Link to comment

Hey, vielen Dank. Die Hinweise waren goldwert :D . Die Farbtasten sind schon drin und funktionieren.

 

Auch der Titel des Fensters mit #currentwindow ist drin. Allerdings wie vermutet englisch "EPG Now Window" und "channel EPG" lauten die Namen der beiden Fenster, wenn ich mit F6 "toggle".

Wo steht denn die Sprachdatei?

Im Ordner "language" habe ich die Dateien "deutsch.lng" und "englisch.lng" nach "EPG Now Window" durchsucht, aber nichts gefunden was ich anpassen könnte.

Link to comment

ich habe es versucht und

EPG Now Window=EPG zur Zeit

channel EPG=Sender-EPG

unter [OSD] eingetragen.

 

Ich habe die Zeilen zuerst in die deutsch.lng in C:\Program Files (x86)\DVBViewer\Language eingetragen. Nichts tat sich.

Danach habe ich die Datei in C:\ProgramData\CMUV\DVBViewer\Language bearbeitet. Auch kein Erfolg. Die Meldungen für #currentinfo bleiben in englisch.

 

Ist die Reihenfolge wichtig? Oder gibt es noch eine andere Datei?

Link to comment

Unter [OSD] wird der Text vor dem = durch den dahinter ersetzt.

 

In welcher Zeile das steht ist egal. Es darf noch kein neuer Bereich [..] angefangen haben.

Und der Text vor dem 0 muss ganz exakt stimmen.

Link to comment

funzt ned!

In der C:\Program Files (x86)\DVBViewer\Language\language.lng steht jetzt folgendes:

 

...

5=Bild zoomen
6=Keine Aktion

[OSD]
EPG Now Window=EPG zur Zeit
Channel EPG=Sender-EPG
%d Channels updated=%d vorhandene Sender aktualisiert.

...

 

Kann es zusätzlichen Plugins von anderen Skins liegen?

Link to comment

Nein, eventuell gibt es da auch ein problem im DVBViewer.

 

Du könntest noch testen ob es klappt wenn du in dem bereich eine andere Übersetzung abänderst z.B. aus TimeLine=Timeline. TimeLine=TimelineTest machen. Wenn sich da der Text im OSD ändert macht du alles richtig und es geht aus irgendeinem Grund nicht.

Link to comment

ok, ausprobiert. Auch negativ!

 

Habe TimeLine=Timelinetest eingetragen. Der Text wurde im OSD-Timeline-Fenster nicht verändert.

 

Was mir dabei auch augefallen ist, dass im OSD-Timeline-Fenster "timeline" steht, also alles in Kleinschrift! Obwohl ursprünglich "Timeline" in der deutsch.lng steht.

Link to comment

Die Änderung müsstest du im OSD Menü sehen.

 

Kontrolliere mal C:\Users\BENUTZERNAME\AppData\Local\VirtualStore da sollten keine Datein mit DVBViewer Bezug sein.

Windows legt da datein ab wenn Programme (die für Windows 2000 oder früher optimiert sind und keinerlei Benutzerrechte kennen) versuchen was im Program Files oder so zu speichern.

Link to comment

Ich habe jetzt die zwei Unterverzeichniss DVBViewer und DVBViewer TE2 umbenannt. Den kompletten Ordner VirtualStore möchte ich nicht löschen, da dort einige andere Programme auch Daten abgelegt haben.

 

Eine Änderung des Effekts trat jedoch nicht ein. Die Texte bleiben in englisch.

Link to comment

Das abändern des TimeLine= Eintrags (für das OSD-Menü) klappt hier ohne probleme. Wenn das bei dir nicht geht habe ich grade auch keine Idee was auf deinem Rechner da schief läuft.

Link to comment

Also ich habe das eben nocheinmal an meinem HTPC ausprobiert. Da ist das Verhalten genauso. Aber es gibt doch einen Teilerfolg!

 

Ich habe nämlich gesehen, dass wenn ich das OSD-Menü aufrufe der Eintrag "timeline" als "timelinetest" erscheint. Und das an beiden Rechnern. Die Sprachdatei wird also ausgelesen.

 

Das OSD-Timeline-Fenster zeigt aber immer "timeline" als Überschrift. Im Envy mytvguide.xml steht aber auch fest "timeline" drin. Wird das normalerweise auch übersetzt? Das ist doch ein einfacher Text!

Bis hier her dürfte also alles normal sein.

 

Wenn ich in mytvguide.xml den Labeltext von "timeline" in "#timeline" ändere passiert nichts. Es steht trotzdem nur "timeline" als Überschrift. Diese wird also auch nicht übersetzt (in der Sprachdatei steht ja "timelinetest" als Übersetzung).

 

Es ist das gleiche wie mit der Variablen #currentwindow. Die wird auch nicht übersetzt.

 

@Tjod: Ist das bei dir so? Was steht in einem Labelfeld mit dem Text "#currentwindow" im EPG-Now-Fenster? Der neue Eintrag aus der Sprachdatei?

Link to comment

Mit # fangen Variablen an die beim Aufrufen der OSD Seite durch deren momentanen Wert ersetzt werden.

 

Und TimeLine ist nicht timeline das sind zwei unterschiedliche Sachen (es kommt bei dem ersetzten auf alle Zeichen an). Die müssen wenn gewünscht separat übersetzt werden.

 

Die meisten Texte werden im OSD Skin als Nummer hinterlegt. Und die Nummern werden dann durch die Sprachdatei ersetzt.

Um das problem zu umgehen das ein Wort eventuell in englisch mehrdeutig ist aber in anderen Sprachen je nach Situation anders übersetzt werden muss.

 

Und Testen kann ich grade nicht wie das mit #currentwindow.

Link to comment

Wenn ich in mytvguide.xml den Labeltext von "timeline" in "#timeline" ändere passiert nichts. Es steht trotzdem nur "timeline" als Überschrift. Diese wird also auch nicht übersetzt (in der Sprachdatei steht ja "timelinetest" als Übersetzung).

 

Es ist das gleiche wie mit der Variablen #currentwindow. Die wird auch nicht übersetzt.

 

Zeit sich die Variablen im DVB Spy anzusehen.

 

Du hast schon Deutsch als Sprache eingestellt ?

 

Das OSD übersetzt Freitext und selbst definierte #Variablen wenn er das in der lng Datei findet. Das nur als Info, da es dich nicht zu kümmern braucht. Das ist eher bei plugins relevant.

 

Ich hab es eben flüchtig angesehen. #currentwindow = Timeline Window. Das finde ich nicht in der lng Datei. Kann schon sein das der DVBViewer das direkt reinschreibt. Notfalls schreib einfach "Zeitlinie", also ohne # rein.

 

Edit: Habs getestet. Es ist egal welche Sprache man einstellt. #currentwindow ist immer Timeline WIndow. Nur der Menüeintrag ändert sich. Kann man theoretisch auf die TODO Liste schreiben.

Edited by mague
Link to comment

 

Und TimeLine ist nicht timeline das sind zwei unterschiedliche Sachen (es kommt bei dem ersetzten auf alle Zeichen an). Die müssen wenn gewünscht separat übersetzt werden.

 

 

ok, da hast du gut augepasst. Ich es gerade noch einmal ausprobiert: Seite "mytvguide.xml", Label mit Text "TimeLine"

In der deutsch.lng steht: TimeLine=Timelinetest

--> wird nicht übersetzt. Warum auch immer?

Link to comment

Habe eben zum Test in "mytvguide.xml" ein neues Label mit einer zufälligen Nummer angelegt. Nr "49152"

 

In die deutsch.lng habe ich ganz oben

49152=TimeLinetest

eingetragen

 

... und ... es klappt. Im OSD wird ein Textfeld mit "TimeLinetest" dargestellt.

Link to comment

 

...

 

Ich hab es eben flüchtig angesehen. #currentwindow = Timeline Window. Das finde ich nicht in der lng Datei. Kann schon sein das der DVBViewer das direkt reinschreibt. Notfalls schreib einfach "Zeitlinie", also ohne # rein.

 

Edit: Habs getestet. Es ist egal welche Sprache man einstellt. #currentwindow ist immer Timeline WIndow. Nur der Menüeintrag ändert sich. Kann man theoretisch auf die TODO Liste schreiben.

 

Habe dies gerade auch gemacht und kann bestätigen, dass bei #currentwindow immer nur der Text "Timeline Window" angezeigt wird.

Und das obwohl "Timeline Window=Timeline-Fenster" der lng-Datei steht.

 

Mal ne Frage zur Reihenfolge der Ersetzung:

Auf der OSD-Page (im jetzigen Beispiel mytvguide.xml) gibt ja ein Label mit #currentwindow. Das ist eine Variable und wird ersetzt. Als nächster Schritt kommt dann die Übersetzung. Der ersetzte Text wird dann in der Sprachdatei gesucht und durch den deutschen Begriff ersetzt.

Ist das so? Es sind also 2 Schritte notwendig. Ersetzung der Variablen, danach die Übersetzung.

Wird die Übersetzung zuerste durchgeführt und danach die Variable ersetzt funktioniert es nicht korrekt. Damit wäre aber die Sache oben erklärbar.

 

Ich hoffe ich habe mich verständlich ausgedrückt. Was meinen die Experten zu dieser Theorie?

Link to comment

Es gibt ja auch andere Variablen die übersetzt werden. Aber da kann man mit dvbvspy.exe sehen dass die vor dem ersetzen übersetzt werden. Das heißt das kann leider nicht klappen.

(hatte jetzt erst zeit zu Testen da ich meist unter Linux unterwegs bin)

Link to comment

 

 

Mal ne Frage zur Reihenfolge der Ersetzung:

 

Ist das so? Es sind also 2 Schritte notwendig. Ersetzung der Variablen, danach die Übersetzung.

Wird die Übersetzung zuerste durchgeführt und danach die Variable ersetzt funktioniert es nicht korrekt. Damit wäre aber die Sache oben erklärbar.

 

Ich hoffe ich habe mich verständlich ausgedrückt. Was meinen die Experten zu dieser Theorie?

 

Ich denke der OSD renderer übersetzt. Also erst werden Variablen befüllt und der renderer übersetzt dann bevor es dargestellt wird.

Ich kennen den renderer nicht. Aber beim plugin kann ich eigene Variablen deklarieren. Wenn ich dort auf plugin Ebene ein "Ja" reinschreibe und die Sprache steht auf english, dann wird ein "yes" dargestellt ohne das ich was dran ändern könnte. Das aber nur wenn der Ausdruck in der lng steht.

Edited by mague
Link to comment

ok, dann ist ja vom der Reihenfolge (erst Variable ersetzen dann Inhalt übersetzen alles klar) alles richtig.

 

Zurück zu meinem Problem, das ich immer noch habe:

Ich wollte ja eigentlich im EPG-Fenster die Überschriften "EPG jetzt" und "Sender-EPG" darstellen. Über #currentwindow bekomme ich nur die englischen Texte "EPG Now Window" und "Channel EPG". Die Sache mit der Sprachdatei funktioniert nicht.

 

Wie kann ich die Sache sonst noch lösen?

 

Ich dachte schon an die windowload.vbs Datei? Dort könnte ich mit propsetvalue ein Label-Feld beschreiben. Allerdings müsste ich eine if-Abfrage einbauen, in der ich abhängig von #currentwindow den deutschen Wert eintrage.

 

Ist das denkbar? Wenn ja, wie kann ich in einem vbs-Script auf eine DVBViewer-Variable zugreifen?

Link to comment

... also ich habe versucht die Sache mit windowload.vbs zu lösen. Leider klappt das nicht, da dieses Script pro OSD-Fenster nur einmalig pro DVBViewer-Sitzung augerufen wird.

 

Dieses Script wird also nicht bei jedem Aufruf eines OSD-Fensters ausgeführt wird. Bei mehrmaligem Aufruf eines OSD-Fensters kann ich also keine Inhalte mehr ändern.

 

Ist es möglich ein Script bei jedem Aufruf eines OSD-Fensters zu starten?

Edited by Polarfox
Link to comment

ok, dann ist ja vom der Reihenfolge (erst Variable ersetzen dann Inhalt übersetzen alles klar) alles richtig.

 

Zurück zu meinem Problem, das ich immer noch habe:

Ich wollte ja eigentlich im EPG-Fenster die Überschriften "EPG jetzt" und "Sender-EPG" darstellen. Über #currentwindow bekomme ich nur die englischen Texte "EPG Now Window" und "Channel EPG". Die Sache mit der Sprachdatei funktioniert nicht.

 

Wie kann ich die Sache sonst noch lösen?

 

Zum Einen ist es ein bug im DVBViewer das #currentwindow immer englisch ist.

 

Abgesehen davon kannst du doch einfach "EPG Jetzt" und "Sender-EPG" reinschreiben. Das sind zwei verschiedene xml Dateien.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...