Aller au contenu

Contribuer

Les contributions sont les bienvenues ! Lisez le guide de contribution avant d’ouvrir une pull request. Vous pouvez aussi proposer des idées dans les discussions ou consulter le backlog du projet.

Python 3.10 à 3.13 est requis. uv le télécharge s’il manque.

  1. Installez FFmpeg et, sous Linux, PortAudio :

    Fenêtre de terminal
    # macOS
    brew install ffmpeg
    # Ubuntu ou Debian
    sudo apt install ffmpeg libportaudio2
    # Windows
    choco install ffmpeg
  2. Clonez le dépôt :

    Fenêtre de terminal
    git clone https://github.com/HenestrosaDev/audiotext.git
    cd audiotext
  3. Installez uv, qui gère les dépendances et l’environnement virtuel.

  4. Installez les dépendances :

    Fenêtre de terminal
    uv sync

    uv sync installe PyTorch avec la prise en charge de CUDA, un téléchargement volumineux sous Linux et Windows. Sans GPU NVIDIA, installez plutôt la version CPU :

    Fenêtre de terminal
    uv sync --no-group cuda --group cpu
  5. Lancez l’application :

    Fenêtre de terminal
    uv run src/app.py
Fenêtre de terminal
uv run pre-commit install # vérifie et formate le code avant chaque commit
uv run pytest # lance les tests

L’interface est traduite avec gettext. Les textes se trouvent dans res/locales/audiotext.pot, et les traductions de chaque langue dans res/locales/<langue>/LC_MESSAGES/audiotext.po. Les textes qui dépendent d’un nombre (par ex. {count} file / {count} files) ont une traduction pour chaque forme plurielle de la langue (msgstr[0], msgstr[1]…), selon l’en-tête Plural-Forms de son catalogue. Un même texte peut apparaître deux fois, dont une avec un contexte (msgctxt), pour être traduit différemment à chaque endroit : par ex. Done est le statut d’une transcription et, avec le contexte files, un filtre des fichiers d’un dossier.

Lorsque les textes du code changent, ou après avoir modifié un fichier .po (p. ex. avec Poedit), exécutez ce script. Il extrait les textes, met à jour les catalogues, les compile et liste les textes à traduire ou à relire (marqués fuzzy), que l’application affiche en anglais d’ici là. Les tests échouent tant qu’un catalogue n’est pas à jour.

Fenêtre de terminal
uv run .github/scripts/update_translations.py

Pour ajouter une langue, créez son catalogue, traduisez-le, compilez-le et ajoutez-la à UI_LANGUAGES dans src/utils/i18n.py :

Fenêtre de terminal
uv run pybabel init -i res/locales/audiotext.pot -d res/locales -D audiotext -l <code>
uv run .github/scripts/update_translations.py

Ce site est construit avec Starlight et se trouve dans le dépôt audiotext-docs. Chaque langue a son propre dossier dans src/content/docs (l’anglais est dans en).

Fenêtre de terminal
git clone https://github.com/HenestrosaDev/audiotext-docs.git
cd audiotext-docs
npm install
npm run dev # sert le site sur http://localhost:4321
npm run build # construit le site dans dist

Chaque page comporte un lien Modifier cette page en bas qui l’ouvre sur GitHub.