Karl Heinz: Währung im Shop wird in Firefox Linux falsch angezeigt

Hallo,

bezogen auf folgenden Online-Shop:

www.wasserfilter-berlin.de

habe ich hinsichtlich der angezeigten Währung folgende Beobachtung gemacht:

Linux Mint 17.3:

  • Firefox: Pfund
  • Chrome: Euro

Windows 10:

  • Firefox: Euro
  • Chrome: Euro

Woran kann es liegen, dass bei Linux in Verbindung mit dem Firefox die falsche Währung (Pfund) angezeigt wird?

An der Firefox-Version (53.0 / 64 Bit).

Eine Ahnung, wie man das Problem lösen kann?

akzeptierte Antworten

  1. Der Valligator meldet viele Fehler. Todo. Ansonsten müsstest Du mal hier mitteilen, nach welchen Kriterien die Währung umgeschaltet werden soll, dann geht das auch zu prüfen. MfG

    1. Der Valligator meldet viele Fehler. Todo. Ansonsten müsstest Du mal hier mitteilen, nach welchen Kriterien die Währung umgeschaltet werden soll, dann geht das auch zu prüfen. MfG

      Die Währung soll garnicht umgeschaltet werden. Es soll grundsätzlich Euro angezeigt werden.

      1. Hello,

        Die Währung soll garnicht umgeschaltet werden. Es soll grundsätzlich Euro angezeigt werden.

        Könnte aber schon sein, dass der Browser eine andere "bevorzugte Sprache für die Anzeige von Websites" eingetellt hat. Und wenn die SEite aus einem CMS kommt, das den Header auswertet, schaltet es vielleicht um. Wäre dann aber ein naseweises Shopsystem! Der Preis selber müsste ja auch umgexchaltet oder aber ganz ausgelassen werden.

        Liebe Grüße
        Tom S.

        --
        Es gibt nichts Gutes, außer man tut es
        Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
        1. Könnte aber schon sein, dass der Browser eine andere "bevorzugte Sprache für die Anzeige von Websites" eingetellt hat.

          Habe ich geprüft, bevorzugte Sprache ist Deutsch.

          1. Hello,

            Könnte aber schon sein, dass der Browser eine andere "bevorzugte Sprache für die Anzeige von Websites" eingetellt hat.

            Habe ich geprüft, bevorzugte Sprache ist Deutsch.

            Und die Request-Header der unterschiedlichen Browser hast Du auch schon verglichen?

            Liebe Grüße
            Tom S.

            --
            Es gibt nichts Gutes, außer man tut es
            Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
            1. Und die Request-Header der unterschiedlichen Browser hast Du auch schon verglichen?

              Noch nicht, weiß leider nicht wie das geht?

              Mit den Entwicklertools, die man über F12 aufrufen kann?

              1. Hallo

                Und die Request-Header der unterschiedlichen Browser hast Du auch schon verglichen?

                Mit den Entwicklertools, die man über F12 aufrufen kann?

                Ja, der Reiter „Konsole“ listet alle Anfragen an den Server als aufklappbaren Baum auf.

                Tschö, Auge

                --
                Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
                Toller Dampf voraus von Terry Pratchett
              2. Mit den Entwicklertools, die man über F12 aufrufen kann?

                Ich glaub, die Taste ist schneller gedrückt, als die Frage hier gestellt 😉

                SCNR.

              3. Hello,

                beim Firefox,
                die F12-Taste anschlagen, den Tab "Netzwerk" (ganz rechts) auswählen, die Seite neu aufrufen. Dann links in der Listd die erste GET-Zeile doppelklicken, dann erscheinen rechts die Header.

                Liebe Grüße
                Tom S.

                --
                Es gibt nichts Gutes, außer man tut es
                Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                1. die F12-Taste anschlagen, den Tab "Netzwerk" (ganz rechts) auswählen, die Seite neu aufrufen. Dann links in der Liste die erste GET-Zeile doppelklicken, dann erscheinen rechts die Header.

                  Ich habe die dritte GET-Zeile doppelt geklickt, weil die sich auf root bezieht. Hier mal ein Screenshot. Hilft das bei der Lösung weiter?

                  Screenshot Firefox

                  1. Hello,

                    Accept-Language: de

                    Steht das bei den anderen Clients auch so drin?

                    Gunnar kann sich zwar nicht vorstellen, was das mit der Währung zu tun haben könnte, aber ich habe schon sehr merkwürdige Shopsysteme gesehen ...

                    Liebe Grüße
                    Tom S.

                    --
                    Es gibt nichts Gutes, außer man tut es
                    Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                    1. @@TS

                      Accept-Language: de

                      Steht das bei den anderen Clients auch so drin?

                      Gunnar kann sich zwar nicht vorstellen, was das mit der Währung zu tun haben könnte, aber ich habe schon sehr merkwürdige Shopsysteme gesehen ...

                      Vorstellen kann ich mir vieles, auch dass die Spracheinstellung de als Locale-Einstellung de-DE interpretiert wird.

                      Im deutschsprachigen Raum gibt es aber auch noch Schweizer Franken.

                      Und aus einer Spracheinstellung en irgendeine Locale-Einstellung zu folgern, ist wohl mehr als gewagt.

                      LLAP 🖖

                      --
                      “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                    2. Accept-Language: de

                      Steht das bei den anderen Clients auch so drin?

                      Ich glaube schon.

                      Hier mal die Ausgabe vom Chrome Client über die dortigen Entwickler-Tools:

                      Chrome Screenshot

  2. Hello,

    ein paar Kleinigkeiten:
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" >
    ist zwar vorhanden, aber sehr weit unten und gilt mMn für HTML 4.1.
    <meta charset="utf-8"> fehlt vollkommen. Ich habe's zumindest nicht gefunden und sollte bei HTML 5 benutzt werden.

    Und der Server liefert eine Angabe: Content-Type: text/html;charset=UTF-8

    Ich weiß zwar nicht aus dem Handgelenk, ob nicht nach dem Semikolon auch ein Leerzeichen vorgeschrieben ist, aber es fehlt und alle anderen mir bekannten Seiten liefern es mit Leerzeichen.

    Die Clients sind da manchmal etwas empfindlich.

    Liebe Grüße
    Tom S.

    --
    Es gibt nichts Gutes, außer man tut es
    Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
    1. @@TS

      <meta http-equiv="content-type" content="text/html; charset=UTF-8" >
      ist zwar vorhanden, aber sehr weit unten

      Außerhalb der ersten 1024 Bytes. Damit also quasi nicht vorhanden.

      und gilt mMn für HTML 4.1.

      Und natürlich auch für HTML5 a/k/a/ HTML. Ein HTML-Parser wäre schön blöd (d.h. kaputt), wenn er sagen würde „<meta http-equiv="content-type" content="text/html; charset=UTF-8" > ist mir zu altertümlich; das beachte ich nicht.“

      <meta charset="utf-8"> fehlt vollkommen. Ich habe's zumindest nicht gefunden und sollte bei HTML 5 benutzt werden.

      Aber nicht zusätzlich zur http-equiv="content-type"-Angabe, sondern anstatt dieser. Es darf nur eine geben.

      Und nicht „sollte“ (im Sinne von RFC 2119), sondern „kann“. Weil’s kürzer und einfacher ist.

      Das ändert nichts daran, dass <meta http-equiv="content-type" content="text/html; charset=UTF-8" > weiterhin eine korrekte Angabe ist.

      Und der Server liefert eine Angabe: Content-Type: text/html;charset=UTF-8

      Ich weiß zwar nicht aus dem Handgelenk, ob nicht nach dem Semikolon auch ein Leerzeichen vorgeschrieben ist

      Kann man nachlesen. HTTP/1.1 war einst in RFC 2616 beschrieben, der inzwischen „Obsoleted by: 7230, 7231, 7232, 7233, 7234, 7235“ ist.

      In RFC 7231 werden wir fündig: 3.1.1.5. Content-Type. Von dort wird man zu 3.1.1.1. Media Type geschickt, worin zu lesen ist:

           media-type = type "/" subtype *( OWS ";" OWS parameter )
      

      Und wenn man nach „OWS“ sucht, landet man schließlich in RFC 7230 3.2.3. Whitespace :

           OWS            = *( SP / HTAB )
                          ; optional whitespace
      

      aber es fehlt und alle anderen mir bekannten Seiten liefern es mit Leerzeichen.

      Es fehlt also nicht. Es ist optional.

      Die Clients sind da manchmal etwas empfindlich.

      Ein Client, der da empfindlich wäre, wäre kaputt.

      LLAP 🖖

      --
      “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
  3. Hallo

    www.wasserfilter-berlin.de

    Ubuntu 16.04:

    • Firefox: Euro

    Woran kann es liegen, dass bei Linux in Verbindung mit dem Firefox die falsche Währung (Pfund) angezeigt wird?
    Eine Ahnung, wie man das Problem lösen kann?

    Voreinstellungen des Betriebssystems?

    Tschö, Auge

    --
    Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
    Toller Dampf voraus von Terry Pratchett
    1. Hello,

      www.wasserfilter-berlin.de

      Ubuntu 16.04:

      • Firefox: Euro

      Woran kann es liegen, dass bei Linux in Verbindung mit dem Firefox die falsche Währung (Pfund) angezeigt wird?
      Eine Ahnung, wie man das Problem lösen kann?

      Voreinstellungen des Betriebssystems?

      Da das Eurozeichen auch als Literal geliefert wird, ist das mMn nicht vom OS abhängig. Da müsste der verwendete Font dann schon auf dem Codepoint vom Eurozeichen das Pfundzeichen sitzen haben. Das ein generischer Font benutzt wird ist aber wiederum nicht unwahrscheinlich, wenn die Codierung nicht sauber erkannt wird. Dann würde der Browser mWn z. B. mit ISO-8859-1 arbeiten, anstelle von UTF-8 und dann ist Vieles möglich.

      Liebe Grüße
      Tom S.

      --
      Es gibt nichts Gutes, außer man tut es
      Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
    2. Voreinstellungen des Betriebssystems?

      Spracheinstellung von Mint ist Deutsch.

      1. @@Karl Heinz

        Voreinstellungen des Betriebssystems?

        Spracheinstellung von Mint ist Deutsch.

        Und was hat die Spracheinstellung mit der Währungseinstellung zu tun?

        LLAP 🖖

        --
        “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
        1. Voreinstellungen des Betriebssystems?

          Spracheinstellung von Mint ist Deutsch.

          Gibt es bezogen auf das Linux Mint System ein Währungseinstellung bzw. wenn ja, wo kann ich die einsehen (über Cinnamon) bzw. über die Konsole?

        2. Hallo Gunnar Bittersmann,

          Und was hat die Spracheinstellung mit der Währungseinstellung zu tun?

          Unter WIndows stellt man das „in einem Rutsch“ ein. Wenn man also Deutsch auswählt, bekommt man ein entprechendes Tastaturlayout sowie Maß-(?) und Währungseinheiten und Zahlenformate vorgeschlagen.

          Inwieweit sich die Browser am Betriebssystem orientieren, weiß ich nicht. Inwieweit irgendwelche Shopsysteme aus Browsereinstellungen Währungen erraten wollen, auch nicht.

          Aber das wäre ziemlich dumm.

          Bis demnächst
          Matthias

          --
          Rosen sind rot.
          1. Tach!

            Und was hat die Spracheinstellung mit der Währungseinstellung zu tun?

            Unter WIndows stellt man das „in einem Rutsch“ ein. Wenn man also Deutsch auswählt, bekommt man ein entprechendes Tastaturlayout sowie Maß-(?) und Währungseinheiten und Zahlenformate vorgeschlagen.

            Die Währungseinstellung wird aber nur dann verwendet, wenn man über eine Betriebssystemfunktion einen Zahlenwert als Preis formatieren lässt. Auch da halte ich den Einsatz für fragwürdig, besonders wenn man Dokumente und Programme in unterschiedlichen Ländern laufen lässt und derselbe Preis unumgerechnet mit dem lokalen Währungssymbol dargestellt wird. Kennt HTML/CSS ein Element, um einen Preis ohne Währung anzugeben, den dann der Browser vervollständigen soll? Falls ja, würde ich das jedenfalls nicht verwenden, wenn ich was verkaufen möchte, als Kunde aber immer simbabwische Dollar einstellen.

            dedlfix.

          2. Tach!

            Inwieweit sich die Browser am Betriebssystem orientieren, weiß ich nicht. Inwieweit irgendwelche Shopsysteme aus Browsereinstellungen Währungen erraten wollen, auch nicht.

            Der Shop zumindest gibt in Pfund einen anderen Betrag an als in Euro. Ist also nicht nur eine Funktion, die aus einem Zahlenwert mit unspezifizierter Währung einen Preis darstellt, sondern irgendeine Preisfindungsroutine in der Shop-Software. Die orientiert sich jedenfalls an der Spracheinstellung im Browser, und man kann da anscheinend als Kunde im Shop nichts anderes wählen.

            Aber das wäre ziemlich dumm.

            Ja, auch in der jetzigen Form schon.

            dedlfix.

  4. Hallo Karl-Heinz,

    ein paar Ergebnisse von Windows 10:

    1. Firefox 53.0 mit Accept-Language: en-US,en;q=0.7,de;q=0.3: Währung in £
    2. Google Chrome 57.0 mit Accept-Language:de,en-US;q=0.8,en;q=0.6: Währung in €
    3. Microsoft Internet Explorer 11.873 mit Accept-Language: de-DE: Währung in €
    4. Microsoft Edge 25 verhält sich wie MSIE.

    Anscheinend wird en dem britischen Pfund zugeordnet, selbst wenn es en-US ist.

    Viele Grüße
    Robert

    1. Hallo Robert B.,

      ein paar Ergebnisse von Windows 10:

      Firefox 53.0 mit Accept-Language: en-US,en;q=0.7,de;q=0.3: Währung in £

      Wenn man dies verändert, und die Seite dann in einem privaten Tab neu öffnet, bekommt man die entsprechend andere Währung. Ich denke, dieses Verhalten des Shops ist gut gemeint. Und das ist bekanntlich das Gegenteil von gut.

      Bis demnächst
      Matthias

      --
      Rosen sind rot.
    2. Firefox 53.0 mit Accept-Language: en-US,en;q=0.7,de;q=0.3: Währung in £

      Ich habe es versucht nachzustellen:

      • Windows 10
      • Firefox 53.0 (64 Bit)
      • bevorzugte Sprache im Firefox an Position 1 auf en-US gesetzt
      • Seite mit STRG+F5 neu geladen

      Bei mir wird Euro angezeigt. Wie kann es sein, dass bei mir Euro angezeigt wird bei Dir hingegen £?

      1. Hello,

        Ich habe es versucht nachzustellen: Bei mir wird Euro angezeigt. Wie kann es sein, dass bei mir Euro angezeigt wird bei Dir hingegen £?

        Hast Du die Cookies gelöscht vorher?

        Liebe Grüße
        Tom S.

        --
        Es gibt nichts Gutes, außer man tut es
        Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
        1. Ich habe es versucht nachzustellen:

          Bei mir wird Euro angezeigt. Wie kann es sein, dass bei mir Euro angezeigt wird bei Dir hingegen £?

          Hast Du die Cookies gelöscht vorher?

          Gestern kam ich aus zeitlichen Gründen nichtmehr dazu die Cookies zu löschen.

          Dies wollte ich heute nachholen.

          Bevor ich allerdings die Cookies gelöscht habe, habe ich die Seite erneut aufgerufen.

          Einstellungen wie folgt:

          • Windows 10
          • Firefox 53.0
          • bevorzugte Spracheinstellung en-US

          Jetzt, nachdem ich ca. einen Tag gewartet habe, ohne etwas zu ändern, wird mir plötzlich auch £ angezeigt, obwohl ich die Cookies nicht gelöscht habe.

          Am Browser Cache kann es nicht gelegen haben, das mir gestern noch Euro angezeigt wurde. Ich habe die Seite gestern ja per STRG+F5 geladen.

          Es könnte aber doch sein, dass es am Server-Cache gelegen hat, dass ich nicht gestern sofort £ angezeigt bekommen habe?

          Angenommen ich stelle die bevorzugte Sprache von de-DE auf en-US um und lade die Seite dann mit Hilfe von STRG+F5 neu. Dann wird zwar nicht aus dem Browser-Cache geladen. Es wird aber auf einen eventuell vorhandenen Server-Cache zurückgegriffen. Wenn nun im Server-Cache noch die Euro Variante liegt bekomme ich solange, bis der Server-Cache erneuert wird und damit die neue Spracheinstellung en-US berücksichtigt wird, noch die de-DE Variante (mit Euro) ausgeliefert. Erst anschließend, nachdem der Server-Cache aktualisiert wurde bekomme ich die en-US Variante (mit £) ausgeliefert. Könnte dieser Theorie richtig sein?

          Folgendes würde diese Theorie bestätigen:

          Stelle ich die bevorzugte Sprache von en-US wieder zurück auf de-DE und lade die Seite anschließend mit Hilfe von STRG+F5 neu, so bekomme ich noch immer £ angezeigt, obwohl ich die Spracheinstellung ja wieder auf de-DE zurückgestellt habe. Ich vermute ich muss nun wieder solange abwarten bis der Server-Cache aktualisiert wurde und damit dann wieder die Spracheinstellung de-DE greift, in welcher Euro ausgeliefert wird.

          Könnte das so stimmen?

          Wenn ja, wie kann ich herausfinden, ob ein Server Cache verwendet wird bzw. wie kann ich diesen verändern?

          1. Hallo Karl Heinz,

            Am Browser Cache kann es nicht gelegen haben, das mir gestern noch Euro angezeigt wurde. Ich habe die Seite gestern ja per STRG+F5 geladen.

            Cookies haben eine Lebensdauer. https://wiki.selfhtml.org/wiki/Cookie

            Es könnte aber doch sein, dass es am Server-Cache gelegen hat, dass ich nicht gestern sofort £ angezeigt bekommen habe?

            Möglich, aber ich denke eher nicht.

            Angenommen ich stelle die bevorzugte Sprache von de-DE auf en-US um und lade die Seite dann mit Hilfe von STRG+F5 neu. Dann wird zwar nicht aus dem Browser-Cache geladen. Es wird aber auf einen eventuell vorhandenen Server-Cache zurückgegriffen. Wenn nun im Server-Cache noch die Euro Variante liegt bekomme ich solange, bis der Server-Cache erneuert wird und damit die neue Spracheinstellung en-US berücksichtigt wird, noch die de-DE Variante (mit Euro) ausgeliefert. Erst anschließend, nachdem der Server-Cache aktualisiert wurde bekomme ich die en-US Variante (mit £) ausgeliefert. Könnte dieser Theorie richtig sein?

            Folgendes würde diese Theorie bestätigen:

            Stelle ich die bevorzugte Sprache von en-US wieder zurück auf de-DE und lade die Seite anschließend mit Hilfe von STRG+F5 neu, so bekomme ich noch immer £ angezeigt, obwohl ich die Spracheinstellung ja wieder auf de-DE zurückgestellt habe. Ich vermute ich muss nun wieder solange abwarten bis der Server-Cache aktualisiert wurde und damit dann wieder die Spracheinstellung de-DE greift, in welcher Euro ausgeliefert wird.

            Könnte das so stimmen?

            Ich denke eher, das liegt am Verfallsdatum des Cookies.

            Bis demnächst
            Matthias

            --
            Rosen sind rot.
          2. Tach!

            Hast Du die Cookies gelöscht vorher?

            Gestern kam ich aus zeitlichen Gründen nichtmehr dazu die Cookies zu löschen.

            Jetzt, nachdem ich ca. einen Tag gewartet habe, ohne etwas zu ändern, wird mir plötzlich auch £ angezeigt, obwohl ich die Cookies nicht gelöscht habe.

            Mit dem Cookie wirst du serverseitig wiedererkannt und die dort gespeicherten Session-Daten können wiederverwendet werden. Sessions haben aber auch einen Timeout, und der wird in deinem Fall zum Löschen der Session-Daten geführt haben. Folglich musste eine neue Session angelegt werden, und dabei hat man sich der Language-Daten bedient, um die Währung festzulegen.

            Es könnte aber doch sein, dass es am Server-Cache gelegen hat, dass ich nicht gestern sofort £ angezeigt bekommen habe?

            Server-Caches werden nur für statische Inhalte verwendet, die für alle Besucher gleich sind. Individuelle Daten setzen voraus, dass du wiedererkannt wirst, und das macht man über Sessions. Man könnte nun auch Sessions als eine Art Cache betrachte, aber es gibt da ja die spezifischeren Begriffe

            Angenommen ich stelle die bevorzugte Sprache von de-DE auf en-US um und lade die Seite dann mit Hilfe von STRG+F5 neu. Dann wird zwar nicht aus dem Browser-Cache geladen. Es wird aber auf einen eventuell vorhandenen Server-Cache zurückgegriffen.

            Session über Cookie erkannt, der dem Server deine Session-ID mitteilt.

            Wenn ja, wie kann ich herausfinden, ob ein Server Cache verwendet wird bzw. wie kann ich diesen verändern?

            Du musst dafür sorgen, dass die Session nicht wiederaufgenommen werden kann und dafür verhindern, dass der Session-ID-Cookie gesendet wird.

            dedlfix.

          3. Hello,

            Matthias und Dedlfix sind schon auf die Funktionsweise eingegangen.

            Wäre es nun aber nich mal an der Zeit, das Shopsystem vernünftig zu konfigurieren?

            • Braucht Ihr die Mehrsprachigkeit? NEIN? -> Abschalten
            • Braucht Ihr das Währungsmdoul? NEIN? -> Abschalten

            Und schon sollten die Probleme beseitigt sein und auch die von pl erwähnte Abmahngefahr erledigt sein.

            Liebe Grüße
            Tom S.

            --
            Es gibt nichts Gutes, außer man tut es
            Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
            1. Wäre es nun aber nich mal an der Zeit, das Shopsystem vernünftig zu konfigurieren?

              • Braucht Ihr die Mehrsprachigkeit? NEIN? -> Abschalten
              • Braucht Ihr das Währungsmdoul? NEIN? -> Abschalten

              Und schon sollten die Probleme beseitigt sein und auch die von pl erwähnte Abmahngefahr erledigt sein.

              Ich werde es dem Programmierer (der ich nicht bin) so weitergeben 😀

  5. Hello,
    auf einem Apache-Server könntest Du übergangsweise die RequestHeader manipulieren, um das Problem zu beseitigen.

    Ob der NginX das auch kann, weißich nicht auswendig ...

    Liebe Grüße
    Tom S.

    --
    Es gibt nichts Gutes, außer man tut es
    Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
  6. Achtung, da kam gerade was im MoMa wenn Preise nicht in der dem Land entsprechenden Währung ausgewiesen sind: Abmahngefahr!