phpbar.de logo

Mailinglisten-Archive

[php] gettext mit verketteten Strings und Parametern

[php] gettext mit verketteten Strings und Parametern

Ringo Großer swek at gmx.net
Fre Okt 26 14:13:34 CEST 2007


Hallo Liste

Nachdem wir uns einen etwas stabileren eigenen gettext Parser 
geschrieben haben, sind wir noch auf ein paar Besonderheiten in den zu 
parsenden Quelltexten gestoßen. Die Dokumentationen zu diesem Thema sind 
leider kaum verfügbar, daher frag ich hier nochmal nach, ob jemand schon 
direkt eine Antwort geben kann.

Die Anwendung der Funktion gettext ist auf folgende Weise denkbar:

<?php
gettext('you have ' . $numEmails . ' emails');
?>

Was müsste der Parser ins .po File als msgid übernehmen? Ist das 
überhaupt valide?


Gettext sieht wohl eigentich auch die Verwendung von Parametern vor:

<?php
gettext('you have [_0] emails', $numEmails);
?>

Auf diese Verwendung geht unter anderem das Quercus Projekt [1] ein.
Allerdings steht der dort gezeigte PHP-Quellcode im Widerspruch zum 
Manual auf php.net [2] und zu meinen lokalen Tests mit einem PHP 5.2.1.

Ein User-Comment im Manual geht auf den Umstand wie folgend ein:
"It appears that this version of gettext() is lame and doesn't support 
[_1] and [_2] ... modifier/parameters."
und bietet gleich einen Hack an.

Aber muss das sein? Wie ist das in diesem Quercus Projekt gelöst? Dort 
werden ja auch wie selbstverständlich die nativen Funktionen inklusive 
Argumente verwendet.
Wenn selbst PHP5 das aber nicht wirklich unterstützt, dann weiß ich auch 
nicht weiter.

Hat da jemand von euch ein paar Hinweise oder genauere Informationen?
Danke im Voraus.

regards, Ringo


[1] http://www.caucho.com/resin-3.1/examples/quercus-gettext/index.xtp
[2] http://de.php.net/manual/en/function.gettext.php

php::bar PHP Wiki   -   Listenarchive