Vokabeltrainer / Vokabelbox Deutsch – Spanisch

Vokabeltrainer / Vokabelbox Deutsch – Spanisch

Ich nenne es Vokalbox für Spanisch. 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 für Spanisch 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.

Der Screenshot mit einem Beispiel für die Vokabelbox

Spanisch: Abfragen in der Kommandozeile für das Wort Freibad = la piscina

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.

Das Script, der Programmcode in Python hier

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()

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert