phpbar.de logo

Mailinglisten-Archive

[php] gettext mit verketteten Strings und Parametern

[php] gettext mit verketteten Strings und Parametern

Ulf Seltmann seltmann at digitalzone.de
Fre Okt 26 17:18:53 CEST 2007


Ringo Großer schrieb:
> Hallo Ulf
> 
> 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?
Ja. Wenn ein $ in einem String begrenzt von doppelten Anführungszeichen 
steht, wird eine Variable erwartet, die durch deren Wert ersetzt werden 
will. In dem Fall muss das $ maskiert werden.

> 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);
Ok, jeder wie er will. Allerdings wäre es mir zuviel Aufwand mich noch 
um Sonderfälle zu kümmern, z.B. wenn du wirklich mal die 
Platzhalter-Syntax im String ausgeben willst. Sowas ist bei den 
Standardfunktionen schon berücksichtigt und bekommen bei mir - schon 
allein, weil ich mich nicht um die Wartung kümmern muss - den Vorrang.

ciao

ulf

php::bar PHP Wiki   -   Listenarchive