Jenny: Wörterbuch als Übersetzer

Hallo,

ich habe eine MYSQL-Datenbank als Vokalbelliste, die in der einen Spalte den Hochdeutschen ausdruck, in der anderen Spalte den entsprechenden Dialekt-Ausdruck enthält.

Eine 1zu1 'Übersetzung' mit einzelnen Wörtern ist ja mit dem MYSQL WHERE kein Problem.

Ich möchte aber, dass ein über ein Textfeld eingegebener Text auch 'übersetzt' wird - klar, dass es dabei nicht auf die Wortstellung und Grammatik ankommt.
Im Prinzip, soll nur jedes Wort des Satzes durch das entsprechende Wort aus der Datenbank ersetzt werden. Wie mache ich das, dass auch die Gross/Kleinschreibung berücksichtig wird? Muss ich dafür jedes Wort doppelt eintragen?

Es wär schön, wenn mir jemand helfen könnte - wie kann ich alle Wörter im Satz durch meine Dialekt-Wörter übersetzen lassen?
Wie mache ich das mit der Gross/Kleinschreibung?

Vielen Dank Euch allen schon jetzt,

Jenny

  1. Hallo Jenny,

    Es wär schön, wenn mir jemand helfen könnte - wie kann ich alle Wörter im Satz durch meine Dialekt-Wörter übersetzen lassen?

    Hm , also eignetlich nur so: text einlesen an den Leerzeichen in einzelne Wörte trennen, versuchen die einzeln zu übersetzen, Denk dran,dass Du wahrschienlich die wenigsten Worte wirklich in der DB hast. Und dann alles wieder ausgeben.

    Wie mache ich das mit der Gross/Kleinschreibung?

    Du speicherst nur die Kleingeschriebene Variante in der DB, und konvertierst vor der Abfrage alles anch Kleinbuchstaben $str = strtolower($str).
    Hm da fällt mir gerade auf die AUsgabe soll ja vielleicht groß sein. Hm, dann vielleicht noch eine Spalte in der DB das zu jedem Wort speichert ob es vorne Groß oder Kleingeschrieben wird, und noch die Regel umsetzen, dass nach einem . alles Groß ist, hm, etwas aufwändige Variante, vielleicht fällt da jemand auch ncoh was besseres ein.

    Gruss

    Marko

    1. Hallo,

      normalerweise wird die Groß/Kleinschreibung von SQL-Datenbanken nicht berücksichtigt. da gibt es ein extra Schlüsselwort, wenn man das wünscht.

      schau mal unter "binary"

      Du müsstest Dich dann also nicht um die Groß/Kleinschreibung in der Datenbank lümmern. Um den Text aber in dem Stil wiederzugeben, wie er eingeben wurde, würde ich mir eine Funktion schreiben, die das alles erledigt:

      function translate("$input")
      {

      // pseudeocode

      merker = 1, wenn alle Buchstaben von input klein geschrieben wurden
         merker = 2, wenn alle Buchstaben von input groß geschrieben wurden
         merker = 3, wenn der erste Buchstabe von input groß
                     geschrieben wurde UND alle weiteren klein
         merker = 4, im Sonstfall

      select DIALEKT from TABELLE where '$input'=HOCHDEUTSCH

      // vier normale if's
         wenn Merker = 1 oder 3 -> umwandeln in Kleinbuchsstaben
         wenn Merker = 2 -> umwandeln in Großbuchstaben
         wenn Merker = 3 -> ersten Buchstaben umwandeln in Großbuchstaben
         wenn Merker = 4 -> Na dann musst Du mal nachdenken, wass
                            passieren soll

      return $output

      }

  2. Hallo!

    Wie mache ich das mit der Gross/Kleinschreibung?

    Ich weiß jetzt nicht wie Du das ganau vorhast,aber vermutlich weißt Du ja im PHP-Script ob an einer bestimmten Stelle groß geschrieben werden muß. Ich würde alle Worte in ihrer ursprünglichen Form in der DB speichern und ggfs., z.B. am Satzanfang, den String mit http://www.php3.de/manual/de/function.ucfirst.php brarbeiten, dadurch wir das erste Zeichen des Strings groß geschrieben.

    Grüße
    Andreas