Lewati ke konten

Berkontribusi

Kontribusi sangat diterima! Baca panduan kontribusi sebelum membuka pull request. Anda juga dapat mengusulkan ide di diskusi atau melihat backlog proyek.

Diperlukan Python 3.10 hingga 3.13. uv mengunduhnya jika belum ada.

  1. Instal FFmpeg dan, di Linux, PortAudio:

    Terminal window
    # macOS
    brew install ffmpeg
    # Ubuntu atau Debian
    sudo apt install ffmpeg libportaudio2
    # Windows
    choco install ffmpeg
  2. Klon repositori:

    Terminal window
    git clone https://github.com/HenestrosaDev/audiotext.git
    cd audiotext
  3. Instal uv, yang mengelola dependensi dan lingkungan virtual.

  4. Instal dependensi:

    Terminal window
    uv sync

    uv sync menginstal PyTorch dengan dukungan CUDA, yang merupakan unduhan besar di Linux dan Windows. Tanpa GPU NVIDIA, instal versi CPU sebagai gantinya:

    Terminal window
    uv sync --no-group cuda --group cpu
  5. Jalankan aplikasi:

    Terminal window
    uv run src/app.py
Terminal window
uv run pre-commit install # memeriksa dan memformat kode sebelum setiap commit
uv run pytest # menjalankan pengujian

Antarmuka diterjemahkan dengan gettext. Teksnya ada di res/locales/audiotext.pot, dan terjemahan setiap bahasa ada di res/locales/<bahasa>/LC_MESSAGES/audiotext.po. Teks yang bergantung pada angka (mis. {count} file / {count} files) memiliki terjemahan untuk setiap bentuk jamak bahasa tersebut (msgstr[0], msgstr[1]…), sesuai header Plural-Forms katalognya. Teks yang sama dapat muncul dua kali, sekali dengan konteks (msgctxt), agar diterjemahkan berbeda di setiap tempat: mis. Done adalah status transkripsi, dan dengan konteks files, filter file dalam folder.

Saat teks dalam kode berubah, atau setelah mengedit file .po (mis. dengan Poedit), jalankan skrip ini. Skrip ini mengekstrak teks, memperbarui katalog, mengompilasinya, dan menampilkan daftar teks yang masih perlu diterjemahkan atau ditinjau (ditandai fuzzy), yang ditampilkan aplikasi dalam bahasa Inggris hingga saat itu. Pengujian gagal selama masih ada katalog yang belum diperbarui.

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

Untuk menambahkan bahasa, buat katalognya, terjemahkan, kompilasi, lalu tambahkan bahasa tersebut ke UI_LANGUAGES di src/utils/i18n.py:

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

Situs ini dibuat dengan Starlight dan berada di repositori audiotext-docs. Setiap bahasa memiliki foldernya sendiri di src/content/docs (bahasa Inggris ada di en).

Terminal window
git clone https://github.com/HenestrosaDev/audiotext-docs.git
cd audiotext-docs
npm install
npm run dev # menyajikan situs di http://localhost:4321
npm run build # membangun situs ke dist

Setiap halaman memiliki tautan Edit halaman di bagian bawah yang membukanya di GitHub.