Onkel Otto: Dokument Namen auslesen

Hallo Forum,

arbeite an einer zweisprachigen Web-Site. Alle englischsprachigen Dokumente liegen im Ordner "en", alle deutschsprachigen im Hauptverzeichnis.
Nun würde ich die deutsch/englische Navigation gern in der Weise funktionstüchtig machen, dass ich jeweils das andersprachige Dokument aufrufe, auf welchem ich mich gerade befinde.

Beispiel:
bin in der deutschen Abteilung auf der Seite "produkte.php" und wenn ich nun den "Englisch-Button" anwähle, soll der Link den Dokumentnamen auslesen und ein "en/" davor setzen.

Hoffe ich habe mich verständlich ausgedrückt.

Gruß,
der Onkel

  1. Moin!

    Ja. Und woran bist Du gescheitert? Wenn es eine Seite ist, die schon geöffnet ist wird Dich zu dem eine serverseitige Technik nicht weiter bringen. Die kann nur was tun, so lange die Seite erzeugt wird. Nicht mehr, wenn diese bereits fertig ausgeliefert wird.

    Das ist, als würdest Du danach fragen, wie die Kunden einer Fertighausfirma festlegen können, in welcher Farbe sie 5 Jahre nach Fertigstellung die Küche streichen.

    Mein Rat: Nimm Javascript, bau die Links um und benutze ein Cookie um die Auswahl zu speichern. Das kannst Du bei künftigen Seitenabrufen auch weiter verwenden.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix

  2. Bounjoun Onkel Otto,

    bin in der deutschen Abteilung auf der Seite "produkte.php" und wenn ich nun den "Englisch-Button" anwähle, soll der Link den Dokumentnamen auslesen und ein "en/" davor setzen.

    Warum nicht gleich entsprechend verlinken?

    Allemal besser als sich den Kopf zu zerbrechen oder den Server zu belasten - just my 2 Eurocents.

    Aber wenn es unbedingt eine serverseitige (fastix' Hinweis mit JavaScript bitte beachten) Programmiersprache sein muss: Referrer auswerten, Stringoperationen durchführen (Stichwort split(), substr()): URI-String zerlegen und wieder mit /en an der richtigen Stelle wieder zusammenbauen.

    Probleme bekommst du spätestens dann, wenn ein Besucher die Übertragung des Referrers in seinem Browser unterbunden hat - wenn's auch nicht so viele sein dürfte, ist es immer ärgerlich, wenn man User ausschließt.

    Adiou.

    --
    Ich bin eigentlich ganz anders, aber ich komme so selten dazu. - Ödön von Horwáth
    Ist Rudi Carrell Gott? Oder George Harrison Ford?
    Ich bin faul und das ist gut so.
    1. Hi,

      Warum nicht gleich entsprechend verlinken?

      Allemal besser als sich den Kopf zu zerbrechen oder den Server zu belasten - just my 2 Eurocents.

      Da sieht man, wie wenig der Euro wert ist …

      Aber wenn es unbedingt eine serverseitige (fastix' Hinweis mit JavaScript bitte beachten) Programmiersprache sein muss: Referrer auswerten, Stringoperationen durchführen (Stichwort split(), substr()): URI-String zerlegen und wieder mit /en an der richtigen Stelle wieder zusammenbauen.

      Was soll der Referrer damit zu tun haben? Unfug.
      Der Request-URI wäre interessant - schließlich soll eine Entscheidung getroffen werden auf Basis des aktuell aufgerufenen Dokumentes, und nicht des vorherigen, von dem der Nutzer ggf. kam.

      MfG ChrisB

      --
      RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
      1. Bounjoun ChrisB,

        Da sieht man, wie wenig der Euro wert ist …

        Der Euro ist schon viel wert, viel mehr, als man seitens Übersee zu unterstellen und kaputtmachen versucht - aber das ist eine andere Geschichte, und sie will ein anderes Mal erzählt werden (irgendeine Sendung vor wenigen Wochen konnte nachweisen, dass der Euro zu keinerlei Verteuerung geführt hatte - vielmehr happert's am Erinnerungsvermögen der Leute, und wenn die sich nicht mehr erinnern können, dass sie der FDP vor zwei Jahren noch 14% beschert hatten, sagt das schon alles).

        Was soll der Referrer damit zu tun haben? Unfug.
        Der Request-URI wäre interessant

        Ja, dann kann der OP aber wirklich alles hartcodiert verlinken, oder?

        Adiou.

        --
        Ich bin eigentlich ganz anders, aber ich komme so selten dazu. - Ödön von Horwáth
        Ist Rudi Carrell Gott? Oder George Harrison Ford?
        Ich bin faul und das ist gut so.
        1. Hi,

          Ja, dann kann der OP aber wirklich alles hartcodiert verlinken, oder?

          Dass man so gut wie immer alles „von Hand“ machen kann, ist kein besonders stichhaltiges Argument. Eigentlich überhaupt keins.

          Will Heise jede Newsmeldung „von Hand“ als Dokument erstellen, auf den Server laden und verlinken, will Amazon für jeden Artikel/Produkt „von Hand“ eine Infoseite erstellen und verlinken …?
          Selbstverständlich nicht.

          MfG ChrisB

          --
          RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
          1. Bounjoun ChrisB,

            Ja, dann kann der OP aber wirklich alles hartcodiert verlinken, oder?
            Dass man so gut wie immer alles „von Hand“ machen kann, ist kein besonders stichhaltiges Argument. Eigentlich überhaupt keins.

            Hm, warum dann der Hinweis mit REQUEST_URI? Soll er auf das selbe Dokument verlinken und den/das Request manipulieren, in Abhängigkeit dessen, was angeklickt wurde? Sorry, aber ich schetehe auf dem Schelauch...

            Adiou.

            --
            Ich bin eigentlich ganz anders, aber ich komme so selten dazu. - Ödön von Horwáth
            Ist Rudi Carrell Gott? Oder George Harrison Ford?
            Ich bin faul und das ist gut so.
            1. Hi,

              Hm, warum dann der Hinweis mit REQUEST_URI? Soll er auf das selbe Dokument verlinken und den/das Request manipulieren, in Abhängigkeit dessen, was angeklickt wurde? Sorry, aber ich schetehe auf dem Schelauch...

              Dann lese die Fragestellung noch mal aufmerksam.

              MfG ChrisB

              --
              RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
              1. Bounjoun ChrisB,

                Dann lese die Fragestellung noch mal aufmerksam.

                Habe ich. Sehe aber nichts besonderes daran. Du weißt, followup-Probleme, Blockade[1] der Hirnzellen nach (jetzt) reichlichem Fruchtfliegengesöff-Konsums.

                Ich gebe mich geschlagen.

                [1] Eher Vernebelung. Ich sollte mich doch eher Phileas Fogg nennen, wie der Held von Jules Vernes.

                Adiou.

                --
                Ich bin eigentlich ganz anders, aber ich komme so selten dazu. - Ödön von Horwáth
                Ist Rudi Carrell Gott? Oder George Harrison Ford?
                Ich bin faul und das ist gut so.
                1. Hi,

                  Dann lese die Fragestellung noch mal aufmerksam.

                  Habe ich. Sehe aber nichts besonderes daran.

                  in der deutschen Abteilung auf der Seite "produkte.php" und wenn ich nun den "Englisch-Button" anwähle, soll der Link den Dokumentnamen auslesen und ein "en/" davor setzen.

                  http://example.com/produkte.php wäre die aktuelle Seite, auf der sich der Benutzer befindet, und /en soll dazwischen gesetzt werden, so dass der Link auf /en/produkte.php lautet.

                  Die Information, dass wir uns aktuell auf produkte.php befinden, findet sich in Request_URI oder einem der verwandten Werte.

                  Eher Vernebelung. Ich sollte mich doch eher Phileas Fogg nennen, wie der Held von Jules Vernes.

                  Die 2004er Verfilmung mit Steve Coogan ist reichlich genial :-)

                  MfG ChrisB

                  --
                  RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  3. Om nah hoo pez nyeetz, Onkel Otto!

    schau dir mal celsius-fahrenheit.net an. Wenn dies deinen Wünschen nahekommt, kann ich dir weitere Hinweise liefern. Gelöst wurde dies mit ssi, weil auf diesem Server kein php zur Verfügung steht.

    Matthias

    --
    1/z ist kein Blatt Papier. http://www.billiger-im-urlaub.de/kreis_sw.gif
    1. Om nah hoo pez nyeetz, Matthias!

      schau dir mal celsius-fahrenheit.net an. Wenn dies deinen Wünschen nahekommt, kann ich dir weitere Hinweise liefern. Gelöst wurde dies mit ssi, weil auf diesem Server kein php zur Verfügung steht.

      Das sieht so aus, als hättest Du einfach zwei verschiedene Navigationen mit sämtlichen Navi-Elementen gebaut.
      Ich verfüge aber neben der Hauptnavigation nur über einen DE- und einen EN -Button.
      Und diese Buttons sollen "wissen", auf welcher Seite sie sich gerade befinden.

      Gruß

      1. Om nah hoo pez nyeetz, Onkel Otto!

        Und diese Buttons sollen "wissen", auf welcher Seite sie sich gerade befinden.

        Dies "weiß" der Link "this site in english/Diese Seite auf deutsch".

        Matthias

        --
        1/z ist kein Blatt Papier. http://www.billiger-im-urlaub.de/kreis_sw.gif
        1. Om nah hoo pez nyeetz, Matthias!

          Dies "weiß" der Link "this site in english/Diese Seite auf deutsch".

          okay, und woher weiß er das ;-)
          Gehe davon aus, das Du mit php geabreitet hast, was so im Quelltext dann nicht mehr sichtbar ist, richtig?

          Onkel Otto

          1. Om nah hoo pez nyeetz, Onkel Otto!

            okay, und woher weiß er das ;-)

            indem er den Namen des aktuellen Dokuments abfragt.

            Gehe davon aus, das Du mit php geabreitet hast,

            Hättest du mein erstes Posting aufmerksam gelesen ...

            was so im Quelltext dann nicht mehr sichtbar ist, richtig?

            serverseitige Geschichten sind nicht im Quelltext zu sehen, weil sie vor der Auslieferung des Dokuments abgearbeitet werden. Du wirst an einer serverseitigen Lösung nicht vorbeikommen.

            Matthias

            --
            1/z ist kein Blatt Papier. http://www.billiger-im-urlaub.de/kreis_sw.gif
            1. Om nah hoo pez nyeetz, Matthias!

              indem er den Namen des aktuellen Dokuments abfragt.

              könntest Du hier etwas konkreter werden?

              Hättest du mein erstes Posting aufmerksam gelesen ...

              Ist denn PHP nicht einem SSi sehr ähnlich?

              Für ein Code-Snippet o.Ä. welches mich auf die richtige Fährte bringt wäre ich sehr dankbar.

              Onkel Otto

              1. Om nah hoo pez nyeetz, onkel otto!

                Hättest du mein erstes Posting aufmerksam gelesen ... Ist denn PHP nicht einem SSi sehr ähnlich?

                PHP ist wesentlich mächtiger als SSI, nämlich ein vollwertige Programmiersprache.

                indem er den Namen des aktuellen Dokuments abfragt. könntest Du hier etwas konkreter werden?

                $_SERVER['REQUEST_URI'] liefert die Adresse des Dokuments ohne Protokoll und Domainname

                Für ein Code-Snippet o.Ä. welches mich auf die richtige Fährte bringt wäre ich sehr dankbar.

                #1# Du stellst fest, ob die Zeichenfolge "/en/" in deiner Adresse vorkommt

                #2# basename($_SERVER['REQUEST_URI']) liefert dir den Dateinamen ohne Pfad.

                #3# Du legst ein Array (oder eine Datenbank) an, in der die Verweisnamen für die Seitennamen in deutsch und englisch stehen

                deutsch | englisch index   | index glossar | glossary

                #4# bist du in "/en/", suchst du in der zweiten Spalte nach dem Dateinamen und verlinkst auf den Namen der ersten Spalte und entsprechend umgekehrt

                Es schadet auch nicht, http://www.w3.org/International/questions/qa-when-lang-neg zu lesen.

                Matthias

                --
                1/z ist kein Blatt Papier. http://www.billiger-im-urlaub.de/kreis_sw.gif