Salta ai contenuti

Contribuire

I contributi sono benvenuti! Leggi la guida per contribuire prima di aprire una pull request. Puoi anche proporre idee nelle discussioni o consultare il backlog del progetto.

È richiesto Python da 3.10 a 3.13. Se manca, uv lo scarica.

  1. Installa FFmpeg e, su Linux, PortAudio:

    Finestra del terminale
    # macOS
    brew install ffmpeg
    # Ubuntu o Debian
    sudo apt install ffmpeg libportaudio2
    # Windows
    choco install ffmpeg
  2. Clona il repository:

    Finestra del terminale
    git clone https://github.com/HenestrosaDev/audiotext.git
    cd audiotext
  3. Installa uv, che gestisce le dipendenze e l’ambiente virtuale.

  4. Installa le dipendenze:

    Finestra del terminale
    uv sync

    uv sync installa PyTorch con supporto CUDA, un download pesante su Linux e Windows. Senza una GPU NVIDIA, installa invece la versione per CPU:

    Finestra del terminale
    uv sync --no-group cuda --group cpu
  5. Avvia l’app:

    Finestra del terminale
    uv run src/app.py
Finestra del terminale
uv run pre-commit install # controlla e formatta il codice prima di ogni commit
uv run pytest # esegue i test

L’interfaccia è tradotta con gettext. I testi si trovano in res/locales/audiotext.pot, e le traduzioni di ogni lingua in res/locales/<lingua>/LC_MESSAGES/audiotext.po. I testi che dipendono da un numero (ad es. {count} file / {count} files) hanno una traduzione per ogni forma plurale della lingua (msgstr[0], msgstr[1]…), secondo l’intestazione Plural-Forms del suo catalogo. Lo stesso testo può comparire due volte, una con un contesto (msgctxt), così da essere tradotto diversamente in ogni punto: ad es. Done è lo stato di una trascrizione e, con il contesto files, un filtro dei file di una cartella.

Quando cambiano i testi del codice, o dopo aver modificato un file .po (es. con Poedit), esegui questo script. Estrae i testi, aggiorna i cataloghi, li compila ed elenca i testi ancora da tradurre o da rivedere (contrassegnati come fuzzy), che l’app mostra in inglese fino ad allora. I test falliscono finché un catalogo non è aggiornato.

Finestra del terminale
uv run .github/scripts/update_translations.py

Per aggiungere una lingua, crea il suo catalogo, traducilo, compilalo e aggiungila a UI_LANGUAGES in src/utils/i18n.py:

Finestra del terminale
uv run pybabel init -i res/locales/audiotext.pot -d res/locales -D audiotext -l <codice>
uv run .github/scripts/update_translations.py

Questo sito è realizzato con Starlight e si trova nel repository audiotext-docs. Ogni lingua ha la sua cartella in src/content/docs (l’inglese è in en).

Finestra del terminale
git clone https://github.com/HenestrosaDev/audiotext-docs.git
cd audiotext-docs
npm install
npm run dev # serve il sito su http://localhost:4321
npm run build # genera il sito in dist

Ogni pagina ha in fondo un link Modifica pagina che la apre su GitHub.