Dirk: Eine HTML Seite mit mehreren Sprachen durch Parameter steuern

hallo
wie kann ich denn am einfachsten eine html seite schreiben und durch einen parameter eine sprache auswählen lassen.
damit ich nciht für jede sprache ine extra html seite schrieben muss.
beispiel:
www.test.de/info.html?en;
www.test.de/info.html?de;
www.test.de/info.html?fr;
danke schonmal

  1. hallo
    wie kann ich denn am einfachsten eine html seite schreiben und durch einen parameter eine sprache auswählen lassen.
    damit ich nciht für jede sprache ine extra html seite schrieben muss.
    beispiel:
    www.test.de/info.html?en;
    www.test.de/info.html?de;
    www.test.de/info.html?fr;
    danke schonmal

    Moin

    Du musst due get variablen checken.
    Alles was du an die seite per get überträgst kommt im script in nem array an ( $_GET bzw $_POST )

    du könntest zb. nen link machen, www.bla.de/index.php?lang=de
    dann hast du in dem script die variable $_GET["lang"] mit dem inhalt de.

    das lässte durch nen switch laufen und includest zb dann die conig.de.cfg.

    *snipp*

    switch($_POST["lang"]) {
          case 'de':
             include('config.de.php');
          break;
          case 'en':
             include('config.en.php');
          break;
          default:
             include('config.de.php');
    }

    index.php?lang=en würde also die englische datei laden...

    hoffe das hilft (nich getestet da oben, könnte nen denkfehler drinn sein)

    1. Hallo AnalphaBestie,

      Du musst due get variablen checken.
      Alles was du an die seite per get überträgst kommt im script in nem array an ( $_GET bzw $_POST )

      wenn du etwas per GET überträgst, landet es in $_GET und nicht in $_POST - aber nur, wenn du ein php-Script aufrufst und so wie ich Dirk verstanden habe, hat er reine html-Seiten.

      du könntest zb. nen link machen, www.bla.de/index.php?lang=de
      dann hast du in dem script die variable $_GET["lang"] mit dem inhalt de.

      ohne 'lang=' geht es auch - wenn du die datei mit foo.php?de aufrufst, steht in $_SERVER['QUERY_STRING'] der String 'de' drin.

      switch($_POST["lang"]) {

      das wird nicht funktionieren, wenn du das Script per GET aufrufst - dann ist $_POST nämlich nicht gesetzt.

      case 'de':
               include('config.de.php');
            break;
            case 'en':
               include('config.en.php');
            break;

      das geht einfacher:

      if(!in_array($_GET['lang'],array('de','en'))) $_GET['lang'] = 'de';
       include('config.'.$_GET['lang'].'.php');

      (ich hofffe, ich habe da jetzt keinen Fehler eingebaut :-))

      Grüße aus Nürnberg
      Tobias

      --
      Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
      1. Hallo AnalphaBestie,

        $_POST - aber nur, wenn du ein php-Script aufrufst und so wie ich Dirk verstanden habe, hat er reine html-Seiten.

        Mit reinem HTML seiten ist es eigentlich fast gar nicht möglich, es sei denn mit Apache - glaub das geht irgendwie.

        du könntest zb. nen link machen, www.bla.de/index.php?lang=de
        dann hast du in dem script die variable $_GET["lang"] mit dem inhalt de.
        ohne 'lang=' geht es auch - wenn du die datei mit foo.php?de aufrufst, steht in $_SERVER['QUERY_STRING'] der String 'de' drin.

        switch($_POST["lang"]) {
        das wird nicht funktionieren, wenn du das Script per GET aufrufst - dann ist $_POST nämlich nicht gesetzt.

        Ok,ok,ok hast mich erwischt.

        switch($_GET["lang"]) {
              case 'de':
                 include('config.de.php');
              break;
              case 'en':
                 include('config.en.php');
              break;

        »»

        das geht einfacher:

        if(!in_array($_GET['lang'],array('de','en'))) $_GET['lang'] = 'de';
         include('config.'.$_GET['lang'].'.php');

        Jo, funzt sicher auch ;)
        Ich weiss man müsste eigentlich auch noch überprüfen ob $_GET["lang"] existiert, allerdings war das halt die kurzform.
        Quick & dirty sozusagen ;)

        Grüße aus Nürnberg
        Tobias

        Mfg AnalphaBestie

  2. Hallo Dirk,

    wie kann ich denn am einfachsten eine html seite schreiben und durch einen parameter eine sprache auswählen lassen.

    mit reinen html-Dateien: garnicht.
    HTML ist keine Programmierprache, und kann deswegen auch nicht irgendwelche Parameter reagieren.

    damit ich nciht für jede sprache ine extra html seite schrieben muss.

    ähh... für verschiedene Sprachen brauchst du doch verschiedene Dateien - da die ja vermutlich einen anderen Inhalt haben sollen. Wenn du aber irgendeine serverseitige Programmiersprache zur Verfügung hast, könntest du den Anfang und das Ende der Datei jeweils einbinden, bzw. den Inhalt je nach Sprache einbinden.

    www.test.de/info.html?en;
    www.test.de/info.html?de;
    www.test.de/info.html?fr;

    wenn du einen Apachen verwendest, und das Fragezeichen durch einen Punkt ersetzt, hilft dir vielleicht http://aktuell.de.selfhtml.org/artikel/server/alt-http/index.htm#a5. So ganz klar ist mir aber noch nicht, was du eigentlich machen willst - vielleicht beschreibst du es nochmal etwas genauer.

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|