Zum Inhalt springen

Mitwirken

Beiträge sind willkommen! Lesen Sie den Leitfaden für Beiträge, bevor Sie einen Pull Request öffnen. Sie können auch Ideen in den Discussions vorschlagen oder das Projekt-Backlog ansehen.

Erforderlich ist Python 3.10 bis 3.13. Falls es fehlt, lädt uv es herunter.

  1. Installieren Sie FFmpeg und unter Linux PortAudio:

    Terminal-Fenster
    # macOS
    brew install ffmpeg
    # Ubuntu oder Debian
    sudo apt install ffmpeg libportaudio2
    # Windows
    choco install ffmpeg
  2. Klonen Sie das Repository:

    Terminal-Fenster
    git clone https://github.com/HenestrosaDev/audiotext.git
    cd audiotext
  3. Installieren Sie uv, das die Abhängigkeiten und die virtuelle Umgebung verwaltet.

  4. Installieren Sie die Abhängigkeiten:

    Terminal-Fenster
    uv sync

    uv sync installiert PyTorch mit CUDA-Unterstützung, ein großer Download unter Linux und Windows. Ohne NVIDIA-GPU installieren Sie stattdessen die CPU-Version:

    Terminal-Fenster
    uv sync --no-group cuda --group cpu
  5. Starten Sie die App:

    Terminal-Fenster
    uv run src/app.py
Terminal-Fenster
uv run pre-commit install # prüft und formatiert den Code vor jedem Commit
uv run pytest # führt die Tests aus

Die Oberfläche wird mit gettext übersetzt. Die Texte stehen in res/locales/audiotext.pot, die Übersetzungen jeder Sprache in res/locales/<Sprache>/LC_MESSAGES/audiotext.po. Texte, die von einer Zahl abhängen (z. B. {count} file / {count} files), haben eine Übersetzung für jede Pluralform der Sprache (msgstr[0], msgstr[1]…), wie im Header Plural-Forms ihres Katalogs festgelegt. Derselbe Text kann zweimal vorkommen, einmal mit einem Kontext (msgctxt), damit er an jeder Stelle anders übersetzt wird: z. B. ist Done der Status einer Transkription und mit dem Kontext files ein Filter der Dateien eines Ordners.

Wenn sich die Texte im Code ändern oder nachdem Sie eine .po-Datei bearbeitet haben (z. B. mit Poedit), führen Sie dieses Skript aus. Es extrahiert die Texte, aktualisiert die Kataloge, kompiliert sie und listet die Texte auf, die noch übersetzt oder geprüft werden müssen (als fuzzy markiert) – die App zeigt sie bis dahin auf Englisch. Die Tests schlagen fehl, solange ein Katalog nicht aktuell ist.

Terminal-Fenster
uv run .github/scripts/update_translations.py

Um eine Sprache hinzuzufügen, erstellen Sie ihren Katalog, übersetzen und kompilieren Sie ihn und fügen Sie die Sprache zu UI_LANGUAGES in src/utils/i18n.py hinzu:

Terminal-Fenster
uv run pybabel init -i res/locales/audiotext.pot -d res/locales -D audiotext -l <Code>
uv run .github/scripts/update_translations.py

Diese Website ist mit Starlight gebaut und liegt im Repository audiotext-docs. Jede Sprache hat ihren eigenen Ordner in src/content/docs (Englisch liegt in en).

Terminal-Fenster
git clone https://github.com/HenestrosaDev/audiotext-docs.git
cd audiotext-docs
npm install
npm run dev # stellt die Website unter http://localhost:4321 bereit
npm run build # erstellt die Website in dist

Jede Seite hat unten einen Link Seite bearbeiten, der sie auf GitHub öffnet.