Đóng góp
Mọi đóng góp đều được hoan nghênh! Hãy đọc hướng dẫn đóng góp trước khi mở pull request. Bạn cũng có thể đề xuất ý tưởng trong thảo luận hoặc xem backlog của dự án.
Thiết lập dự án
Phần tiêu đề “Thiết lập dự án”Cần Python 3.10 đến 3.13. uv sẽ tự tải về nếu chưa có.
-
Cài FFmpeg và, trên Linux, PortAudio:
Terminal window # macOSbrew install ffmpeg# Ubuntu hoặc Debiansudo apt install ffmpeg libportaudio2# Windowschoco install ffmpeg -
Sao chép kho mã:
Terminal window git clone https://github.com/HenestrosaDev/audiotext.gitcd audiotext -
Cài uv, công cụ quản lý các phụ thuộc và môi trường ảo.
-
Cài các thư viện phụ thuộc:
Terminal window uv syncuv synccài PyTorch có hỗ trợ CUDA, dung lượng tải lớn trên Linux và Windows. Nếu không có GPU NVIDIA, thay vào đó hãy cài bản dành cho CPU:Terminal window uv sync --no-group cuda --group cpu -
Chạy ứng dụng:
Terminal window uv run src/app.py
Công cụ phát triển
Phần tiêu đề “Công cụ phát triển”uv run pre-commit install # kiểm tra và định dạng mã trước mỗi commituv run pytest # chạy kiểm thửDịch giao diện
Phần tiêu đề “Dịch giao diện”Giao diện được dịch bằng gettext. Các chuỗi văn bản nằm trong res/locales/audiotext.pot, và bản dịch của từng ngôn ngữ nằm trong res/locales/<ngôn-ngữ>/LC_MESSAGES/audiotext.po. Các văn bản phụ thuộc vào một con số (ví dụ {count} file / {count} files) có một bản dịch cho mỗi dạng số nhiều của ngôn ngữ (msgstr[0], msgstr[1]…), theo tiêu đề Plural-Forms trong danh mục của ngôn ngữ đó. Cùng một văn bản có thể xuất hiện hai lần, một lần kèm ngữ cảnh (msgctxt), để được dịch khác nhau ở mỗi chỗ: ví dụ Done là trạng thái của một bản chép lời, còn với ngữ cảnh files là bộ lọc các tệp của một thư mục.
Khi văn bản trong mã thay đổi, hoặc sau khi sửa tệp .po (ví dụ bằng Poedit), hãy chạy script này. Script trích xuất văn bản, cập nhật các danh mục, biên dịch chúng và liệt kê những văn bản còn cần dịch hoặc xem lại (được đánh dấu fuzzy), mà ứng dụng sẽ hiển thị bằng tiếng Anh cho đến lúc đó. Các bài kiểm thử sẽ thất bại khi còn danh mục chưa được cập nhật.
uv run .github/scripts/update_translations.pyĐể thêm ngôn ngữ, hãy tạo danh mục, dịch, biên dịch và thêm ngôn ngữ đó vào UI_LANGUAGES trong src/utils/i18n.py:
uv run pybabel init -i res/locales/audiotext.pot -d res/locales -D audiotext -l <mã>uv run .github/scripts/update_translations.pyCải thiện tài liệu này
Phần tiêu đề “Cải thiện tài liệu này”Trang web này được xây dựng bằng Starlight và nằm trong kho mã audiotext-docs. Mỗi ngôn ngữ có thư mục riêng trong src/content/docs (tiếng Anh nằm trong en).
git clone https://github.com/HenestrosaDev/audiotext-docs.gitcd audiotext-docsnpm installnpm run dev # chạy trang web tại http://localhost:4321npm run build # xây dựng trang web vào distMỗi trang có liên kết Chỉnh sửa trang ở cuối để mở trang đó trên GitHub.