PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] Umlaute und gettext



kip
07.10.2005, 11:48
Hallo,

ich habe ein PHP-Projekt mit Smarty (http://smarty.php.net) und gettext-Plugin realisiert. Die Strings in den Smarty-Templates sind in deutscher Sprache verfasst. Nun soll das Projekt auch auf englisch verfügbar gemacht werden. Ich habe mir also die entsprechende po-Datei generiert, die englische Übersetzung dafür gemacht usw ...

Es funktioniert soweit auch. Alle Texte des Projekts in denen keine Umlaute vorkommen werden ins englische Übersetzt. Sobald aber ein Umlaut in der msgid ist, wird die Übersetzung einfach ignoriert => also wohl nicht gefunden ...

Die po Datei habe ich als utf-8 gespeichert und msgfmt bringt mir auch keinen Fehler ... die Smarty-Templates sind in ISO-8859-15 gespeichert und der HTML Content-Type steht auch auf ISO-8859-15 ...

Um es nochmal zu verdeutlichen:

gettext("Das ist ein Test"); <-- wird übersetzt
gettext("Das ist ein Test mit Umlauten wie ä, ö, ü"); <-- wird nicht übersetzt

Dabei ist das ganze ein PHP/Gettext Problem ... habs auch mal ohne Smarty-Template versucht ...

kann mir da wer helfen? bin langsam am verzweifeln ...

viele grüsse,
dennis

Spooky80
23.01.2006, 13:39
Hallo dennis,

ich habe genau das gleiche Problem wie du. Sobald in einem String ein Umlaut ist, wird der ganze String nicht übersetzt.
Es ist ja mittlerweile schon etwas her, hast du vielleicht eine Lösung gefunden? Für eine Antwort wäre ich Dir sehr dankbar! :hilfe2:

Gruß Christian

kip
30.01.2006, 15:03
hallo :)

ja, mittlerweile läuft die sache .. aber ich kann dir nicht wirklich sagen warum ;).

Ich habe die .po Datei nun in eine iso-8859-15 datei gewandelt und im php script folgenden code:



$gtdom = "messages";
bindtextdomain($gtdom, $_SYSTEM['unix']."/locale/");
bind_textdomain_codeset($gtdom, 'ISO-8859-15');
textdomain($gtdom);


und so funktioniert das ganze ... woran es aber genau lag weiß ich leider auch nicht.

etxe
27.04.2006, 16:01
hallo :)

ja, mittlerweile läuft die sache .. aber ich kann dir nicht wirklich sagen warum ;).

Ich habe die .po Datei nun in eine iso-8859-15 datei gewandelt und im php script folgenden code:



$gtdom = "messages";
bindtextdomain($gtdom, $_SYSTEM['unix']."/locale/");
bind_textdomain_codeset($gtdom, 'ISO-8859-15');
textdomain($gtdom);


und so funktioniert das ganze ... woran es aber genau lag weiß ich leider auch nicht.

hallo!

ich hab momentan genau das gleiche problem und komme nicht zu einer lösung! ich hab wie beschrieben ebenfalls den zeichensatz auf iso-8859-15 umgestellt...jedoch ohne erfolg.

weiss darüber jemand mehr?

mfg