PHP5 / gettext

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Ab7zCh3kR
Beiträge: 10
Registriert: 26.04.2003 10:11:32
Kontaktdaten:

PHP5 / gettext

Beitrag von Ab7zCh3kR » 21.01.2006 14:40:25

Hallo,

Da ich so langsam am Verzweifeln bin suche ich hier mal wieder nach Hilfe ;)

Ich habe eine Web-Anwendung in PHP5 geschrieben. Für die Verwaltung der Übersetzungen nutze ich die gettext-Extentsion von PHP. Im Prinzip funktioniert das Übersetzen mit gettext. Nur wenn der String Umlaute wie ä,ö oder ü enthält verweigert gettext die Arbeit. Es wird in diesem Fall der String aus dem Quelltext angezeigt. Was könnte hier das Problem sein?

Die Locales scheinen mir korrekt installiert zu sein, die .mo Dateien für gettext sehen auch gut aus (sonst würden die anderen Texte ja auch nicht übersetzt werden). So langsam gehen mir die Ideen aus.

Googlen zum Thema brachte bislang keine brauchbaren Ergebnisse. Ich fand nur TIpps für das Problem, dass Umlaute nicht korrekt angezeigt werden. Mein Problem scheint aber auf einer anderen Ebene zu liegen. Das Problem tritt auch nur(!) auf unserem Debian-Server auf, deshalb der Hilferuf hier. Ich habe die Anwendung auf anderen Systemen (Windows und Gentoo) getestet und konnte o.g. Problem nicht feststellen.

Fakten zum Server:
- Debian Sarge (mit allen aktuellen Updates)
- Apache 2 Webserver
- PHP 5.0.5-Debian-0.8 (es macht keinen Unterschied ob PHP als CGI oder Apache Modul läuft)

Ciao, Ab7zCh3kR
The last good thing written in C was Franz Schubert's Symphony No. 9.

C167
Beiträge: 468
Registriert: 06.04.2006 08:55:20
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von C167 » 06.04.2006 11:28:25

in HTML müssen Umlaute normal als solche gekennzeichnet werden, ein ü macht ein ü, ein Ü macht ein Ü. vielleicht hilft das
hast du evtl. irgendwelche How2s, die den Einsatz von gettext bei PHP erklären? wäre interessiert

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 06.04.2006 12:45:01

Wenn du den charset im HTML-Dokument korrekt angibst, musst du die Umlaute nicht mehr umkodieren: z.B.

Code: Alles auswählen

meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Welche locales hat der Server denn gesetzt? Eventuell liegt ja hier das Problem.

Ab7zCh3kR
Beiträge: 10
Registriert: 26.04.2003 10:11:32
Kontaktdaten:

Beitrag von Ab7zCh3kR » 06.04.2006 18:42:02

Danke für die Anworten. Das Problem hat nichts mit den HTML-Kodierungen zu tun, sondern ist ein grundlegendes und z.B. hier genauer erklärt.

@C167: Gettext in PHP ist recht einfach zu handhaben, siehe hier oder auch da.

Ciao, Ab7zCh3kR
The last good thing written in C was Franz Schubert's Symphony No. 9.

Antworten