# 🎨 Modding Guide: Eigene Themes & Sprachen

Willkommen! Dieser Guide richtet sich an Fortgeschrittene und Bastler, die melcom's FFmpeg Audio Normalizer anpassen möchten. Du musst dafür keine komplexen Codes schreiben, aber Grundkenntnisse im Umgang mit Python und einem Texteditor (wie Notepad++) sollten vorhanden sein.

### ⚠️ Voraussetzung: Quellcode & Python

Diese Anleitung richtet sich an fortgeschrittene Bastler und Modder. Da die Standard-Farben und -Sprachlisten fest in der fertigen Anwendung verbaut sind, müssen wir die Anpassungen direkt im Quellcode vornehmen.

So geht's: Entpacke einfach die Datei `AudioNormalizer-Source_Code.7z` aus dem Ordner `source_code` dieses Releases. Um mit den Dateien zu arbeiten, muss Python auf deinem System installiert sein.

Danach hast du zwei Möglichkeiten, deine Änderungen zu nutzen:

- Direkt ausführen: Starte das geänderte Programm ganz einfach direkt über die `main.py` (Python-Installation erforderlich).
- Eigene .exe kompilieren: Wenn du weißt, wie man mit Compilern umgeht, kannst du dir aus dem geänderten Quellcode natürlich auch wieder deine eigene, neue `AudioNormalizer.exe` erstellen (z.B. mit PyInstaller).

Falls du Python noch nicht installiert hast, kannst du es hier kostenlos herunterladen:
» www.python.org/downloads

## 🌍 Teil 1: Eine neue Sprache hinzufügen

Du möchtest das Programm in Französisch, Spanisch oder einer Fantasiesprache nutzen? Kein Problem!

### Schritt 1: Sprachdatei kopieren

Gehe in den entpackten Source-Code Ordner und dort nach `lang`. Kopiere eine bestehende Datei, z.B. `en_US.json`, und benenne sie um (z.B. in `fr_FR.json` für Französisch).

### Schritt 2: Übersetzen

Öffne deine neue Datei mit einem Texteditor. Du siehst dort Zeilen wie diese:

    "app_title": "melcom's FFmpeg Audio Normalizer",

WICHTIG: Ändere nur den Text auf der rechten Seite des Doppelpunkts! Die linke Seite (z.B. `"app_title"`) muss exakt so bleiben, sonst findet das Programm den Text nicht.

### Schritt 3: Dem Programm die Sprache mitteilen

Öffne die Datei `constants.py` in deinem Source-Code Ordner. Suche nach folgendem Eintrag (ziemlich weit oben):

    LANGUAGE_CODES_LIST = ["en_US", "de_DE", "pl_PL", "sv_SE"]

Füge deine neue Sprache einfach am Ende der Liste hinzu, vergiss die Anführungszeichen und das Komma nicht:

    LANGUAGE_CODES_LIST = ["en_US", "de_DE", "pl_PL", "sv_SE", "fr_FR"]

Speichern, Programm über `main.py` starten und schon kannst du deine Sprache in den Optionen auswählen!

## 🖌️ Teil 2: Ein eigenes Theme (Farben) erstellen

Das Programm kommt bereits mit mehreren Themes. Du möchtest lieber knalliges Pink oder Neon-Grün? Los geht's:

### Schritt 1: Farben definieren

Öffne die Datei `theme.py`. Kopiere einen bestehenden Farbblock, z.B. `MIDNIGHT_PALETTE`, füge ihn darunter ein und nenne ihn z.B. `MY_AWESOME_PALETTE`. Passe die Farben mit Hex-Codes (z.B. `#FF0000` für Rot) an:

    MY_AWESOME_PALETTE = {
        "bg": "#111111",           # Hintergrundfarbe des Fensters
        "fg": "#ffffff",           # Normale Textfarbe
        "info_bg": "#222222",      # Hintergrund für Eingabefelder
        "separator": "#ff00ff",    # Rahmen- und Trennlinien
        "entry_bg": "#222222",     # Texingabefelder (z.B. LUFS)
        "disabled_fg": "#666666",  # Ausgegrauter Text
        "error_bg": "#ff0000",     # Farbe bei einer Fehlereingabe
        "button_bg": "#333333",    # Hintergrund der Buttons
        "button_hover": "#444444", # Button-Farbe beim Drüberfahren
        "text_relief": "flat",     # 'flat' (flach) oder 'sunken' (3D)
        "accent": "#00ff00",       # Haupt-Akzentfarbe (Start-Button!)
        "tree_selected": "#00ff00",# Markierte Zeile in der Dateiliste
        "tree_selected_fg": "#000" # Textfarbe der markierten Zeile
    }

### Schritt 2: Das Theme im Code registrieren

Scrolle in der `theme.py` ganz nach unten zur Funktion `def apply_theme(...)`. Füge dein Theme in die `if / elif` Liste ein:

        elif mode == "my awesome theme":
            colors = MY_AWESOME_PALETTE

### Schritt 3: Das Theme im Menü sichtbar machen

Öffne wieder die Datei `constants.py`. Suche nach:

    THEME_MODES_LIST = ["light", "läderlappen", "melcom", "aquamarine & blue", "midnight", "modernlight"]

Füge den exakten Namen (aus Schritt 2) in die Liste ein:

    THEME_MODES_LIST = ["light", "läderlappen", "melcom", "aquamarine & blue", "midnight", "modernlight", "my awesome theme"]

Fertig! Starte das Programm über `main.py` und wähle dein neues Theme in den Optionen aus.