Andreas: automatische Weiterleitung je nach Landessprache

Hi!

Will bei einer Seite die Besucher automatisch je nach Landessprache auf die Seite in entsprechender Sprache weiterleiten.

In PHP bekomme ich ja die Sprache die der Browser mitschickt mit

HTTP_ACCEPT_LANGUAGE.

Jetzt überlege ich nur, wie ich die Weiterleitung am besten gestalte, entweder mit Refresh als Metavariable, die ich in eine If-Bedingung schreibe, oder mit dem Header. Wie würdet Ihr das machen? Ich tendiere zur Zeit zu der Meta-Variante, da ich das einfacher finde, und evtl noch kurz 3 Sekunden schreiben will, dass die Sprache ausgelesen wird, irgendwas in der Art.

Das geht doch mit dem Header nicht, da dieser immer als erstes gesendet werden muß, oder?

Gibt es mit dem Auslesen der Sprache irgendwelche Probleme, oder bekomme ich die bei jedem Browser mit obigem Befehl?

Und noch eine andere Frage, woher weiß ich genau die anderen Abkürzungen, ich kann sie mir zwar in etwa denken, aber ich wäre da schon gerne sicher:-)

Grüsse

Andreas

  1. Hi!

    Will bei einer Seite die Besucher automatisch je nach Landessprache auf die Seite in entsprechender Sprache weiterleiten.

    In PHP bekomme ich ja die Sprache die der Browser mitschickt mit

    HTTP_ACCEPT_LANGUAGE.

    Jetzt überlege ich nur, wie ich die Weiterleitung am besten gestalte, entweder mit Refresh als Metavariable, die ich in eine If-Bedingung schreibe, oder mit dem Header. Wie würdet Ihr das machen? Ich tendiere zur Zeit zu der Meta-Variante, da ich das einfacher finde, und evtl noch kurz 3 Sekunden schreiben will, dass die Sprache ausgelesen wird, irgendwas in der Art.

    Mit dem Header gehts aber problemloser, weil du nicht auf Browserfunktionalität angewiesen bist. Im übrigen interessiert es die User eigentlich garnicht, ob du ein wenig Content-Negotiation machst oder nicht, solange du immer noch die Wahl läßt. Man muß also immer die Sprachwahl haben, die Angabe der bevorzugten Sprache ist nur ein kleiner Hinweis, was vielleicht gewünscht ist.

    Das geht doch mit dem Header nicht, da dieser immer als erstes gesendet werden muß, oder?

    Der Header muß in der Tat als erstes gesendet werden. Es ist allerdings bei deinem Problem auch das einzige, was gesendet werden muß. Wichtig ist, daß du gleich mit dem ersten Zeichen in der ersten Zeile mit "<?php" den PHP-Code aktivierst und vor dem Befehl "header" nichts anderes ausgibst, weder mit echo/print/... noch im HTML-Modus.

    Gibt es mit dem Auslesen der Sprache irgendwelche Probleme, oder bekomme ich die bei jedem Browser mit obigem Befehl?

    Das ist kein Befehl, sondern eine Umgebungsvariable, und die gibts natürlich nur dann, wenn der Browser die Angabe sendet. Du mußt von folgenden Dingen ausgehen:

    1. Die Angabe kann fehlen. Du brauchst also einen Standardwert, auf den du notfalls zurückgreifst.

    2. Die Angabe kann Sprachen fordern, die auf deiner Seite garnicht vorkommen. Was passiert dann? Standardsprache vielleicht?

    Und noch eine andere Frage, woher weiß ich genau die anderen Abkürzungen, ich kann sie mir zwar in etwa denken, aber ich wäre da schon gerne sicher:-)

    Die Liste der Sprachauswahl in einem beliebigen Browser sollte als Anfang reichen, oder?

    - Sven Rautenberg

    1. Tach auch,

      Und noch eine andere Frage, woher weiß ich genau die anderen Abkürzungen, ich kann sie mir zwar in etwa denken, aber ich wäre da schon gerne sicher:-)

      Die Liste der Sprachauswahl in einem beliebigen Browser sollte als Anfang reichen, oder?

      Oder mal beim Mozilla Localisation Project vorbeischauen: http://www.mozilla.org/projects/l10n/mlp_status.html

      Da sind 66 Sprachen gelistet, u.a. Letzeburgisch, Hawaiisch, Schottisch, Walisisch, zwei Versionen Norwegisch, Ukrainisch, Estisch (heisst das so?), drei Versionen Chinesisch, um nur ein paar zu nennen.

      Viel Spass beim Uebersetzen ;-)

      Gruss,
      Armin

      1. Da sind 66 Sprachen gelistet, u.a. Letzeburgisch, Hawaiisch, Schottisch, Walisisch, zwei Versionen Norwegisch, Ukrainisch, Estisch (heisst das so?), drei Versionen Chinesisch, um nur ein paar zu nennen.

        Ha, da kann ich über. Opera 6 kennt ca. 164 Sprachen für "ACCEPT_LANGUAGE". ;)

        - Sven Rautenberg

        1. Hallo!

          Ja, werde das, mit dem header machen, kann ja noch eine Seite vorschalten, wenn ich das unbedingt will.

          Mit den Sprachen habe ich zuerst im Browser nicht gefunden, mal wieder das mit dem Wald vor lauter Bäumen nicht sehen...

          Frage einfach, wenn "de" dann auf die deutsch Seite, wenn "fr" dann auf die französische und bei "es" auf die spanische. Der Rest wird auf die englische umgeleitet.

          Aber das einzoige Problem was ich jetzt noch sehe, z.B. gibt es bei den ganzen Sprachen womöglich ja immer noch Zusätze, so wie "fr-be" für Belgien.  Wenn das jemand hat würde der ja auf die englische Seite geleitet. Soll ich einfach immer nur die beiden ersten Buchstaben auslesen? Oder wie macht man das besser?

          Grüsse

          Andreas

          1. Aber das einzoige Problem was ich jetzt noch sehe, z.B. gibt es bei den ganzen Sprachen womöglich ja immer noch Zusätze, so wie "fr-be" für Belgien.  Wenn das jemand hat würde der ja auf die englische Seite geleitet. Soll ich einfach immer nur die beiden ersten Buchstaben auslesen? Oder wie macht man das besser?

            Wenn ich mich richtig an eine Frage bei Günter Jauch erinnere, dann gibt es kein "Belgisch" als Sprache, sondern die sprechen dort die Sprachen aus den angrenzenden Ländern, oder so ähnlich.

            Die ersten zwei Buchstaben sind in der Tat die primäre Sprachauswahl, danach folgen möglicherweise Dialekte. So große Dialektauswahl gibts aber anscheinend nicht, denn außer für Chinesisch (China, Taiwan und Hong Kong) und Norwegisch (Nynorsk und Bokmaal) kennt mein Opera keine weitere Auswahl. Man könnte natürlich noch die deutschen Varianten weiter auseinandernehmen, also de-de, de-at und de-ch - führt aber immer wieder auf Deutsch als Hauptsprache, und das verstehen die Österreicher und Schweizer weitestgehend. :)

            - Sven Rautenberg

  2. Hi!

    Will bei einer Seite die Besucher automatisch je nach Landessprache auf die Seite in entsprechender Sprache weiterleiten.

    Das ist gut und schön, aber ich verwende Opera und Linux, der nur in Englisch verfügbar ist. Nun bekomme ich also immer die englische Version serviert.

    Kann der Benutzer nicht über seine Muttersprache selbst entscheiden?

    Die ganz großen Webseiten, wie Infpportale und Shops machen das doch vor.

    MfG, André Laugks

    1. Hi!

      Will bei einer Seite die Besucher automatisch je nach Landessprache auf die Seite in entsprechender Sprache weiterleiten.

      Das ist gut und schön, aber ich verwende Opera und Linux, der nur in Englisch verfügbar ist. Nun bekomme ich also immer die englische Version serviert.

      Dann kennst du die Möglichkeiten der Konfiguration deines Browsers nicht. Opera hat unter "Languages" die Möglichkeit, die für Webseiten bevorzugte Sprache einzustellen. Englische Browser haben da nur "English [en]" stehen, aber man kann ohne Probleme "German [de]" hinzufügen und an erste Stelle setzen, damit Webseiten künftig deutsch sind.

      Kann der Benutzer nicht über seine Muttersprache selbst entscheiden?

      Bei Google wird das Feature ganz selbstverständlich eingesetzt. Noch nicht aufgefallen?

      http://www.google.com und http://www.google.de sind beide entweder in deutsch oder englisch, je nach deiner Einstellung.

      - Sven Rautenberg

      1. Hallo!

        Dann kennst du die Möglichkeiten der Konfiguration deines Browsers nicht. Opera hat unter "Languages" die Möglichkeit, die für Webseiten bevorzugte Sprache einzustellen. Englische Browser haben da nur "English [en]" stehen, aber man kann ohne Probleme "German [de]" hinzufügen und an erste Stelle setzen, damit Webseiten künftig deutsch sind.

        Klar kenne ich die, nur ich verwende sie nicht. Ich denke, meine Muttersprache kann ich selbst am besten... Ich finde solche Feature bei Webseiten Kinderkacke!

        Bei Google wird das Feature ganz selbstverständlich eingesetzt. Noch nicht aufgefallen?

        Sicher?

        www.google.de -> deutsche Version
        www.google.com -> englische Version

        Ich habe keine bevorzugte Sprache im Opera angegeben.

        MfG, André Laugks

        1. Hallo!

          Sicher?

          www.google.de -> deutsche Version
          www.google.com -> englische Version

          Ich habe keine bevorzugte Sprache im Opera angegeben.

          Klar,.dieses Feature setzt natürlich nicht an, weil ich keine Sprache eingestellt habe...! Bin auch ganz zufrieden damit.

          MfG, André Laugks

          1. Hi!

            Sorry, aber man kann nicht immer auf alle Querdenker Rücksicht nehmen. Du weißt ja selbst am besten wie viele Leute deine Lieblings-Browser verwenden, die anderen sind normalerweise mit der Landessprache eingestellt. Ich finde es beser wenn 90% der Besucher automatisch ohne irgendwelches zutun auf die Seite in Ihrer Sprache weitergeleitet werden, und wenn 10%(eher deutlich weniger) ob unmbewußt oder so wie du bewußt darauf verzichten, müssen die halt manuell die Sprache wechseln. Wenn Du auch noch bewußt "englisch" als Sprache da stehen hast, dann beschwere dich bitte nicht, wenn Du auf die Seite in englischer Sprache umgeleitet wirst!

            Grüsse

            Andreas

            1. Hallo!

              Sorry, aber man kann nicht immer auf alle Querdenker Rücksicht nehmen. Du weißt ja selbst am besten wie viele Leute deine Lieblings-Browser verwenden, die anderen sind normalerweise mit der Landessprache eingestellt. Ich finde es beser wenn 90% der Besucher automatisch ohne irgendwelches zutun auf die Seite in Ihrer Sprache weitergeleitet werden, und wenn 10%(eher deutlich weniger) ob unmbewußt oder so wie du bewußt darauf verzichten, müssen die halt manuell die Sprache wechseln. Wenn Du auch noch bewußt "englisch" als Sprache da stehen hast, dann beschwere dich bitte nicht, wenn Du auf die Seite in englischer Sprache umgeleitet wirst!

              Ich habe gar nichts als Lieblingssprache eingestellt. Bei den meisten Seiten finde ich den Link zu meiner Lieblingssprache in der Fußzeile der Webseite. Oder ich halte mich an die Domain, *.com, *.de. Funktioniert eigentlich ziemlich oft. Den Rest mache ich über Lesezeichen.

              Naja, viele halten sich an so kleine Details auf, bekommen aber den Rest der Webseite nicht vernünftig programmiert ;-)

              MfG, André Laugks

        2. Klar kenne ich die, nur ich verwende sie nicht.

          Warum nicht?

          Sie sind genau dafür da, daß jeder die seine sieht, die er am besten lesen kann - ohne auf jedem mehrsprachigen Portal mühsam nach der Methode suchen zu müssen, wie man das umschalten kann ...

          Viele Grüße
                Michael

          1. Hallo!

            Warum nicht?

            Sie sind genau dafür da, daß jeder die seine sieht, die er am besten lesen kann - ohne auf jedem mehrsprachigen Portal mühsam nach der Methode suchen zu müssen, wie man das umschalten kann ...

            Ich habe es mit der Spracheinstellung noch nicht probiert. Bei den meisten Webseiten die ich besuche, habe ich die deutsche Seite in den Lesezeichen oder ich kenne die Domain zur deutschen Seite.

            MfG, André Laugks

            1. Hi André,

              Ich habe es mit der Spracheinstellung noch nicht probiert. Bei den meisten Webseiten die ich besuche, habe ich die deutsche Seite in den Lesezeichen

              bei den Seiten, die das verwenden, gibt es keinen Unterschied im URL zwischen der "deutschen" und irgend einer anderen Seite.

              Das ist ja gerade der Trick bei der Sache: Alle sprechen denselben URL an, beispielsweise mit demselben Link oder Bookmark, aber jeder erhält diejenige Variante, die seinen Header-Anforderungen am genauesten entspricht.
              Viele Grüße
                    Michael

              1. Hallo!

                bei den Seiten, die das verwenden, gibt es keinen Unterschied im URL zwischen der "deutschen" und irgend einer anderen Seite.

                Das ist ja gerade der Trick bei der Sache: Alle sprechen denselben URL an, beispielsweise mit demselben Link oder Bookmark, aber jeder erhält diejenige Variante, die seinen Header-Anforderungen am genauesten entspricht.

                Ich habe das schon verstanden! Auch das diese Technik bei seiten angewendet wird, die nur eine Domain haben.

                Für Ignoranten wie mich, gibt es immer noch den Link in der Fußzeile oder sehr sichtbar in einem Dropdownmenü.

                mal nebenbei:
                Was mich an solchen Feature nur immer nervt, die Suche auf der Seite ist schlecht, die Navigation ist unverständlich,...etc., aber die Sprachumleitung funktioniert perfekt!

                MfG, André Laugks

                1. Hi!

                  Was hat das mit der Suche auf der Seite zu tun?

                  Und was zu den Domains, Hinz und Kunz können sich an Domains sichern was Sie wollen( naja, aber fast) Nur die größeren Firmen haben die Möglichkeit, alle Domains zu haben, außerdem hat .com zunächst nichts mit der Sprache zu tun!
                  Selbst Firmen wie Macromedia erreichst Du halt nicht über macromedia.de!

                  Grüsse
                  Andreas

                  1. Hallo!

                    Was hat das mit der Suche auf der Seite zu tun?

                    Das hat nichts mit der Suche zu tun, das war ein Beispiel. Nur viele Seiten
                    haben solche Feature wie Sprachumleitung, aber der Rest der Seite lässt zu
                    wünschen übrig.
                    Meist ist die technische Kompetenz der Programmierer nicht so rosig,
                    aber die Sprachumleitung muß laufen... Da bekommt man nicht selbstständig
                    ein Onlineshop hin oder die Sessions, aber man hält sich an der
                    Sprachumleitung auf ;-) Wenn der Rest schon nicht 100% läuft,
                    aber die Sprachumleitung.

                    Und was zu den Domains, Hinz und Kunz können sich an Domains sichern was Sie wollen( naja, aber fast) Nur die größeren Firmen haben die Möglichkeit, alle Domains zu haben, außerdem hat .com zunächst nichts mit der Sprache zu tun!
                    Selbst Firmen wie Macromedia erreichst Du halt nicht über macromedia.de!

                    Macromedia bietet mir in der Fußzeile meinem Muttersprache an.
                    Als Defaultseite wird mir die Englische angezeigt, die immer am
                    aktuellsten ist.

                    MfG, André Laugks

                    MfG, André Laugks

                    1. Hallo!

                      Da bekommt man nicht selbstständig ein Onlineshop hin oder die
                      Sessions, aber man hält sich an der
                      Sprachumleitung auf ;-) Wenn der Rest schon nicht 100% läuft,
                      aber die Sprachumleitung.

                      Nette Anspielung, aber Dank der Hilfe hier im Forum läuft der online-shop hervorragend, das meiste hab ich dann am Ende dann auch selbst gefunden. Außerdem handelt es sich um eine ganz andere Seite.

                      Mit den Sessions begreife ich leider nicht, wie beschrieben, aber es funktioniert jetzt auch perfekt - obwohl ich es nicht verstehe. Ich kann halt auf der Startseite nicht die Sessionvariable selbst anzeigen oder irgendwie bekommen, mit $phpsessid erstellt PHP automatsch entweder sowohl den Wert als auch den Namen eines hidden fields, oder einer per GET angehängten Variable. Alles andere wie bei session_ID()... bekam ich halt ne Fehlermeldung (undefinierte Funktion).
                      Ist aber auch egal, es klappt ja jetzt, nur leider nicht so wie ich wollte.

                      Macromedia bietet mir in der Fußzeile meinem Muttersprache an.
                      Als Defaultseite wird mir die Englische angezeigt, die immer am
                      aktuellsten ist.

                      Das ist vielleicht auch schlau, immer die aktuellest Version haben zu wollen, aber ich garantiere dir 90% der deutschen "surfer" hätten lieber ne deutsche Seite da stehen.
                      Klar dass man auch den Link da lassen muß, da sowas nie 100%ig funktioniert bzw. man nie alle zufrieden stellen kann.

                      Grüsse

                      Andreas

  3. Will bei einer Seite die Besucher automatisch je nach Landessprache auf die Seite in entsprechender Sprache weiterleiten.

    http://aktuell.de.selfhtml.org/artikel/server/alt-http/