プロジェクトへの貢献
Caution
現在のプロジェクトメンテナーは、ドキュメントの自動国際化を研究中です。したがって、ドキュメントの国際化/翻訳に関連する PR は一切受け付けません!
ドキュメントの国際化/翻訳に関連する PR は提出しないでください!
このプロジェクトにご興味をお持ちいただき、ありがとうございます!貢献を始める前に、以下のガイドラインをお読みいただき、あなたの貢献がスムーズに受け入れられることを確認してください。
受け入れられない貢献の種類
- ドキュメントの国際化・翻訳
- HTTP API など、コアインフラストラクチャに関連する貢献
- 「助け不要」と明示的にマークされた Issue(Byaidu/PDFMathTranslate および PDFMathTranslate-next/PDFMathTranslate-next リポジトリ内の Issue を含む)。
- メンテナーが不適切と判断したその他の貢献。
- ドキュメントへの貢献だが、英語以外の言語でドキュメントを変更するもの。
PDFファイルの変更を必要とする PR。pdf2zh_next/gui_translation.yamlファイルを変更する PR。
上記の種類に関連する PR は提出しないでください。
Note
ドキュメントに貢献したい場合は、ドキュメントの英語版のみを修正してください。他の言語バージョンは貢献者自身によって翻訳されます。
メンテナーとの事前 Issue での議論を推奨する PR
以下の種類の PR については、提出前にメンテナーと事前に議論することをお勧めします:
- マルチユーザー共有機能に関する PR。(このプロジェクトは主にシングルユーザー向けに設計されており、包括的なマルチユーザーシステムの導入は予定していません)。
貢献プロセス
- このリポジトリをフォークし、ローカルにクローンします。
- 新しいブランチを作成します:
git checkout -b feature/<feature-name>。 - 開発を行い、コードが要件を満たしていることを確認します。
- コードをコミットします:
- 自分のリポジトリにプッシュします:
git push origin feature/<feature-name>。 - GitHub で PR を作成し、詳細な説明を提供し、@awwaawwa にレビューを依頼します。
- すべての自動チェックが合格することを確認します。
Tip
開発が完全に完了するまで待つ必要はありません。早期に PR を作成することで、実装をレビューし、提案を提供することができます。
ソースコードや関連事項について質問がある場合は、メンテナー [email protected] までお問い合わせください。
バージョン 2.0 のリソースファイルは BabelDOC と共有されています。関連リソースをダウンロードするコードは BabelDOC にあります。新しいリソースファイルを追加したい場合は、BabelDOC のメンテナー [email protected] までお問い合わせください。
基本要件
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. コーディングスタイル
- 提出されたコードが基本的なコーディングスタイル標準に準拠していることを確認してください。
- 変数名にはスネークケースまたはキャメルケースを使用してください。
8. ドキュメントフォーマット
README.mdのフォーマットについては、中国語コピーライティングガイドライン に従ってください。- 英語と中国語のドキュメントは常に最新の状態に保つことを確認してください。他の言語のドキュメントの更新は任意です。
翻訳エンジンの追加
pdf2zh/config/translate_engine_model.pyファイルに新しい翻訳エンジン設定クラスを追加します。- 同じファイル内の
TRANSLATION_ENGINE_SETTING_TYPE型エイリアスに、新しい翻訳エンジン設定クラスのインスタンスを追加します。 pdf2zh/translator/translator_implフォルダに新しい翻訳エンジン実装クラスを追加します。
Note
このプロジェクトは、RPS(1 秒あたりのリクエスト数)が 4 未満の翻訳エンジンをサポートすることを意図していません。そのようなエンジンのサポートを提出しないでください。 以下の種類の翻訳者も統合されません: - 上流のメンテナーによって開発が中止された翻訳者(deeplx など) - 依存関係が大きい翻訳者(pytorch に依存するものなど) - 不安定な翻訳者 - リバースエンジニアリング API に基づく翻訳者
翻訳者が要件を満たしているかどうかわからない場合は、Issue を送信してメンテナーと議論することができます。
プロジェクト構造
- config フォルダ: 設定システム。
- translator フォルダ: 翻訳関連の実装。
- gui.py: GUI インターフェースを提供。
- const.py: いくつかの定数。
- main.py: コマンドラインツールを提供。
- high_level.py: BabelDOC に基づく高レベルインターフェース。
- http_api.py: HTTP API を提供(起動されていません)。
プロジェクトを理解するために AI に質問する:DeepWiki
お問い合わせ
ご質問がございましたら、Issue を通じてフィードバックを提出するか、Telegram グループにご参加ください。ご貢献いただきありがとうございます!
Tip
Immersive Translate は、このプロジェクトに積極的に貢献する貢献者に対して、月額 Pro メンバーシップコードをスポンサーしています。詳細については、以下をご覧ください:BabelDOC/PDFMathTranslate 貢献者報酬ルール