Ir ao contido

Contribuír

As contribucións son benvidas! Le a guía de contribución antes de abrir unha pull request. Tamén podes propoñer ideas nas discusións ou consultar o backlog do proxecto.

Precísase Python 3.10 a 3.13. uv descárgao se non o tes.

  1. Instala FFmpeg e, en Linux, PortAudio:

    Fiestra do terminal
    # macOS
    brew install ffmpeg
    # Ubuntu ou Debian
    sudo apt install ffmpeg libportaudio2
    # Windows
    choco install ffmpeg
  2. Clona o repositorio:

    Fiestra do terminal
    git clone https://github.com/HenestrosaDev/audiotext.git
    cd audiotext
  3. Instala uv, que xestiona as dependencias e o contorno virtual.

  4. Instala as dependencias:

    Fiestra do terminal
    uv sync

    uv sync instala PyTorch con soporte para CUDA, que é unha descarga grande en Linux e Windows. Sen unha GPU NVIDIA, instala no seu lugar a versión para CPU:

    Fiestra do terminal
    uv sync --no-group cuda --group cpu
  5. Executa a aplicación:

    Fiestra do terminal
    uv run src/app.py
Fiestra do terminal
uv run pre-commit install # revisa e formata o código antes de cada commit
uv run pytest # executa as probas

A interface tradúcese con gettext. Os textos están en res/locales/audiotext.pot, e as traducións de cada idioma en res/locales/<idioma>/LC_MESSAGES/audiotext.po. Os textos que dependen dun número (p. ex. {count} file / {count} files) teñen unha tradución para cada forma de plural do idioma (msgstr[0], msgstr[1]…), segundo a cabeceira Plural-Forms do seu catálogo. Un mesmo texto pode aparecer dúas veces, unha cun contexto (msgctxt), para que se traduza distinto en cada sitio: p. ex. Done é o estado dunha transcrición, e co contexto files, un filtro dos ficheiros dun cartafol.

Cando cambien os textos do código, ou despois de editar un ficheiro .po (p. ex. con Poedit), executa este script. Extrae os textos, actualiza os catálogos, compílaos e lista os textos que faltan por traducir ou revisar (marcados como fuzzy), que a aplicación mostra en inglés ata entón. As probas fallan mentres haxa un catálogo desactualizado.

Fiestra do terminal
uv run .github/scripts/update_translations.py

Para engadir un idioma, crea o seu catálogo, tradúceo, compílao e engádeo a UI_LANGUAGES en src/utils/i18n.py:

Fiestra do terminal
uv run pybabel init -i res/locales/audiotext.pot -d res/locales -D audiotext -l <código>
uv run .github/scripts/update_translations.py

Esta web está feita con Starlight e está no repositorio audiotext-docs. Cada idioma ten o seu propio cartafol en src/content/docs (o inglés está en en).

Fiestra do terminal
git clone https://github.com/HenestrosaDev/audiotext-docs.git
cd audiotext-docs
npm install
npm run dev # serve a web en http://localhost:4321
npm run build # xera a web en dist

Cada páxina ten unha ligazón Editar páxina ao final que a abre en GitHub.