Dieter Raber: gettext emulator, htmlentities, utf-8

Beitrag lesen

Hallo,

Beim folgenden Problem beziehe ich auf die in Europa gaengigen Sprachen, also auch z.B. Tuerkisch und Russisch, sodass der Latin-1-Zeichensatz nicht ausreicht. Sprachen, deren Zeichensaetze voellig anders funktionieren, wie Arabisch oder Japanisch koennen erst mal aussen vor bleiben.

Weil das GNU-Utility gettext bei den meisten Providern nicht installiert ist, habe ich eine  Klasse in PHP geschrieben die es zumindest teilweise emuliert. Im Prinzip wird dabei ein .po-File geparst alle msgid kommen in ein Array, alle msgstr in einen zweiten. Dem Header kann ich entnehmen, wie die Datei kodiert ist. Probleme entstehen dann, wenn ich htmlentities() mit der gefundenen Codierung als drittes Argument benutze (merkwuerdige Zeichen werden ausgegeben).

Ich ueberlege jetzt, die Uebersetzung unhtmlentisiert zurueckzugeben und grundsaetzlich sowohl fuer die .po-Dateien als auch die HTML-Seite UTF-8 vorzuschreiben. Nach meinem Verstaendnis erlaubt UTF-8 im HTML-Quelltext auch die Verwendung von Sonderzeichen, Umlauten etc.

Sehe ich das mit UTF-* richtig und wenn nicht, weiss jemand eine Loesung fuer das htmlentities-Problem?

Dieter