xulrunner, xulapp & dtd

  • ich habe das label xulapp.back aus xulapp.xul

    Code
    <!DOCTYPE window SYSTEM "chrome://xulapp/locale/xulapp.dtd">
    
    
    <window id="xulapp" title="My App" width="300" height="300"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
      <caption label="Hello World"/>
      <hbox>
        <button id="&xulapp.back" label="back" oncommand="back();" disabled="true"/>
      </hbox>	
    </window>

    in xulapp.dtd definiert:

    Code
    <!ENTITY xulapp.back    "Back">

    es wird aber (beim starten "xulrunner application.ini) nicht gefunden.

    Meine Verzeichnisstruktur ist

    xulapp
    - chrome
    - - content
    - - - xulapp.xul (file)
    - - locale
    - - - de-de
    - - - - xulapp.dtd (file)

    kann mir jemand sagen, was ich wo eintragen muss (-> im chrome.manifest vielleicht ?), damit das label gefunden wird. Ich befinde mich in einer mentalen endlosschleife und komm' nicht mehr weiter ...

  • Ja, habs gelesen, rückwärts & vorwärts, senkrecht und diagonal. Wenn ich wenigstens mal wüßte, weswegen Änderungen an meiner <app.xul> nicht wirksam werden, als würde eine <app.xul> gecache-d.

    Ich habe bestimmt 20 Stunden damit zugebracht, und bestimmt auch 20 Tutorials gelesen, aber wie und wo man eine DTD (für die sprachänhängigen Labels) ablegt - ob es NUR in einem jar-file geht oder ob man auch mit expandierten Verzeichnissen arbeiten kann ... das find ich bisher nicht ...

  • Zitat von fran13

    es wird aber (beim starten "xulrunner application.ini) nicht gefunden.

    Mal nachgetragen ...

    Das ist eine einfache Struktur ohne Komprimierung.

  • hab nochmal neu aufgesetzt (xapp), gleicher Fehler wie zuvor. Referenziere ich die DTD falsch ?

    XML
    <?xml version="1.0"?>
    <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
    <!DOCTYPE window SYSTEM "chrome://locale/de-de/xapp.dtd">
    <window id="xapp" title="xapp" width="300" height="300" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
      <caption label="Mye World"/>
      <hbox>
        <button id="back" label="&xapp.back;" oncommand="back();" disabled="true"/>
      </hbox>
    </window>

    Ersetze ich "&xapp.back" durch ein simples label (z.B. "back ... also ohne DTD), dann funktioniert es.
    Anderfalls kommt ein Fehler (siehe Dateianhang)

  • Vielen, vielen Dank ! Das war eine echt schwere Geburt ... allerdings begünstigt durch ein paar seltsame Effekte, die nach wie vor bestehen:

    wenn ich in meiner "xapp.xul" eine Änderung vornehme (mit notepad++), dann kommt dies beim Ausführen mit xulrunner *nicht* an. Es scheint, als würde der Quelltext der xapp.xul "gecache-d" sein (so dass meine zwischenzeitlich geänderte Source nicht mehr geladen wird).

    Was kann ich hier tun?! Folgende Prozedur führe ich nach jeder Änderung meiner xapp.xul durch (damit die geänderte Source verwendet wird):
    1) ich benenne meine "xapp.xul" um (damit der xulrunner sie nicht findet)
    2) der xulrunner hängt als Prozess im Speicher und ich beende ihn im Task-Manager.
    3) ich benenne meine "xapp.xul" wieder in den richtigen Namen zurück

    -> der nächste Start mit xulrunner lädt jetzt die mittlerweile geänderte Source

    das ist furchtbar umständlich. Es kann doch nicht sein, dass ich der Erste bin, der über solche Hürden stolpert ?!

  • Erzeuge dir eine prefs.js, siehe obiger Link, und kopiere das mal hinein

  • danke Ulli, das gibt mir jetzt einen Schub mit xul weiter zu machen. Bleibt jedoch - rückblickend - die Frage, weswegen das Startup-XUL-Tutorial darauf nicht "fingerzeigend" hinweist:

    *) Arbeiten mit einem expanded (not jar compressed) "locale"-Verzeichnis (ein code-sample zum download)
    *) Abschalten des Cache während der Entwicklung

    Ich hab' viel gelesen, doch auf diese beiden Sachen bin ich nirgends gestoßen ... und das ist doch *elementar*, das muss man doch wissen !

    Das Rumprobieren (ohne diese zusätzl. Info) ist nervenaufreibend, einige werden frustriert aufgeben, ich konnt' nur am Ball bleiben, weil ich die Sache jeweils auf den nächsten Tag verschoben habe. Und am nächsten Tag hat man schon gar keinen Bock, weil man keinen Plan hat, wo das Problem liegen könnte.

    Ein kleines Source-Code-Beispiel mit expand. Verzeichnissen und der erweiterten prefs.js und die Sache wär' erledigt: keine stundenlange Sucherei nach dem wie, wo, was, warum.

    Nun gut, ich selbst komm' jetzt weiter ... doch eine Frage noch zu "locale": manchmal finde ich "de", dann finde ich "de-de", dann "de-DE" und auch "de_DE". Was ist jetzt wann richtig und wo kann man das nachlesen. Vielleicht habt ihr da noch ein paar links für mich ... und ich sag schon mal Danke!

  • Zitat von fran13

    Ich hab' viel gelesen, doch auf diese beiden Sachen bin ich nirgends gestoßen ... und das ist doch *elementar*, das muss man doch wissen !

    ist alles im Mozilla Developer Center beschrieben.

    Du versuchst einen Sprung ins Hauptstudium ohne das Grundstudium absolviert zu haben. Im Grundstudium sind erstmal ganz normale Erweiterungen angesagt - die sind dokumentiert und mit Beispielen versehen. Auch die Werkzeuge etc. werden erläutert.

    Mit den gewonnenen Kenntnissen kann man sich dann im Hauptstudium an den XULRunner wagen.