Vokabeltrainer / Vokabelbox Deutsch – Spanisch

Vokabeltrainer / Vokabelbox Deutsch – Spanisch

Ich nenne es Vokalbox. Die älteren werden noch die Karteikarte kennen. Klar, die ist es auch noch weiterhin im Handel und anscheinend ist sie noch gefragt.

Aber was gibt es Besseres, als das auf dem PC zu haben? Natürlich gibt es gefühlt Vokalprogramme wie Sand am Meer und wahrscheinlich habe ich für mich die langweiligere Variante selber erstellt.

Genau selber erstellt. Ich kann jetzt meinen Code beliebig verändern. Könnt ihr das mit den gekauften Programmen auch? Wahrscheinlich nicht, denn der Code wird man artig verstecken. Mit meiner Variante kann sich was Neues hinzu aneignen.

Das Programm sieht auf der Kommandozeile – ist auch noch platzsparend, weil es braucht keine ressourcenfressene Oberfläche. Aber wer eine Oberfläche braucht, kann sie sich selber hinzufügen mit Tkinter oder QT6 – je nachdem was für Ansprüche herrschen.

Im Unterbau wird eine MariaDB Datenbank benutzt. Wenn lieber auf SQLite steht, dann könnt ihr das auch für Eure Zwecke so programmieren, dass ihr diese Datenbank benutzt. Ganz, wie ihr wollt. Das untenstehende Script steht zu Eurer freien Verfügung. Es soll nur ein Beispiel dienen.

In MariaDB sieht das bei mir wie folgt aus.

Dazu gibt es auch ein Video, welches ich auf meinen Dailymotion Kanal hochgeladen habe. Dailymotion ist eine französische Videoplattform wie YouTube, wo man Videos hochladen kann. Es schaut jetzt nicht ganz so fancy aus wie YouTube, aber es erfüllt die gleichen Zwecke. Wer natürlich mit dem Staat Frankreich ein Problem hat, aus den unterschiedlichsten Gründen und ihn nicht unterstützen möchte, der sollte natürlich nicht auf diesen Link klicken.

Das Script, der Programmcode in Python hier:

import mariadb
from getpass import getpass
import sys

# Temporärer Speicher für die aktuelle Sitzung
temporaere_vokabeln = []

def ask_password():
    pw = getpass("MariaDB Passwort für User 'sven': ")
    return pw

pw = ask_password()

try:
    db = mariadb.connect(user="sven", password=pw, host="127.0.0.1", database="Espana")
    mycursor = db.cursor()

    while True:
        print("\n--- Neue Vokabel eingeben ---")
        aleman = input("Deutsches Wort (aleman): ").strip()
        
        print("Typ: (1) Substantivo, (2) Verbo, (3) Frase")
        wahl = input("Wähle 1, 2 oder 3: ")

        substantivo, verbo, frase = None, None, None
        spanisch_wert = ""

        if wahl == '1':
            substantivo = input("Espanol (Substantivo): ")
            spanisch_wert = substantivo
        elif wahl == '2':
            verbo = input("Espanol (Verbo): ")
            spanisch_wert = verbo
        elif wahl == '3':
            frase = input("Espanol (Frase): ")
            spanisch_wert = frase

        # --- Bestätigungsschleife laut deiner Anweisung ---
        while True:
            print(f"\nKONTROLLE: Deutsch: {aleman} | Spanisch: {spanisch_wert}")
            bestaetigung = input("Sind die Werte korrekt? (j/n): ").lower()
            
            if bestaetigung == 'n':
                aendern = input("Welchen Wert möchtest du ändern? (d)eutsch oder (s)panisch? ").lower()
                if aendern == 'd':
                    aleman = input("Neues deutsches Wort: ").strip()
                elif aendern == 's':
                    spanisch_wert = input("Neuer spanischer Wert: ").strip()
                    # Wert in die richtige Kategorie zurückschreiben
                    if wahl == '1': substantivo = spanisch_wert
                    elif wahl == '2': verbo = spanisch_wert
                    elif wahl == '3': frase = spanisch_wert
                continue
            break

        # --- Speicher-Option laut deiner Anweisung ---
        print("\nSpeicher-Option:")
        print("(1) Permanent in Datenbank speichern")
        print("(2) Nur für diese eine Sitzung (temporär)")
        speicher_wahl = input("Wähle 1 oder 2: ")

        if speicher_wahl == '1':
            query = "INSERT INTO lengua (aleman, substantivos, verbos, frases) VALUES (%s, %s, %s, %s)"
            mycursor.execute(query, (aleman, substantivo, verbo, frase))
            db.commit()
            print("Erfolgreich in MariaDB gespeichert!")
        else:
            temporaere_vokabeln.append({"de": aleman, "es": spanisch_wert})
            print("Vokabel wurde nur temporär gemerkt.")

        if input("\nNoch eine Vokabel? (j/n): ").lower() != 'j':
            break

    # Abschlussübersicht der temporären Vokabeln
    if temporaere_vokabeln:
        print("\n--- Temporär gespeicherte Vokabeln dieser Sitzung ---")
        for v in temporaere_vokabeln:
            print(f"{v['de']} -> {v['es']}")

except mariadb.Error as e:
    print(f"Fehler: {e}")
finally:
    if 'db' in locals(): db.close()
Die Kommentare sind geschlossen.