Mehrsprachige Seite - Include Problem

qsrs

Erfahrenes Mitglied
Hallo,

ich verwende eine relativ einfache Methode, um mehrere Sprachen einer Webseite zu realisieren. Allerdings taucht dabei ein Problem auf, und ich komme nicht darauf, woran es liegen könnte. Ich weiß, dass es hier sicher bessere Lösungen gibt, mich würde jedoch interessieren, wo hier der Fehler liegt. Ich verwende folgendes Skript:

PHP:
session_start();
 
$client_language = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
 
//Prüfen, ob Wert per GET übergeben wurde
if (!empty ($_GET['language'])) {
 $language = $_SESSION['language'] = $_GET['language'];
 }
//Prüfen, ob Wert bereits in $_SESSION['language'] steht
elseif (!empty ($_SESSION['language'])) {
 $language = $_SESSION['language'];
 }
//Falls keines der oberen zutrifft, prüfe Sprache des Browsers
else {
 if ($client_language == "de") {
  $language = "German";
  }
 else {
  $language = "English";
  }
 }
 
//Include
if ($language == "German") {
 include ("library/languages/German.php");
 }
else {
 include ("library/languages/English.php");
 }
echo $language['1'];

in $language['1'] stehen in der Sprachdatei jeweils die Texte. Das Problem: Es wird zwar die richtige Datei per include einbezogen, die Session funktioniert, es wird aber nur der erste Buchstabe des Textes augegeben. Sowohl wenn ich auf Englisch, als auch auf Deutsch schalte. Woran könnte das liegen?
 
PHP:
//Include
if ($language == "German") {
 include ("library/languages/German.php");
 }
else {
 include ("library/languages/English.php");
 }
echo $language['1'];

in $language['1'] stehen in der Sprachdatei jeweils die Texte. Das Problem: Es wird zwar die richtige Datei per include einbezogen, die Session funktioniert, es wird aber nur der erste Buchstabe des Textes augegeben. Sowohl wenn ich auf Englisch, als auch auf Deutsch schalte. Woran könnte das liegen?

Wenn du in den inkludeten Dateien die Variable $language nicht überschreibst, was aus dem Code nicht ersichtlich ist, beinhaltet diese Variable keinen Array, sondern ein String(German/English)

Wenn du per Array-Methode auf einen String zugreifst, liefert dir das dann halt den xten Buchstaben.
 
Zurück