Sprachpaket als Datei oder als Tabelle?

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

  • Sprachpaket als Datei oder als Tabelle?

    Hallo Leute!

    Ich schreibe gerade ein größeres CMS für mehrere Projekte, an denen ich beteiligt bin. Bei soetwas fallen immer die Entscheidungen schwer, die das gesamte Programm nachhaltig beeinflussen. Im Moment stehe ich vor der Frage, ob ich das Sprachpaket, das ich verwende, um eine multilinguale Oberfläche zu schaffen, datei- oder tabellenbasierend anlegen sollte.

    Dateibasierend:
    Die Elemente eines Arrays ($lang) werden über mehere Dateien verteilt, die je nach Bedarf includet werden. Mittels des Array-Schlüssels werden die einzelnen Meldungen abgerufen:
    echo $lang['welcome_message'];

    Tabellenbasierend:
    In der Datenbank wird eine Tabelle angelegt, in der alle Meldungen gemeinsam unter einem Schlüssel-Index abgelegt werden:
    SELECT * FROM lang_table WHERE lang_key = 'welcome_message'

    Für die erste Variante spricht, dass das Sprachpaket nicht dynamischer, sondern statischer Natur ist, was die Verwendung einer Tabelle nicht nötig machen würde.
    Bei der zweiten Variante hatte ich zudem noch vor, die häufiger aufgerufenen Meldungen in einer Cache-Datei zu speichern, so dass nur für seltenere Meldungen eine eigene Abfrage generiert werden muss.

    Zu was könnt ihr mir raten?

    arrays sind klasse

  • #2
    Re: Sprachpaket als Datei oder als Tabelle?

    Zu was könnt ihr mir raten?
    was ich dir auf jeden fall raten kann, ist, bei der zweiten methode nicht für jeden key eine query abzusetzen, sondern einmalig alle (relevanten) daten zu holen.

    ich weiß nicht, ob der unterschied dann so dermaßen groß sein wird, zwischen erster und zweiter methode. ich würde dir eine kombination aus beidem vorschlagen.

    wenn du im backend etwas an den sprachdaten änderst, erstellst du die zu includierenden dateien neu (aus der db-tabelle). somit hast du die flexibilität der db-lösung und den (vermeintlichen?) geschwindigkeitsvorteil der datei-lösung.

    das thema wurde schon ab und an mal diskutiert, vielleicht findest du ja noch threads dazu.

    letzten endes wirst dus wohl auf einen test ankommen lassen müssen.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      deine Idee gefällt mir, leiße sich auch problem los durchführen.
      letzten endes bleibt aber die frage: entweder aus der Tabelle und nach Kategorien sortiert in eine Datei laden, oder gleich nach kategorien sortierte dateien erstellen?
      ich denke, ich bleibe bei der klassischen variante und packe alles in dateien.

      danke für die denkhilfe
      arrays sind klasse

      Kommentar


      • #4
        alle daten pro sprache in EINE datei ....
        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
          Warum alles in eine Datei?

          Für jede Sprache existiert ein Verzeichnis, in dem die jeweiligen Sprach-Daten auf verschiedene, nach deren Gebrauch und Einsatzort benannte Dateien verteilt sind. So hatte ich mir das jetzt vorgestellt.
          arrays sind klasse

          Kommentar


          • #6
            das ist schon ok. nur warum mehrere spachdateien includen, wenn es mit einer getan ist. zumal du die dort enthaltenen daten via script aus einer DB erzeugst.

            wenn du eh 80% aller definierten werte nutzt, brauchst du auch nicht auftrennen. mehrere includes sind langsamer als einer. ;-)
            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

            Lädt...
            X