기여하기
기여는 언제나 환영합니다! 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는 CUDA를 지원하는 PyTorch를 설치하므로 Linux와 Windows에서는 다운로드 용량이 큽니다. NVIDIA GPU가 없다면 대신 CPU 버전을 설치하세요.터미널 창 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)에는 카탈로그의 Plural-Forms 헤더에 정해진 대로 해당 언어의 복수형마다 번역(msgstr[0], msgstr[1]…)이 있습니다. 같은 텍스트가 컨텍스트(msgctxt)와 함께 한 번 더 나타날 수 있으며, 위치마다 다르게 번역할 수 있습니다. 예를 들어 Done은 받아쓰기의 상태이고, files 컨텍스트가 있는 것은 폴더 파일의 필터입니다.
코드의 텍스트가 바뀌었거나 .po 파일을 편집한 뒤에는(예: Poedit) 이 스크립트를 실행하세요. 텍스트를 추출하고 카탈로그를 업데이트해 컴파일한 다음, 아직 번역하거나 검토해야 할 텍스트(fuzzy 표시)를 보여 줍니다. 그때까지 앱은 해당 텍스트를 영어로 표시합니다. 오래된 카탈로그가 있으면 테스트가 실패합니다.
uv run .github/scripts/update_translations.py언어를 추가하려면 카탈로그를 만들어 번역하고 컴파일한 다음 src/utils/i18n.py의 UI_LANGUAGES에 추가하세요.
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:4321에서 사이트를 띄웁니다npm run build # dist에 사이트를 빌드합니다각 페이지 하단에는 GitHub에서 해당 페이지를 여는 페이지 편집 링크가 있습니다.