Hallo
include 'language/'.$language.'/lang_seite.php';
Wie befüllst du die Variable $language
?
auf der Seite selber werden sie dann so ausgegben:
echo '<label> '$_lang['city'].'</label>';
Bitte nicht so. Auch wenn du glaubst, den Inhalt der Sprachdateien unter deiner Kontrolle zu haben, muss zum Sicherheitskonzept deiner Anwendung die kontextgerechte Maskierung der mit Code eingefügten Inhalte gehören.
echo '<label> '. htmlspecialchars($_lang['city']) .'</label>';
So wird ein Schuh draus.
Bis hier her funktioniert alles gut. Doch im laufe der Jahre sind die Sprachdatei immer wieder erweitert worden. in den deutschen sind alle da, doch bei den weiteren Sprachen kann es sein, das die ein oder andere einmal fehlt. Jetzt kommt meine Idee. Wenn eine Sprachvariable fehlt, sollte automatisch die variable aus dem deutschen Verzeichnis eingeblendet werden.
Ich habe das in einem kleinen Projekt so gelöst: Es wird immer eine Standardsprachdatei geladen. Das ist die, in der immer alle Textschnipsel vorhanden sind. Die liegen, wenn eingelesen, wie bei dir als PHP-Array vor. Wird vom Nutzer eine andere Sprache angefordert, wird die entsprechende Sprachdatei geladen und die in dieser Sprachdatei existierenden Array-Elemente überschreiben die aus der Standardsprachdatei. Jene Elemente, die in der als zweiter geladenen Datei nicht existieren, behalten so ihren Standardwert aus der ersten Sprachdatei.
Tschö, Auge
Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
Terry Pratchett, „Gevatter Tod“