Anleitung zum Übersetzen von Applets

Für diese Anleitung ist MIAU erforderlich, wo die weiteren Arbeiten in der Checkin Tree-Ansicht ("View") getätigt werden.

Applets befinden sich im Allgemeinen im media/applets-Ordner in einem Inhaltspaket (also z.B. unterhalb content/tub/linear_algebra/media/applets/ für die Lineare Algebra). Unterhalb dieses Ordners liegt meistens eine weitere, mathematisch-motivierte Struktur. Das Übersetzen kann am einfachsten mit dem Mumie Java Editor getätigt werden. Dieser wird standardmäßig geöffnet wenn man ein Applet im Checkin Tree doppelt-klickt (zu erkennen am Icon mit einem roten Punkt und einem "J"). Der Editor ist unterteilt in mehrere Registerkarten ("Tabs"), welche unterhalb des Editors angeordnet sind. Für die folgende Arbeit sind einzig die ersten beiden Tabs notwendig:
  1. "Source" mit dem Quellcode des Applets
  2. "Messages" mit den Sprachdateien des Applets (sogenannte "Message Files")

Prinzip

Im Quellcode gibt es mitunter Texte, die direkt innerhalb von Programmieranweisungen stehen, also z.B.:

task.addText("Berechne die Norm des Vektors ");

Diese Texte müssen vom Programmiercode gelöst und in eine externe Datei geschrieben werden, wobei der ursprüngliche Text im Quellcode durch einen Text-Schlüssel (einen sogenannten Message-Key) ausgetauscht wird. Damit wird der Text durch diesen Schlüssel identifiziert. Zusätzlich muss eine getMessage(..)-Anweisung um den Message-Key herum hinzugefügt werden (damit weiß das System, dass der Text aus einer Message-Datei gelesen werden soll).

Schlüsselnamen können beliebig sein, sie sollten allerdings mit "applet." beginnen (also z.B. "applet.text1"). Schlüsselnamen sind eindeutig, d.h. für unterschiedliche Texte müssen auch unterschiedliche Schlüsselnamen vergeben werden. Sie stehen in den Message-Files gefolgt von einem Gleichheitszeichen und dem eigentlichen Text, z.B.:

applet.text1 = Berechne die Norm des Vektors 

Für jede Sprache gibt es eine eigene Message-Datei, wobei die Message-Dateien für ein Applet sich nur in den Übersetzungen unterscheiden sollten (d.h. in beiden Dateien gibt es die selben Message-Keys, am besten in der selben Reihenfolge).

Der Quellcode müsste also wie folgt aussehen:

task.addText(getMessage("applet.text1"));

Zusammenfassend heißt dies, dass ein beliebiger Text (in Anführungszeichen) direkt durch die Anweisung getMessage("key") ausgetauscht werden kann, wobei key der Schlüsselname/Message-Key ist.

Message-Dateien erstellen

Zuerst sollte man sicherstellen, dass es überhaupt schon Message-Dateien gibt. Dazu in die Registerkarte "Messages" wechseln. Dort gibt es für jede Sprache eine eigene Registerkarte mit dem Namen der Sprache (die Tabs sind wieder unten angeordnet). Falls die gewünschte Sprache noch nicht existiert kann sie mittels Add Language... hinzugefügt werden. Durch Klicken dieses Buttons öffnet sich ein Fenster, wo die jeweilige Sprache ausgewählt werden muss. Nach Bestätigen mit OK wird die passende Message-Datei erstellt und kann nun im Editor bearbeitet werden.

Workflow

  1. Text im Quellcode suchen (Tab "Source")
  2. Text markieren (ohne Anführungszeichen!) und Ausschneiden (Tastaturkombination Strg+x)
  3. in den Tab "Messages" wechseln
  4. einen neuen Schlüsselnamen ausdenken und diesen an den Anfang einer neuen Zeile schreiben, gefolgt von einem Gleichheitszeichen
  5. direkt dahinter den Text einfügen (Strg+v)
  6. den Schlüsselnamen markieren und kopieren (Strg+c)
  7. zum Quellcode wechseln (Tab "Source")
  8. die (leeren!) Anführungszeichen durch die Anweisung getMessage("") ersetzen; d.h. diese Anweisung darf nicht in Anführungszeichen stehen
  9. den kopierten Schlüsselnamen in die Anführungszeichen einfügen (Strg+v); der Schlüsselname sollte nun umgeben von Anführungszeichen sein

Zum Schluss sollte das Applet kompiliert und gestartet werden (Qualitätssicherung!). Dazu muss das Applet im Checkin Tree angeklickt werden, wodurch der "Preview"-Button oben in der Toolbar aktiviert wird. Durch diesen können das Kompilieren und Starten in einem Schritt ausgeführt werden. Sollten Fehler in der MIAU-eigenen Konsole angezeigt oder sonstirgendwie gemeldet werden war das Übersetzen wohl nicht erfolgreich...

Hinweise zu Fehlern

Bei dieser Arbeit können 2 unterschiedliche Arten von Fehlern auftreten:
  1. Kompilierfehler: der Quellcode kann nicht mehr kompiliert werden (meistens verursacht durch falsche oder fehlende Anführungszeichen). Diese Art von Fehler wird direkt im Quellcode als rote Kringellinie unterhalb des Fehlers angezeigt (so ähnlich wie in Word die Rechtschreibfehler angezeigt werden). Hier hilft nur richtig hingucken und verbessern. Änderungen können mit der Tastaturkombination Strg+z rückgängig gemacht werden.
  2. Kein oder falscher Text: dies wird durch eine fehlende getMessage(..)-Anweisung verursacht, das System behandelt den Schlüsselnamen als "richtigen" Text und zeigt diesen auch so an.

Sollten nichtsdestotrotz andere Fehler auftreten bitte Petrus, Markus, Rainer oder Michael fragen ;-)

Änderungen ins SVN hochladen

Achtung: um nicht nur die Quelldatei des Applets sondern auch die zusätzlichen Sprachdateien hochzuladen bitte IMMER wie folgt verfahren:
  1. Applet im Checkin Tree auswählen
  2. Rechtsklick aufs Applet
  3. "Synchronize with Version Control" auswählen (es wird eine neue "Perspektive" geöffnet bzw. es wird gefragt, ob sie geöffnet werden soll)
  4. in der "Synchronize"-Ansicht (links) auf den Plus-Knopf drücken ("Expand all")
  5. nun werden alle Dateien sichtbar, die zum Applet gehören und geändert wurden; das Icon spricht Bände:
    1. ein Pfeil nach rechts sagt aus, dass die Datei lokal geändert wurde
    2. ein Pfeil nach links sagt aus, dass die Datei im SVN neuer ist (hat jemand parallel Änderungen gemacht? Ein Update wäre nicht schlecht...)
    3. ein rotes Viereck zeigt einen Versionskonflikt an: die Datei wurde lokal geändert und außerdem gibt es eine neuere Version im SVN (jemand hat parallel Änderungen gemacht!)
  6. ein Doppelklick auf eine Datei öffnet eine Vergleichsansicht von der lokalen Datei und jener im SVN; hier kann man recht schön Unterschiede zwischen beiden sehen
  7. durch einen Rechtsklick auf eine Datei kann man die üblichen SVN-Kommandos auf Dateien aufrufen:
    1. Commit: die Datei hochladen
    2. Update: wie der Name schon sagt
    3. Override and Update: die lokalen Änderungen überschreiben (Achtung!) und die neueste Version aus dem SVN holen

Zur vorherigen Perspektive kann mittels des "Mumie"-Buttons oben rechts oder dem Menüeintrag "Window -> Show Mumie Perspective" gewechselt werden.

Add picture from clipboard (Maximum size: 500 MB)