Sari la conținut

Contribuiți

Contribuțiile sunt binevenite! Citiți ghidul de contribuție înainte de a deschide un pull request. Puteți propune idei și în discuții sau puteți consulta backlogul proiectului.

Este necesar Python 3.10 până la 3.13. Dacă lipsește, uv îl descarcă.

  1. Instalați FFmpeg și, pe Linux, PortAudio:

    Terminal window
    # macOS
    brew install ffmpeg
    # Ubuntu sau Debian
    sudo apt install ffmpeg libportaudio2
    # Windows
    choco install ffmpeg
  2. Clonați depozitul:

    Terminal window
    git clone https://github.com/HenestrosaDev/audiotext.git
    cd audiotext
  3. Instalați uv, care gestionează dependențele și mediul virtual.

  4. Instalați dependențele:

    Terminal window
    uv sync

    uv sync instalează PyTorch cu suport CUDA, o descărcare mare pe Linux și Windows. Fără placă NVIDIA, instalați în schimb versiunea pentru procesor:

    Terminal window
    uv sync --no-group cuda --group cpu
  5. Porniți aplicația:

    Terminal window
    uv run src/app.py
Terminal window
uv run pre-commit install # verifică și formatează codul înainte de fiecare commit
uv run pytest # rulează testele

Interfața este tradusă cu gettext. Textele se află în res/locales/audiotext.pot, iar traducerile fiecărei limbi în res/locales/<limbă>/LC_MESSAGES/audiotext.po. Textele care depind de un număr (de ex. {count} file / {count} files) au o traducere pentru fiecare formă de plural a limbii (msgstr[0], msgstr[1]…), conform antetului Plural-Forms al catalogului ei. Același text poate apărea de două ori, o dată cu un context (msgctxt), ca să fie tradus diferit în fiecare loc: de ex. Done este starea unei transcrieri, iar cu contextul files, un filtru al fișierelor unui dosar.

Când textele din cod se schimbă sau după ce editați un fișier .po (de ex. cu Poedit), rulați acest script. Extrage textele, actualizează cataloagele, le compilează și listează textele care mai trebuie traduse sau revizuite (marcate ca fuzzy), pe care aplicația le afișează în engleză până atunci. Testele eșuează cât timp un catalog nu este actualizat.

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

Pentru a adăuga o limbă, creați-i catalogul, traduceți-l, compilați-l și adăugați limba în UI_LANGUAGES din src/utils/i18n.py:

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

Acest site este construit cu Starlight și se află în depozitul audiotext-docs. Fiecare limbă are propriul dosar în src/content/docs (engleza este în en).

Terminal window
git clone https://github.com/HenestrosaDev/audiotext-docs.git
cd audiotext-docs
npm install
npm run dev # servește site-ul la http://localhost:4321
npm run build # construiește site-ul în dist

Fiecare pagină are în partea de jos un link Editează pagina care o deschide pe GitHub.