WebsiteBaker Community Forum

WebsiteBaker Support (2.8.x) => Hilfe & Support (deutsch) => General Help & Support => Allgemeine Hilfe & Support => Topic started by: slackfan on March 15, 2007, 07:39:33 AM

Title: WebsiteBaker und Chinesisch
Post by: slackfan on March 15, 2007, 07:39:33 AM
Hallo,

ich bastele an einer multilingualen Website und bekomme es nicht hin, Seiten mit chinesischen Zeichen im Namen anzulegen.

Wenn ich z.B. 版权声明 (das bedeutet Impressum) als Seitentitel vergeben will, gibt er lediglich zurück:
Quote
Eine Seite mit einem ähnlichen oder demselben Titel existiert bereits
Obwohl das nicht der Fall ist.

Wie lässt sich dieser Missstand beheben und woran könnte das liegen?

Mit besten Grüßen
Slackfan
Title: Re: WebsiteBaker und Chinesisch
Post by: ruebenwurzel on March 15, 2007, 08:58:39 AM
Hallo,

lies dir bitte das hier durch, das erklärt alles:

http://forum.WebsiteBaker.org/index.php/topic,4964.0.html (http://forum.WebsiteBaker.org/index.php/topic,4964.0.html)

Dein Problem ist die convert.php und UTF8. Beim Anlegen der Seiten werden (schau bitte in der Datenbank nach) die Seitennamen falsch convertiert und als E4E4E4.... gespeichert. Deswegen bekommst du den Hinweis dass eine Seite mit dem Namen bereits existiert.

Matthias
Title: Re: WebsiteBaker und Chinesisch
Post by: slackfan on March 15, 2007, 09:36:30 AM
Funktioniert!

Danke schön.
Title: Re: WebsiteBaker und Chinesisch
Post by: slackfan on March 15, 2007, 10:09:08 AM
Fast :-/

Der Text Impressum (版权声明) hat die Zeichenkodierung 版权声明 leider steht das auch genau so in der Überschrift da. Im Fließtext wandelt er die Zeichen dagegen korrekt um.

Weiß jemand wo man die Umwandlung des kaufmännischen Und von & in & für die Überschriften deaktivieren kann?

Mit besten Grüßen
Slackfan
Title: Re: WebsiteBaker und Chinesisch
Post by: ruebenwurzel on March 15, 2007, 11:33:22 AM
Hallo,

spricht du jetzt vom Menü oder sprichst du vom Contenbereich?

Menü: siehe vorher geposteten link.

Content: Das hängt von deinem WYSIWYG Editor ab. HTMLArea macht ein heilloses durcheinander, FCKEditor und XINHA können entweder für das eine (Htmlentities ü = ü) oder das andere ( ü = ü) eingestellt werden. In der momentanen Standardconfig ist es leider auch noch ein bisschen gemixt.

Matthias
Title: Re: WebsiteBaker und Chinesisch
Post by: thorn on March 18, 2007, 10:17:34 AM
Hallo,

Der Text Impressum (版权声明) hat die Zeichenkodierung 版权声明 leider steht das auch genau so in der Überschrift da. Im Fließtext wandelt er die Zeichen dagegen korrekt um.

Weiß jemand wo man die Umwandlung des kaufmännischen Und von & in & für die Überschriften deaktivieren kann?

Schuld daran ist der exessive Gebrauch von htmlentities()...

Als Lösungsansatz bieten sich zwei Möglichkeiten an:
- so gut wie alle htmlentites weg (vorallem aus wb/admin/pages/* und wb/framework/class.frontend.php)
oder, wenn die Kodierung notwendig ist (IST SIE DAS? WARUM?)
- die htmlentities()-Aufrufe in eine mb_convert_encoding()/htmlspecialchars()/mb_convert_encoding()-Kaskade ändern.

Ich habe mal die wb/framework/class.frontend.php nach der zweiten Möglichkeit angepaßt.
Nun werden menu_title und page_title nicht mehr verunstaltet. -- bitte mal testen.
Als nächstes müsste man dann wb/admin/pages/* entsprechend überarbeiten...

Einfacher wäre es, die ganzen htmlentites()-Aufrufe raus zu nehmen. (Warum sind die nochmal gleich drin?)

MfG, Thomas

PS: Die convert.php spieltab dieser Stelle nicht mit rein.
Title: Re: WebsiteBaker und Chinesisch
Post by: ruebenwurzel on March 20, 2007, 08:46:30 AM
Hallo,

Quote
Einfacher wäre es, die ganzen htmlentites()-Aufrufe raus zu nehmen. (Warum sind die nochmal gleich drin?)

Darum:
http://projects.WebsiteBaker.org/websitebaker2/ticket/287 (http://projects.WebsiteBaker.org/websitebaker2/ticket/287)

Frage:
Gibt es eine Lösung, die sowohl das angesprochene ticket287 löst, als auch dafür sorgt, dass sowohl bei UTF8 Seiten als auch bei ISO-xxxx Seiten der Menütitel und Seitentitel richtig in der Datenbank gespeichert wird und im Frontend richtig angezeigt wird und die abwärtskompatibel zu WB 2.6.4 Seiten ist.

Matthias
Title: Re: WebsiteBaker und Chinesisch
Post by: slackfan on March 20, 2007, 12:42:39 PM
Danke für Bemühung.
Wenn ich die Bibliothek von thorn benutze bekomme ich wieder die erste Fehlermeldung.
Werde mich wohl auch mal in die Tiefen der Programmierung begeben müssen.
Habe gehofft, dass vermeiden zu können  :-D

cu
Title: Re: WebsiteBaker und Chinesisch
Post by: thorn on March 20, 2007, 06:55:51 PM
Danke für Bemühung.
Wenn ich die Bibliothek von thorn benutze bekomme ich wieder die erste Fehlermeldung.
Werde mich wohl auch mal in die Tiefen der Programmierung begeben müssen.
Habe gehofft, dass vermeiden zu können  :-D
Was für eine Convert.php benutzt du? Und was für ein System (ISO-... oder UTF-8)?

Wenn Du eine convert.php benutzt, die nur die Standard-Umlaute enthält ("ä"=>"ae",...) sollte WB die Chinesischen Zeichen (die intern als 版 ... dargestellt werden) in einen Dateinamen der Art: 2925626435227682612 6.php verwandeln. Sprich, WB entfernt alle HTML-typischen Zeichen und behält die ganzen Zahlen. Und das sollte schon eindeutig sein.
In einer UTF-8- Umgebung könnte das anders sein... Muß ich noch mal testen.

MfG, Thomas

Update: bei mir funktioniert das so, siehe http://nettest.thekk.de/
hmm, allerdings nur wenn ich latin-1 benutzte...
Title: Re: WebsiteBaker und Chinesisch
Post by: thorn on March 20, 2007, 08:55:07 PM
Frage:
Gibt es eine Lösung, die sowohl das angesprochene ticket287 löst, als auch dafür sorgt, dass sowohl bei UTF8 Seiten als auch bei ISO-xxxx Seiten der Menütitel und Seitentitel richtig in der Datenbank gespeichert wird und im Frontend richtig angezeigt wird und die abwärtskompatibel zu WB 2.6.4 Seiten ist.

Der schnelle Hack von oben funktioniert unter UTF-8 nicht (weil ich page_title und menu_title nur im Moment des Anzeigens verändere, und die verwendete Konvertierung funktioniert in dem Fall nicht.)
Ich müßte stattdessen schon in wb/admin/pages/* bei der Erstellung eingreifen. Dann würden die beiden Einträge immer mit named/numbered-entities in die Datenbank geschrieben, und würden beim Anzeigen automatisch immer richtig angezeigt, unabhängig vom eingestellten Charset).

Zu deiner Frage:
ticket287: kein problem, da man sowieso konvertierer muß, kann man das gleich mitmachen.
ISO-xxxx-Seiten: Funktioniert bereits. Siehe http://nettest.thekk.de/
UTF-8-Seiten: hmm, ich denke, wenn ich jeweils prüfe welcher Charset in WB eingestellt ist, und dann entsprechend konvertiere sollte das auch gehen.
abwärtskompatibel zu WB 2.6.4-Seiten: oohh... 2.6.4 kenne ich nicht. Aber die Lösung die mir vorschwebt würde nur bei der Erstellung oder Änderung von Seiten eingreifen, sodaß bestehende Seiten wie gewohnt angezeigt werden sollten...

Ich werde mal was in die Richtung versuchen...

MfG, Thomas

PS: um mal etwas von dem chinesich wegzukommen: Dieses Problem betrifft auch viele Sonderzeichen z.b. aus Lettland, Estland, Litauen, Rumänien, Tschechien, Kroatien,...
Title: Re: WebsiteBaker und Chinesisch
Post by: slackfan on March 21, 2007, 11:38:27 AM
Hallo,

ich benutze in der Tat durchgehend utf-8, weil ich mir dachte das wäre gerade für mehrsprachliche/-schriftliche Seiten sinnvoller.

Die Seiten legt er mit der unmodifizierten class.frontend.php nach dem von thorn beschriebenen Schema ab, aber erst nachdem ich die gepatchte convert.php von ruebenwurzel benutze.

Ich bin jetzt ziemlich verwirrt, vor allem weil das bei thorn so gut funktioniert. Ist es jetzt das beste, die Site auf iso-8859-1 umzustellen, oder WebsiteBaker so zu patchen, dass er die Entitäten bei der Ausgabe nicht parst :?
Title: Re: WebsiteBaker und Chinesisch
Post by: thorn on March 21, 2007, 06:55:01 PM
 :-D

Hallo,

ich würde WB auf ISO-8859-1 einstellen und die Datei von oben austauschen wenn es dringend ist.
Wenn es nicht so dringend ist, warte lieber noch bis nächste Woche. Bis dahin habe ich hoffentlich eine bessere Lösung.

MfG, thorn.
Title: Re: WebsiteBaker und Chinesisch
Post by: slackfan on March 22, 2007, 10:08:15 AM
Alles klar,

dann würde ich noch ein bisschen warten  :-)

thx slackfan
Title: Re: WebsiteBaker und Chinesisch
Post by: thorn on March 22, 2007, 10:06:46 PM
So...

ich hab hier mal eine Version zum testen. - Einfach die Dateien austauschen. ABER BITTE NICHT IM PRODUKTIVSYSTEM! Erstmal in einem Testsystem probieren, insbesondere die Auswirkung auf bestehende Seiten und Bilder in wb/media.
Der eingestellte Charset ist egal.

Die wesentlichsten Änderungen:

- in wb/framework/functions.php die Funktionen to_entities() und entities_to_7bit() hinzu.
- page_title und menu_title werden nun grundsätzlich durch to_entities() mit html_entities angelegt (dabei wird auch ticket287 beachtet).
- in wb/admin/pages/*, wb/framework/class.frontend.php und frontend.functions. php die Aufrufe von htmlentities() entfernt.
- Änderungen an page_filename() und media_filename(): der Dateiname wird nun mit Hilfe von entities_to_7bit() erzeugt; die convert.php wird nur noch für 'kosmetische' Änderungen benutzt (Umwandlung von verschiedenen numbered_entities, die ich mit entities_to_7bit() nicht erwische).
- search.php: bugfix: suche funktionierte mit UTF-8 nicht.

MfG, Thomas

Edit 23.03.2007: Aua, da hat sich aber ein böser Fehler eingeschlichen! Anhang erstmal eingezogen -- muß ich erst reparieren...
Title: Re: WebsiteBaker und Chinesisch
Post by: doc on March 23, 2007, 06:40:06 AM
Cool,

werde ich heute mal testen  :-)
Danke für die bisher investierte Arbeit.

Gruss Christian
Title: Re: WebsiteBaker und Chinesisch
Post by: thorn on March 23, 2007, 07:04:16 PM
Hallo,

so, erster bugfix

Änderungen:
- bugfixes.
- wb/admin/pages/settings2.php: Konvertierung von page_title und menu_title durch to_entities() hinzu.
- in wb/admin/pages/add.php und settings2.php die Aufrufe von page_filename() soweit wie möglich reduziert. (ich denke die vielen dadurch bediengten Aufrufe von preg_replace() verlangsamen den Ablauf deutlich).

MfG, thorn
Title: Re: WebsiteBaker und Chinesisch
Post by: thorn on March 28, 2007, 07:18:02 PM
Hallo,

ich habe diese Variante jetzt soweit fertig. (Testsystem siehe http://nettest.thekk.de )

- Die Änderungen laufen auch mit bestehenden Datenbanken; es ist keine Konvertierung nötig.
- Sie Funktionieren mit jedem(!) Charset.
- page_title und menu_title können nun Sonderzeichen/Umlaute enthalten (nur die Sonderzeichen, die zum eingestellten Charset gehören; aber das war bisher auch so).
- bugfix an der Such-Funktion (funktionierte nicht wie gewollt unter verschiedenen Charsets).
- Unabhängig vom eingestellten Charset werden immer eindeutige Dateinamen erstellt; es sind keine Anpassungen an der convert.php mehr nötig. Zudem sind, zumindest im latin-block, die Dateinamen lesbar: 'Tür' wird zu 'tuer', 'Česky' wird zu 'cesky'; d.h. alle Zeichen, die eine 7bit-Entsprechung haben, werden auf diese abgebildet. Andere werden als Name übernommen: '€' wird zu 'euro', 'Ω' wird zu 'omega'. Und die gut 50.000 anderen Zeichen aus dem utf-8-Bereich werden als Zahl (aus der numbered-entitiy) übernommen: "Jetzt mal 日本語" wird zu "jetzt-mal-260852641235486.php".

Bei Neuinstallationen empfehle ich den Charset auf der Standard-Einstellung von WB, nämlich 'UTF-8', zu lassen, damit funktioniert das am besten.

Die Erzeugung von Dateinamen ist kompatibel zur alten Lösung, so das auch dort keine Probleme zu erwarten sind.

MfG, thorn

PS: Hallo slackfan, probiere das doch jetzt bitte mal aus, mit Charset UTF-8.

Edit: aktuelle Fassung siehe weiter unten.
Title: Re: WebsiteBaker und Chinesisch
Post by: ruebenwurzel on March 29, 2007, 09:23:20 AM
Hallo,

na das sieht ja mal richtig gut aus  :-D.

Folgende Fragen:
1. Können wir damit auf die convert.php komplett verzichten?
2. Wenn nicht, deckt deine so gut wie alles ab, oder muss da noch was hinzugefügt werden (russisch?, griechisch?
3. Funktioniert deine Lösung unabhängig vom charset der Datenbanken?
4. Muss an den Mindestanforderunge n von Wb was geändert werden (php version!)?
5. Hast du alle htmlentites von http://projects.WebsiteBaker.org/websitebaker2/changeset/396 (http://projects.WebsiteBaker.org/websitebaker2/changeset/396) wieder entfernt?

Bitte um kurze Antwort. Auf deiner Testseite sieht alles super aus. Je nach deinen Antworten werde ich deine Lösung dann in die SVN für die Version 2.6.6 mit aufnehmen.

Danke für deine Arbeit

Matthias

Edit:
Also hab das jetzt mal auf die schnelle hier im Geschäft probiert. Da funktioniert mit ISO-8859-1 alles wie erwartet, wenn ich aber unter UTF8 eine Seite mit Umlauten anlegen, werden die Umlaute einfach aus dem Dateinamen herausgenommen. Ein Seitenname "äöü" ist nich möglich von "testäöü" wird nur "test" angenommen.
Title: Re: WebsiteBaker und Chinesisch
Post by: thorn on March 29, 2007, 05:48:29 PM
Also hab das jetzt mal auf die schnelle hier im Geschäft probiert. Da funktioniert mit ISO-8859-1 alles wie erwartet, wenn ich aber unter UTF8 eine Seite mit Umlauten anlegen, werden die Umlaute einfach aus dem Dateinamen herausgenommen. Ein Seitenname "äöü" ist nich möglich von "testäöü" wird nur "test" angenommen.

Also der einzige Unterschied in dem Fall zwischen ISO-8859-1 und UTF-8 ist, das sich in
Code: [Select]
$string=mb_convert_encoding($string,'HTML-ENTITIES',$charset); der $charset ändert.
Wird denn der menu_title oder page_title richtig angezeigt, und nur der Dateiname stimmt nicht?
 :?
Wie hast Du das System installiert? Original wb2.6.5 und dann die geänderten Dateien eingespielt? Oder bestehendes System? Version? Änderungen an der Datenbank von Hand? Andere Änderungen an WB?
Und vor allem welche PHP-Version? auf Linux oder Windows? Und wie sieht das Configure Command aus? ('--enable-mbstring' sollte vorhanden sein).

MfG, thorn
Title: Re: WebsiteBaker und Chinesisch
Post by: ruebenwurzel on March 29, 2007, 06:39:56 PM
Hallo,

habs jetzt auch nochmal daheim getested, mit ganz anderen Ergebnissen (andere php Version).

Apache 2.0.59, Mysql 5.0.27, PHP 5.2.1. Datenbanken charset Latin_swedish_ci.
Standard WB Installation, nur deine Dateien ausgetauscht.
WB charset UTF8:
Seiten mit Umlauten können angelegt werden, werden im Menü(frontend und backend) richtig angezeigt, der link wird richtig convertiert, allerdings stehen in der Datenbank in der Pages tabelle bei page_title und menu_title nur hyroglyphen.

Apache 2.0.59, Mysql 4.0.26, PHP 5.2.1
Standard WB Installation, nur deine Dateien ausgetauscht.
WB charset UTF8:
Beim Anlegen der Seiten werden die Umlaute aus den Dateinamen entfernt.

Hoffe das hilft dir weiter.

Matthias
Title: Re: WebsiteBaker und Chinesisch
Post by: thorn on March 29, 2007, 07:47:29 PM
allerdings stehen in der Datenbank in der Pages tabelle bei page_title und menu_title nur hyroglyphen.
Ja, das ist ein Design-Fehler in WB. Das habe ich im Thread "WB 2.6.5 und UTF-8" doch erklärt:
Da in WB beim Verbindungsaufbau weder der client-charset noch die zu benutzende collation an mysql gemeldet wird, führt mysql immer eine Konvertierung [latin1->utf8] aus. Und wenn man UTF-8 so verbiegt, kommt halt nichts lesbares dabei heraus. Das das trotzdem funktioniert, liegt daran, daß mysql die Konvertierung beim Senden von Daten rückgängig macht. Das gilt für jeden Charset ungleich latin1.
Ich habe letztlich nicht mehr näher Untersucht, ob man wirklich beim Anlegen der Datenbank die collation auf utf8 setzten muß, oder ob es nicht auch reicht, beim Aufbau der Verbindung die Daten zu setzen, (in der class database, function connect, nach Verbindungsaufbau):
Code: [Select]
    } else {
        $this->connected = true;
        mysql_query("SET character_set_client=$wb_charset");
        mysql_query("SET character_set_results=utf8");
        mysql_query("SET collation_connection=utf8_unicode_ci");
    }
weil daß so oder so große Änderungen nach sich zieht:
-Bestehende Datenbanken müssen konvertiert werden!
-DEFAULT_CHARSET steht in der class database nicht zur Verfügung - muß man dort erst irgendwie verfügbar machen.

Aber ich schweife vom Thema ab:
mysql hat mit der Erstellung des Dateinamens nun wirklich garnichts zu tun. Kannst Du mal gucken ob das PHP auf dem System mit mysql4 mb-string Unterstützung hat (phpinfo)?

Ich werde die Funktionen die bei der Erzeugung des Dateinames eingesetzt werden mal Schritt für Schritt untersuchen - vielleicht ergibt sich dabei ja noch was.

MfG, thorn
Title: Re: WebsiteBaker und Chinesisch
Post by: ruebenwurzel on March 29, 2007, 08:05:04 PM
Hallo,

Quote
Ja, das ist ein Design-Fehler in WB. Das habe ich im Thread "WB 2.6.5 und UTF-8" doch erklärt:

Jetzt wo du es sagst, fällt es mir wie Schuppen von den Augen. Stimmt du hast das in diesem thread ausführlich erklärt und ob mit oder ohne deine Änderungen bekommt man dasselbe Ergebnis.

Quote
Ich habe letztlich nicht mehr näher Untersucht, ob man wirklich beim Anlegen der Datenbank die collation auf utf8 setzten muß

Sollte langfristig (WB 2.7 ?) das Ziel sein. Da WB 2.7 mit einem Updatescript ausgestattet sein wird kann man die Konvertierung der Datenbanken nach UTF8 ja ebenfalls in die Planung mit aufnehmen.

Quote
Kannst Du mal gucken ob das PHP auf dem System mit mysql4 mb-string Unterstützung hat (phpinfo)?

Morgen auf der Arbeit ja. Denke aber mal, weil es sich dabei um eine total selbst konfigurierte Installation handelt, dass mb-string bei den extensions in der php.ini wohl eher nicht aktiviert ist. Sag dir dann Bescheid.


Gib bitte nochmal ne kurze Info zu den Fragen, die ich weiter oben gestellt habe. Oder anders herum, was kann passieren, wenn wir deine geänderten Dateien in die Corefiles mit aufnehmen?

Matthias
Title: Re: WebsiteBaker und Chinesisch
Post by: thorn on March 29, 2007, 09:55:28 PM
Folgende Fragen:
1. Können wir damit auf die convert.php komplett verzichten?
2. Wenn nicht, deckt deine so gut wie alles ab, oder muss da noch was hinzugefügt werden (russisch?, griechisch?
3. Funktioniert deine Lösung unabhängig vom charset der Datenbanken?
4. Muss an den Mindestanforderunge n von Wb was geändert werden (php version!)?
5. Hast du alle htmlentites von http://projects.WebsiteBaker.org/websitebaker2/changeset/396 (http://projects.WebsiteBaker.org/websitebaker2/changeset/396) wieder entfernt?
1- Nein, ich habe das sogar von meinem ersten Entwurf dahingehend 'zurückgebaut' das ausschließlich die convert.php benutzt wird. Die Neuerung ist, daß nun eine convert.php für alle Charsets paßt.
2- Also kyrillisch und griechisch habe ich gerade ergänzt. Die Blöcke Lateinisch, Lat-Erweitert, Lat-Ergänzt-A funktionieren. Morgen ergänze ich noch den Block Lat-Ergänzt-B, obwohl der nun wirklich sehr exotische ist. Weitere Vorschläge nehme ich gerne an. Es gibt aber Fälle in denen eine Konvertierung einfach nicht möglich ist (UTF-8 hat derzeit gut 60.000 Zeichen, BIG-5 13.000, ISO-2022-JP 7000 ...), das sind praktisch alle asiatischen Sprachen, dazu hebräisch, arabisch.
Aber alle Sprachen, die lateinische Zeichen benutzen, funktionieren.
3- Wenn man den charset der Datenbank oder den von WB ändert, wird sowieso nichts mehr richtig angezeigt. (Aber das ist der Design-Fehler...).
4- nicht das ich wüßte. Laut PHP-Doku und mysql-Doku sehe ich da keine Probleme.
5- ja

Wenn man die geänderten Dateien in ein bestehendes System bringt, läuft erst mal alles weiter wie gehabt. Bestehende Seiten behalten ihren Namen und werden wie bisher angezeigt.
Es gibt aber einen denkbaren Fall der leichte Probleme machen könnte:
--  Der User hat eine Seite mit einem exotischen Titel (mit Sonderzeichen weit jenseits der normal öäü...)  und eine weitere Seite in der im content ein 'hart-kodierter' Link auf die vorgenannte Seite zeigt.
Wenn er nun die Seitenoptionen aufruft, dort etwas ändert und speichert werden page_title und menu_title der Seite neu generiert. Dabei kann es passieren, daß die Seite einen etwas anderen Dateinamen bekommt, er also den Link auch ändern muß.
Ich habe allerdings die neue Funktion kompatible zur alten gehalten, so daß das im 'europäischen'-Sprachraum nicht passieren sollte. Für andere 'Sprachräume' weiß ich nicht wie dort die Dateinamen erstellt wurden (bei BIG-5, ISO-2022-JP, oder ähnlich), da wird der neu generierte Name wohl immer abweichen. Das Problem kommt aber nur bei 'hard-kodierten' Links zum tragen.

MfG, thorn

Title: Re: WebsiteBaker und Chinesisch
Post by: ruebenwurzel on March 30, 2007, 05:43:13 AM
Hallo,

also wenn deine convert.php dann soweit vollständig ist werde ich die Änderungen in die Core Files übernehmen.

In der class.frontend.php haben wir auch noch einige "htmlentities" stehen. Können die dann auch raus?.

Matthias
Title: Re: WebsiteBaker und Chinesisch
Post by: thorn on March 31, 2007, 06:59:05 PM
Hallo,

hier also die endgültige Fassung.

Änderungen:
- Die htmlentities aus changeset 396 sind entfernt.
- Ein paar Probleme mit Suche/Highlighting behoben bei UTF-8, und bei 'exact-match'
- Neues (kompatibles) Verfahren zur Erzeugen des Dateinamens für Pages und Media.
- Erzeugung von page_title und menu_title überarbeitet.

Ich würde empfehlen, bei einer Neuinstallation den charset in WB auf UTF-8 stehen zu lassen.

MfG, thorn

PS:
Hint: Um eine bestehende Datenbank, die mit ISO-8859-1 (in WB) erstellt wurde, nach UTF-8 (Einstellung in WB wohlgemerkt) umzuwandeln, reicht es, den Dump mit Hilfe von z.B. iconv zu konvertieren:
Code: [Select]
iconv -c -f CP1252 -t UTF-8 wb.sql > wb_conv.sql

Edit: aktuelle Fassung siehe weiter unten.
Title: Re: WebsiteBaker und Chinesisch
Post by: ruebenwurzel on April 01, 2007, 08:10:33 AM
Hallo,

Quote
Um eine bestehende Datenbank, die mit ISO-8859-1 (in WB) erstellt wurde, nach UTF-8 (Einstellung in WB wohlgemerkt) umzuwandeln

Heisst das es gibt Probleme mit ISO-8859-1?

Matthias
Title: Re: WebsiteBaker und Chinesisch
Post by: thorn on April 01, 2007, 12:08:51 PM
Quote
Um eine bestehende Datenbank, die mit ISO-8859-1 (in WB) erstellt wurde, nach UTF-8 (Einstellung in WB wohlgemerkt) umzuwandeln

Heisst das es gibt Probleme mit ISO-8859-1?

Nein. Ich habe das nur mal selbst gemacht, weil ich für eine Seite (die bisher mit ISO-8859-1 lief) sowohl deutsche als auch tschechische Zeichen im Menu/Titel brauche. Und ein paar Zeichen (z.B. čůž) unter ISO-8859-1 für page_title/menu_title nicht zur Verfügung stehen.
Es sollte nur zeigen, daß man auch bei bestehenden Seiten von ISO-8859-1 zu UTF-8 wechseln kann...

Auch meine Empfehlung bei Neuinstallationen die Grundeinstellung UTF-8 zu benutzen, beruht nicht auf einem Problem mit ISO-8859-1, als vielmehr darauf, daß dann die User mit jeder beliebigen Sprache sofort loslegen können, ohne sich um Charsets und enthaltene Zeichen Gedanken machen zu müssen.

MfG, thorn
Title: Re: WebsiteBaker und Chinesisch
Post by: ruebenwurzel on April 01, 2007, 12:29:12 PM
Hallo,

letzte Frage, in deinem pt3 paket hast du auch noch modules/wysiwyg/save.php angepasst. Ist das in pt4 nicht mehr nötig?

allerletzte Frage, in der convert.php sind die Umlaute wie sie tatsächlich geschrieben sind nicht mehr enthalten. (hab kein ä, ö oder ü .... gefunden) Ist das Absicht?

Hab das ganze mal durchgetested und es sieht soweit alles gut aus. Kann ich die letzten Files so veröffentlichen oder bedarf es noch mehr tests?

Matthias
Title: Re: WebsiteBaker und Chinesisch
Post by: thorn on April 01, 2007, 12:46:28 PM
letzte Frage, in deinem pt3 paket hast du auch noch modules/wysiwyg/save.php angepasst. Ist das in pt4 nicht mehr nötig?

allerletzte Frage, in der convert.php sind die Umlaute wie sie tatsächlich geschrieben sind nicht mehr enthalten. (hab kein ä, ö oder ü .... gefunden) Ist das Absicht?

Hab das ganze mal durchgetested und es sieht soweit alles gut aus. Kann ich die letzten Files so veröffentlichen oder bedarf es noch mehr tests?

Hallo,

die Änderung an modules/wysiwyg/save.php habe ich wieder herausgenommen. Die Grundidee dabei war, bei UTF-8 alle Entities im Text die der Editor da möglicherweise reinbringt in Sonderzeichen zu wandeln. Das hatte aber unerwünschte Nebeneffekte, so daß ich das wieder entfernt habe. -- Man kann ja auch besser den Editor entsprechend konfigurieren, wenn man das haben will.

convert.php: Das ist ja gerade der Trick bei der Sache... Sonst müßte man ja um alle möglichen Umlaute und Sonderzeichen (sprich den Unicode-Bereich) abzudecken gut 60.000 Zeichen in die convert.php aufnehmen.

Ich habe das schon im 'Produktiv-Einsatz' und da sind mir keine Probleme mehr untergekommen.
Meiner Meinung nach ist das jetzt fertig.

MfG, thorn.
Title: Re: WebsiteBaker und Chinesisch
Post by: ruebenwurzel on April 01, 2007, 02:29:57 PM
Hallo,

schau hier:
http://projects.WebsiteBaker.org/websitebaker2/changeset/442 (http://projects.WebsiteBaker.org/websitebaker2/changeset/442)
http://projects.WebsiteBaker.org/websitebaker2/changeset/443 (http://projects.WebsiteBaker.org/websitebaker2/changeset/443)

Matthias
Title: Re: WebsiteBaker und Chinesisch
Post by: thorn on April 01, 2007, 03:55:59 PM
schau hier:
http://projects.WebsiteBaker.org/websitebaker2/changeset/442 (http://projects.WebsiteBaker.org/websitebaker2/changeset/442)
http://projects.WebsiteBaker.org/websitebaker2/changeset/443 (http://projects.WebsiteBaker.org/websitebaker2/changeset/443)

Es war mir eine freude... 8-)

MfG, thorn.
Title: Re: WebsiteBaker und Chinesisch
Post by: thorn on April 09, 2007, 06:48:53 PM
Hallo,

nachdem ich die obigen Änderungen nun schon eine Weile im Produktiv-System einsetzte, sind mir beim Highlighting doch noch ein paar Dinge aufgefallen die geändert werden müssen.
Das Highlighting geschieht ja über einen RegEx - leider ist es mir nicht gelungen dort einen Ausdruck zu finden der alle möglichen charsets und alle möglichen Editoren (die ja unterschiedlich Umlaute oder Entities erzeugen) abdeckt.
Ich konnte das aber inzwischen lösen, indem ich für das highlighting den Suchstring und den anzuzeigenden Content in ein einheitliches Format konvertiere. Diese Konvertierung geschieht nur im Augenblick des Anzeigens, führt also keine Änderungen am Datenbestand aus.

Weiterhin gibt es das Problem, daß die Suche in der Datenbank ('... LIKE ...' auf SQL-Ebene) bei Umlauten je nach Charset nicht automatisch Groß/Klein-Schreibung ignoriert (sprich: Suche nach "änder" findet zwar 'ändern' aber nicht 'Änderung').
Auch das habe ich nun gelöst, indem wiederum Suchstring und $text in der Datenbank in ein einheitliches Format gebracht werden.  [Zur Erinnerung: die Tabelle 'mod_wysiwyg' enthält u.a. die Felder 'content' und 'text'. 'content' ist das, was der User eingibt, also der Inhalt der Seite, 'text' ist eine Kopie von 'content' ohne HTML-Tags, also reiner Text. Wobei das Feld 'text' ausschließlich für die Suche benutzt wird.] Und eben dieses Feld 'text' bringe ich nun in ein einheitliches Format.
Das hat keinen negativen Einfluß auf bestehende Seiten, aber in neuen Seiten wird die Suche unabhängig vom Charset und benutzten Editor einfach zuverlässiger funktionieren.

Damit funktioniert Suche und Highlighting nun endlich so, wie es von Anfang an hätte sein sollen  :wink:



Bei der Gelegenheit habe ich auch noch für die Dateinamen-Generierung in der convert.php in der kyrillischen Transliterations-Tabelle fehlende Zeichen ergänzt.

MfG, thorn

Edit: Endgültige Fassung siehe Reply #34.
Title: Re: WebsiteBaker und Chinesisch
Post by: ruebenwurzel on April 10, 2007, 12:45:50 PM
Hallo,

hab mir das gestern mal kurz angeschaut und da sind dann doch wieder einige größere Änderungen gemacht worden. Insbesondere hast du wieder die modules/wysiwyg/save.php mit aufgenommen. Gibt es einen Grund dafür?
Kann ich jetzt davon ausgehen, dass dies die endgültig Lösung ist, oder sollte ich noch ein paar posts warten, bis ich die Änderungen auf SVN veröffentliche?  :?

Matthias
Title: Re: WebsiteBaker und Chinesisch
Post by: thorn on April 10, 2007, 07:30:46 PM
Insbesondere hast du wieder die modules/wysiwyg/save.php mit aufgenommen. Gibt es einen Grund dafür?
Ja, ich bringe darin das Feld 'text' - das nur zum suchen benutzt wird - in eine einheitliche Form. Nur so arbeitet die Suche zuverlässig, unabhängig von Umlauten/Entities oder Groß-/Klein-Schreibung.

Kann ich jetzt davon ausgehen, dass dies die endgültig Lösung ist, oder sollte ich noch ein paar posts warten, bis ich die Änderungen auf SVN veröffentliche?  :?
:oops: Das ist jetzt so endgültig fertig. In den letzten Tagen ausgiebig getestet, mit den unterschiedlichsten Charsets, und Suche und Highlighting funktionieren damit nun tadellos.

MfG, thorn.
Title: Re: WebsiteBaker und Chinesisch
Post by: ruebenwurzel on April 10, 2007, 08:23:51 PM
Hallo,

Quote
Das ist jetzt so endgültig fertig
Na denn  :-D

Hier die Änderungen im SVN:
http://projects.WebsiteBaker.org/websitebaker2/changeset/445

Im Anhang eine gezipte Datei mit allen benötigten Dateien aus dem SVN. Einfach entpacken und über die bestehenden WB 2.6.5 Dateien drüberkopieren.

Viel Spaß

Matthias

@thorn
kannst du all deine verschiedenen angehängten Dateien bitte mit dem Hinweis löschen, dass es die aktuellsten Files hier gibt. Danke

Edit:
Removed the attachement cause it includes outdated files. The newest files you got on the projects page (SVN) or wait till 2.6.6 is released.
Title: Re: WebsiteBaker und Chinesisch
Post by: Nobody on April 11, 2007, 11:22:43 PM
Kurze Frage: Muss ich auch hier eine Klasse in der .css festlegen oder reicht es, wenn ich die Dateien auf dem Server ersetze? Falls ich eine Klasse eintragen muss, gibt es da einen bestimmten Namen, den ich verwenden muss oder irgendwelche Werte?
Title: Re: WebsiteBaker und Chinesisch
Post by: ruebenwurzel on April 11, 2007, 11:27:08 PM
@nobody

Quote
Kurze Frage: Muss ich auch hier eine Klasse in der .css festlegen oder reicht es, wenn ich die Dateien auf dem Server ersetze? Falls ich eine Klasse eintragen muss, gibt es da einen bestimmten Namen, den ich verwenden muss oder irgendwelche Werte?

Irgendwie hab ich vermuted, dass du sowas fragen würdest  :-D.Füge dem css file deines templates folgendes hinzu:
Code: [Select]
.highlight {
background-color: #0000FF;
}

Als Farbe kannst du wählen was du willst.

Matthias
Title: Re: WebsiteBaker und Chinesisch
Post by: Nobody on April 12, 2007, 09:54:58 AM
Und irgendwie habe ich vermutet, dass du mit wieder helfen wirst ;)