.| Autor | Beitrag |
|---|---|
|
000 04.04.2008, 16:40 UserFriendly |
Hi, ein Kommilitone und ich haben vor, die Odyssee von Homer digital ins Netz zu stellen und für Schüler eine Übersetzungshilfe zu erstellen. Dabei wollen wir zunächst nur mal den griechischen Text ins Netz stellen und jedes einzelne Wort anklickbar machen. Klickt der User auf ein Wort, wird in der linken Spalte die Wortübersetzung und die Formenaufschlüsselung angezeigt: Beispiel: Ich klicke auf [anthrôpôn] und links wird angezeigt: Die [] bedeuten, es steht hier eigentlich in griechischer Schrift. Das kann man sich genauso vorstellen wie hier, allerdings auf Deutsch und mit schönen Illustrationen von seiten meines Komilitonen. Die einzige Möglichkeit in meinem Horizont, das zu realisieren wären jetzt Frames x_X. Da hab ich aber keine Lust drauf, da ich dann für jedes Scheiss-Wort eine HTML-Datei erstellen darf... 1. Frage: Gibt es die Möglichkeit, das irgendwie mittels Parameter im <a>-Element zu realisieren? Also etwa so: <a lemma="anthropos" trans="der Mensch" spec="Gen.Pl">[anthrôpôn]</a> So, meine Frage ist jetzt nicht "Wie geht das?" sondern: Geht das überhaupt? Wie kann ich das realisieren, brauche ich dafür JavaScript oder PHP oder beides? Ist das viel Arbeit? 2. Frage: Griechische Zeichen sind ja im Unicode enthalten. Die kann ja dann jeder auf der Welt sehen, oder? --Dieser Beitrag wurde am 04.04.2008 um 16:42 von UserFriendly bearbeitet. |
|
Profil || Suche |
|
001 04.04.2008, 17:13 Kriz |
Keine Frames, die Zeiten sind vorbei. Schlage Mischung aus PHP, DOM/Javascript und viel CSS vor: - PHP/HTML als Framework, zieht bei einer solchen Idee mit Sicherheit auch eine (My)SQL Datenbank mit sich (assoziativer DB-Aufbau -> Wörterbuchschema). Die anklickbaren Wörter senden dann im <a> Tag neben der URL auch die von PHP benötigten Parameter gleich mit. Ansonsten mußt du dir mit CSS und DOM/Javascript ein dynamisches <div> "Fenster" basteln, was die Ergebisse anzeigt, ohne das man mit Frames, Fenstern und dergleichen herumeiern muß. Ganz simpel mit PHP wäre einfach den Text anzeigen lassen und wenn einer auf ein Wort klickt, lädt der Browser die dynamische Ergebnisseite: Viele Wege führen nach Rom. Ich denke mal, die Webber haben noch andere Ideen parat. UNICODE: Hängt davon ab, welche Kodierung verwendet wird, ob der Browser das rafft, ob das OS Unicode aktiv verarbeitet (solange keiner mehr <= Win98 SE verwendet) und ob der User dem Browser auch gesagt hat, daß er die Zeichensätze automatisch erkennen soll. --K:R-I)Z++ Dieser Beitrag wurde am 04.04.2008 um 17:15 von Kriz bearbeitet. |
|
Profil || Suche |
|
002 04.04.2008, 17:33 Krifitze ![]() |
Ich bin jetzt nicht so der Profi, aber was spricht denn gegen pures "dynamisches" CSS? Also nicht, dass beim Klicken erst eine neue Seite aufgebaut, sondern mittels :hover eine Art Tooltip angezeigt wird. Sorry, ich hab keine Zeit das Problem richtig durchzulesen... edit: Ok, es scheint sich doch um etwas größeres zu handeln und nicht nur um ein paar Worte. --Dieser Beitrag wurde am 04.04.2008 um 18:33 von Krifitze bearbeitet. |
|
Profil || Suche |
|
003 04.04.2008, 17:47 LeJean |
also ich an deiner Stelle würde die Seite zunächst mal grundsätzlich mit div-Containern einteilen. Da hast dann zum Beispiel einen dabei, der die id "uebersetzungsBox" trägt. Wenn du jetzt auf ein Wort klickst, dann rufst du keine neue Seite auf, sondern ne JavaScript-Funktion, die wiederum mittels AJAX eine andere PHP-Seite anfordert, dieser das geklickte (unter Umständen wegen Zeichensatz komplett maskierte) Wort mitgibt und die Antwort abwartet. Diese Antwort wird dann mittels JavaScript dynamisch in den ÜbersetzungsContainer gehangen. |
|
Profil || Suche |
|
004 04.04.2008, 18:07 hausi |
Für JavaScript: Nimm jQuery. Das sieht dann ungefähr so aus: Dieser Beitrag wurde am 04.04.2008 um 18:09 von hausi bearbeitet. |
|
Profil || Suche |
|
005 04.04.2008, 18:20 Bluthund |
Würde auch (trotz Nutzung von NoScript) zu ner Lösung mittels XMLHttpRequest raten... also sowas hier: edit: mit jQuery sieht das natürlich auch sehr interessant aus :) --The C language combines all the power of assembly language with all the ease-of-use of assembly language. Dieser Beitrag wurde am 04.04.2008 um 18:26 von Bluthund bearbeitet. |
|
Profil || Suche |
|
006 04.04.2008, 20:31 UserFriendly |
Das klingt schonmal interessant, wobei ich mir gerade die Frage stelle, ob man da dann auch Umlaute in die URL schreiben kann? Und was ist mit Groß- und Kleinschreibung bzw. Sonderzeichen, wie "?" und Leerzeichen ? Aber ich würde es gern mal ausprobieren, wenn ichs richtig sehe muss das obere in den sidebar-div mit nem <?php> und das untere muss ich einfach in das <a>-Element reintun? Das hieße dann praktisch, ich müsste nur eine Tabelle mit vier Spalten (Griechisches Wort, Lernform, Übersetzung, Spezifikation) und das Skript würde dann selber nach dem Griechischen Wort suchen und die anderen 3 Spalten auslesen? -- |
|
Profil || Suche |
|
007 05.04.2008, 00:59 Bluthund |
War nur als ganz grobes Beispiel gedacht, was da oben steht. Das wäre aber im Prinzip die einfachste Lösung. Ich kann kein griechisch, kann mir allerdings durchaus vorstellen, dass so ne Lösung allerhand Redundanz mit sich bringen würde. Denn es gibt ja sicherlich mehr als nur eine Beugungsform für ein und dasselbe Grundwort. Nehmen wir jetzt mal an (wie gesagt, ich kann kein griechisch): Du hast ein Wort foo das gibts in männlicher Form foo_m und weiblich foo_w. Wenn du das jetz in so ner 4-spaltigen Table ablegst, musst du sowohl bei foo_m als auch foo_w das Grundwort foo und die Übersetzung bar eintragen; bei Spezifikation dann entsprechend die Art der Beugung. Wenn du dich vertippst tritt der Fehler nur bei einem auf (+), willst du allerdings etwas ändern, was alle Einträge für ein Grundwort betrifft musst du auch alle Einträge entsprechend bearbeiten (-). Gut das ist mit SQL jetzt kein unüberwindbares Problem, aber ich persönlich würde da ne Kombination aus wenigstens 2 Tabellen nutzen. Tabelle 1 mit Grundwort + ID und Tabelle 2 in der ID des Grundworts, gebeugte Form und Art der Beugung steht. Die Übersetzung würde ich in Tabelle 1 packen wenn für alle Wörter unabhängig der Beugung nur jeweils eine Übersetzung möglich ist. Ansonsten in Tab2. Damit wäre die Redundanz verschwunden und der eine Join wird wahrscheinlich auch nicht die Performanceanforderung des Projekts knacken. -- The C language combines all the power of assembly language with all the ease-of-use of assembly language. |
|
Profil || Suche |
|
008 05.04.2008, 10:45 K-Putt |
Zusätzlich zum genannten würde ich noch raten, die Wörter-Beschreibungen die aus der DB kommen, am Server zu cachen - es muss ja nicht sein, dass jeder Klick auf ein Wort im Hintergrund einen DB Request auslöst, denn wenn die Beschreibungen für die einzelnen Wörter mal in der DB drin sind, wird sich da kaum noch was dran ändern. --Rambo Engineer @ Drippy's 2fort - finest TFC 1.5 || Bild Upload || The world's most advanced open source database |
|
Profil || Suche |
|
009 06.04.2008, 20:22 UserFriendly |
So das Grundgerüst steht jetzt schon, bin ich aber auf ein Problem gestoßen: In FF und Opera funzt es natürlich aber im IE wird die Navi beim Rollover seltsam dargestellt. Bei der Navi hab ich mich nach diesem Prinzip gerichtet: Das sieht so aus, dass ein Reiter aus zwei Bildern besteht: Der linken Ecke und der Rechten Ecke. Jetz muss ich natürlich dem <a> und <li> Element sagen, dass sie beim Rollover ein anderen Hintergrundbild annehmen sollen. Ich habs schon mit before probiert, aber dadurch fügt er mir das komplette Bild beim Rollover ein und nicht nur den Ausschnitt, der zu sehen ist (der so groß ist, wie der Listenpunkt). Bezüglich der Navigation: |
|
Profil || Suche |
|
010 06.04.2008, 23:14 LeJean |
Hast du Commented-Backslash für nen IE5-Hack genutzt? So weit ich mich erinnere ist in dem Tutorial auch die Rede davon. Oder hast das weggelassen? Könnte dein Problem sein.. -- |
|
Profil || Suche |
|
011 07.04.2008, 17:16 scus |
Wenn ich mich recht erinnere, kann der IE ":hover" nur bei Links, also <a>'s. Vllt. kannst du das grafische per "<a>" machen und nur die Ausrichtung per "<li>". --sincères amitiés scus Dieser Beitrag wurde am 07.04.2008 um 17:16 von scus bearbeitet. |
|
Profil || Suche |
|
012 08.04.2008, 00:59 UserFriendly |
Ne, ich brauch ja für jeden Reiter zwei Grafiken: Das linke Eck und das Rechte Eck. Die müssen zwei verschiedenen Elementen als Hintergrundbild zugewiesen werden, sonst klappt das nicht. Ich hab versucht einen <span> zwischen die <a>´s einzusetzen, aber wenn ich den <span> zu nem Block-Element via display:block mache und das Hintergrundbild einsetze, ist der span nur genausogroß wie der Text x_X http://alpha-septic.net/hosted/odysshit/ Man sieht das hier: Auf dem ersten Reiter ist so ein kleines helles Rechteck...das ist der <span> mit dem rechten Eck als Hintergrundbild. Und der muss jetzt so groß werden wie ein normaler Reiter...:( -- |
|
Profil || Suche |


