Language-Seite extern öffnen

Airis

Erfahrenes Mitglied
Hallo Zusammen,

kann mir jemand sagen, wie ich einen Link schreiben muss, um von einer mehrsprachigen Webseite eine bestimmte Seite in einer bestimmten Sprache zu öffnen:
Die Sprache wird in der Webseite mit Sessions übergeben.
Da ich noch lokal arbeite, habe ich es folgendermaßen im Browser probiert:
Die Seite kommt allerdings in deutsch. Was muss ich in meimem Adress-Aufruf oder in der augerufenen Seite ändern?

Viele Grüsse aus Frankreich
Airis
 
Hallo!

Also wenn "lang" und "en" die übergebenen Variablen sind, dann ist die Adresse so richtig.
Das Problem muss also woanders liegen.

[edit] Wenn die Variablen per $_GET übergeben werden. [/edit]

Gruss Dr Dau
 
Zuletzt bearbeitet:
Hallo Dr Dau,

ich habe jetzt einiges probiert, allerdings ohne Erfolg. Bei anderen Seiten ist es das Gleiche, es kommt immer die deutsche "Version".
Ich möchte eigentlich später nur in einem Mail einen entsprechenden Link zu einer Seite in der jeweiligen Sprache setzen.

Hier mal meine "functions.inc.php":
PHP:
<?php
//========================
// functions.inc.php
//========================
session_start();
if ($_GET["change"] == 1) $_SESSION["lang"] = (isset($_GET["lang"]))?$_GET["lang"]:"de";
switch ($_SESSION["lang"]) {
case "de": include("languages/de/langDE.inc.php");
break;
case "en": include("languages/en/langEN.inc.php");
break;
case "es": include("languages/es/langES.inc.php");
break;
case "fr": include("languages/fr/langFR.inc.php");
break;
default: include("languages/de/langDE.inc.php");
break;
}
?>

Vieleicht muss ja hier etwas geändert werden? In der Webseite übergebe ich die jeweilige Sprache in einer Session.
Nun dachte ich mein Link mit der Endung "....?lang=en" würde mich zur englischen Version bringen, aber es geht so anscheinend nicht.
Vieleicht hast Du noch eine Idee, woran es liegen könnte.

Viele Grüsse aus Frankreich
Airis
 
Hmm, viel fällt mir aber nicht ein, soweit bin ich noch nicht.
Aber was Du mal testen könntest, bei der if Abfrage einfach mal mit anderen Sprachen statt "de" probieren.
Ich habe aber irgendwie das Gefühl dass dort was ganz anderes hin muss?!
Weil, Du hast bei else als "de" genommen, Du hast aber auch als default "de" genommen, ist dass nicht doppelt gemoppelt?
 
Hallo Dr Dau,

ja Deine Idee war gut.
Das Problem kommt tatsächlich vom "default ".
Da ja in meinem Fall keine Sprache aus der Session herangezogen werden kann, zieht eben "default" und es wird die Sprache genommen, die hier steht.
Nur wie bekomme ich mein Problem in den Griff?

Viele Grüsse aus Frankreich
Airis
 
Hallo fanste,

Woher kommt $_GET["change"]?

Ich weis es nicht mehr genau,irgendwo springe ich zwischen den Seiten und die Language wurde noch nicht übergeben, aus diesem Grunde kam ich mittels Forum zu dieser Lösung.
Ich habe es gerade mal ohne probiert und die Seite wird korrekt in der entsprechenden Sprache ausgegeben.

Kann man es trotz $_GET["change"]? auch hinbekommen?

Viele Grüsse aus Frankreich
Airis
 
Ich denke mit $_GET["change'"] wird abgefragt ob überhaupt eine Sprache gewählt wurde.... und wenn ja, wird dann gefragt welche Sprache gewählt wurde.
Guck mal was passiert wenn Du default und das letzte break auskommentierst.

Und wenn dass nicht geht, dann aktiviere default und break wieder und nehme dafür mal das de raus, aber die "" lassen.
 
Hallo Dr Dau,


Guck mal was passiert wenn Du default und das letzte break auskommentierst.

Es wird die Seite geladen, allerdings ohne die entsprechenden Werte der Konstanten und es kommt folgende Meldung:
Warning: main() [function.include]: Failed opening '' for inclusion (include_path='.;D:\1server\xampp\php\pear\') in D:\1server\xampp\htdocs\languages\functions.inc.php on line 22

Wenn ich das probiere:
Und wenn dass nicht geht, dann aktiviere default und break wieder und nehme dafür mal das de raus, aber die "" lassen.
passiert das Gleiche, allerdings ohne Meldung.

Eine Idee?

Viele Grüsse aus Frankreich
Airis
 
Zurück