Beiträge von oli28

    Guten Morgen zusammen!

    Ich stecke nochmals an einer Ecke fest, bei der Mobilversion lässt sich die Sprache nicht umschalten - bei der Desktopversion funktioniert es prächtig. Ich habe das Gefühl es hängt mit der aufpoppenden Navi zusammen, komme jedoch nicht dahinter. Ich habe den Code angehängt.

    Hat jemand eine Idee?

    Selbstverständlich, dann geht nix mehr. Es war nur für mich um herauszufinden ob ich irgendwo einen Fehler gemacht habe beim Include oder so..

    Du findest die Website hier: [hidden]

    Das Template ohne den lustigen Balken oben hier: https://html5up.net/uploads/demos/prologue/


    Zitat

    Tipp ins Blaue: Hast Du die Inputs vielleicht mit visibility: hidden; unsichtbar gemacht?

    Nicht, dass ich wüsste :saint:



    Ich habe es versucht es mit den Entwicklertools von Chrome zu identifizieren, damit kam ich jedoch nicht weiter.

    Guten Morgen! Eine Frage tat sich die Tage noch auf, ein Teil des php-Teils im Head verursacht einen weissen Balken ganz oben auf der Website. Ich habe versucht herauszufinden welcher Teil es genau ist - der Code sieht aktuell so aus



    Wenn ich diesen Teil entferne ist der Balken weg

    Code
    $displayed_languages = array_unique($available_languages);


    Hast Du eine Idee wie der Balken ausgelöst werden könnte..?

    Nein, so sollte es genau nicht sein, beim Aktualisieren der Seite oder Aufruf einer anderen sollte die manuelle Auswahl erhalten bleiben und das hat mit meiner Testdatei auch funktioniert. Beschreibe mal deine Testbedingungen: Welcher Browser, lokaler Test mit oder ohne Webserver, gibt die Console irgend welche Anhaltspunkte?

    Sorry, das war falscher Alarm oder vielleicht ein Problem mit meinem Browser. Es läuft alles - danke vielmals! :love:

    Du hast Dich aber für einen Weg entschieden, von dem man Dich leider nicht abholen kann, wie es scheint. Das ist der einzige Grund, warum ich mein Beispiel nicht im Detail hier ausführe. Du reagierst in diesem Thread fast ausschließlich auf die Beiträge von Sempervivum, der Dir zwar sehr intensiv hilft, aber die Lösung aus meiner Sicht leider nicht gut ist.


    Die Entscheidung meines Weges basiert nur auf der Tatsache, dass ich eine Chance habe das ganze am Schluss auf meiner Website zu verwenden.

    Ich bastel halt niemandem die Lösungen vor, wie es hier gerade passiert. Ist nebenbei bemerkt auch ziemlich spooky, wenn man bedenkt, dass die helfende Person das Forum mal mit Pauken und Trompeten verlassen hat, weil er diese Lösungshilfe anderer Forenmitglieder verteufelt hat.

    Das verstehe ich und respektiere Deine Sicht. Für persönliche Differenzen ist mein Thread jedoch vielleicht nicht der richtige Austragungsort..



    Da dir eine dauerhafte Speicherung lieber wäre, habe ich es mal mit localStorage implementiert

    Das funktioniert grossartig, zwar ist es nur auf der aktuelle Session basieren, bei einer Aktualisierung der Seite fällt die Sprache auf die Browsersprache zurück - ist dies Absicht?

    Selbstverständlich, dafür gibt es zwei Möglichkeiten:

    • Serverseitig in einer Sessionvariablen oder
    • Clientseitig im Session- oder Localstorage, je nachdem, welches Verhalten gewünscht ist

    Ich habe kurz gegoogelt und versucht die Vorteile/Nachteile abzuwägen.

    • Bei der Serverseitigen Sessionsvariablen ist es 'nur' bis zum Ende der Sitzung gespeichert, wenn ich dies richtig verstanden habe? Dies ist toll, noch besser wäre natürlich eine 'dauerhafte' Speicherung.
    • Client-Session vermute ich wie oben?
    • Client-Local, da ist vermutlich eine längerfristige Speicherung möglich?

    Die Speicherplatz-Einschränkung wird für diesen Fall keine Hindernisse darstellen..


    Wie sieht denn der Aufwand und die Kompatibilität (Gerät/Browser) aus? Oder hast Du eine Empfehlung was Du vorschlagen würdest?

    Was muss meine Funktion können?

    Die Funktion soll die übermittelten verfügbaren Sprachen aus dem Browser auslesen, idealer Weise nach Priorität sortiert.


    Diese Sprachen sollen mit den erlaubten Sprachen verglichen werden. Die erste verfügbare Sprache, die erlaubt ist, soll meine Sprache sein.

    Wird keine verfügbare Sprache in den erlaubten gefunden, soll meine Standardsprache verwendet werden.

    Dies ist mir klar. Das Verständnis dafür ist, vermute ich, durchaus da. Mir geht es jedoch klar an dem technischen Verständnis im HTML-Bereich. (meine 'Kenntnisse' sind ein paar lachhafte HTML-Lektionen in der Berufsschule gefolgt von vielen langen und mittel erfolgreichen Stunden des herumprobierens)


    Die Nutzung selber wäre allerdings relativ simpel:

    Das mag es für Dich sein, für mich ist es dies leider, noch nicht - wie gesagt

    etwas ausserhalb von meinen Möglichkeiten..



    Weitergehende Erklärungen spare ich mir erstmal, weil Du es vermutlich eh nicht nutzen wirst.

    Die ist, vor allem für mich, natürlich schade. Auch wenn ich nicht genau weiss inwiefern diese Aussage hier nützlich erscheinen sollte.

    Mich freut jede Hilfe sehr, die Sprachumschaltung ist ein Thema das ich, mangels Fachwissen, schon länger vor mir her schiebe. Dass das Ziel jetzt so 'nahe' ist freut mich noch mehr.

    Sorry, das ist quatsch. Wenn die Sprache einen Bindestrich hat, folgt die Angabe dem Schema <sprache>-<region>, wovon die Region für Dein Vorhaben überflüssig ist. Schränkt euch auf den Sprachcode ein und das Array kann deutlich kleiner gehalten werden. Ich behaupte mal, dass Du niemals regionsabhängige Sprachinhalte haben wirst, woraus folgt:

    PHP
    $available_languages = array( "de", "en", "fr" );

    Die Funktion dann entsprechend anpassen und das ganze ist etwas sinnvoller, übersichtlicher und wartungsfreundlicher.


    Das wäre durchaus wartungsfreundlicher. Wenn ich das oben genannte $available_languages = array durch Deines ersetze schaltet die Sprache allerdings nicht mehr um - ich habe beide Englisch-Varianten versucht.


    Bei der manuellen Umschaltung habe ich mich für die CSS-Lösung entschieden. Typisch dafür ist, dass es gewisse Einschränkungen gibt: Die Radiobuttons müssen ganz am Anfang des Body stehen und wenn man die Labels entspr. Zustand hervorheben will, muss man sie entspr. adressieren.


    Die läuft soweit bestens. Die Umschaltung auf der Mobileseite will noch nicht richtig, dies ist aber eher ein CSS-Problem.. Da habe ich noch nicht rausgefunden wie das Template die Titelleiste zusammen schustert.


    Gibt es eine Möglichkeit die Sprache zu (zwischen-)speichern? Im Moment kommt, natürlich, wieder die Browsersprache wenn die Seite gewechselt wird.

    Allzu intensiv habe ich es nicht getestet. Wenn Du Fehler findest, melde dich wieder.

    Nur kurz weil es schon etwas spät ist und ich morgen früh los muss - funktioniert, prächtig. Ich habe den Code kurz nach dieser Liste erweitert um alle verschiedenen Werte abzudecken



    So sieht es aktuell aus, mit DE/EN/FR in allen Variationen und auf die Schnelle läuft es - sowohl automatisch (noch nicht alles Sprach-Varianten geprüft) als auch manuell. Ich denke als nächstes werde ich mir überlegen wie ich die manuelle Umschaltung in das UI einbinden werde.


    Bis hierhin schon mal - danke euch beiden! Ich teste mal ein Bisschen rum und komme sicherlich nochmals :)

    Oh ja! Sehr gerne! Ich kam noch auf keine gute Idee wie ich es im UI unterbringen werde aber dies ist natürlich sekundär..

    Wie würdest Du dies angehen?


    Noch eine kurze Zwischenfrage, ich habe jetzt kurz mit "en", "de","fr" gespielt. Wenn ich bei meinem Browser jetzt 'Englisch' einstelle kommt nicht englisch, wenn ich 'Englisch (Vereinigte Staaten)' einstelle klappt es. Das gleiche auch mit Deutsch.

    Dies ist natürlich soweit grossartig, am liebsten möchte ich jedoch alle en-xx abdecken, bei meinen Nachforschungen stiess ich auf zahlreiche Listen welche entsprechende Codes verbreiteten - gibt es eine Möglichkeit die dort zusammen zu fassen?

    Natürlich - nicht.

    Jetzt geht es, prächtig, ich bin begeistert :love:


    Jetzt habe ich noch ein Weg gefunden um php in einem html-File unterzubringen ("AddType application/x-httpd-php .htm .html" im .htaccess file)


    Ich werde mal versuchen das Ganze in meinem Code aufzubauen, danke soweit, ich melde mich gerne bei Fragen :)


    EDIT: Ein erster Test läuft, mit meinem Source und dem PHP ausgelagert, unglaublich..

    Keine Sorge, es geht auch einfacher.

    Oh, das würde mich sehr freuen.


    Ich habe den Code mal ausprobiert. Nicht, dass ich diesen Code komplett verstehen würde aber eine Anpassung der unterstützen Sprachen oder das Auslagern des PHP's traue ich mir zu :)


    Im Moment kommt bei mir noch folgendes:

    Code
    0) { reset($langs); $thelang = key($langs); } else $thelang = "de"; echo ''; ?>
    
    Dies ist deutscher Text
    
    This is english text





    Die Vorteile sind mir soweit klar und das wäre auf jeden Fall ein Pluspunkt. Die Architektur mit www.[website].xx/[sprache]/[seite].html ist für mich auf jeden Fall eine Option und ein Weg den ich, zumindest ohne automatische Erkennung der Sprache, problemlos umsetzen kann.


    Für mich ist es jedoch ein Nachteil wenn ich meine 12 Seiten die ich aktuelle habe mit der Anzahl Sprachen multiplizieren muss und dann Anpassungen an 36 Seiten vornehmen muss. Natürlich kann ich auch dort viel mit include arbeiten aber einfacher wäre es wohl die zwei Sätze pro Seite in drei Sprachen zu haben und jeweils nur eine anzuzeigen.


    Aus diesem Grund wäre es für mich, so wie ich es im Moment sehe, einfacher die 12 Seiten zu lassen und darin die drei Sprachen zu verpacken :)

    Danke für Dein Beispiel! Ich habe es mir über die Festtage angeschaut, mir ist aus dem Beispiel noch viel unklar, dies ist wohl - im Moment - etwas ausserhalb von meinen Möglichkeiten.. Grundsätzlich möchte ich auch, weil es so wenig Text pro Seite ist, auch lieber nicht mehrere SeiteX_[Sprache].html haben.. Dies ist natürlich ohne JavaScript etwas schwierig umsetzbar..

    Ich versuche mal noch ein JS-Beispiel als Vergleich zu finden :)