프로젝트에 기여하기
Caution
현재 프로젝트 관리자들은 문서 자동화 국제화를 연구 중입니다. 따라서 문서 국제화/번역과 관련된 PR 은 허용되지 않습니다!
문서 국제화/번역과 관련된 PR 을 제출하지 마세요!
이 프로젝트에 관심을 가져 주셔서 감사합니다! 기여를 시작하기 전에, 귀하의 기여가 원활하게 수용될 수 있도록 다음 가이드라인을 읽어보시기 바랍니다.
허용되지 않는 기여 유형
- 문서 국제화/번역
- HTTP API 등과 같은 핵심 인프라 관련 기여
- "도움 필요 없음"으로 명시적으로 표시된 이슈 (Byaidu/PDFMathTranslate 저장소의 이슈 포함).
- 유지 관리자가 부적절하다고 판단하는 기타 기여.
위와 같은 유형과 관련된 PR 은 제출하지 마십시오.
기여 프로세스
- 이 저장소를 포크하고 로컬에 클론합니다.
- 새로운 브랜치를 생성합니다:
git checkout -b feature/<feature-name>
. - 개발을 진행하고 코드가 요구 사항을 충족하는지 확인합니다.
- 코드를 커밋합니다:
- 자신의 저장소로 푸시합니다:
git push origin feature/<feature-name>
. - GitHub 에서 PR 을 생성하고 상세한 설명을 제공한 후 @awwaawwa에게 리뷰를 요청합니다.
- 모든 자동화된 검사가 통과되는지 확인합니다.
Tip
개발이 완전히 완료될 때까지 기다릴 필요 없이 PR 을 생성할 수 있습니다. 일찍 PR 을 생성하면 구현 내용을 검토하고 제안을 제공할 수 있습니다.
소스 코드나 관련 사항에 대해 궁금한 점이 있으면 [email protected] 로 메인테이너에게 문의하세요.
버전 2.0 의 리소스 파일은 BabelDOC와 공유됩니다. 관련 리소스 다운로드 코드는 BabelDOC 에 있습니다. 새로운 리소스 파일을 추가하려면 BabelDOC 메인테이너에게 [email protected] 로 문의하세요.
기본 요구 사항
1. 워크플로우
main
브랜치에서 포크 (fork) 한 후, 포크한 브랜치에서 개발을 진행해 주세요.- Pull Request(PR) 를 제출할 때는 변경 사항에 대한 상세한 설명을 제공해 주세요.
- PR 이 자동화된 검사를 통과하지 못하는 경우 (
checks failed
및 빨간색 엑스 표시로 표시됨), 해당details
를 검토하고 제출물을 수정하여 새 PR 이 모든 검사를 통과하도록 해 주세요.
2. 개발 및 테스트
- 개발 및 테스트를 위해
pip install -e .
명령을 사용하세요.
3. 코드 서식 지정
pre-commit
도구를 구성하고 코드 서식을 위해black
과flake8
을 활성화합니다.
4. 의존성 업데이트
- 새로운 종속성을 도입하는 경우,
pyproject.toml
파일의 종속성 목록을 적시에 업데이트해 주세요.
5. 문서 업데이트
- 새로운 명령줄 옵션을 추가하는 경우, 모든 언어 버전의
README.md
파일에 있는 명령줄 옵션 목록을 해당 사항에 맞게 업데이트해 주세요.
6. 커밋 메시지
- 컨벤셔널 커밋을 사용하세요. 예시:
feat(translator): add openai
.
7. 코딩 스타일
- 제출한 코드가 기본적인 코딩 스타일 표준을 준수하는지 확인하세요.
- 변수 이름에는 snake_case 또는 camelCase 를 사용하세요.
8. 문서 서식
README.md
포맷팅은 중국어 작성 가이드라인을 따르세요.- 영어 및 중국어 문서는 항상 최신 상태로 유지하고, 다른 언어 문서 업데이트는 선택 사항입니다.
번역 엔진 추가하기
pdf2zh/config/translate_engine_model.py
파일에 새로운 번역기 구성 클래스를 추가합니다.- 동일한 파일의
TRANSLATION_ENGINE_SETTING_TYPE
타입 별칭에 새로운 번역기 구성 클래스의 인스턴스를 추가합니다. pdf2zh/translator/translator_impl
폴더에 새로운 번역기 구현 클래스를 추가합니다.
Note
이 프로젝트는 RPS(초당 요청 수) 가 4 미만인 번역 엔진을 지원할 의도가 없습니다. 해당 엔진에 대한 지원을 제출하지 마십시오.
프로젝트 구조
- config 폴더: 설정 시스템.
- translator 폴더: 번역기 관련 구현.
- gui.py: GUI 인터페이스 제공.
- const.py: 일부 상수.
- main.py: 명령줄 도구 제공.
- high_level.py: BabelDOC 기반 고수준 인터페이스.
- http_api.py: HTTP API 제공 (시작되지 않음).
문의하기
질문이 있으시면 Issue 를 통해 피드백을 제출하거나 Telegram 그룹에 참여해 주세요. 기여해 주셔서 감사합니다!
Tip
Immersive Translate는 이 프로젝트에 활발히 기여하는 분들을 위해 매월 Pro 멤버십 코드를 후원합니다. 자세한 내용은 다음을 참조하세요: BabelDOC/PDFMathTranslate 기여자 보상 규칙