PDFTranslate / docs /ko /community /Contribution-Guide.md
Ryuichi
Initial deployment
179eccc
|
Raw History Blame Contribute Delete
9.39 kB

ν”„λ‘œμ νŠΈμ— κΈ°μ—¬ν•˜κΈ°

ν˜„μž¬ ν”„λ‘œμ νŠΈ κ΄€λ¦¬μžλ“€μ€ μžλ™ν™”λœ λ¬Έμ„œ κ΅­μ œν™”λ₯Ό 연ꡬ μ€‘μž…λ‹ˆλ‹€. λ”°λΌμ„œ λ¬Έμ„œ κ΅­μ œν™”/λ²ˆμ—­κ³Ό κ΄€λ ¨λœ PR 은 μ ˆλŒ€ ν—ˆμš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€!

λ¬Έμ„œ κ΅­μ œν™”/λ²ˆμ—­κ³Ό κ΄€λ ¨λœ PR 을 μ œμΆœν•˜μ§€ λ§ˆμ„Έμš”!

이 ν”„λ‘œμ νŠΈμ— 관심을 κ°€μ Έ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€! κΈ°μ—¬λ₯Ό μ‹œμž‘ν•˜κΈ° 전에, μ›ν™œν•œ κΈ°μ—¬λ₯Ό μœ„ν•΄ λ‹€μŒ κ°€μ΄λ“œλΌμΈμ„ κΌ­ 읽어 μ£Όμ‹œκΈ° λ°”λžλ‹ˆλ‹€.

ν—ˆμš©λ˜μ§€ μ•ŠλŠ” κΈ°μ—¬ μœ ν˜•

  1. λ¬Έμ„œ κ΅­μ œν™”/λ²ˆμ—­
  2. HTTP API λ“±κ³Ό 같은 핡심 인프라와 κ΄€λ ¨λœ κΈ°μ—¬
  3. "도움 ν•„μš” μ—†μŒ"으둜 λͺ…μ‹œμ μœΌλ‘œ ν‘œμ‹œλœ 이슈 (Byaidu/PDFMathTranslate 및 PDFMathTranslate-next/PDFMathTranslate-next μ €μž₯μ†Œμ˜ 이슈 포함).
  4. μœ μ§€ κ΄€λ¦¬μžκ°€ λΆ€μ μ ˆν•˜λ‹€κ³  νŒλ‹¨ν•œ 기타 κΈ°μ—¬.
  5. λ¬Έμ„œ κΈ°μ—¬μ΄μ§€λ§Œ μ˜μ–΄ μ΄μ™Έμ˜ μ–Έμ–΄λ‘œ λ¬Έμ„œλ₯Ό λ³€κ²½ν•˜λŠ” 경우.
  6. PDF 파일 μˆ˜μ •μ΄ ν•„μš”ν•œ PR.
  7. pdf2zh_next/gui_translation.yaml νŒŒμΌμ„ μˆ˜μ •ν•˜λŠ” PR.

μœ„μ™€ κ΄€λ ¨λœ μœ ν˜•μ˜ PR 은 μ œμΆœν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€.

λ¬Έμ„œμ— κΈ°μ—¬ν•˜κ³  μ‹Άλ‹€λ©΄ λ¬Έμ„œμ˜ μ˜μ–΄ λ²„μ „λ§Œ μˆ˜μ •ν•΄ μ£Όμ„Έμš”. λ‹€λ₯Έ μ–Έμ–΄ 버전은 κΈ°μ—¬μžλ“€μ΄ 직접 λ²ˆμ—­ν•©λ‹ˆλ‹€.

  • Adding new translation services.
  • Adding new features.
  • Adding new dependencies.

PRs that are welcome to submit directly

  • Fix typo.
  • Fix grammatical errors.
  • Fix broken links.
  • Fix incorrect translation.
  • Add missing translation.
  • Improve translation quality.
  • Add new language.

OUTPUT

μœ μ§€ κ΄€λ¦¬μžμ™€ 이슈λ₯Ό 톡해 사전 λ…Όμ˜κ°€ ꢌμž₯λ˜λŠ” PR

  • μƒˆλ‘œμš΄ λ²ˆμ—­ μ„œλΉ„μŠ€ μΆ”κ°€.
  • μƒˆλ‘œμš΄ κΈ°λŠ₯ μΆ”κ°€.
  • μƒˆλ‘œμš΄ μ˜μ‘΄μ„± μΆ”κ°€.

직접 제좜이 ꢌμž₯λ˜λŠ” PR

  • μ˜€νƒ€ μˆ˜μ •.

  • 문법 였λ₯˜ μˆ˜μ •.

  • κΉ¨μ§„ 링크 μˆ˜μ •.

  • 잘λͺ»λœ λ²ˆμ—­ μˆ˜μ •.

  • λˆ„λ½λœ λ²ˆμ—­ μΆ”κ°€.

  • λ²ˆμ—­ ν’ˆμ§ˆ ν–₯상.

  • μƒˆλ‘œμš΄ μ–Έμ–΄ μΆ”κ°€.

  • Adding new translation services.

  • Adding new features.

  • Adding new dependencies.

For the following types of PRs, you are welcome to submit directly:

  • Fix typo.
  • Fix grammatical errors.
  • Fix broken links.
  • Fix incorrect translation.
  • Add missing translation.
  • Improve translation quality.
  • Add new language.

OUTPUT

λ‹€μŒ μœ ν˜•μ˜ PR 은 제좜 전에 μœ μ§€ κ΄€λ¦¬μžμ™€ λ¨Όμ € λ…Όμ˜ν•˜λŠ” 것이 ꢌμž₯λ©λ‹ˆλ‹€:

  • μƒˆλ‘œμš΄ λ²ˆμ—­ μ„œλΉ„μŠ€ μΆ”κ°€.
  • μƒˆλ‘œμš΄ κΈ°λŠ₯ μΆ”κ°€.
  • μƒˆλ‘œμš΄ μ˜μ‘΄μ„± μΆ”κ°€.

λ‹€μŒ μœ ν˜•μ˜ PR 은 직접 μ œμΆœν•΄ 주셔도 μ’‹μŠ΅λ‹ˆλ‹€:

  • μ˜€νƒ€ μˆ˜μ •.
  • 문법 였λ₯˜ μˆ˜μ •.
  • κΉ¨μ§„ 링크 μˆ˜μ •.
  • 잘λͺ»λœ λ²ˆμ—­ μˆ˜μ •.
  • λˆ„λ½λœ λ²ˆμ—­ μΆ”κ°€.
  • λ²ˆμ—­ ν’ˆμ§ˆ ν–₯상.
  • μƒˆλ‘œμš΄ μ–Έμ–΄ μΆ”κ°€.
  1. PRs related to adding new dependencies. (This project aims to maintain minimal dependencies).
  2. PRs related to adding new translation services. (Translation services require extensive testing and maintenance, and we currently do not plan to add new ones).
  3. PRs related to adding new features. (This project is currently in maintenance mode and does not plan to add new features).

OUTPUT

  1. 닀쀑 μ‚¬μš©μž 곡유 κΈ°λŠ₯κ³Ό κ΄€λ ¨λœ PR. (이 ν”„λ‘œμ νŠΈλŠ” 주둜 단일 μ‚¬μš©μž μ‚¬μš©μ„ μœ„ν•΄ μ„€κ³„λ˜μ—ˆμœΌλ©°, 포괄적인 닀쀑 μ‚¬μš©μž μ‹œμŠ€ν…œμ„ λ„μž…ν•  κ³„νšμ΄ μ—†μŠ΅λ‹ˆλ‹€).
  2. μƒˆλ‘œμš΄ μ˜μ‘΄μ„± 좔가와 κ΄€λ ¨λœ PR. (이 ν”„λ‘œμ νŠΈλŠ” μ΅œμ†Œν•œμ˜ μ˜μ‘΄μ„±μ„ μœ μ§€ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•©λ‹ˆλ‹€).
  3. μƒˆλ‘œμš΄ λ²ˆμ—­ μ„œλΉ„μŠ€ 좔가와 κ΄€λ ¨λœ PR. (λ²ˆμ—­ μ„œλΉ„μŠ€λŠ” κ΄‘λ²”μœ„ν•œ ν…ŒμŠ€νŠΈμ™€ μœ μ§€λ³΄μˆ˜κ°€ ν•„μš”ν•˜λ©°, ν˜„μž¬ μƒˆλ‘œμš΄ μ„œλΉ„μŠ€λ₯Ό μΆ”κ°€ν•  κ³„νšμ΄ μ—†μŠ΅λ‹ˆλ‹€).
  4. μƒˆλ‘œμš΄ κΈ°λŠ₯ 좔가와 κ΄€λ ¨λœ PR. (이 ν”„λ‘œμ νŠΈλŠ” ν˜„μž¬ μœ μ§€λ³΄μˆ˜ λͺ¨λ“œμ΄λ©°, μƒˆλ‘œμš΄ κΈ°λŠ₯을 μΆ”κ°€ν•  κ³„νšμ΄ μ—†μŠ΅λ‹ˆλ‹€).

κΈ°μ—¬ ν”„λ‘œμ„ΈμŠ€

  1. 이 μ €μž₯μ†Œλ₯Ό ν¬ν¬ν•˜κ³  λ‘œμ»¬μ— ν΄λ‘ ν•©λ‹ˆλ‹€.
  2. μƒˆλ‘œμš΄ 브랜치λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€: git checkout -b feature/<feature-name>.
  3. κ°œλ°œμ„ μ§„ν–‰ν•˜κ³  μ½”λ“œκ°€ μš”κ΅¬ 사항을 μΆ©μ‘±ν•˜λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.
  4. μ½”λ“œλ₯Ό μ»€λ°‹ν•©λ‹ˆλ‹€:
    git add .
    git commit -m "<semantic commit message>"
    
  5. μžμ‹ μ˜ μ €μž₯μ†Œμ— ν‘Έμ‹œν•©λ‹ˆλ‹€: git push origin feature/<feature-name>.
  6. GitHub μ—μ„œ PR 을 μƒμ„±ν•˜κ³  μƒμ„Έν•œ μ„€λͺ…을 μ œκ³΅ν•œ ν›„ @awwaawwa μ—κ²Œ 리뷰λ₯Ό μš”μ²­ν•©λ‹ˆλ‹€.
  7. λͺ¨λ“  μžλ™ν™”λœ 검사가 ν†΅κ³Όλ˜λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.

개발이 μ™„μ „νžˆ μ™„λ£Œλ  λ•ŒκΉŒμ§€ 기닀릴 ν•„μš” 없이 PR 을 생성할 수 μžˆμŠ΅λ‹ˆλ‹€. 일찍 μƒμ„±ν•˜λ©΄ κ΅¬ν˜„μ„ κ²€ν† ν•˜κ³  μ œμ•ˆμ„ μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ†ŒμŠ€ μ½”λ“œ λ˜λŠ” κ΄€λ ¨ 사항에 λŒ€ν•œ 질문이 있으면 aw@funstory.ai 둜 λ©”μΈν…Œμ΄λ„ˆμ—κ²Œ λ¬Έμ˜ν•˜μ„Έμš”.

2.0 λ²„μ „μ˜ λ¦¬μ†ŒμŠ€ νŒŒμΌμ€ BabelDOC 와 κ³΅μœ λ©λ‹ˆλ‹€. κ΄€λ ¨ λ¦¬μ†ŒμŠ€λ₯Ό λ‹€μš΄λ‘œλ“œν•˜λŠ” μ½”λ“œλŠ” BabelDOC 에 μžˆμŠ΅λ‹ˆλ‹€. μƒˆλ‘œμš΄ λ¦¬μ†ŒμŠ€ νŒŒμΌμ„ μΆ”κ°€ν•˜λ €λ©΄ BabelDOC λ©”μΈν…Œμ΄λ„ˆμ—κ²Œ aw@funstory.ai 둜 λ¬Έμ˜ν•˜μ„Έμš”.

κΈ°λ³Έ μš”κ΅¬ 사항

1. μ›Œν¬ν”Œλ‘œμš°

  • main λΈŒλžœμΉ˜μ—μ„œ 포크λ₯Ό μƒμ„±ν•˜κ³  포크된 λΈŒλžœμΉ˜μ—μ„œ κ°œλ°œμ„ μ§„ν–‰ν•΄ μ£Όμ„Έμš”.
  • Pull Request(PR) λ₯Ό μ œμΆœν•  λ•Œ λ³€κ²½ 사항에 λŒ€ν•œ μƒμ„Έν•œ μ„€λͺ…을 μ œκ³΅ν•΄ μ£Όμ„Έμš”.
  • PR 이 μžλ™ν™”λœ 검사λ₯Ό ν†΅κ³Όν•˜μ§€ λͺ»ν•˜λŠ” 경우 (checks failed 및 빨간색 μ‹­μžκ°€λ‘œ ν‘œμ‹œλ¨), ν•΄λ‹Ή details λ₯Ό ν™•μΈν•˜κ³  μ œμΆœλ¬Όμ„ μˆ˜μ •ν•˜μ—¬ μƒˆλ‘œμš΄ PR 이 λͺ¨λ“  검사λ₯Ό 톡과할 수 μžˆλ„λ‘ ν•΄ μ£Όμ„Έμš”.

2. 개발 및 ν…ŒμŠ€νŠΈ

  • 개발 및 ν…ŒμŠ€νŠΈλ₯Ό μœ„ν•΄ pip install -e . λͺ…령을 μ‚¬μš©ν•˜μ„Έμš”.

3. μ½”λ“œ ν¬λ§·νŒ…

  • pre-commit 도ꡬλ₯Ό κ΅¬μ„±ν•˜κ³  μ½”λ“œ μ„œμ‹μ„ μœ„ν•΄ black κ³Ό flake8 을 ν™œμ„±ν™”ν•˜μ„Έμš”.

4. 쒅속성 μ—…λ°μ΄νŠΈ

  • μƒˆλ‘œμš΄ 쒅속성을 λ„μž…ν•˜λŠ” 경우, pyproject.toml 파일의 쒅속성 λͺ©λ‘μ„ μ μ‹œμ— μ—…λ°μ΄νŠΈν•΄ μ£Όμ„Έμš”.

5. λ¬Έμ„œ μ—…λ°μ΄νŠΈ

  • μƒˆλ‘œμš΄ λͺ…령쀄 μ˜΅μ…˜μ„ μΆ”κ°€ν•˜λŠ” 경우, README.md 파일의 λͺ¨λ“  μ–Έμ–΄ λ²„μ „μ—μ„œ λͺ…령쀄 μ˜΅μ…˜ λͺ©λ‘μ„ ν•΄λ‹Ή 사항에 맞게 μ—…λ°μ΄νŠΈν•΄ μ£Όμ„Έμš”.

6. 컀밋 λ©”μ‹œμ§€

  • Conventional Commits λ₯Ό μ‚¬μš©ν•˜μ„Έμš”. 예: feat(translator): add openai.

7. μ½”λ”© μŠ€νƒ€μΌ

  • μ œμΆœν•œ μ½”λ“œκ°€ 기본적인 μ½”λ”© μŠ€νƒ€μΌ ν‘œμ€€μ„ μ€€μˆ˜ν•˜λŠ”μ§€ ν™•μΈν•˜μ„Έμš”.
  • λ³€μˆ˜ μ΄λ¦„μ—λŠ” snake_case λ˜λŠ” camelCase λ₯Ό μ‚¬μš©ν•˜μ„Έμš”.

8. λ¬Έμ„œ μ„œμ‹

λ²ˆμ—­ μ—”μ§„ μΆ”κ°€ν•˜κΈ°

  1. pdf2zh/config/translate_engine_model.py νŒŒμΌμ— μƒˆλ‘œμš΄ λ²ˆμ—­κΈ° ꡬ성 클래슀λ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€.
  2. λ™μΌν•œ 파일의 TRANSLATION_ENGINE_SETTING_TYPE νƒ€μž… 별칭에 μƒˆλ‘œμš΄ λ²ˆμ—­κΈ° ꡬ성 클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€.
  3. pdf2zh/translator/translator_impl 폴더에 μƒˆλ‘œμš΄ λ²ˆμ—­κΈ° κ΅¬ν˜„ 클래슀λ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€.

이 ν”„λ‘œμ νŠΈλŠ” RPS(μ΄ˆλ‹Ή μš”μ²­ 수) κ°€ 4 미만인 λ²ˆμ—­ 엔진을 지원할 μ˜λ„κ°€ μ—†μŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 엔진에 λŒ€ν•œ 지원을 μš”μ²­ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€. λ‹€μŒ μœ ν˜•μ˜ λ²ˆμ—­κΈ°λ„ ν†΅ν•©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€:

  • μ—…μŠ€νŠΈλ¦Ό μœ μ§€λ³΄μˆ˜μžμ— μ˜ν•΄ μ€‘λ‹¨λœ λ²ˆμ—­κΈ° (예: deeplx)
  • 큰 μ˜μ‘΄μ„±μ΄ μžˆλŠ” λ²ˆμ—­κΈ° (예: pytorch 에 μ˜μ‘΄ν•˜λŠ” 경우)
  • λΆˆμ•ˆμ •ν•œ λ²ˆμ—­κΈ°
  • λ¦¬λ²„μŠ€ μ—”μ§€λ‹ˆμ–΄λ§ API 기반 λ²ˆμ—­κΈ°

νŠΉμ • λ²ˆμ—­κΈ°κ°€ μš”κ΅¬ 사항을 μΆ©μ‘±ν•˜λŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•Šμ€ 경우, 이슈λ₯Ό 보내 μœ μ§€λ³΄μˆ˜μžμ™€ λ…Όμ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν”„λ‘œμ νŠΈ ꡬ쑰

  • config 폴더: ꡬ성 μ‹œμŠ€ν…œ.
  • translator 폴더: λ²ˆμ—­κΈ° κ΄€λ ¨ κ΅¬ν˜„.
  • gui.py: GUI μΈν„°νŽ˜μ΄μŠ€λ₯Ό 제곡.
  • const.py: 일뢀 μƒμˆ˜.
  • main.py: λͺ…령쀄 도ꡬλ₯Ό 제곡.
  • high_level.py: BabelDOC 기반의 κ³ μˆ˜μ€€ μΈν„°νŽ˜μ΄μŠ€.
  • http_api.py: HTTP API λ₯Ό 제곡 (μ‹œμž‘λ˜μ§€ μ•ŠμŒ).

AI μ—κ²Œ ν”„λ‘œμ νŠΈ 이해 μš”μ²­: DeepWiki

λ¬Έμ˜ν•˜κΈ°

질문이 μžˆμœΌμ‹œλ©΄ Issue λ₯Ό 톡해 ν”Όλ“œλ°±μ„ μ œμΆœν•˜κ±°λ‚˜ Telegram 그룹에 μ°Έμ—¬ν•΄ μ£Όμ„Έμš”. κΈ°μ—¬ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!

Immersive Translate λŠ” 이 ν”„λ‘œμ νŠΈμ— ν™œλ°œνžˆ κΈ°μ—¬ν•˜λŠ” 뢄듀을 μœ„ν•΄ λ§€μ›” Pro 멀버십 μ½”λ“œλ₯Ό ν›„μ›ν•©λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ λ‹€μŒμ„ μ°Έμ‘°ν•˜μ„Έμš”: BabelDOC/PDFMathTranslate κΈ°μ—¬μž 보상 κ·œμΉ™

이 νŽ˜μ΄μ§€μ˜ 일뢀 λ‚΄μš©μ€ GPT 에 μ˜ν•΄ λ²ˆμ—­λ˜μ—ˆμœΌλ©° 였λ₯˜κ°€ 포함될 수 μžˆμŠ΅λ‹ˆλ‹€.