Mehrere Sprachen für eine HP

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mehrere Sprachen für eine HP

    Ich schreib gerade an einem Skript. Dieses Skript will ich in unendlich vielen Sprachen schreiben verfügbar sein.
    Das gesamte Skript besteht aus etwa 12 Seiten. Ich hab jetzt einen Ordner "language" angelegt. In dem Ordner liegen jetzt Dateien wie "lang_german" oder "lang_english". Die Dateien sind wie folgt aufgebaut:
    PHP-Code:
    $lang['menue_titel'] = "Menü";
    $lang['search'] = "Suche";
    $lang['serverlist'] = "Serverliste";
    $lang['new_server'] = "neuer Server";
    $lang['guestbook'] = "Gästebuch";
    $lang['settings'] = "Einstellungen";
    ... 
    In einer DB will ich einen Startwert festlegen bsp: "german". Wenn der User dann in Einstellungen geht soll dort eine Combo Box zur verfügung stehen indem er eine Sprache festlegen kann. Diese Sprache wird dann in einem Cookie gespeichert. Wenn der User dann eine Seite aufruft wird überprüft ob ein Cookie gesetzt wird. Wenn Ja soll seine gewählte Sprachdatei included werden. Wenn nicht soll der der Startwert aus der DB genommen werden. Wie stell ich des jetzt aber an das ich sobald ich eine Sprachdatei in den Ordner "language" lege diese dann auch zur Auswahl stehen soll. Ich mein jetzt das sobald die Datei im Ordner liegt auch in der Combo Box zur Auswahl steht. Wie mach ich sowas? Soll ich das Verzeichnis "language" einfach auslesen, mit split nach _ aufteilen und so die Sprache zur Auswahl stellen oder wie soll ich sowas machen?
    Achja soll man auch bei einer so kleinen Seite die ausgewählte Sprache per Session weiterzugeben oder soll man immer überprüfen ob ein Cookie vorhanden ist oder nicht. Soll man also erst überprüfen ob eine Sessionvariable existiert, wenn dies nicht der Fall ist, ob ein Cookie gesetzt ist und eine Session erzeugen und wenn das nicht der Fall ist in der DB schauen und dann die Session erzeugen.

    Wie macht ihr sowas?

    Mfg Markus

  • #2
    ich würde in der DB eine init schreiben. also alle verfügbaren sprachen dort aufführen und die passende datei für das lang-pack angeben.

    wenn der user eine sprache wählen will, brauchst du das nur aus der DB auslesen.

    das speichern der aktuellen (gewünschten) sprache im cookie ist schon ok.

    das zusätzliche speichern in einer session ist nicht notwendig, da die cookie-daten auch immer mitgesendet werden.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      ...einfach immer ein Cookie speichern, sogar beim Betreten der Seite (Standartsprache Englisch) und ändern kann man das Cookie ja immernoch wenn ne andere Sprache ausgewählt wurde.
      Welch triste Epoche, in der es leichter ist, ein Atom zu zertrümmern als ein Vorurteil!
      (Albert Einstein)

      Kommentar


      • #4
        OK ich dank euch für eure Meinung, ich denk ich mach es per DB. Muss dann halt im Admin Bereich eine "Sprach neuinstallation" schreiben. Wo man die Sprachdatei auswählen kann, den Namen der Sprache hinzuschreibt und fertig, dann brauch ich den Dateinamen nicht noch extra auszulesen und hab auch keine Konflikte mit den Dateinamenskonventionen. Ich dank euch!

        Mfg Markus

        Kommentar


        • #5
          Hab ein Problem mit der Cookie Speicherung.
          Hab mal folgendes geschrieben:
          PHP-Code:
          <?php
          $cookieName 
          "LAN-Search_settings";
          if(@!
          $_POST['settings'])
          {
              
          header ("Location: settings.php");
          }
          else
          {
              
          $language false;
              
          $template false;
              if(isset(
          $_POST['language']))
              {
                  
          $cookieArray[] = $_POST['language'];
                  
          $language true;
              }
              else{echo
          "No Language selected<br>";}

              if(isset(
          $_POST['template']))
              {
                  
          $cookieArray[] = $_POST['template'];
                  
          $template true;
              }
              else{echo
          "No Template selected<br>";}

              if((
          $language == true)&&($template == true))
              {
                  
          $cookieString implode("@@@",$cookieArray);
                  
          setcookie($cookieName,$cookieString,0,"","LAN-Search");
              }
              else
              {
                  
          header ("Location: settings.php");
              }
              
          //header ("Location: settings.php");
          }
          if(isset(
          $_COOKIE[$cookieName]))
          {
              echo 
          "Gesetzt: ".$cookieName."<br>";
              echo 
          $_COOKIE[$cookieName]."<br>";
              
          $cookieArrayRead explode("@@@"$_COOKIE[$cookieName]);
              echo 
          $cookieArrayRead[0]."<br>";
              echo 
          $cookieArrayRead[1]."<br>";
          }
          ?>
          Das ganze funktioniert auch. Letzte if Abfrage wird ohne Probleme ausgeführt aber dennoch kann ich den Cookie nicht im Cookie Verzeichnis von Windows finden ( WinXP-->DokumenteEinstellungen-->User-->Cookie)
          Wird der wo anderst gespeichert oder warum finde ich den net? Hab auch ein Cookie Tool mal ausprobiert aber da steht das Cookie auch nicht drin.

          Mfg Markus

          Kommentar


          • #6
            ich verstehe zwar nicht, warum du unbedingt noch manuell auf die suche nach dem keks gehen willst, wenn es doch funktioniert ... aber wenn es sein muss, dann benutze mal einen browser mit einem ordentlichen cookie-manager wie den mozilla oder opera.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar

            Lädt...
            X