Pular para o conteúdo

Contribuir

Contribuições são bem-vindas! Leia o guia de contribuição antes de abrir um pull request. Você também pode propor ideias nas discussões ou ver o backlog do projeto.

É necessário o Python 3.10 a 3.13. Se não estiver instalado, o uv o baixa.

  1. Instale o FFmpeg e, no Linux, o PortAudio:

    Janela do terminal
    # macOS
    brew install ffmpeg
    # Ubuntu ou Debian
    sudo apt install ffmpeg libportaudio2
    # Windows
    choco install ffmpeg
  2. Clone o repositório:

    Janela do terminal
    git clone https://github.com/HenestrosaDev/audiotext.git
    cd audiotext
  3. Instale o uv, que gerencia as dependências e o ambiente virtual.

  4. Instale as dependências:

    Janela do terminal
    uv sync

    O uv sync instala o PyTorch com suporte a CUDA, que é um download grande no Linux e no Windows. Sem uma GPU NVIDIA, instale a versão para CPU em vez disso:

    Janela do terminal
    uv sync --no-group cuda --group cpu
  5. Execute o aplicativo:

    Janela do terminal
    uv run src/app.py
Janela do terminal
uv run pre-commit install # verifica e formata o código antes de cada commit
uv run pytest # roda os testes

A interface é traduzida com o gettext. Os textos ficam em res/locales/audiotext.pot, e as traduções de cada idioma em res/locales/<idioma>/LC_MESSAGES/audiotext.po. Os textos que dependem de um número (ex.: {count} file / {count} files) têm uma tradução para cada forma de plural do idioma (msgstr[0], msgstr[1]…), conforme o cabeçalho Plural-Forms do catálogo dele. O mesmo texto pode aparecer duas vezes, uma com um contexto (msgctxt), para ser traduzido de forma diferente em cada lugar: ex.: Done é o status de uma transcrição e, com o contexto files, um filtro dos arquivos de uma pasta.

Quando os textos do código mudarem, ou depois de editar um arquivo .po (ex.: com o Poedit), execute este script. Ele extrai os textos, atualiza os catálogos, compila-os e lista os textos que ainda faltam traduzir ou revisar (marcados como fuzzy), que o aplicativo mostra em inglês até lá. Os testes falham enquanto houver um catálogo desatualizado.

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

Para adicionar um idioma, crie o catálogo dele, traduza-o, compile-o e adicione-o a UI_LANGUAGES em src/utils/i18n.py:

Janela 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

Este site é feito com o Starlight e fica no repositório audiotext-docs. Cada idioma tem a sua própria pasta em src/content/docs (o inglês fica em en).

Janela do terminal
git clone https://github.com/HenestrosaDev/audiotext-docs.git
cd audiotext-docs
npm install
npm run dev # serve o site em http://localhost:4321
npm run build # gera o site em dist

Cada página tem um link Editar página no final que a abre no GitHub.