mehrsprachig aber wie ??

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

  • mehrsprachig aber wie ??

    hiho

    hab grad mal im forum gesucht ... auch was gefunden ... bin mir aber immer noch nicht ganz schluessig ...

    ich arbeite grad an einem skript, das mindestens 2 sprachig laufen soll.....
    ich arbeite mit session und in der sesseion gibt es ne variable

    PHP-Code:
    $_SESSION["language"
    in der ist z.b. das kuerzel de (fuer deutsch) oder en (englisch) ....

    ich habe also ne moeglichkeit zu entscheiden ob der user die deutschen oder die englischen texte sehen soll ...

    nun mein frage ... soll ich die texte in ner DB abspeichern ...
    was eigentlich recht einfach zu realisiern ist, aber natuerlich einiges
    vom server abfordert ... und wenn ich das mit ner db realiser
    mac ich dann ne tabelle de_text en_text oder nur eine tabelle
    text mit den feldern de, en ...... und natuerlich onch weiteren

    oder ist es sinniger auf dem server einen ordner de und einen ordner en zu erstellen wo dann die dateien drinn sind mit dem text ... also immer noch php dateien mit $text ="willkommen" oder $text="hello" ....


    naja ich hoffe ihr koennt mir tipps gebeen wie ich das am besten mach

    greetz

    Kapitaeniglo

  • #2
    du erstellst nen Ordner lang und packst dort dateien rein:
    en.php
    de.php

    die dateien sind dann so aufgebaut:
    $lang['key'] = "text";

    jetzt kannst du je nach Sprache entscheiden, welche datei du per inlucde einfügst!

    gruss

    Kommentar


    • #3
      jepp ... dett scheint mir ne bruachbare loesung .....

      thx , werd mich heut abend mal ransetzen das so umzusetzen ...

      mfg
      kapitaeniglo
      OffTopic:

      mmmj .... da hab ich ja bei den adminfunktionen noch mehr arbeit ...
      die texte sollen ja immer schoen editierbarsein .....

      Kommentar


      • #4
        Original geschrieben von kapitaeniglo
        OffTopic:

        mmmj .... da hab ich ja bei den adminfunktionen noch mehr arbeit ...
        die texte sollen ja immer schoen editierbarsein .....

        wieso das?
        der admin kann ja neue 'sprachpakete' durch das anlegen einer neuen datei installiere. ich würde das nicht mit änderbaren texten machen.
        new bleibt ja neu.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Mit Textdateien zu arbeiten ist m.E. keine gute Lösung, eben weil die Editierbarkeit größere Probleme bereitet. Eine Seite, die jahrelang dieselben Texte drin hast, ist ja auch nicht das gelbe vom Ei.

          Wenn Du also mal irgendwann ein CMS aufsetzen willst, arbeite besser mit ner DB, dort eine Tabelle text anlegen, die so aufgebaut ist:

          ident | sprache | ueberschrift | info | sonstwas | nochwas | .....
          1 | de | Hallo Welt | ....
          2 | en | Hello world | ....


          Du hast dann je Sprache einen Eintrag und selektiert nur nach der Sprache, was immer nur eine Reihe zurückgibt. Diese schreibst Du mit mysql_fetch_array in ein Array und setzt in deinem Dokument die Ausgaben mit z.B. $text['ueberschrift'] oder $text['info'] etc.etc. ein.

          Schnell ist das ganze auch noch. Schau mal bei http://www.auto-ernst.de , wo das ganze exakt so aufgebaut ist (mit CMS im Hintergrund). Hier hast Du auch ein Beispiel für die Notwendigkeit, Texte zu editieren, da hier jeden Monat andere Aktionen angeboten werden. Der Seitenbetreiber versteht sein! Geschäft, aber nicht das Editieren in Textdateien, daher ist das ganze nur mit einem einfach zu bedienenden CMS vernünftig zu realisieren, ich hab nämlich keine Lust, bei jeder Preisänderung und jedem Änderungswunsch von irgendwelchen Texten tätig zu werden zu müssen.

          Geht Dir sicher ähnlich, nimm daher von Anfang an eine skalierbare Lösung.

          Gruß
          Henry

          Kommentar


          • #6
            @henryh: LESEN!!

            wir sprachen nicht von einer Textdatei!

            Man legt gleich komplette PHP-Dateien mit den definierten Texten an! Der Effekt ist der selbe, wie deinen Lösung, nur dass man keine SQL-Anweisung benötigt!

            gruss

            Kommentar


            • #7
              ob Text- oder Sprachdatei... in Bezug auf Editierbarkeit ist das doch 'wurscht'

              Kommentar


              • #8
                würde ich nicht sagen!

                zum Editieren hab ich ja auch das Array (für mein Beispiel: "lang[]")..

                es gibt dann noch den befehl foreach und schon hab ich lauter nette Textfelder, die die richtigen Namen haben und ich kann jeden beliebigen text ändern, ohne dass ich die Datei anfassen muß. wenn ich speichere, schreibe ich die Datei einfach neu!

                und wie gesagt, ohne die DB zu quälen!

                gruss

                Kommentar


                • #9
                  na ja, ich finde, das ist komplizierter als mit ner DB zu arbeiten (es sei denn, man hat Angst vor Query´s)
                  Und bei größeren Datenmengen DEUTLICH langsamer. Auf einer anderen Seite, die ich gebaut habe, habe ich allein in einer Tabelle ~ 800 KB an Text-Daten, deutsch und englisch, indiziert und schnell abzufragen.
                  Pack ich das in eine Datei und will sie bei jeder Änderung neu speichern..... o jeh..., kaum noch praktikabel! Und bei Aufteilung in kleinere Dateien völlig unübersichtlich.
                  Das arbeiten mit Dateien zur Datenspeicherung ist was für Leute, die kein Geld für ein Paket mit DB übrig haben (also typische private Page) oder solche, die nicht an spätere Anforderungen/Erweiterungen denken, also ihrer Site von vornherein wohl keine guten Chancen einräumen....
                  Wer allerdings seine Site schon zweisprachig aufbauen will, hat doch wohl deutlich größere Pläne damit (außer natürlich, es geht nur darum, die internationale Verwandschaft zu befriedigen - Schau mal, das ist unsere Katze | Look, this ist our cat )

                  Gruß
                  Henry

                  Kommentar


                  • #10
                    moment, moment... reden wir jetzt von statischen texten, oder dynamischen (sprich News, etc.) ??

                    gruss

                    Kommentar


                    • #11
                      wie ich kapitaeniglo verstanden habe, soll nur die oberfläche mehrsprachig sein. ähnlich phpmyadmin.
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        ob eine Datei wirklich langsamer ist, wäre noch zu beweisen.
                        Wenn du 800 KB in einer DB ablegst, nur um eine Sprachumschaltung zu realisieren, wäre ein CMS wohl angebrachter.
                        Ich selber arbeite derzeit mit beidem, wobei die Datei zu bevorzugen sei, wenn der DB Server nicht der lokale Rechner ist.

                        Die Datei ist derzeit 32 KB groß mit 700 Einträgen und wird mit einer zweiten Datei 10KB und 50 Einträgen gemischt. Und über Performance kann ich nicht klagen.

                        Wenn man was ändern will wird einfach die gesammte Datei neu geschrieben so wie Mortalan schon sagte, bei eine DB wäre das eine Update Abfrage in einer Schleife => toll 700 Abfragen, um mal die Texte zu ändern.
                        TBT

                        Die zwei wichtigsten Regeln für eine berufliche Karriere:
                        1. Verrate niemals alles was du weißt!


                        PHP 2 AllPatrizier II Browsergame

                        Kommentar


                        • #13
                          Sowohl als auch, meine Lösung ist für beides richtig.
                          Auch relativ statische Texte müssen (sollte zumindest so sein) ab und an geändert/aktualisiert werden.

                          Gruß
                          Henry

                          Kommentar


                          • #14
                            Wenn man was ändern will wird einfach die gesammte Datei neu geschrieben so wie Mortalan schon sagte, bei eine DB wäre das eine Update Abfrage in einer Schleife => toll 700 Abfragen, um mal die Texte zu ändern.
                            Wie updatestest Du denn bloß??? Mit einer Änderung update ich jedenfalls nur die jeweils betroffenen Datensätze. Dafür benötige ich noch nicht mal eine Schleife, nur ein saubere SQL-Query. In einem gut strukturieren CMS habe ich ja auch nicht immer alle Daten komplett vorliegen, sondern nur die jeweils relevanten, und nur die werden ggf. upgedatet.

                            Gruß
                            Henry

                            Kommentar


                            • #15
                              also bei meiner frage geht es nur um die oberflaeche ...

                              die news etc werden schon mehrspracheig ueber ne sqldb verwaltet ...
                              also da gibt es nen feld de_news und en_news .....


                              meien frage richtete sich eigentlich nur nach der oberflaeche ....

                              ob es sinnvoll ist die in ne datei oder per mysql zu machen ,....

                              ich habe das mit der datei jetzt mal ausprobiert ... es funzt ....
                              aber was ist denn nun bessa ????

                              weil mysqlabfragen sind vielleciht schneller, brauchen aber auch mehr performance seitens des webservers ... oda nicht ????

                              mfg
                              kapitaeniglo

                              EDIT:

                              da das system recht modular aufbaubar sien soll gibt es sowieso noicht weitere probleme ....
                              ich bruach mehrere dateien in denen der text steht .... also werd ich beim dateisystem meherer sprachdateien haben de_news.php , de_anmeldung.php .... (natuerlich auch in den anderes sprachen)

                              bei ner db braeuhcte ich fuer news dann ne tabelle de_news , en_news ...
                              de_anmeldung , en_anmeldung.....


                              Zuletzt geändert von kapitaeniglo; 04.02.2003, 15:31.

                              Kommentar

                              Lädt...
                              X