verschiedene Sprachen

Pherseus

Erfahrenes Mitglied
Hi,

ich würde gerne meinem Script verschieden Sprachen verpassen. Allerdings bräuchte ich da noch ein paar tips wie ich das am besten mache.

Derzeit habe ich mir überlegt, dass ich die entsprechenden Texte in XML-Files speichere.
In den Tempaltes füge ich dann platzhalter ein die dann durch die entsprechenden Texte der Sprache im XML-File ersetzt werden. Um diese zu ersetzten würde ich mir dann eine PHP-Klasse schreiben die das XML-File durchsucht und dann in das Template enstsprechend einfügt.
Wäre das so okay oder sollte ich lieber einen anderen weg wählen. Und dann stellt sich auch noch die frage, ob ich die Templates jedes mal neu durchsuche und ersetzte oder ob ich besser die Templates einmal durchlaufen lasse und ersetzte und dann eine art Cache erstelle in dem dann die Templates für die entsprechenden Sprachen drin liegen.
 
ich glaube du denkst zu komliziert :)

lang.php
PHP:
<?
$lang['bla']='blaxxxx';
$lang['bla_2']='bla 2';
// ect
?>

<?
function lang(){
 global $lang,$template;
 foreach($lang as $k=>$v){
  $template->assign_vars(array("L_".$k=>$v));
 }
}
?>

daruch ersetzt der script {L_bla} durch "blaxxxx"

natürlich musst du die template zeile an deine template-klasse anpassen. ich hoffe das war ein stoss in die richtige richtung :)
 
Hallo,

die Variante von Alex würde reichen, wenn man immer nur ganz kleine und wenige Texte/Zeilen hätte. Wenn man aber längere Texte hat, sollte man das vielleicht so machen, wie du (Pherseus) das vorgeschlagen hattest (also XML-Files), oder ich würde das sogar mit ner Datenbank machen. Geht vielleicht etwas schneller und ist auch nicht so aufwendig.

MfG
 
Also bei grossen Textfiles (z.B. Hilfe) kann man doch so machen.

PHP:
if($lan=='de'){
 $file="help_de.html";
}elseif($lan=='en'){
 $file="help_en.html";
}

oder gleich so
PHP:
$file="help_".$lan.".html";

Aber extra XML oder DB Verbindung würde ich dafür nicht einrichten.
 
Zurück