Contribuir
¡Las contribuciones son bienvenidas! Lee la guía de contribución antes de abrir una pull request. También puedes proponer ideas en las discusiones o consultar el backlog del proyecto.
Prepara el proyecto
Sección titulada «Prepara el proyecto»Se necesita Python 3.10 a 3.13. uv lo descarga si no lo tienes.
-
Instala FFmpeg y, en Linux, PortAudio:
Ventana de terminal # macOSbrew install ffmpeg# Ubuntu o Debiansudo apt install ffmpeg libportaudio2# Windowschoco install ffmpeg -
Clona el repositorio:
Ventana de terminal git clone https://github.com/HenestrosaDev/audiotext.gitcd audiotext -
Instala uv, que gestiona las dependencias y el entorno virtual.
-
Instala las dependencias:
Ventana de terminal uv syncuv syncinstala PyTorch con soporte para CUDA, que es una descarga grande en Linux y Windows. Sin una GPU NVIDIA, instala en su lugar la versión para CPU:Ventana de terminal uv sync --no-group cuda --group cpu -
Ejecuta la aplicación:
Ventana de terminal uv run src/app.py
Herramientas de desarrollo
Sección titulada «Herramientas de desarrollo»uv run pre-commit install # revisa y formatea el código antes de cada commituv run pytest # ejecuta las pruebasTraduce la interfaz
Sección titulada «Traduce la interfaz»La interfaz se traduce con gettext. Los textos están en res/locales/audiotext.pot, y las traducciones de cada idioma en res/locales/<idioma>/LC_MESSAGES/audiotext.po. Los textos que dependen de un número (p. ej. {count} file / {count} files) tienen una traducción para cada forma de plural del idioma (msgstr[0], msgstr[1]…), según la cabecera Plural-Forms de su catálogo. Un mismo texto puede aparecer dos veces, una con un contexto (msgctxt), para que se traduzca distinto en cada sitio: p. ej. Done es el estado de una transcripción, y con el contexto files, un filtro de los archivos de una carpeta.
Cuando cambien los textos del código, o después de editar un archivo .po (p. ej. con Poedit), ejecuta este script. Extrae los textos, actualiza los catálogos, los compila y lista los textos que faltan por traducir o revisar (marcados como fuzzy), que la aplicación muestra en inglés hasta entonces. Las pruebas fallan mientras haya un catálogo desactualizado.
uv run .github/scripts/update_translations.pyPara añadir un idioma, crea su catálogo, tradúcelo, compílalo y añádelo a UI_LANGUAGES en src/utils/i18n.py:
uv run pybabel init -i res/locales/audiotext.pot -d res/locales -D audiotext -l <código>uv run .github/scripts/update_translations.pyMejora esta documentación
Sección titulada «Mejora esta documentación»Esta web está hecha con Starlight y está en el repositorio audiotext-docs. Cada idioma tiene su propia carpeta en src/content/docs (el inglés está en en).
git clone https://github.com/HenestrosaDev/audiotext-docs.gitcd audiotext-docsnpm installnpm run dev # sirve la web en http://localhost:4321npm run build # genera la web en distCada página tiene un enlace Editar página al final que la abre en GitHub.