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 15:05:03 CEST 2007


Lutz Zetzsche schrieb:
> Hallo Ringo,
> 
> Am Freitag, 26. Oktober 2007 schrieb Ringo Großer:
>> Ist sprintf an die Lokalisierung angebunden? Im Quercus [1] wird
>> nämlich explizit auf diesen Umstand eingegangen:
>>
>> "The most noticeable difference is that printf is not used anymore
>> and that "%d%d%d" has been changed to "[_0]/[_1]/[_2]". Because
>> printf placeholders are not unique and their positions may change in
>> another language, we cannot use printf. Instead, we use Quercus
>> gettext ordered placeholders."
> 
> ok, das ist natürlich ein Punkt. Änderst Du bei printf() sprachabhängig 
> die Reihenfolge der Platzhalter, mußt Du auch die Reihenfolge der 
> Parameter ändern, die Du übergibst. Das stimmt.
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?

ciao

ulf

[1] http://www.php.net/manual/de/function.sprintf.php
- siehe 'Argumente tauschen'

php::bar PHP Wiki   -   Listenarchive