*Nico:
Ich fasse mal zusammen, was ich grundsätzlich für dringend
verbesserungsbedürftig halte:
1. Das "Mitschleppen" des Trennwörterbuches.
2. Die "Textanimation", wenn die Silbentrennung gestartet wird.
3. Das Mitkopieren des Trennzeichens.
4. Die fehlende (?) Möglichkeit, die Silbentrennung im professionellen
Publishing kontrollieren zu
können. Einfach eine automatische Silbentrennung über den Text zu bügeln,
ist eher weniger zu
empfehlen.
Zu 1: Ich habe es mit mehreren JS-Packern versucht. Größtes Ersparnis: ca.
1kB. Das bringt also
nichts. Vielleicht lässt sich das Wörterbuch aber reduzieren, indem man nicht
jede Silbe
aufnimmt, sondern nur solche mit mindestens 3 oder 4 Zeichen? Ich denke, wenn
wir das auf 50
oder sogar 30 kB begrenzen können, wäre das akzeptabel.
*Mathias:
Auf http://groups.google.de/group/trennmuster-opensource helfe ich bei einem
Projekt mit,
das sich zum Ziel gestetzt hat, eine Wortliste mit Trennungen nach aktueller
Regelung zu
erstellen und daraus neue Trennmuster für (La)TeX, oOO und somit auch für
mich zu erzeugen.
Im Moment weiss ich aber nicht, wie gross die resultierende Musterdatei sein
wird.
Man kann viel Platz sparen, wenn man statt der JSON-Notation ("_aal":"00060")
die originale
Notation (_aa6l) verwendet und diese dann zur Laufzeit in ein Objekt
verwandelt. Bis und mit v2
hatte ich das noch drin, dann habe ich es rausgenommen, weil die Konversion
auch 2sec
beanspruchte, was zusammen mit dem Laden der Datei länger dauerte, als eine
grössere Datei
zu laden.
Es ist auch möglich die Trennmusterdatei komprimiert zu senden und im Browser
zu cachen:
<?php
ob_start('ob_gzhandler');
header('Content-type: text/javascript; charset: UTF-8');
header('Cache-Control: public, must-revalidate');
$offset=604800; //=7*24*60*60
$ExpStr='Expires: '.gmdate('D, d M Y H:i:s',time()+$offset).' GMT';
header($ExpStr);
?>
am Anfang der Trennmusterdatei und diese auf de.php umbenennen. Dies ist die
beste Variante.
*Nico:
Zu 2: Ich arbeite gerade an einem anderen Projekt, bei dem ich ebenfalls das
DOM mit JS zur
Laufzeit verändern lasse. Die Lösung hier ist, die Elemente auszublenden und
erst nach
erfolgreicher Silbentrennung anzuzeigen. Das entspricht eher der Sehgewohnheit
im Web,
ähnlich dem Laden von Bildern.
*Mathias
Mich stört die Animation nicht, im Gegenteil: man sieht die Verbesserung. Aber
das ist subjektiv. Dein Ansatz ist aber zweifelsohne elegant! Ideal wäre ein
Switch, um diese Funktion ein-
/auszuschalten.
*Nico
Zu 3: Das Mitkopieren habe ich bei "hyphr" erst einmal damit umgangen, dass die
gesamte
Silbentrennung ausgeschaltet wird, sobald Text markiert wird. Nicht gerade
schön, aber vielleicht
erst einmal besser als nichts.
*Mathias:
Bei mir funktioniert das ganz und gar nicht, da beim Ausschalten der
Silbentrennung der Text
unter dem Cursor verschoben wird und ich dann die Auswahl wiederholen muss.
Es ist auch zu beachten, dass das Mitkopieren des Trennzeichens gängiges
Verhalten ist und die
Trennzeichen korrekt als softhyphen kopiert werden und beim Ausdruck nicht
angezeigt werden
(Opera kopiert nur angezeigt soft hyphens, andere Browser alle). Störend sind
die soft hyphen
nur, wenn man den Text in einen reinen Texteditor kopiert. OpenOffice und
wahrscheinlich auch
Word, interpretieren es richtig.
*Nico:
Zu 4: Das sollte sich leicht umsetzen lassen. In "hyphr" ist ein fertiges
Skript dafür eingebaut.
Leider ist PHP notwendig, da man dem Benutzer irgend eine Form von Eingabemaske
bieten
muss.
*Mathias:
Der für mich einfachste Weg besteht darin, kritische Wörter von Hand zu
trennen, indem man
statt Urinstinkt in HTML einfach Ur­instinkt schreibt. Wörter, die bereits
mindestens ein
­ enthalten, werden von hyphenator nicht mehr getrennt.
Weiter könnte am Anfang des Script eine Ausnahmenliste geladen werden, wo man
Ur­instinkt nur einmal einzutragen braucht, wenn das Wort mehrmals im Text
vorkommt.