Struppi: sprintf ein array übergeben.

Beitrag lesen

mal blöd gefragt: was in Worten willst Du denn erreichen?

Ich möchte erreichen, dass ich Texte u.U. in verschiedenen Sprachen einsetzen kann. Ich könnte natürlich auch gettext verwenden, aber da ich das nur für eine kleine Sache zum lernen einsetzen will, wollte ich mir keinen allzu grossen Aufwand machen.

vsprintf ist dafür auch genau die Lösung:

class Texte {  
var $msg = array(  
  'text1' => 'Der Text: %s',  
  'text2' => 'Der Text %s hat %s Zeichen.'  
);  
  
function _() {  
 $args = func_get_args();  
 $what = array_shift($args);  
 return vsprintf($this->msg[$what], $args);  
 }  
}  
  
$t = new Texte();  
$string = 'Hallo Welt!';  
echo $t->_('text1', $string);  
echo $t->_('text2', $string, strlen($string));  

$msg muss man natürlich auslagern z.b. msg.de.php oder msg.en.php usw. wobei mir aber noch nicht klar ist wie das mit PHP am besten geht

Struppi.