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.
Przygotuj projekt
Dział zatytułowany „Przygotuj projekt”Wymagany jest Python od 3.10 do 3.13. Jeśli go brakuje, uv go pobierze.
-
Zainstaluj FFmpeg, a na Linuksie także PortAudio:
Okno terminala # macOSbrew install ffmpeg# Ubuntu lub Debiansudo apt install ffmpeg libportaudio2# Windowschoco install ffmpeg -
Sklonuj repozytorium:
Okno terminala git clone https://github.com/HenestrosaDev/audiotext.gitcd audiotext -
Zainstaluj uv, które zarządza zależnościami i środowiskiem wirtualnym.
-
Zainstaluj zależności:
Okno terminala uv syncuv syncinstaluje 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 -
Uruchom aplikację:
Okno terminala uv run src/app.py
Narzędzia deweloperskie
Dział zatytułowany „Narzędzia deweloperskie”uv run pre-commit install # sprawdza i formatuje kod przed każdym commitemuv run pytest # uruchamia testyPrzetłumacz interfejs
Dział zatytułowany „Przetłumacz interfejs”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.
uv run .github/scripts/update_translations.pyAby dodać język, utwórz jego katalog, przetłumacz go, skompiluj i dodaj język do UI_LANGUAGES w src/utils/i18n.py:
uv run pybabel init -i res/locales/audiotext.pot -d res/locales -D audiotext -l <kod>uv run .github/scripts/update_translations.pyUlepsz tę dokumentację
Dział zatytułowany „Ulepsz tę dokumentację”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).
git clone https://github.com/HenestrosaDev/audiotext-docs.gitcd audiotext-docsnpm installnpm run dev # udostępnia stronę pod adresem http://localhost:4321npm run build # buduje stronę w distNa dole każdej strony jest link Edytuj stronę, który otwiera ją na GitHubie.