Mailinglisten-Archive |
Am Donnerstag, 6. Dezember 2001 10:54 schrieben Sie:
> tmd> das erscheint mir aber alles nicht elegant genug :) wie löst ihr das
> in tmd> euren projekten?
> hi,
> ich hoffe, dass wir das gleiche meinen!!!!
> alle sprachkonstrukte werden dabei in arrays gespeichert und durch den
> parameter "$language" zur Laufzeit ausgegeben.
>
>
> if(empty($language)) $language = 'de';
> $hasentered[$language] = "$chatuser in deutscher sprache";
> $hasentered[$language] = "$chatuser in englischer sprache";
> $hasentered[$language] = "$chatuser in spanischer sprache";
> .
> .
> .
>
> $msgsent[$language] = "du hast eine nachricht an $msgto geschickt";
> .
> .
> $msgrec[$language] = "$msgfrom hat dir um $sentdate folgende nachricht
> geschickt";
ich habe ein zweidimensionales Array:
Dimension eins wählt die Sprache, Dimension zwei den String anhand eines
identifiers.
$string = $lang[ 'de' ][ 'identifier' ];
Im String sind nun Platzhalter für Varibalen:
"Jetzt kommt der Platzhalter %%1, und hier noch einer %%2"
mit folgender funktion benutze ich das:
function i18n( $key )
{
global $lang,$language;
$result = isset( $lang[ $language ][ $key ] ) ? $lang[ $language ][ $key ] :
'Unknown text string in language file: ' . $key;
$array = func_get_args();
unset( $array[ 0 ] );
foreach( $array as $key => $value )
{
$result = str_replace( "%%$key", $value, $result );
}
return $result;
}
Damit hast du eine unbegrenzte anzhal an Parametern für den String.
Gruss,
Michael
--
Bremische Hafenvertretung e.V. tel: +49 (421) 3090148
IT-Abteilung fax: +49 (421) 3090150
World Trade Center Bremen mail: mkoch_(at)_bremen-ports.de
Birkenstrasse 15 www: http://www.bremen-ports.de
D-28201 Bremen
php::bar PHP Wiki - Listenarchive