Mehr Sprachiges Web tool

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

  • Mehr Sprachiges Web tool

    Hallo Leute
    ich habe ein problem, kann mir jemand helfen? ich muss ein Web projekt erstellen bei dem ich bei der Benutzeroberfläche die gewünschte sprache einstellen kann. Nun habe ich aber keine Idee wie ich das anstellen soll das ich die verschiedenen sprachtexte in der Datenbank mySQL ablegen kann, um die Benutzeroberfläche je nach auswahl mehrsprachig abzubilden. hat jemand schon mal so etwas gemacht? mit PHP und mySQL versteht sich

    Danke für die Hilfe

    grüsse pj

  • #2
    Du kannst ja die verschiedenen Texte mit Nummern in der Datenbank erfassen und ein in einer weiteren Spalte könntest du erfassen in welcher Sprache die Daten sind.
    mfg
    Günni


    Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
    Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
    Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
    City-Tiger - Online durch die Straßen tigern...

    Kommentar


    • #3
      ich mache das immer in der folgenden art und weise:

      ich nehme eine textdatei, die ich z.B. deutsch.txt nenne und da schreib ich z.B. rein

      Username: Benutzername
      Password: Passwort

      und so weiter ...
      also immer englischer Begriff : deutscher Begriff

      diese datei lese ich am anfang einmal ein und speichere die Einträge in ein hash in der art und weise:
      $uebersetzung[$vorher] = $nachher
      wobei $vorher der englische Begriff und $nachher der deutsch begriff ist.

      (hier jetzt ein beispiel mit dem wort "Username")
      dann schreibe ich noch eine funktion (nennen wir die funktion einfach mal ub), die zunächst überprüft, ob die übersetzungsdatei schon geladen wurde und die dann, wenn das passiert ist, schaut, ob es z.b. in dem hash die variable $uebersetzung['Username '] gibt. Falls ja wird der Wert von $uebersetzung['Username'] zurückgegeben, falls nein, wird der ursprüngliche Wert zurückgegegeben.
      in dem beispeil also: $uebersetzung['Username'] = Benutzername.
      so ist sichergestellt, dass, falls ein wort nicht übersetzt ist, immer noch das "unübersetzte" wort ausgegeben wird.

      der aufruft lautet dann also im script:
      ub("Username");

      ist ein bisschen lang geworden, der text, aber ich hoffe, du hast verstanden was ich gemeint habe.
      die ausführung ist wirklich ganz einfach ;-))
      Kostenlose Werbung für Ihre Website

      Kommentar


      • #4
        hm mysql dürfte da perfomanter sein ...

        mach ne sql tabelle "lang_objects"
        id | de | en | fr | ...
        1 | Benutzername | Username | Nom de l'utilisateur | ....

        und dann ne funktion die am anfang alle objekte einer sprache in ein array schreibt ... z.B.
        PHP-Code:
        function write_lang($lang){
          
        $lang_obj = array();
          
        $result mysql_query("SELECT id,".$lang." FROM lang_objects");
          while(
        $row mysql_fetch_array($result)){
            
        $lang_obj[$row['id']] = $row[$lang];
          }
          return 
        $lang_obj;
        }

        $langs write_lang('de'); 
        In $langs würde dann array(1 => 'Benutzername') drinstehen, halt die englische version davon wenn du sie mit 'en' als parameter aufrufst, usw.

        Ist perfomanter und für dich einfacher zu pflegen als 100 Sprachdateien die dazu noch die Worte in 2 Sprachen enthalten .... stell dir nur mal vor was tippfehler oder ein fehlendes ':' auslösen könnten ...............

        mfG

        mfG
        CMS-X Medien- und Modelagentur

        Kommentar


        • #5
          nun ich glaube nicht, dass es einen wesentlichen performance unterschied macht, ob ich nun eine textdatei mit vielleicht 3000 zeilen oder eine mysql-tabelle mit 3000 einträgen einlesen.
          zumal dies nur einmal beim aufrufen einer seite passiert.

          ich würde auch nicht vermuten, dass es sich um z.B. 100 unterschiedliche sprachen handelt. vielmehr ist doch davon auszugehen, das es vielleicht 2 oder 3 sprachen, möglicherweise 10 sprachen sind, um die es geht.

          schreibfehler können übrigens in der mysql-tabelle genauso auftreten, wie in einer textdatei.

          die zwei wichtigsten vorteile, die die textdatei lösung aber hat, sind

          1. es braucht gar keine mysql-db vorhanden zu sein, damit die seite in unterschiedlich sprachen dargestellt werden kann

          2. man braucht kein administrationstool für die sprachentabellen. diese kann man getrost durch einen in der programmierung unerfahrenen user (z.B. einen redakteur) bearbeiten lassen. ein paar einträge mit dem notepad vorzunehmen ist nun wirklich nicht so schwierig.
          die einträge mit dem phpmyadmin durch einen user vornehmen zu lassen, halte ich für zu riskant, denn dieses mächtige werkzeug fragt ja nur mal kurz nach, bevor es eine datenbank unwiderruflich löscht.
          Kostenlose Werbung für Ihre Website

          Kommentar


          • #6
            nun ich glaube nicht, dass es einen wesentlichen performance unterschied macht, ob ich nun eine textdatei mit vielleicht 3000 zeilen oder eine mysql-tabelle mit 3000 einträgen einlesen.
            zumal dies nur einmal beim aufrufen einer seite passiert.
            dann glaubst du falsch .... mach doch einfach mal beides in en script und mach en perfomancetest der die microsekunden zurückliefert ....
            ich würde auch nicht vermuten, dass es sich um z.B. 100 unterschiedliche sprachen handelt. vielmehr ist doch davon auszugehen, das es vielleicht 2 oder 3 sprachen, möglicherweise 10 sprachen sind, um die es geht.

            schreibfehler können übrigens in der mysql-tabelle genauso auftreten, wie in einer textdatei.
            Ja aber ein Tippfehler in der MySQL ist nicht so gravierend ...

            folgendes beispiel:
            In sprachdatei englisch.lang steht:
            Benutzername:Username
            In sprachdatei franz.lang steht:
            Benuztername:Nom de l'utilisateur

            Dann wird nach Benutzername gesucht .... englisch kriegste das richtige, bei franz. kriegste nichts .... das meinte ich mit Tippfehler Gefahr ....
            [...]
            2. man braucht kein administrationstool für die sprachentabellen. diese kann man getrost durch einen in der programmierung unerfahrenen user (z.B. einen redakteur) bearbeiten lassen. ein paar einträge mit dem notepad vorzunehmen ist nun wirklich nicht so schwierig.
            die einträge mit dem phpmyadmin durch einen user vornehmen zu lassen, halte ich für zu riskant, denn dieses mächtige werkzeug fragt ja nur mal kurz nach, bevor es eine datenbank unwiderruflich löscht.
            Naja da könnte man ja wohl mal eben en kleines admin ding bauen .... is ja nicht gerade sehr komplex ne liste und en ändern/hinzufügen formular zu bauen ..........

            mfG
            CMS-X Medien- und Modelagentur

            Kommentar

            Lädt...
            X