Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Sprachänderung bei frame-Projekt

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Sprachänderung bei frame-Projekt

    Hallo!

    Ich habe eine Webapplikation, die mit Frames gebaut wurde.
    (Ich habe das nicht entwickelt, ich soll es nur weiterentwickeln )
    Nun habe ich mir überlegt, dass man diese Applikation doch am besten mal mehrsprachig machen sollte, also gibt es nun eine language-file, in der alle Überschriften, Beschriftungen, usw... ausgelesen werden.
    Bis jetzt werden die Sprachen de und en unterstützt.
    (Dies kann aber in Zukunft beliebig erweitert werden)

    Es gibt auch noch eine configuration-file, in der Datenbank-Verbindungen, globale Variablen usw... definiert sind.
    Dort wird auch die globale Sprache festgelegt, ganz einfach mit $def_lang = "de" und schon werden alle "de"-Sachen für Beschriftungen, Überschriften, usw... aus der language-file ausgelesen.


    Jetzt gibt es aber ein paar Probleme bezüglich meines Planes:

    1) Am besten wäre es, die Sprachumstellung mit JavaScript/AJAX zu lösen.
    Allerdings kann ich mit JS/AJAX meines Wissens nach keine files bearbeiten, dies wäre aber Projektintern von Nöten, da die $def_lang -Variable in der config-file einen neuen Wert (beispielsweise "en") kriegen muss.

    2) Würde ich es mit PHP lösen (über Formulare), so müsste auf jeder Seite einen check einfügen, ob das Formular abgeschickt wurde (und es ist bereits eine RIESIGE Applikation).

    3) Alle Frames (es gibt 3 Stück: Header [oben], Navi [links], Content [mitte]) müssten neu geladen werden, da überall Änderungen bei einem Wechsel der Sprache stattfinden.



    Wie kann ich diese Probleme umgehen?
    Hat jemand ein paar Tips oder sonst irgendwelche Hilfestellungen?


    P.S: Ich habe bereits eine Art Framework gefunden, mit der ich zwar schon über JS eine File manipulieren kann.
    Allerdings soll ich kein neues Framework in die Applikation einbauen!!
    sigpic

  • #2
    Was spricht dagegen beim wechsel der Sprache die Seite neu zu laden und die Sprachinformationen in der Session abzulegen?

    $_SESSION['language'] = 'de';
    oder was auch immer

    Gruß Werner
    Gruß Werner
    Mein kleines Projekt: Fussball Satrup
    Wird ein OpenSource CMS für Fussballvereine

    Kommentar


    • #3
      Die Sprache wird Applikationsweit nicht aus der Session, sondern aus einer bestehenden file ausgelesen.
      Und diesen Wert müsste ich bei einem Wechsel ändern.

      Außerdem gehen Informationen verloren, wenn ich die Seite neu laden würde, während beispielsweise in eine Maske etwas eingetragen wäre, ohne dass es vorher gespeichert worden ist
      sigpic

      Kommentar


      • #4
        Hallo,

        eine Sprachumstellung über AJAX ist in meinen Augen fragwürdig... was ist mit den Leuten ohne JavaScript?

        Über ein target="_top" kannst du ein neues Laden der Seite erzwingen. Dann hängst du über einen GET-parameter die aktuelle language an und schreibst die in eine Session.

        PHP-Code:

        // <a href="http://meineseite.de/?def_lang=de" target="_top">Deutsch</a>


        $_SESSION["def_lang"] = $_GET["def_lang"];
        $def_lang=$_SESSION["def_lang"]; 
        Tutorials zum Thema Technik:
        https://pilabor.com
        https://www.fynder.de

        Kommentar


        • #5
          Das laden der Sprachinformationen aus der Datei wird ja wahrscheinlich an einer zentralen Stelle passieren. Daher kann ja auch alles so bleiben wie es ist, lediglich die Information welche Sprache aktuell ist wird aus der Session gelesen.
          Gruß Werner
          Mein kleines Projekt: Fussball Satrup
          Wird ein OpenSource CMS für Fussballvereine

          Kommentar


          • #6
            Zitat von Andreas Beitrag anzeigen
            Hallo,

            eine Sprachumstellung über AJAX ist in meinen Augen fragwürdig... was ist mit den Leuten ohne JavaScript?
            Generell ist dieser Einwand natürlich mehr als berechtigt
            Aber ich habe nicht erwähnt, dass diese Applikation nur von uns hausintern benutzt wird und hier haben (zwangsweise) alle die selben Browsereinstellungen.



            Zur anderen Sache..
            Also besteht keine Möglichkeit dies über JS/AJAX direkt in der file zu ändern?
            Denn ich würde diese Formular-Sache wirklich gerne umgehen
            sigpic

            Kommentar


            • #7
              Schilder Dein Problem doch mal ein bisschen ausführliche "andere Sache".

              Außerdem gehen Informationen verloren, wenn ich die Sprachänderung bei frame-Projekt würde, während beispielsweise in eine Maske etwas eingetragen wäre, ohne dass es vorher gespeichert worden ist
              Bahnhof

              Denn ich würde diese Formular-Sache wirklich gerne umgehen
              Gruß Werner
              Mein kleines Projekt: Fussball Satrup
              Wird ein OpenSource CMS für Fussballvereine

              Kommentar


              • #8
                "andere Sache" bezog sich auf das Problem an sich.
                Also die Sache "wie ändere ich am besten den Wert der Variable?".

                Bahnhof:
                Stell dir mal vor, du machst eine Online-Überweisung.
                Du füllst alles aus, also Empfänger-Konto, Verwendungszweck, usw...
                Bevor du dann auf ABSCHICKEN klickst, fällt dir auf, dass du gerne mal die Sprache der ganzen Seite ändern willst.
                Dies tust du dann.
                Jetzt wird das Formular abgeschickt (NUR das für die Sprachänderung!) und wenn die Seite neu geladen ist....dann sind alle Feldinhalte wieder blank.
                Die Seite ist dann jetzt auf einer anderen Sprache, aber du musst alle Daten (KontoNr des Empfängers, Verwendungszweck, usw...) nochmal eingeben, weil die Daten von eben einfach weg sind.

                Verstehst du nun, was ich meine?
                sigpic

                Kommentar


                • #9
                  Ja, ich verstehe Dich. Ich weiß nur nicht wie ich Dir helfen kann/soll, selbst wenn Du per Ajax / JS die Inhalte der der Sprachvariablen ändern würdest, wäre der Inhalt der dargestellen Seite unverändert.
                  Gruß Werner
                  Mein kleines Projekt: Fussball Satrup
                  Wird ein OpenSource CMS für Fussballvereine

                  Kommentar


                  • #10
                    Aber per JS/AJAX müsste ich doch nicht die Seite erneut laden lassen, oder?
                    Die Felder, die betroffen sind (also beispielsweise Überschriften oder Labels) könnten doch direkt geändert werden, oder?
                    Verstehst du, wie ich das meine?
                    sigpic

                    Kommentar


                    • #11
                      Zitat von Sniper_Kotaro Beitrag anzeigen
                      "
                      Bevor du dann auf ABSCHICKEN klickst, fällt dir auf, dass du gerne mal die Sprache der ganzen Seite ändern willst.
                      Dies tust du dann.
                      Jetzt wird das Formular abgeschickt (NUR das für die Sprachänderung!) und wenn die Seite neu geladen ist....dann sind alle Feldinhalte wieder blank.
                      Ist für mich nicht nachvollziehbar, wieso man erst das Formular ausfüllt, dann die Sprache ändert und sich dann auch noch wundert, warum das Formular leer bleibt. Außerdem könnte man ja beim "Anklicken" eine Meldung einblenden: Achtung, Formulardaten gehen verloren... OK/Abbrechen.

                      Darüber hinaus gibt es Mechanismen, die eine automatische Erkennung der Sprache für viele "Besucher" ermöglichen. So ersparst du dir das lästige Umstellen. Google.com erscheint auch in deutsch und erst durch manuellen Eingriff in englisch. Ich schätze die realisieren das über Accept-Language oder Ähnliches.

                      Zu deinem Problem zurück: Das alle den Browser gleich konfiguriert haben, ermöglicht dir, AJAX-Funktionalität vorauszusetzen. Um einen Reload wirst du aber trotzdem nicht herumkommen...

                      Entweder du strickst die gesamte Anwendung um, so dass die Ausgabe von sprachabhängigen Texten auf JavaScript-Basis statt auf PHP-Basis funktioniert oder du setzt per AJAX-Request an ein PHP-Script eine Session-Variable und machst für alle Frames einen location.reload();
                      JavaScript: Fenster- und Frameszugriff

                      Wenn du die Datei wirklich ändern willst und nicht auf eine Session zurückgreifen möchtest, dann machst doch einfach einen AJAX-Request an eine PHP-Datei, die den Inhalt einer Konfigurationsdatei ändert.

                      Warum das nicht mit Sessions gelöst ist, ist mir allerdings schleierhaft, weil für mich klingt das danach, dass wenn ein Benutzer die Sprache ändert, plötzlich alle eine andere Sprache angezeigt bekommen...
                      Tutorials zum Thema Technik:
                      https://pilabor.com
                      https://www.fynder.de

                      Kommentar


                      • #12
                        Zitat von Andreas Beitrag anzeigen
                        Ist für mich nicht nachvollziehbar, wieso man erst das Formular ausfüllt, dann die Sprache ändert und sich dann auch noch wundert, warum das Formular leer bleibt.
                        Wir alle kennen den DAU...

                        Zitat von Andreas Beitrag anzeigen
                        Warum das nicht mit Sessions gelöst ist, ist mir allerdings schleierhaft, weil für mich klingt das danach, dass wenn ein Benutzer die Sprache ändert, plötzlich alle eine andere Sprache angezeigt bekommen...
                        Hmm...das stimmt!
                        Daran habe ich garnicht gedacht!!!
                        Also werde ich um eine Session wohl wirklich nicht drum rumkommen...
                        Ich danke euch allen für die anregenden und wertvollen Tips ;D
                        sigpic

                        Kommentar

                        Lädt...
                        X