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 16:51:10 CEST 2007


Hallo Ulf

Ulf Seltmann wrote:
> Das stimmt nicht. Sowie bei printf() als auch bei sprintf() lässt sich 
> die Reihenfolge der Platzhalter bestimmen. Das geht auch aus der 
> PHP-Manual hervor [1].
> So wäre der Platzhalter '%1$d' immer das erste Argument nach dem 
> angegebenen String. Mehrfachverwendung geht natürlich auch:
> 	printf('First comes %1$s then %2$s, and not first %2$s and then 
> %1$s','foo','bar');
> 
> oder hab ich was falsch verstanden?


Im angegebenen Beispiel im Manual werden die $ mit einen Backslash 
escaped. In deinem Beispiel lässt du die Backslashes weg. Ist dies dem 
Unterschied zwischen Strings in einfachen und doppelten 
Anführungszeichen geschuldet?

Folgendes funktioniert zwar
printf(gettext('today is %1$s/%2$s/%3$s'), $month, $day, $year);
sieht aber insgesamt etwas unübersichtlich aus.

Ich hab mir da jetzt nochmal eine eigene Funktion drumherum gebaut, um 
die Parameter im String etwas lesbarer unterzubringen und komfortabler 
übergeben zu können. So etwa in dieser Art:

translate('today is [_0]/[_1]/[_2]', $month, $day, $year);

Trotzdem vielen Dank für deinen Hinweis.

regards, Ringo

php::bar PHP Wiki   -   Listenarchive