Ankündigung

Einklappen
Keine Ankündigung bisher.

Deutsch/Englisch Umschaltung auf Mobile-Device

Einklappen

Neue Werbung 2019

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

  • Deutsch/Englisch Umschaltung auf Mobile-Device

    Auf meiner Seite habe ich eine Navigation bei der ich auf Deutsch und Englisch wechseln kann mit diesem Code.
    Mein Problem ist es, dass ich auf dem Ipad oder Iphone immer auf die Deutsche Seite komme. Auf dem Desktop funktioniert das Perfekt. Also wenn ich einmal auf Englisch stelle, bleibt die Seite immer auf Englisch egal welche Navigationverlinkung ich anklicke.

    PHP-Code:
    <?php
    header
    ('Content-Type: text/html; charset=UTF-8');
    // Spracherkennung
    // GET abfragen; wird geliefert wenn ein Sprachlink geklickt wird
    if(isset($_GET["lang"])) {
        
    $lang langanalyse($_GET["lang"],"get");
    }
    // POST abfragen; wird in meinem Beispiel nicht benutzt
    elseif(isset($_POST["lang"])) {
        
    $lang langanalyse($_POST["lang"],"post");
    }
    // Cookie abfragen; ist ab dem 2. Besuch gesetzt (wenn Cookies aktiviert sind)
    elseif(isset($_COOKIE["lang"])) {
        
    $lang langanalyse($_COOKIE["lang"],"cookie");
    }
    // keine Sprache gefunden; Browsersprache erkennen, die Sprache mit der höchsten Priorität auswählen
    else {
        
    $cutstring explode("-"$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
        
    $detectlang $cutstring[0];
        
    $lang langanalyse($detectlang,"browser");
    }
    // überprüfe ob für die Sprache verfügbar ist
    function langanalyse($new_lang$methode) {
        switch(
    $new_lang) {
            
    // die erlaubten Sprachen hier hintereinander auflisten
            
    case ("de"):
            case (
    "en"):
                
    $lang $new_lang;
                
    setcookie("lang"$langtime()+31536000);
                break;
            
    // Cookie löschen Funktion als Pseudo-Sprache
            
    case ("delete"):
                
    setcookie("lang"$langtime()-3600);
                break;
            
    // für die erkannte Sprache sind keine übersetzungen vorhanden oder die Sprache ist gänzlich unbekannt
            
    default:
                
    $unknown_lang 1;
                
    // die Standardsprache:
                
    $lang "en";
                
    setcookie("lang"$langtime()+31536000);
        }
        
    // Methode erkennen, Debugbox öffnen und Informationen ausgeben
        /*switch($methode) {
            case ("get"): echo('<div id="langdebug">Methode = get<br/>'); break;
            case ("post"): echo('<div id="langdebug">Methode = post<br/>'); break;
            case ("cookie"): echo('<div id="langdebug">Methode = cookie<br/>'); break;
            case ("browser"): echo('<div id="langdebug">Methode = browserdetect<br/>
        (kein GET, POST und COOKIE gefunden)<br/>
        Browserlang: '.$_SERVER["HTTP_ACCEPT_LANGUAGE"].'<br/>'); break;
            default: echo('<div id="langdebug">Methode = Unbekannt oder Fehler<br/>'); break;
        }*/
        // Hinweis im Debugbox wenn Sprache unbekannt
        
    if($unknown_lang == 1) {
            echo(
    '!! Sprache "'.$new_lang.'" unbekannt. Auf "'.$lang.'" gesetzt<br/>');
            
    $unknown_lang 0;
        }
        return 
    $lang;
    }
    // ein paar zusätzliche Debuginformationen und die manuelle Sprachwahl

    /*echo('aktuelle Sprache = '.$lang.'<br/>
    Cookie Sprache = '.$_COOKIE["lang"].'<br/>
    Cookie Tod = '. date("d.m.Y G:i",time()+31536000) .'<br/>
    Sprache setzen:<br/>

    </div>');*/

    /*<a href="'.$_SERVER['SCRIPT_NAME'].'?lang=de">Deutsch</a>
    <a href="'.$_SERVER['SCRIPT_NAME'].'?lang=en">Englisch</a><br/>
    <a href="'.$_SERVER['SCRIPT_NAME'].'?lang=delete">Cookie loeschen</a>

    ?>
    Weiss jemand woran es liegen kann?
Lädt...
X