chris_blues: HTML über PHP ausgeben

Beitrag lesen

<p><?php echo htmlspecialchars(translate('Im wahren Warenkorb befinden sich wahre Waren für %1$s Euronen.', $preis)) ?></p>

Wobei die translate-Funktion das Pattern zuerst übersetzt und dann mit allen Parametern an sprintf weitergibt, in etwa so:

function translate ($pattern) {

$options = func_get_args();
    array_shift($options);
    if (isset($translationArray[$pattern])) {
        $pattern = $translationArray[$pattern]
    }
    return sprintf($pattern, $options);
}

  
Ich glaube nicht, daß ich Dir so ganz folgen kann an dieser Stelle. Ist es nicht einfacher, ich habe einen Seitenaufruf:  
beispiel.php?lang=deutsch  
Dann steht ganz vorne `$lang=$_GET["lang"];`{:.language-php}  
dann `include("locale/$lang.php");`{:.language-php}  
und im Inhalt dann schließlich:  
`<p><? echo "{$loc_lang["im_warenkorb_befinden_sich_1"]} $preis {$loc_lang["im_warenkorb_befinden_sich_2"]}"; ?></p>`{:.language-php}  
Wobei in "locale/$lang.php" immer das selbe Array aufgebaut wird, nur mit anderen Werten/Inhalten, verschiedene Sprachen halt.  
  
Das ist jedenfalls der Ansatz mit dem ich angefangen habe. Simplistisch halt.  
  
Mit Deiner Methode, so scheint mir jedenfalls, ist ein nicht ganz unerheblicher Programmieraufwand verbunden, oder versteh ich hier irgendwas falsch?  
Man übergibt der function translate den gewünschten Text, Dann wird in einem Array, was wohl alle Sprachen beinhalten muß nach der Entsprechung gesucht und das ganze dann an echo geschickt. Korrigier mich, wenn ich da was vermurkse! :)  
Das würde aber bedeuten, daß ich alle! Sprachen in einem Array haben muß, was bei 2 Sprachen vllt nicht so wild ist, aber bei vielen Sprachen ganz schön gigantisch werden dürfte. Und das muß ich ja bei jeder Seite neu laden. Ist da nicht der Ansatz, ein Array zu haben, wo nur die geforderte Sprache drin ist, einfacher und ressourcenschonender?  
  
Aber danke für deinen Input!  
chris