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.
Projekt einrichten
Abschnitt betitelt „Projekt einrichten“Erforderlich ist Python 3.10 bis 3.13. Falls es fehlt, lädt uv es herunter.
-
Installieren Sie FFmpeg und unter Linux PortAudio:
Terminal-Fenster # macOSbrew install ffmpeg# Ubuntu oder Debiansudo apt install ffmpeg libportaudio2# Windowschoco install ffmpeg -
Klonen Sie das Repository:
Terminal-Fenster git clone https://github.com/HenestrosaDev/audiotext.gitcd audiotext -
Installieren Sie uv, das die Abhängigkeiten und die virtuelle Umgebung verwaltet.
-
Installieren Sie die Abhängigkeiten:
Terminal-Fenster uv syncuv syncinstalliert 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 -
Starten Sie die App:
Terminal-Fenster uv run src/app.py
Entwicklungswerkzeuge
Abschnitt betitelt „Entwicklungswerkzeuge“uv run pre-commit install # prüft und formatiert den Code vor jedem Commituv run pytest # führt die Tests ausOberfläche übersetzen
Abschnitt betitelt „Oberfläche übersetzen“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.
uv run .github/scripts/update_translations.pyUm 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:
uv run pybabel init -i res/locales/audiotext.pot -d res/locales -D audiotext -l <Code>uv run .github/scripts/update_translations.pyDiese Dokumentation verbessern
Abschnitt betitelt „Diese Dokumentation verbessern“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).
git clone https://github.com/HenestrosaDev/audiotext-docs.gitcd audiotext-docsnpm installnpm run dev # stellt die Website unter http://localhost:4321 bereitnpm run build # erstellt die Website in distJede Seite hat unten einen Link Seite bearbeiten, der sie auf GitHub öffnet.