# 🎨 Modding Guide: Własne Motywy i Języki

Witaj! Ten przewodnik jest przeznaczony dla zaawansowanych użytkowników i fanów moddowania, którzy chcą dostosować melcom's FFmpeg Audio Normalizer. Choć nie musisz pisać skomplikowanego kodu, wymagana jest podstawowa wiedza na temat uruchamiania skryptów Python i korzystania z edytora tekstu (np. Notepad++).

### ?? Wymg: Kod ?rd?owy i Python

Ten poradnik jest przeznaczony dla zaawansowanych hobbystw i modderw. Poniewa? domy?lne kolory i listy j?zykw s? na sta?e wbudowane w gotow? aplikacj?, dostosowania nale?y wprowadza? bezpo?rednio w plikach ?rd?owych.

Jak to zrobi?: Rozpakuj plik `AudioNormalizer-Source_Code.7z` z folderu `source_code` w tym wydaniu. Aby pracowa? z tymi plikami, w Twoim systemie musi by? zainstalowany Python.

Po wprowadzeniu modyfikacji mo?esz je uruchomi? na dwa sposoby:

- Uruchom bezpo?rednio: Po prostu uruchom zmodyfikowan? aplikacj? bezpo?rednio za pomoc? pliku `main.py` (wymaga zainstalowanego Pythona).
- Skompiluj w?asny plik .exe: Je?li wiesz, jak radzi? sobie z kompilatorami, mo?esz ?atwo spakowa? swj dostosowany kod ?rd?owy z powrotem do nowego, niestandardowego pliku `AudioNormalizer.exe` (np. przy u?yciu PyInstaller).

Je?li nie masz jeszcze zainstalowanego Pythona, mo?esz go pobra? za darmo tutaj:
? www.python.org/downloads

## 🌍 Część 1: Dodawanie Nowego Języka

Chcesz używać programu w języku francuskim, hiszpańskim, a może wymyślonym? Nie ma problemu!

### Krok 1: Skopiuj plik językowy

Przejdź do rozpakowanego folderu z kodem źródłowym, a następnie do katalogu `lang`. Skopiuj istniejący plik, np. `en_US.json`, i zmień jego nazwę (np. na `fr_FR.json` dla francuskiego).

### Krok 2: Tłumaczenie

Otwórz nowy plik w edytorze tekstu. Zobaczysz tam linie takie jak ta:

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

WAŻNE: Zmieniaj tylko tekst po prawej stronie dwukropka! Lewa strona (np. `"app_title"`) musi pozostać dokładnie taka sama, w przeciwnym razie program nie znajdzie tekstu.

### Krok 3: Poinformuj program o nowym języku

Otwórz plik `constants.py` w folderze kodu źródłowego. Poszukaj tego wpisu (blisko góry):

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

Po prostu dodaj swój nowy język na końcu listy. Nie zapomnij o cudzysłowach i przecinku:

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

Zapisz, uruchom program przez `main.py`, a teraz możesz wybrać swój język w opcjach!

## 🖌?Część 2: Tworzenie Niestandardowego Motywu (Kolory)

Program posiada wiele wbudowanych motywów. Wolisz jaskrawy różowy lub neonową zieleń? Zróbmy to:

### Krok 1: Zdefiniuj swoje kolory

Otwórz plik `theme.py`. Skopiuj istniejący blok kolorów, np. `MIDNIGHT_PALETTE`, wklej go poniżej i zmień jego nazwę na np. `MY_AWESOME_PALETTE`. Dostosuj kolory używając kodów Hex (np. `#FF0000` dla czerwonego):

    MY_AWESOME_PALETTE = {
        "bg": "#111111",           # Tło głównego okna
        "fg": "#ffffff",           # Zwykły kolor tekstu
        "info_bg": "#222222",      # Tło dla obszarów tekstowych
        "separator": "#ff00ff",    # Ramki i przegrody
        "entry_bg": "#222222",     # Pola wprowadzania tekstu (np. LUFS)
        "disabled_fg": "#666666",  # Wyszary tekst
        "error_bg": "#ff0000",     # Kolor przy błędnym wejściu
        "button_bg": "#333333",    # Tło przycisku
        "button_hover": "#444444", # Kolor przycisku po najechaniu
        "text_relief": "flat",     # 'flat' (płaskie) lub 'sunken' (wklęsłe 3D)
        "accent": "#00ff00",       # Główny kolor akcentu (Przycisk Start!)
        "tree_selected": "#00ff00",# Zaznaczony wiersz na liście
        "tree_selected_fg": "#000" # Kolor tekstu w zaznaczonym wierszu
    }

### Krok 2: Zarejestruj motyw w kodzie

Przewiń w dół pliku `theme.py` do funkcji `def apply_theme(...)`. Dodaj swój motyw do listy `if / elif`:

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

### Krok 3: Udostępnij motyw w menu

Otwórz ponownie plik `constants.py`. Poszukaj:

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

Wstaw dokładną nazwę (z Kroku 2) do listy:

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

Gotowe! Uruchom program przez `main.py` i wybierz swój nowy motyw w opcjach.