Участие в проекте
Мы рады любому вкладу! Перед открытием pull request прочитайте руководство для участников. Идеи также можно предлагать в обсуждениях или смотреть бэклог проекта.
Подготовка проекта
Заголовок раздела «Подготовка проекта»Нужен Python от 3.10 до 3.13. Если его нет, uv скачает его сам.
-
Установите FFmpeg, а в Linux также PortAudio:
Окно терминала # macOSbrew install ffmpeg# Ubuntu или Debiansudo apt install ffmpeg libportaudio2# Windowschoco install ffmpeg -
Клонируйте репозиторий:
Окно терминала git clone https://github.com/HenestrosaDev/audiotext.gitcd audiotext -
Установите uv — он управляет зависимостями и виртуальным окружением.
-
Установите зависимости:
Окно терминала uv syncuv syncустанавливает PyTorch с поддержкой CUDA — в Linux и Windows это большая загрузка. Без видеокарты NVIDIA вместо этого установите версию для процессора:Окно терминала uv sync --no-group cuda --group cpu -
Запустите приложение:
Окно терминала uv run src/app.py
Инструменты разработки
Заголовок раздела «Инструменты разработки»uv run pre-commit install # проверяет и форматирует код перед каждым коммитомuv run pytest # запускает тестыПеревод интерфейса
Заголовок раздела «Перевод интерфейса»Интерфейс переводится с помощью gettext. Тексты находятся в res/locales/audiotext.pot, а переводы для каждого языка — в res/locales/<язык>/LC_MESSAGES/audiotext.po. У текстов, зависящих от числа (например, {count} file / {count} files), есть перевод для каждой формы множественного числа языка (msgstr[0], msgstr[1]…), как задано в заголовке Plural-Forms его каталога. Один и тот же текст может встречаться дважды, один раз с контекстом (msgctxt), чтобы в каждом месте его можно было перевести по-разному: например, Done — это состояние транскрипции, а с контекстом files — фильтр файлов папки.
Когда тексты в коде меняются или после правки файла .po (например, в Poedit), запустите этот скрипт. Он извлекает тексты, обновляет каталоги, компилирует их и выводит список текстов, которые ещё нужно перевести или проверить (помечены как fuzzy); до тех пор приложение показывает их на английском. Тесты не проходят, пока какой-либо каталог устарел.
uv run .github/scripts/update_translations.pyЧтобы добавить язык, создайте его каталог, переведите, скомпилируйте его и добавьте язык в UI_LANGUAGES в src/utils/i18n.py:
uv run pybabel init -i res/locales/audiotext.pot -d res/locales -D audiotext -l <код>uv run .github/scripts/update_translations.pyУлучшите эту документацию
Заголовок раздела «Улучшите эту документацию»Этот сайт создан на Starlight и находится в репозитории audiotext-docs. У каждого языка своя папка в src/content/docs (английский — в en).
git clone https://github.com/HenestrosaDev/audiotext-docs.gitcd audiotext-docsnpm installnpm run dev # запускает сайт по адресу http://localhost:4321npm run build # собирает сайт в distВнизу каждой страницы есть ссылка Редактировать страницу, которая открывает её на GitHub.