Przejdź do głównej zawartości

Współtworzenie

Wkład jest mile widziany! Przeczytaj przewodnik dla współtwórców przed otwarciem pull requesta. Możesz też proponować pomysły w dyskusjach lub przejrzeć backlog projektu.

Wymagany jest Python od 3.10 do 3.13. Jeśli go brakuje, uv go pobierze.

  1. Zainstaluj FFmpeg, a na Linuksie także PortAudio:

    Okno terminala
    # macOS
    brew install ffmpeg
    # Ubuntu lub Debian
    sudo apt install ffmpeg libportaudio2
    # Windows
    choco install ffmpeg
  2. Sklonuj repozytorium:

    Okno terminala
    git clone https://github.com/HenestrosaDev/audiotext.git
    cd audiotext
  3. Zainstaluj uv, które zarządza zależnościami i środowiskiem wirtualnym.

  4. Zainstaluj zależności:

    Okno terminala
    uv sync

    uv sync instaluje PyTorch z obsługą CUDA, co na Linuksie i Windows oznacza duże pobieranie. Bez karty NVIDIA zainstaluj zamiast tego wersję dla procesora:

    Okno terminala
    uv sync --no-group cuda --group cpu
  5. Uruchom aplikację:

    Okno terminala
    uv run src/app.py
Okno terminala
uv run pre-commit install # sprawdza i formatuje kod przed każdym commitem
uv run pytest # uruchamia testy

Interfejs jest tłumaczony za pomocą gettext. Teksty znajdują się w res/locales/audiotext.pot, a tłumaczenia każdego języka w res/locales/<język>/LC_MESSAGES/audiotext.po. Teksty zależne od liczby (np. {count} file / {count} files) mają tłumaczenie dla każdej formy liczby mnogiej języka (msgstr[0], msgstr[1]…), zgodnie z nagłówkiem Plural-Forms jego katalogu. Ten sam tekst może wystąpić dwa razy, raz z kontekstem (msgctxt), aby w każdym miejscu był przetłumaczony inaczej: np. Done to stan transkrypcji, a z kontekstem files filtr plików folderu.

Gdy teksty w kodzie się zmienią lub po edycji pliku .po (np. w Poedit), uruchom ten skrypt. Wyodrębnia teksty, aktualizuje katalogi, kompiluje je i wypisuje teksty, które trzeba jeszcze przetłumaczyć lub sprawdzić (oznaczone jako fuzzy) – do tego czasu aplikacja pokazuje je po angielsku. Testy kończą się niepowodzeniem, dopóki któryś katalog jest nieaktualny.

Okno terminala
uv run .github/scripts/update_translations.py

Aby dodać język, utwórz jego katalog, przetłumacz go, skompiluj i dodaj język do UI_LANGUAGES w src/utils/i18n.py:

Okno terminala
uv run pybabel init -i res/locales/audiotext.pot -d res/locales -D audiotext -l <kod>
uv run .github/scripts/update_translations.py

Ta strona jest zbudowana w Starlight i znajduje się w repozytorium audiotext-docs. Każdy język ma własny folder w src/content/docs (angielski jest w en).

Okno terminala
git clone https://github.com/HenestrosaDev/audiotext-docs.git
cd audiotext-docs
npm install
npm run dev # udostępnia stronę pod adresem http://localhost:4321
npm run build # buduje stronę w dist

Na dole każdej strony jest link Edytuj stronę, który otwiera ją na GitHubie.