Перейти до вмісту

Участь у проєкті

Ми раді будь-якому внеску! Перед відкриттям pull request прочитайте посібник для учасників. Ідеї також можна пропонувати в обговореннях або переглядати беклог проєкту.

Потрібен Python від 3.10 до 3.13. Якщо його немає, uv завантажить його сам.

  1. Встановіть FFmpeg, а в Linux також PortAudio:

    Terminal window
    # macOS
    brew install ffmpeg
    # Ubuntu або Debian
    sudo apt install ffmpeg libportaudio2
    # Windows
    choco install ffmpeg
  2. Клонуйте репозиторій:

    Terminal window
    git clone https://github.com/HenestrosaDev/audiotext.git
    cd audiotext
  3. Встановіть uv — він керує залежностями та віртуальним середовищем.

  4. Встановіть залежності:

    Terminal window
    uv sync

    uv sync встановлює PyTorch із підтримкою CUDA — у Linux і Windows це велике завантаження. Без відеокарти NVIDIA натомість встановіть версію для процесора:

    Terminal window
    uv sync --no-group cuda --group cpu
  5. Запустіть застосунок:

    Terminal window
    uv run src/app.py
Terminal window
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); доти застосунок показує їх англійською. Тести не проходять, доки якийсь каталог застарілий.

Terminal window
uv run .github/scripts/update_translations.py

Щоб додати мову, створіть її каталог, перекладіть, скомпілюйте й додайте мову до UI_LANGUAGES у src/utils/i18n.py:

Terminal window
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).

Terminal window
git clone https://github.com/HenestrosaDev/audiotext-docs.git
cd audiotext-docs
npm install
npm run dev # запускає сайт за адресою http://localhost:4321
npm run build # збирає сайт у dist

Унизу кожної сторінки є посилання Редагувати сторінку, яке відкриває її на GitHub.