Mehrsprachig

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

  • Mehrsprachig

    Ich möchte eine Mehrsprachige seite machen, bei der mann über ein dropdownmenu oder einen Link die sprache wechseln kann.

    dabei soll mann jeweils auf der aktuellen seite in der anderen sprache landen.

    die sprachen befinden sich in den stammordnern /de/ und /en/ und beinhalten jeweil exakt das gleiche dateisystem.

    aus

    http://www.domain.com/de/ordner1/index.php?show=main&date=23

    soll dann

    http://www.domain.com/en/ordner1/index.php?show=main&date=23

    werden.

    Hat jemand ne idee wie ich das machen kann oder nach was ich hier im forum suchen muss ???

    Danke schonmal im Vorraus

    Grüße cEE


    EDIT:

    HIER GIBTS DIE LÖSUNG:

    Zuletzt geändert von cEEkAy; 10.12.2003, 11:22.

  • #2
    PHP-Code:
    if( $_POST['lang'] == "en" )
    {
    $dir "http://www.domain.com/en/ordner1/index.php?show=main&date=23";
    }
    else
    {
    $dir "http://www.domain.com/de/ordner1/index.php?show=main&date=23";
    }
    header"Location: ".$dir ); 
    Am besten du speicherst die Sprachwahl in einem Cookie oder Session...

    Kommentar


    • #3
      Ja, aber

      ordner1/index.php?show=main&date=23

      ist ja immer anders.

      Da steht ja bei jeder aufgerufenen seite was neues.

      wie mach ich das denn das ich nur de oder en austausche ?

      Kommentar


      • #4
        wenn der inhalt der GLEICHEN ids UNTERSCHIEDLICH ist, gehe doch einfach auf /de oder /en.
        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


        • #5
          ja aber wie mach ich es das alles was nach

          www.domain.com/de/

          steht mitübernommen wird ???

          Kommentar


          • #6
            gar nicht. denn du sagtest ja, dass es unterschiedliche seiten sind.

            wenn sie es doch nicht sind, kannst du ja V 9 1 9 V's beispiel nehmen.
            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


            • #7
              Also eine Seite hat die URL

              http://www.domain.com/de/ordner1/index.php?show=main&date=23

              eine andere

              http://www.domain.com/de/ordner1/index.php?show=pix&date=30.10

              wieder eine andere

              http://www.domain.com/de/ordner5/index.php?show=fun&start=0

              und dann noch eine

              http://www.domain.com/de/ordner7/index.php?show=news&count=10

              usw. usw.

              Und jede dieser seiten soll auf ihr anderssprachigen gegenstück verweisen.
              Also:

              http://www.domain.com/[en/ordner1/index.php?show=main&date=23

              eine andere

              http://www.domain.com/de/ordner1/index.php?show=pix&date=30.10

              wieder eine andere

              http://www.domain.com/de/ordner5/index.php?show=fun&start=0

              und dann noch eine

              http://www.domain.com/de/ordner7/index.php?show=news&count=10

              usw. usw.



              Im grunde genommen müsste ich eigentlich nur irgendwie das de bzw das en in der url irgentwie ersetzen...

              Hat da jemand einen tip ?

              Kommentar


              • #8
                Am besten du machst verschiedene Templates und lädst die dann per Template-System.

                1. Du hängst an die Url "&lang=de/en" dran
                2. Du setzt im Template-System diese Variable:
                $temp_dir = "./templates/".$_GET['lang'];
                3. Du lädst ganz normal die Templates

                So funzts

                Kommentar


                • #9
                  Wenn Du auf Deiner ganzen Website jede Seite (und jeden Text aus einer DB) doppelt hast (gleicher Inhalt, andere Sprache), dann leg doch nicht zwei Verzeichnisbäume unter de und en an, sondern ein Verzeichnisbaum mit jeder Datei doppelt, einmal mit Präfix "de" und einmal mit "en", also "de_seite.php" und "en_seite.php" im gleichen Verzeichnis. Dann kannst Du immer wechseln.

                  Du kannst diesen Link bestimmt auch automatisieren, indem Du in einem String das "de" bzw. "en" mit
                  PHP-Code:
                  $PHP_SELF //gibt Deinen aktuellen Dateinamen aus 
                  zusammenbaust.

                  Gemacht habe ich das auch noch nicht, aber ich denke, das müsste gehen (wird bei mir auch demnächst fällig)...

                  bossman

                  Kommentar


                  • #10
                    Die Sache ist die:

                    Beide Versionen greifen auf die gleichen relativ umfangreichen flash files zurück, welche jeweils externe Bilder und Textdateien Laden die sich in den jeweiligen unterordnern befinden.

                    D.h. alle ca 50 seiten beinhalten die gleichen 4 swf files.

                    da flash beim laden externer files aber nicht vom stammordner der swf ausgeht, sondern vom stammordner der html datei, laden diese flashfile die ebenfalls im html stammordner liegenden, zur jeweiligen seite passenden bilder und texte.
                    außerdem ist die index.php auch überall die gleiche, wenn ich alsodiese datei oder die 4 flashfilme verändere dann ändert sich auf einen schlag die ganze site.

                    desshalb, und auch wegen der übersicht diese zwei verzeichnissbäume.

                    $PHP_INFO ist glaube ich schonmal der richtige weg...

                    Allerdings zeigt mir php_info ja nur den dateinamen an, nicht was hinter dem ? steht, also bei der url

                    http://www.domain.com/de/ordner1/index.php?show=main&date=23

                    gibt mir php_info

                    /de/ordner1/index.php

                    aus.

                    gibts da Möglichkeiten auch das was nach dem ? steht mit anzuzeigen ???

                    Außerdem gibts doch irgendwie ne funktion da kann mann sich von nem string, also z.B. von

                    /de/ordner1/index.php

                    nur die zeichen 3-100 oder so anzeigen lassen, was ja dann in diesem speziellen falle

                    /ordner1/index.php

                    wäre.

                    Hat jemand nen kurzen hinweiß wonach ich da im forum suchen muss ???

                    Danke schonmal !!!

                    Kommentar


                    • #11
                      REQUEST_URI

                      hilft schonmal um die genaue URL herauszubekommen, fehlt nur noch eine technik wie ich das /de/ wegbekomme...

                      Kommentar


                      • #12
                        So hier die Lösung:

                        Mit folgendem Script gibt mann die Aktuelle URL wieder, hier abzüglich der ersten 3 zeichen ( "/de" bzw, "/en" )


                        PHP-Code:
                        <?php
                        $url 
                        substr("$REQUEST_URI"3);    // gibt alles bis auf die ersten 3 zeichen zurück
                        echo $url;  
                        ?>
                        Das ganze Skript mit Javascript Dropdown Jump menue sieht dann so aus:

                        PHP-Code:

                        <script language="JavaScript" type="text/JavaScript">
                        <!--
                        function jump (url) {
                        window.open(url,'_parent')
                        }
                        //-->
                        </script>

                                      <select name="select" onchange="jump(this.options[this.selectedIndex].value)">
                                        <option>Select Language</option>
                                        <? $url = substr("$REQUEST_URI", 3);    ?>
                                        <option value="/de<? echo "$url"; ?>">Deutsch</option>
                                        <option value="/en<? echo "$url"; ?>">English</option>
                                      </select>
                        Natürlich kann mann das ganze auch mit Grafiken machen, was dann so aussähe:

                        PHP-Code:

                        <? $url = substr("$REQUEST_URI", 3); ?>
                        <a href="/en<? echo "$url"; ?>"><img src="de.gif" alt="DE" width="25" height="20" border="0"></a> 
                        <a href="/de<? echo "$url"; ?>"><img src="en.gif" alt="EN" width="25" height="20" border="0"></a>
                        So, das wars, danke an alle die mitgehofen haben...

                        Kommentar


                        • #13
                          Hy,

                          Ich hab auch ne Frage zu diesen Thema. Ich biete meine Page auch
                          2-sprachig an, zumindest hab ich es vor. Gelöst hab ich es mit
                          $_SERVER["HTTP_ACCEPT_LANGUAGE"]. Dazu hab ich meine Seite mit
                          Platzhaltern "gefüllt" die dann mit der jeweiligen Sprachdatei gefüllt wird. Jetzt möcht ich nebenbei den Usern zusätzlich anbieten, die Sprache selber zu wählen. Nur hab ich derzeit keine Ahnung wie das funktionieren könnte.
                          Könnte mir da jemand helfen? Realisiert soll das ganze per Klick auf die gewünschte Flagge werden.

                          Kommentar


                          • #14
                            Original geschrieben von Marcus24
                            Jetzt möcht ich nebenbei den Usern zusätzlich anbieten, die Sprache selber zu wählen. Nur hab ich derzeit keine Ahnung wie das funktionieren könnte.
                            Übergebe die Sprachversion beispielsweise als GET-Parameter im Link.

                            Wenn dieser Parameter übergeben wurde, benutze ihn.
                            Nur wenn nicht, greife stattdessen auf die Angabe aus $_SERVER zurück.


                            Btw: Die Fälle ungültiger Parameter, oder deinem Script nicht bekannter Accepts_Language solltest du natürlich berücksichtigen.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Original geschrieben von wahsaga
                              Übergebe die Sprachversion beispielsweise als GET-Parameter im Link.
                              Ich würde sogar noch die aktuell ausgewählte Sprache via Cookie speichern lassen, somit wird der Besucher dann in Zukunft immer seine zuvor ausgewählte Sprache vorfinden.

                              ... Dazu hab ich meine Seite mit
                              Platzhaltern "gefüllt" die dann mit der jeweiligen Sprachdatei gefüllt wird...
                              So habe ich das auch gemacht, meine jeweiligen Phrasen liegen in Dateien wie de_language.inc, fr_language.inc, somit ersetze ich beim includen nur noch de, fr etc. und habe direkt meine gewünschte Sprache.



                              Sers
                              der Boris

                              Kommentar

                              Lädt...
                              X