Orkan: Cookies speichern

Hallo alle Zusammen,

ich habe eine Webseite die mit 2 - 3 Sprachen arbeitet. Im rechten Seitenmenü ist ein Button auf den man klicken kann. Dies sorgt für eine andere Sprache. Aber momentan ist es so, dass man bei jedem Seiten wechsel immer dies manuell einstellen muss. Das möchte ich mit Cookies falls möglich beheben. Das heißt das der Besucher nur 1x auf den Button im Seitenmenü klicken muss, damit er alle Unterseiten der Webseite auf der ausgewählten Sprache besuchen kann. Bitte habt Verständnis ich habe 0 Ahnung von Cookies. Danke für Eure Hilfe im Voraus.

Hier ist der Script ohne Cookies:

<body onload="otranslatePaToDE()"></body>
<script>
function otranslatePaToDE()  {document.getElementById('languageboxDE').className='languagesetSelected';document.getElementById('languageboxEN').className='languageset';document.getElementById('nav_Home').innerHTML='<a href="#" class="menu"><span>Startseite</span></a>';document.getElementById('nav_Aboutme').innerHTML='<a href="#" class="menu"><span>Über mich</span></a>';document.getElementById('nav_AboutthisWebsite').innerHTML='<a href="#" class="menu"><span>Über diese Webseite</span></a>';}

function otranslatePaToEN() {document.getElementById('languageboxDE').className='languageset';document.getElementById('languageboxEN').className='languagesetSelected';document.getElementById('nav_Home').innerHTML='<a href="#" class="menu"><span>Home</span></a>';
document.getElementById('nav_Aboutme').innerHTML='<a href="#" class="menu"><span>About me</span></a>';document.getElementById('nav_AboutthisWebsite').innerHTML='<a href="#" class="menu"><span>About this Website</span></a>';}
</script>

<div id="container">
<div id="nav_container">

<ul id="nav">
<li class="nav_element checked_menu" id="nav_Home">
<a href="#" class="menu">Home</a></li>
<li class="nav_element" id="nav_Aboutme">
<a href="#" class="menu">About me</a></li>
<li class="nav_element" id="nav_AboutthisWebsite">
<a href="#" class="menu">About this Website</a></li>
</ul>
</div>
<div id="content_container">
<div id="content">
<font id="wlcm">Willkommen auf meiner Webseite!</font><hr class="ohr">

<font id="stndfnt">Beispiel Text...</font>

<script>
function otranslateToDE()  {document.getElementById('wlcm').innerHTML='Willkommen auf meiner Webseite!';document.getElementById('stndfnt').innerHTML='Beispiel Text...';}
function otranslateToEN()  {document.getElementById('wlcm').innerHTML='Welcome to my Blog!';document.getElementById('stndfnt').innerHTML='Example Text...';}
</script>

<div id="sidebar_container" style="float: right;">
<div id="sidebar_content"><font id="wlcm">Sidebar (rechtes Seitenmenü)</font><hr class="ohr">
<a href="#" onclick="otranslatePaToDE();otranslateToDE();" class="languagesetSelected" id="languageboxDE" onmouseout="hideTooltip()" onmouseover="showTooltip(event,'Seite in Deutscher Sprache anzeigen.')">DE</a>
<a href="#" onclick="otranslatePaToEN();otranslateToEN();" class="languageset" id="languageboxEN" onmouseout="hideTooltip()" onmouseover="showTooltip(event,'Show this Page in English. [Beta]')">EN</a></div></div>

  1. Hallo Orkan,

    dein Code ist seltsam und das ist noch freundlich gesagt. Den kann man nicht einfach übernehmen und ausprobieren, da stimmt es hinten und vorne nicht. Also du postest Code der in sich stimmig ist oder am besten gleich deine Beispielseite damit man das als Ganze sehen kann.

    1. Hallo Orkan,

      dein Code ist seltsam und das ist noch freundlich gesagt. Den kann man nicht einfach übernehmen und ausprobieren, da stimmt es hinten und vorne nicht. Also du postest Code der in sich stimmig ist oder am besten gleich deine Beispielseite damit man das als Ganze sehen kann.

      Ich habe den Code bearbeitet bzw. korrigiert. Sollte jetzt besser zu verstehen und zum bearbeiten sein. http://forum.de.selfhtml.org/?t=212175&m=1448954

  2. @@Orkan:

    nuqneH

    ich habe eine Webseite die mit 2 - 3 Sprachen arbeitet.

    Webseite oder Website?

    Im rechten Seitenmenü ist ein Button auf den man klicken kann. Dies sorgt für eine andere Sprache.

    Aber doch hoffentlich nicht anstelle von, sondern zusätzlich zu automatischer Sprachvereinbarung (language negotiation).

    Das heißt das der Besucher nur 1x auf den Button im Seitenmenü klicken muss, damit er alle Unterseiten der Webseite auf der ausgewählten Sprache besuchen kann.

    Du hast beachtet, dass nicht alle Nutzer über die Homepage auf deine Website kommen?

    <a href="#" onclick="otranslatePaToDE();otranslateToDE();" …>DE</a>
    <a href="#" onclick="otranslatePaToEN();otranslateToEN();" …>EN</a>

    Gibt es einen bestimmten Grund, warum der Sprachwechsel nur bei aktiviertem JavaScript verfügbar ist? Für einige Seitenbesucher (darunter wichtige) also nicht?

    'DE' und 'EN' sind nur für sehr spezielles Zielpublikum einsetzbare Beschriftungen. (apache.org macht das so.) Allegemein gilt: Kennzeichnung ausgeschrieben in der jeweiligen Zielsprache: 'deutsch', 'English'.

    Qapla'

    --
    „Perfektion ist nicht dann erreicht, wenn es nichts mehr hinzuzufügen gibt, sondern wenn man nichts mehr weglassen kann.“ (Antoine de Saint-Exupéry)
  3. Hallo alle Zusammen,

    ich habe den HTML Code nun bearbeitet und muss zugeben da waren codes eingebaut die irritieren konnten, aber jetzt sollte es besser zu verstehen sein. Wenn Ihr einen HTML Editor braucht, könnt Ihr den auf Winsuche benutzen. Geht einfach auf die Webseite klickt im oberen Menü auf "Mehr" und wählt gleich darunter den HTML Editor. Kopiert und fügt den Text in das Textfeld und klickt auf den blauen "Preview" Button. Ein Fenster mit dem Eingefügtem Code wird zur Darstellung erzeugt. Sollte mit allen Browser funktionieren. Mein Ziel nun ist wie gefolgt, dass die Änderungen in den Cookies gespeichert wird. Sollten noch fragen offen sein, antwortet einfach. Ich werde versuchen sie so schnell wie möglich zu beantworten. Danke für Eure Hilfe im Voraus.

    <body onload="otranslatePaToDE()"></body>

    <script>
    function otranslatePaToDE()  {
    document.getElementById('nav_Home').innerHTML='<a href="#" class="menu"><span>Startseite</span></a>';
    document.getElementById('nav_Aboutme').innerHTML='<a href="#" class="menu"><span>Über mich</span></a>';
    document.getElementById('nav_AboutthisWebsite').innerHTML='<a href="#" class="menu"><span>Über diese Webseite</span></a>';}

    function otranslatePaToEN() {
    document.getElementById('nav_Home').innerHTML='<a href="#" class="menu"><span>Home</span></a>';
    document.getElementById('nav_Aboutme').innerHTML='<a href="#" class="menu"><span>About me</span></a>';
    document.getElementById('nav_AboutthisWebsite').innerHTML='<a href="#" class="menu"><span>About this Website</span></a>';}
    </script>

    <ul id="nav">
    <li class="nav_element checked_menu" id="nav_Home">
    <a href="#" class="menu">Home</a></li>
    <li class="nav_element" id="nav_Aboutme">
    <a href="#" class="menu">About me</a></li>
    <li class="nav_element" id="nav_AboutthisWebsite">
    <a href="#" class="menu">About this Website</a></li>
    </ul>

    <font id="wlcm">Willkommen auf meiner Webseite!</font><hr class="ohr">
    <font id="stndfnt">Beispiel Text...</font>

    <script>
    function otranslateToDE()  {document.getElementById('wlcm').innerHTML='Willkommen auf meiner Webseite!';document.getElementById('stndfnt').innerHTML='Beispiel Text...';}
    function otranslateToEN()  {document.getElementById('wlcm').innerHTML='Welcome to my Blog!';document.getElementById('stndfnt').innerHTML='Example Text...';}
    </script>

    <div id="sidebar_container" style="float: right;">
    <font id="wlcm">Sidebar (rechtes Seitenmenü)</font><hr class="ohr">
    <a href="#" onclick="otranslatePaToDE();otranslateToDE();" id="languageboxDE">DE</a>
    <a href="#" onclick="otranslatePaToEN();otranslateToEN();" id="languageboxEN">EN</a></div>

    1. Om nah hoo pez nyeetz, Orkan!

      <body onload="otranslatePaToDE()"></body>

      Verschachtelungsfehler! handler-attribute sind uncool.

      document.getElementById('nav_Home').innerHTML='<a href="#" class="menu"><span>Startseite</span></a>';

      Wozu die Spanelemente innerhalb der Links?

      <font id="wlcm">Willkommen auf meiner Webseite!</font><hr class="ohr">
      <font id="stndfnt">Beispiel Text...</font>

      font ist ein missbilligtes Element Schreibe semantisch korrektes html. Verwende etwa h1 und p.

      hr dient der semantischen Trennung von Inhalten nicht zur Verzierung. Verwende beispielsweise border für die Überschrift.

      <div id="sidebar_container" style="float: right;">

      Verwende keine inline-style-Angaben. Mache alle Gestaltungsangaben in einem style-sheet.

      Matthias

      --
      1/z ist kein Blatt Papier.

      1. Hallo Matthias,

        der obere Code den ich veröffentlicht habe ist auf meiner Webseite total anders, ich will ja nur wissen wie mann das mit den Cookies speichern hinkriegt. http://orkan-saklan.de.tl ist die vollständige Seite. Ich hoffe du kannst mir mit meinem Cookies Problem weiterhelfen.

        MfG
        Orkan

        1. Hallo Orkan,

          ... ich will ja nur wissen wie mann das mit den Cookies speichern hinkriegt.

          gleich um die Ecke: http://de.selfhtml.org/javascript/objekte/document.htm#cookie

          Gruß, Jürgen

          1. Hallo Jürgen,

            Danke für Deine Antwort. Aber leider weiß ich nicht genau wie ich das in meinem Code einfügen kann. Hoffe Du kannst mir einen Tipp geben. Danke!

            Gruß Orkan

            Hier noch einmal mein Code:

            <body onload="otranslatePaToDE()"></body>

            <script>
            function otranslatePaToDE()  {
            document.getElementById('nav_Home').innerHTML='<a href="#" class="menu"><span>Startseite</span></a>';
            document.getElementById('nav_Aboutme').innerHTML='<a href="#" class="menu"><span>Über mich</span></a>';
            document.getElementById('nav_AboutthisWebsite').innerHTML='<a href="#" class="menu"><span>Über diese Webseite</span></a>';}

            function otranslatePaToEN() {
            document.getElementById('nav_Home').innerHTML='<a href="#" class="menu"><span>Home</span></a>';
            document.getElementById('nav_Aboutme').innerHTML='<a href="#" class="menu"><span>About me</span></a>';
            document.getElementById('nav_AboutthisWebsite').innerHTML='<a href="#" class="menu"><span>About this Website</span></a>';}
            </script>

            <ul id="nav">
            <li class="nav_element checked_menu" id="nav_Home">
            <a href="#" class="menu">Home</a></li>
            <li class="nav_element" id="nav_Aboutme">
            <a href="#" class="menu">About me</a></li>
            <li class="nav_element" id="nav_AboutthisWebsite">
            <a href="#" class="menu">About this Website</a></li>
            </ul>

            <font id="wlcm">Willkommen auf meiner Webseite!</font><hr class="ohr">
            <font id="stndfnt">Beispiel Text...</font>

            <script>
            function otranslateToDE()  {document.getElementById('wlcm').innerHTML='Willkommen auf meiner Webseite!';document.getElementById('stndfnt').innerHTML='Beispiel Text...';}
            function otranslateToEN()  {document.getElementById('wlcm').innerHTML='Welcome to my Blog!';document.getElementById('stndfnt').innerHTML='Example Text...';}
            </script>

            <div id="sidebar_container" style="float: right;">
            <font id="wlcm">Sidebar (rechtes Seitenmenü)</font><hr>
            <a href="#" onclick="otranslatePaToDE();otranslateToDE();" id="languageboxDE">DE</a>
            <a href="#" onclick="otranslatePaToEN();otranslateToEN();" id="languageboxEN">EN</a></div>

            1. Hallo Orkan,

              ... Aber leider weiß ich nicht genau wie ich das in meinem Code einfügen kann. ...

              was hast du am Kapitel zu Cookies in Selfhtml denn nicht verstanden? Was hast du denn schon versucht?

              Hier noch einmal mein Code:

              der ist fehlerhaft, das </body muss ans Ende vor </html>.

              Zu deinem Vorhaben: du musst nach dem Laden der Seite prüfen, ob ein Cookie gesetzt ist, wenn ja, auswerten und die Sprache entsprechend wählen. Beim Einstellen der Sprache musst du den Cookie setzen

              Zu deinem Konzept: Die meisten Browser sind default so eingestellt, dass sie Cookies zwar akzeptieren, aber beim Schließen des Browsers vergessen. Daher werden die meisten deiner Besucher nicht merken, das die Spracheinstellung gespeichert wurde. Warum machst du es nicht so, wie Gunnar (ein Experte auf diesem Gebiet) vorgeschlagen hat?

              Gruß, Jürgen

        2. @@Orkan:

          nuqneH

          http://orkan-saklan.de.tl ist die vollständige Seite.

          Wie ich schon vermutete, ich bekomme die Seite auf deutsch, auch wenn ich Englisch als bevorzugte Sprache eingestellt habe.

          Das Sprachauswahlmenü geht völlig unter; seine Funktion wird für die Nutzer nicht klar.

          Du überträgst die Texte für alle drei Sprachversionen, also zwei Drittel der Texte zu viel. Überflüssige Daten zu übertragen, ist ein Performanzkiller.

          Mache getrennte deutsche, englische und türkische Seiten, die sowohl über einen generischen URI als auch über ihrer jeweiligen sprachspezifischen URIs aufgerufen werden können. Implementiere automatische Sprachvereinbarung (language negotiation), im einfachsten Fall mit MultiViews. Wenn dir dann das Problem immer noch ein Dorn im Auge ist, implementiere eine _server_seitige Lösung mit Cookies.

          BTW, da die verwendete Schriftart kein Glyphe für ş enthält, wird es bei „Bloguma hoşgeldiniz!“ in einer anderen Schriftart gesetzt, was sehr hässlich aussieht. Von der (Un-)Sinnhaftigkeit eines Willkommensgrußes auf einer Website mal ganz abgesehen.

          Qapla'

          --
          „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
          1. @@Orkan:

            nuqneH

            http://orkan-saklan.de.tl ist die vollständige Seite.

            Wie ich schon vermutete, ich bekomme die Seite auf deutsch, auch wenn ich Englisch als bevorzugte Sprache eingestellt habe.

            Meinst du, dass die Sprach Einstellungen nach dem Seiten wechsel verloren gehen. Genau das will ich mit Cookies verhindern.

            Das Sprachauswahlmenü geht völlig unter; seine Funktion wird für die Nutzer nicht klar.

            Ich werde in Zukunft versuchen es Benutzerfreundlicher zu gestalten.

            Du überträgst die Texte für alle drei Sprachversionen, also zwei Drittel der Texte zu viel. Überflüssige Daten zu übertragen, ist ein Performanzkiller.

            Mache getrennte deutsche, englische und türkische Seiten, die sowohl über einen generischen URI als auch über ihrer jeweiligen sprachspezifischen URIs aufgerufen werden können. Implementiere automatische Sprachvereinbarung (language negotiation), im einfachsten Fall mit MultiViews. Wenn dir dann das Problem immer noch ein Dorn im Auge ist, implementiere eine _server_seitige Lösung mit Cookies.

            Das frühere Design hatte die Sprachen voreinander getrennt, hier kannst du es beobachten aber das sah nicht toll aus, und anders kann man es nicht unbedingt gestalten da ich bei Webme Angemeldet bin. Es ist da nicht alles so einfach. Also habe ich mir dieses Design ausgedacht.

            BTW, da die verwendete Schriftart kein Glyphe für ş enthält, wird es bei „Bloguma hoşgeldiniz!“ in einer anderen Schriftart gesetzt, was sehr hässlich aussieht. Von der (Un-)Sinnhaftigkeit eines Willkommensgrußes auf einer Website mal ganz abgesehen.

            Bei mir sieht es recht gut aus. Das Problem kann aber auch an Deinem System und/oder Webbrowser liegen.

            Danke für Deine Hilfe!

            1. Hallo,

              Wie ich schon vermutete, ich bekomme die Seite auf deutsch, auch wenn ich Englisch als bevorzugte Sprache eingestellt habe.
              Meinst du, dass die Sprach Einstellungen nach dem Seiten wechsel verloren gehen.

              nein, Gunnar meint, dass du die bevorzugte Sprache nicht berücksichtigst, die sein Browser beim Request angibt. Hast du gelesen, was er verlinkt hat?

              Genau das will ich mit Cookies verhindern.

              Okay. Aber solange der Client noch kein Cookie vorzeigt, solltest du seine grundsätzlichen Präferenzen stattdessen für die Sprachauswahl heranziehen.

              Das frühere Design hatte die Sprachen voreinander getrennt, hier kannst du es beobachten aber das sah nicht toll aus, ...

              Was willst du uns mit einem Bild in zigfacher Vergrößerung mitteilen? Zumindest hat das nichts mit dem Ratschlag zu tun, die Sprachversionen zu trennen.
              Außerdem: Was hat die verwendete Technik mit dem Aussehen zu tun?

              Ciao,
               Martin

              --
              Zwei Politiker auf dem Weg zum Sitzungssaal: "Was sagten Sie in ihrer Rede neulich noch zur Rentenreform?" - "Nichts." - "Ja, schon klar. Aber wie haben Sie es formuliert?"
              Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
              1. Was willst du uns mit einem Bild in zigfacher Vergrößerung mitteilen? Zumindest hat das nichts mit dem Ratschlag zu tun, die Sprachversionen zu trennen.
                Außerdem: Was hat die verwendete Technik mit dem Aussehen zu tun?

                Hallo Martin, ich möchte damit zeigen, dass im Menü Die jeweiligen Sprachen mit Unterseiten auftauchen, das nicht sehr toll aussieht.

                Ciao,
                Martin

            2. @@Orkan:

              nuqneH

              Meinst du, dass die Sprach Einstellungen nach dem Seiten wechsel verloren gehen.

              Hast du den Artikel, den ich dir bereits zweimal verlinkt habe, wenigstens einmal gelesen?

              Genau das will ich mit Cookies verhindern.

              Also nochmal: Wenn du automatische Sprachvereinbarung (language negotiation) einsetzt, betrifft das Problem nur noch sehr wenige Nutzer.

              Das frühere Design hatte die Sprachen voreinander getrennt, hier kannst du es beobachten aber das sah nicht toll aus

              Das Aussehen hat rein gar nichts mit der Implementierung der Mehrsprachigkeit zu tun.

              Bei mir sieht es recht gut aus. Das Problem kann aber auch an Deinem System und/oder Webbrowser liegen.

              Auf Mac und iPad sieht’s so aus:

              Und das ist nicht mein Problem, sondern deins.

              (Das ı in „Benim hakkımda“ wird allerdings in der richtigen Scriftart dargestellt.)

              Qapla'

              --
              „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
          2. @@Gunnar Bittersmann:

            nuqneH

            BTW, da die verwendete Schriftart kein Glyphe für ş enthält, wird es bei „Bloguma hoşgeldiniz!“ in einer anderen Schriftart gesetzt, was sehr hässlich aussieht. Von der (Un-)Sinnhaftigkeit eines Willkommensgrußes auf einer Website mal ganz abgesehen.

            Ein Workaround wäre vielleicht, das ş decomposed als 's&#x327;' zu notieren.

            Qapla'

            --
            „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)