Участь у проєкті
Ми раді будь-якому внеску! Перед відкриттям pull request прочитайте посібник для учасників. Ідеї також можна пропонувати в обговореннях або переглядати беклог проєкту.
Підготовка проєкту
Section titled “Підготовка проєкту”Потрібен Python від 3.10 до 3.13. Якщо його немає, uv завантажить його сам.
-
Встановіть FFmpeg, а в Linux також PortAudio:
Terminal window # macOSbrew install ffmpeg# Ubuntu або Debiansudo apt install ffmpeg libportaudio2# Windowschoco install ffmpeg -
Клонуйте репозиторій:
Terminal window git clone https://github.com/HenestrosaDev/audiotext.gitcd audiotext -
Встановіть uv — він керує залежностями та віртуальним середовищем.
-
Встановіть залежності:
Terminal window uv syncuv syncвстановлює PyTorch із підтримкою CUDA — у Linux і Windows це велике завантаження. Без відеокарти NVIDIA натомість встановіть версію для процесора:Terminal window uv sync --no-group cuda --group cpu -
Запустіть застосунок:
Terminal window uv run src/app.py
Інструменти розробки
Section titled “Інструменти розробки”uv run pre-commit install # перевіряє й форматує код перед кожним комітомuv run pytest # запускає тестиПереклад інтерфейсу
Section titled “Переклад інтерфейсу”Інтерфейс перекладається за допомогою 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Покращте цю документацію
Section titled “Покращте цю документацію”Цей сайт створено на 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.