Ga naar inhoud

Bijdragen

Bijdragen zijn welkom! Lees de bijdragegids voordat je een pull request opent. Je kunt ook ideeën voorstellen in de discussies of de projectbacklog bekijken.

Python 3.10 tot en met 3.13 is vereist. Als het ontbreekt, downloadt uv het.

  1. Installeer FFmpeg en, op Linux, PortAudio:

    Terminal window
    # macOS
    brew install ffmpeg
    # Ubuntu of Debian
    sudo apt install ffmpeg libportaudio2
    # Windows
    choco install ffmpeg
  2. Kloon de repository:

    Terminal window
    git clone https://github.com/HenestrosaDev/audiotext.git
    cd audiotext
  3. Installeer uv, dat de afhankelijkheden en de virtuele omgeving beheert.

  4. Installeer de afhankelijkheden:

    Terminal window
    uv sync

    uv sync installeert PyTorch met CUDA-ondersteuning, een grote download op Linux en Windows. Installeer zonder NVIDIA-GPU in plaats daarvan de CPU-versie:

    Terminal window
    uv sync --no-group cuda --group cpu
  5. Start de app:

    Terminal window
    uv run src/app.py
Terminal window
uv run pre-commit install # controleert en formatteert de code voor elke commit
uv run pytest # voert de tests uit

De interface wordt vertaald met gettext. De teksten staan in res/locales/audiotext.pot, en de vertalingen van elke taal in res/locales/<taal>/LC_MESSAGES/audiotext.po. Teksten die van een getal afhangen (bijv. {count} file / {count} files) hebben een vertaling voor elke meervoudsvorm van de taal (msgstr[0], msgstr[1]…), zoals vastgelegd in de header Plural-Forms van de catalogus. Dezelfde tekst kan twee keer voorkomen, één keer met een context (msgctxt), zodat hij op elke plek anders wordt vertaald: bijv. Done is de status van een transcriptie, en met de context files een filter van de bestanden van een map.

Als de teksten in de code veranderen, of nadat je een .po-bestand hebt bewerkt (bijv. met Poedit), voer je dit script uit. Het extraheert de teksten, werkt de catalogi bij, compileert ze en toont de teksten die nog vertaald of nagekeken moeten worden (gemarkeerd als fuzzy), die de app tot die tijd in het Engels toont. De tests mislukken zolang een catalogus niet bijgewerkt is.

Terminal window
uv run .github/scripts/update_translations.py

Om een taal toe te voegen, maak je de catalogus aan, vertaal en compileer je die, en voeg je de taal toe aan UI_LANGUAGES in src/utils/i18n.py:

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

Deze website is gebouwd met Starlight en staat in de repository audiotext-docs. Elke taal heeft een eigen map in src/content/docs (Engels staat in en).

Terminal window
git clone https://github.com/HenestrosaDev/audiotext-docs.git
cd audiotext-docs
npm install
npm run dev # serveert de website op http://localhost:4321
npm run build # bouwt de website in dist

Elke pagina heeft onderaan een link Pagina bewerken die hem op GitHub opent.