In den letzten Tagen habe ich eine Idee für eine Umstrukturierung der Art und Weise wie DereGlobus funktioniert ausgearbeitet. Zwei Ideen stehen dabei im Vordergrund:
1. Inegration von anderen Sprachen: Der Anstoss dazu kam ursprünglich von Kennin bezüglich einer niederländischen übersetzung:
Liegt es im Rahmen des Möglichen UND in der Interesse des noch existenten Teams, den Globus ins Niederländische zu übersetzen?
Wobei wir (Leute der niederländischsprachigen Community) dann natürlich die Daten liefern. Das ist natürlich selbstredend. Nur Programiererkenntnisse haben wir gar nicht.
Ich denke aber, dass zB auch eine englische Version sicherlich überlegenswert wäre. Idealerweise sollte dabei die übersetung und die Struktur unabhängig voneinander bleiben (zB sodass noch nicht übersetzte Inhalte trotzdem in den anderssprachigen Versionen erscheinen, halt noch ohne übersetztung). Dies ist vorallem gut damit zB Fehlerbehebungen automatisch in allen Sprachen passieren.
2. Umstrukturierung der Entwicklung: Idealerweise stelle ich mir etwas wie eine Git-repository vor, die man klonen kann, änderungen lokal bei sich machen und austesten kann und sobald man damit zufrieden ist diese änderungen dann hochladen kann. Ich würde mir davon erhoffen, dass man damit die Entwicklung an DereGlobus möglichst vielen Leuten zugänglich machen kann und vielliecht den minimal nötigen Input des "Kernteams" darauf beschränkt eine änderung akzeptieren zu müssen.
Zusätzlich dazu würde ich gerne den momentanen DereGlobus so wenig wie möglich beeinträchtigen. Auf jeden Fall sollten alle die ihn sich heruntergeladen haben weiterhin alles benutzen können was sie bisher hatten ohne eine neue Version herunterladen zu müssen oder so. Idealerweise würde man den Leuten die noch die alte Version benutzen auch so viel wie möglich von allen neuen inhalten zur Verfügung stellen.
Vielleicht zuerst kurz eine Erklärung wie der DereGlobus momentan aufgebaut ist (basierend auf meinen Analysen der Files, wenn ich hier Blödsinn erzähle kann man mich gerne korrigieren): Der DereGlobus besteht aus einer grossen Anzahl .kml Dateien, unter anderem der einen .kml Datei die man herunterläd (verpackt in eine .kmz Datei, das ist mehr oder weniger einfach nur eine gezipte Version davon). Diese .kml Datein enthalten informationen die in Google Earth dargestellt werden und zusätzlich Links zu weiteren .kml Datein, in denen mehr Informationen und weitere Links zu .kml Datein stehen und so weiter.
Meine Idee war jetzt, Google Earth nicht mehr direkt den Link zu den .kml Datein zu geben sondern statdessen einen Link zu einem php Skript und den Pfad der Datei die man haben wollte relativ zum Hauptordner des DereGlobus Projekts. Das php Skript holt dann die richtige .kml Date anhand dieses Pfads und gibt das an Google Earth. Damit Google Earth auch bei dieser .kml Datei wieder über das php Skript geht um sich die daten zu holen und nicht direkt zu dem ort an dem die .kml Datei liegt, kann ein link in einer .kml Datei mittels des "ExtendedData"-Features in kml markiert werden und dieser Link wird dann vom php Skript durch einen link zu sich selber (dem php skript) mit der information wo das .kml file relativ zum Hauptordner von DereGlobus liegt ersetzt. Das erscheint jetzt vielleicht alles unglaublich aufwändig um exakt das gleiche zu erreichen was man bisher schon hatte. Der springende Punkt ist, dass dadurch mehrere Versionen des DereGlobus an verschiedenen Orten haben kann, und damit an einer Version arbeiten kann und sobald man fertig ist, diese dann ohne weitere änderungen publizieren kann. Es ist auch eine essentielle vorraussetzung für ein git repository wie ich es mir vorgestellt habe. Zudem kann man an dem punkt an dem das Skript die Links ändert auch noch andere änderungen Einbauen. Wieder durch das "ExtendedData"-Feature können Texte markiert werden und angegeben werden wo man eine übersetzte Version des Texts finden kann. Das php Skript kann dann den Text durch die überstezung in der gewünschten Sprache ersetzen bevor es das .kml file an Google Earth gibt.
Ich habe schon mal ein solches php Skript geschrieben (eine erste Version, es gibt sicher noch Raum für Verbesserungen) und es zusammen mit ein par Beispieldateien in ein Github-Repository gepackt, für die die es sich gerne mal anschauen wollen. Allerdings bruacht man natürlich einen Server um die php datei ausführen zu können (sollten wir DereGlobus tatsächlich darauf switchen, wäre natürlich die Idee, dass das Skript zusammen mit den Daten auf den Orkenspalter Server liegt und man einen eigenen Server nur noch für komplizieretere Entwicklungsschritte braucht). Ich habe zB. XAMPP verwendet, das ist einigermassen Schmerzfrei zum Aufsetzen, selbst wenn man wie ich keine Ahnung von Servern hat. Wenn jemand es damit testen will, einfach die Installation durchziehen (Man braucht nichts von den optionalen Features und der Installationsort is ziemlich egal). Danach kann man den Ordner von Github einfach in den "htdocs"-ordner ziehen der im xampp Ordner liegt (der wiederum dor liegt wo immer man xampp installiert hat). Den Server selber startet man indem man "xampp-control.exe" (im xampp ordner) startet und dort auf den Starten-Knopf drückt. Danach kann man in Google Earth einen neuen Netzwerk-Link hinzufügen und die Adresse: "http://localhost/*Pfad zum test.php skript relativ zu htdocs*" eingeben. Wenn alles richtig gelaufen ist, sollte man dann die ganzen DereGlobus Inhalte sehen. Die Wilkommens-Box habe ich mal probehalber ins Englische übersetzt. Um an die englische version zu kommen, muss man nur hinter dem link "?language=english" eingeben. Was auffällt, ist das alle nicht übersetzten Inhalte nicht einfach Fehlen sondern halt lediglich in Deutsch angezeigt werden.
Vorteile der Idee:
- Version Controll is integriert (Git)
- Einfacher Austausch zwischen publizierter Version, Entwickler Version und möglichen lokalen Versionen
- "reine" kml Version (jetztiger DereGlobus) funktioniert weiterhin mit dem gleichen Datenset (nur ohne "dynamische Vorteile wie änderung der Sprache"), neue Inhalte sind auch in der "reinen" kml Version verfügbar
- Jetztiges Datenset kann ohne veränderungen übernommen werden (Ergänzungen sind nur notig wenn man tatsächlich etwas ändern/hinzufügen will)
- Es ist möglich Teile des Datenset nur auf dem Orkenspalter Server zu haben (Ich denke da vorallem an die Karten, ist vielleicht ganz gut wenn es nicht so einfach ist die als ganzes Paket herunterzuladen)
- übersetzungen sind getrennt von der Datanstruktur
Nachteile von der Idee:
- Komplizierteres Konzept
- leicht komplizierterer Ablauf für änderungen am Inhalt (Theoretisch wäre es noch möglich die Daten genau wie früher zu ändern aber das würde die ganze Version-Controll umgehen und man könnte änderungen nicht zurückverfolgen, etc.)
- änderung des Konzepts (never change a running system)
- Zusätzliche Arbeit für den Orkenspalter Server (ich nehme mal nicht an, dass es zu signifikanten Verzögerungen beim laden der Daten kommt oder zu spürbaren mehrauslastungen des Servers aber man kann ja nie wissen), sollte das ein Problem werden könnte man jedoch auch nur die Entwickler-version mit dieser Idee machen und ein Skript schreiben welches daraus die Veröffentlichte Version "kompiliert", wäre kein grosser Mehraufwand, einfach nicht so "elegant" da zB jede Sprache dann ihren eigenen Datensatz bräuchte.
Dieser Thread sollte dazu da sein um über diese Idee (und alle anderen Ideen die noch aufkommen könnten) zu einer möglichen Umstrukturierung zu diskutieren. Was haltet ihr von der Idee? (Ich bin besonders auf die Meinung derer gespannt die schon vorher an DereGlobus gearbeitet haben... ) Ich weiss, dass es sehr technisch ist, aber ich glaube das ist bei solchen Fragen fast unausweichlich...