Beiträge von Sempervivum

    Zitat

    bei einer Aktualisierung der Seite fällt die Sprache auf die Browsersprache zurück - ist dies Absicht?

    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?

    sessionStorage heißt, dass der Wert nur während einer Browsersitzung gespeichert wird, localStorage dagegen dauerhaft.

    Da dir eine dauerhafte Speicherung lieber wäre, habe ich es mal mit localStorage implementiert und bin selbst überrascht, wie einfach es ist:

    Das Skript musst Du am Ende des Body, vor dem schließenden </body>, einfügen.

    Ich bin mir noch nicht sicher, ob man dort ein try-catch braucht; ich glaube, mich zu erinnern, dass es in einem anderen Projekt zu einem Laufzeitfehler kam, wenn localStorage nur deaktiviert war, obwohl der Browser es unterstützte. Sollten wir mal beobachten.

    The flexyboxes page is fine for training purposes but it is not suitable for creating a nested layout like the one you require.

    You write: "before i had normal boxes " - probably that HTML is suitable and needs new styling by flexlaout only. Show us that HTML so that we can check

    BTW: These browser specific definitions like -ms-flex-item-align are no longer necessary, you can omit them.

    Damit es funktioniert musst Du:

    • Einen Text mit Zeilenumbrüchen definieren
    • Die Funktion nicht nur definieren sondern auch aufrufen
    • Den geänderten Text auch ausgeben:

    Rufst Du dann die Seite auf, erkennst Du, dass der originale Text ohne Zeilenumbrüche dargestellt wird, aber der umgewandelte mit.

    html-seminar.de/woltlab/attachment/1777/

    Ich hatte es bisher so verstanden: Der Benutzer wählt einen Ort im Select aus. Für diesen Ort sollen dann die Koordinaten lat und lng übertragen werden. Aber jetzt schreibst Du: "um für jeden Ort ein Hidden mit zu geben?" Also sollen für alle Orte in dem Select die Koordinaten übertragen werden?

    Da musste ich einen Moment überlegen, aber jetzt verstehe ich, denke ich, was Du vor hast. Soweit ich das überblicke, geht das am einfachsten mit Javascript:

    Die zwei hidden inputs außerhalb des Select und nur einmal anlegen.

    Die Koordinaten lat und lang als data-Attribute jeweils bei den options hinzu fügen.

    Eventlistener beim select für das change-Event. Darin die data-Attribute mit lat und lng der ausgewählten Option auslesen und als value in die beiden Inputs eintragen.

    So, ich bin jetzt in das PHP von Stackoverflow eingestiegen und habe heraus gefunden, warum das automatische Umschalten nicht funktioniert:

    Lautet das Kürzel z. B. en-gb, so werden beide Hälften getrennt ausgewertet. Das "gb" rechts vom Bindestrich bekommt eine höhere Priorität und wird deshalb als bevorzugte Sprache ausgewählt. Im HTML und CSS ist jedoch nur "en" vorhanden, so dass die Umschaltung nicht funktioniert.

    Ich habe den Code so geändert, dass es funktionieren sollte. Die Funktion ist jetzt kürzer und das Array länger. Ich hoffe, aus meinen Kommentaren wird klar, wie es konfiguriert werden muss.

    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.

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

    Zitat

    Wenn ich bei meinem Browser jetzt 'Englisch' einstelle kommt nicht englisch, wenn ich 'Englisch (Vereinigte Staaten)' einstelle klappt es. Das gleiche auch mit Deutsch.

    Daran habe ich auch schon gedacht und ich habe dieses Problem erwartet. Es liegt daran, dass es bei einigen Sprachen regionale Ausprägungen gibt, z. B. en-US. Du hast das ja schon gefunden. Ich werde es mir ansehen und eine Lösung ausarbeiten. Muss mich erst Mal schlau machen wie man das in Opera umstellt.

    Bei der Benutzerumschaltung tendiere ich dahin, es clientseitig zu machen, damit die Seite beim Umschalten nicht neu geladen wird und nicht flackert. Erst dachte ich an Javascript, aber dann habe ich einen Blick auf das Codepen in deinem ersten Posting geworfen und gesehen, dass es ohne weiteres auch mit reinem CSS geht, wenn auch die Selektoren etwas kompliziert würden. Hast Du da eine bestimmte Präferenz?

    Zitat

    Im Moment kommt bei mir noch folgendes:

    Code

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

    Da offenbar der PHP-Code angezeigt statt interpretiert wird, vermute ich, dass Du deiner Seite noch nicht die Endung .php gegeben hast?

    Den Code hatte ich getestet und bei mir hat er einwandfrei funktioniert.

    Zitat

    und zwar war darum ein div container der keine höhe hatte, also hat dieser eine höhe und breite von 0px und davon 100% ist genau NULL... richtig?

    Genau, das war es, was ich oben gemeint hatte.

    Zitat

    Wenn ich jedoch nur background-size: 100%; eingebe wird es wieder unten abgeschnitten. Warum?

    Da musste ich selbst erst Mal genau nachlesen:

    https://wiki.selfhtml.org/wiki/CSS/Eigen…background-size

    Sie schreiben:

    Zitat

    Die erste Angabe spezifiziert die gewünschte Breite der Hintergrundgrafik, die zweite entsprechend die Höhe. Ist nur ein Wert gegeben, so wird die Höhe unter Beibehaltung des Seitenverhältnisses skaliert.

    D. h. ist das Seitenverhältnis von Container und Hintergrundbild nicht gleich, wird etwas abgeschnitten, oder es bleibt freier Raum bzw. das Bild wiederholt sich, abhängig von background-repeat.

    Zitat

    dann ist es auch unten abgeschnitten.

    und auch bei

    background-size: cover;

    Das ist genau das Verhalten von cover: Das Bild wird so angepasst, dass es ohne Verzerrung den Container ausfüllt. Stimmen die Seitenverhältnisse nicht überein, führt das dazu, dass etwas abgeschnitten wird, entweder seitlich oder oben/unten.

    Zitat

    etwas ausserhalb von meinen Möglichkeiten..

    Keine Sorge, es geht auch einfacher.

    Zitat

    Grundsätzlich möchte ich auch, weil es so wenig Text pro Seite ist, auch lieber nicht mehrere SeiteX_[Sprache].html haben

    Auch das ist kein Problem. Versuche diesen Code:

    Du brauchst dann nur die Klasse lang-de oder lang-en usw. zu den HTML-Tags hinzufügen. Ist keine dieser Klassen vorhanden, wie in dem Beispiel beim img-Tag, wird das Element unabhängig von der Sprche angezeigt.

    Das PHP ist im Wesentlichen von hier:
    https://stackoverflow.com/questions/3770…language-in-php

    Nächster Schritt: Das PHP auslagern, damit die Seiten übersichtlicher werden.

    Übernächster Schritt: Umschaltung durch Benutzer hinzu fügen.

    Im Video funktioniert das, was Du oben gepostet hast, auch nicht, denn Du hast das Gleichheitszeichen hier vergessen:

    punkte(name1 + name2).length;

    Richtig wäre:

    punkte = (name1 + name2).length;

    Mir scheint, dass dieser Kurs weniger zu empfehlen ist: Ziemlich nachlässig gemacht, da wird zunächst Code hingeschrieben, der nicht funktioniert, z. b. length() und dann schnell korrigiert und die Verwendung von document.write ist eher nicht zu empfehlen.

    Ich empfehle, lieber das Tutorial hier bei html-seminar durchzuarbeiten:

    https://www.html-seminar.de/javascript.htm